CN111445333B - 区块生成方法、装置、计算机设备以及存储介质 - Google Patents
区块生成方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN111445333B CN111445333B CN202010225104.8A CN202010225104A CN111445333B CN 111445333 B CN111445333 B CN 111445333B CN 202010225104 A CN202010225104 A CN 202010225104A CN 111445333 B CN111445333 B CN 111445333B
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- information
- task
- transaction information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012163 sequencing technique Methods 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims description 69
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供了一种区块生成方法、装置、计算机设备以及存储介质,该方法包括:接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务;将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块;当执行目标区块中的区块内部交易时,调用系统合约执行扩展业务任务。采用本申请实施例,可以扩展区块交易数据的功能,进而提高区块事务的完整性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及区块生成方法、装置、计算机设备以及存储介质。
背景技术
区块链是一种去中心化的分布式账本系统,具有数据不可篡改、去中心化、开放性的特点。记账节点可以将交易数据打包成区块,并将通过共识即达成记账一致的区块写入区块链中,数据一旦写入区块链,区块链上的各节点都可以收到数据并进行点对点的交易、协调以及协作。
现有技术中,记账节点为了获得生成区块的奖励,可以将一笔特殊的交易打包进区块,这一笔特殊的交易由生成区块的记账节点添加,且属于区块的第一笔交易。然而,将这笔特殊的交易添加在区块的最开始位置,仅仅用于获取工作奖励,该特殊交易的功能过于单一。
发明内容
本申请实施例提供一种区块生成方法、装置、计算机设备以及存储介质,可以扩展区块交易数据的功能,进而提高区块事务的完整性。
本申请实施例一方面提供了一种区块生成方法,包括:
接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;交易信息包括由客户端根据用户的交易操作而生成的交易数据,定序列表包括具有排列顺序的交易数据;
获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务;
将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块;
当执行目标区块中的区块内部交易时,调用系统合约执行扩展业务任务。
本申请实施例一方面提供了一种区块生成装置,其特征在于,包括:
生成模块,用于接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;交易信息包括由客户端根据用户的交易操作而生成的交易数据,定序列表包括具有排列顺序的交易数据;
获取模块,用于获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务;
确定模块,用于将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块;
执行模块,用于当执行目标区块中的区块内部交易时,调用系统合约执行扩展业务任务。
其中,生成模块包括:
属性信息获取单元,用于接收客户端发送的交易信息,获取交易信息对应的属性信息;属性信息包括容量信息、输入信息以及输出信息;
验证单元,用于当属性信息满足区块链网络中的交易合法条件时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中。
其中,上述交易信息包括至少两笔交易数据;
验证单元包括:
条件判断子单元,用于当属性信息满足区块链网络中的交易合法条件时,确定交易信息通过区块链网络的有效性验证;
排序子单元,用于获取至少两笔交易数据分别对应的优先级,将至少两笔交易数据按照优先级的排序顺序写入初始区块中。
其中,生成模块包括:
解密单元,用于接收客户端发送的交易信息,获取交易信息对应的数字签名,根据客户端传输至区块链网络的公钥,对数字签名进行解密,得到第一摘要信息;
哈希运算单元,用于根据哈希算法对交易信息进行哈希运算,得到交易信息对应的第二摘要信息;
比较单元,用于当第一摘要信息和第二摘要信息相同时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中。
其中,该装置还包括:
扩展任务获取模块,用于获取请求节点上传的任务智能合约,根据任务智能合约获取扩展业务任务;
扩展任务添加模块,用于获取区块内部交易对应的初始系统合约,将扩展业务任务对应的业务逻辑添加至初始系统合约,得到系统合约。
其中,扩展业务任务包括定时任务;
扩展任务添加模块包括:
定时任务获取单元,用于获取区块内部交易对应的初始系统合约,获取定时任务对应的任务触发条件和任务执行逻辑;
定时任务添加单元,将任务触发条件和任务执行逻辑添加至初始系统合约,得到系统合约。
其中,任务触发条件包括目标区块高度;
执行模块包括:
区块高度获取单元,用于当执行目标区块中的区块内部交易时,获取目标区块的区块高度;
合约调用单元,用于若目标区块的区块高度与目标区块高度相同,则通过区块内部交易调用系统合约;
定时任务执行单元,用于执行系统合约中的奖励业务和定时任务,得到区块内部交易的执行结果。
其中,该装置还包括:
区块广播模块,用于将目标区块在区块链网络中进行广播,以使区块链网络中除区块生成节点之外的其余节点接收目标区块,对目标区块进行共识验证;共识验证包括区块内部交易的位置验证、数量验证、提交节点验证以及交易数据合法性验证。
其中,该装置还包括:
交易删除模块,用于当属性信息不满足区块链网络中的交易合法条件时,确定交易信息未通过区块链网络的有效性验证,删除交易信息,向交易信息对应的客户端返回交易警告提示信息。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中一方面中方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行如本申请实施例中一方面中方法的步骤。
本申请实施例可以通过接收客户端发送的交易信息,根据交易信息生成初始区块,获取该初始区块中针对上述交易信息的定序列表,进而获取用于奖励区块生成节点的区块内部交易,该区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,该系统合约用于执行所述扩展业务任务,将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块,当执行目标区块中的区块内部交易时,调用系统合约执行上述扩展业务任务。可见,可以将提交至区块链网络的扩展业务任务添加在区块内部交易对应的系统合约中,在区块生成节点将交易数据打包成区块时,可以将区块内部交易添加在区块的末尾位置,通过区块内部交易可以触发系统合约执行扩展业务任务,可以扩展区块交易数据的功能,进而提高区块事务的完整性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种区块生成场景示意图;
图3是本申请实施例提供的一种区块生成方法的流程示意图;
图4是本申请实施例提供的一种初始区块生成示意图;
图5是本申请实施例提供的一种扩展业务任务添加示意图;
图6是本申请实施例提供的一种目标区块的验证过程示意图;
图7是本申请实施例提供的一种区块生成装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
智能合约可以理解为运行在分布式账本(即区块链)上预置规则、具有状态、条件响应的,可封装、验证、执行分布式节点复杂行为,完成信息交换、价值转移和资产管理的计算机程序。基于区块链的分布式架构、共识算法等,智能合约允许相互不信任的用户在不需要任何第三方可信中介或权威的情况下完成交易,同时,数字形式的智能合约可灵活嵌入各种有形或无形的资产、交易和数据中,实现主动或被动的资产、信息管理与控制,逐步构建可编程的智能资产、系统等。
请参见图1,是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括多个区块链节点(如图1所示,具体可以包括节点服务器10a、节点服务器10b、节点服务器10c以及节点服务器10d)和终端设备10e。终端设备10e可以是指用户终端,该终端设备10e可以将需要上链的数据(如新产生的交易数据)上传至区块链网络中的一个或多个节点服务器,并向区块链网络请求将上传的数据打包写入区块链中。当终端设备10e向区块链网络上传数据后,可以从区块链网络中选出将终端设备10e上传的数据打包成新区块的区块链节点。由于区块链网络中生成的区块均需要进行共识,只有共识通过后的区块才可以添加至区块链,即区块在得到区块链网络中大部分共识节点的一致性投票后(共识节点的具体投票数量与采用的共识算法相关,如区块链网络中超过2/3的共识节点投票通过,则表明该新区块共识通过),才能确认该新区块是合法区块,可以添加至区块链。因此,区块链节点在生成新区块后,需要将新区块广播给区块链网络中的共识节点,例如,节点服务器10a、节点服务器10b、节点服务器10c以及节点服务器10d均为区块链网络中的共识节点时,区块链节点在生成新区块后,可以将新区块广播给节点服务器10a、节点服务器10b、节点服务器10c以及节点服务器10d,以使各共识节点可以对新区块进行验证。
其中,终端设备10e可以包括手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等。
请参见图2,是本申请实施例提供的一种区块生成场景示意图。区块链网络中的任一区块链节点均可以用于收集区块链网络中的交易数据,并可以将收集到的交易数据打包成区块,本申请实施例以上述图1所对应实施例中的节点服务器10a为例,对区块生成方案进行说明。如图2所示,客户端可以根据用户的交易操作生成交易信息20b,并将交易信息20b上传到区块链网络中,该交易信息20b可以包括针对不同用户的至少两笔交易数据,如交易数据1,交易数据2等,每笔交易数据中均可以包括交易的发起方、接收方以及交易内容。例如,用户1想从用户2处购买10个游戏币,则用户1可以与用户2达成交易意向;用户2可以通过客户端创建交易数据,该交易数据中的发起方可以为:创建该交易数据的客户端所对应的用户2,如用户2的账号,接收方可以为:购买游戏币的用户1,如用户1的账号,交易内容可以为:将10个游戏币从发起方的账户转移至接收方的账户;该交易数据用于指示区块链网络将10个游戏币从用户2的账户转移至用户1的账户。可以理解的是,交易信息20b可以是指游戏资源的交易场景所产生的数据,或者电子票据的交易场景所产生的数据,或者数字货币的交易场景所产生的数据,或者用户购房数据上链场景所产生的数据等,这里不做具体限定。
区块链网络中的节点服务器10a可以获取客户端上传的交易信息20b,在获取到交易信息20b后,可以对交易信息20b进行验证,验证的目的在于确定该交易信息20b在上传过程中是否被恶意篡改,如验证服务器10a接收到的交易信息是否为客户端上传至区块链网络的,或者验证接收到的交易信息中的交易内容是否为客户端实际上传的交易信息20b中的交易内容,等等。当交易信息20b通过验证后,节点服务器10a可以创建区块内部交易20c(也可以称为coinbase交易,或者创币交易),该区块内部交易20c是由区块生成节点创建的一笔特殊交易,该区块内部交易20c不仅可以用于奖励区块生成节点,还可以用于触发区块链网络中的扩展业务任务(如定时任务,共识节点列表切换任务等)。节点服务器10a可以将验证通过的交易信息20b和区块内部交易20c打包成区块20d,区块20d中包括区块头和区块体,区块头中存储有当前区块哈希值(也可以称为当前区块特征值)、前一区块哈希值(也可以称为前一区块特征值)、生成时间戳、区块高度、版本号以及难度值等信息,区块体中存储有交易信息20b和区块内部交易20c,且区块内部交易20c位于区块20d中的末尾位置,即区块内部交易20c为区块20d中节点服务器10a添加的最后一笔特殊交易。区块20d中交易数据的执行顺序与交易数据在区块体中的排列顺序相同,即首先执行区块体中的交易数据1,得到交易数据1对应的执行结果1,可以把执行结果1广播给区块链网络中的其余节点,随后执行区块体中的交易数据2,得到交易数据2对应的执行结果2,同样可以将执行结果2广播给区块链网络中的其余节点,以此类推,最后执行区块体中的区块内部交易20c,在执行区块内部交易20c时,可以通过区块内部交易20c调用系统合约20a执行扩展业务任务,得到区块内部交易20c对应的任务执行结果,并将任务执行结果广播给区块链网络中的其余节点,该任务执行结果可以包括节点服务器10a对应的奖励费和扩展业务任务的执行结果。
应当理解,当请求节点(可以为用户请求终端)向区块链网络注册任务智能合约时,区块链网络可以从任务智能合约中获取扩展业务任务,并获取区块内部交易对应的初始系统合约,将扩展业务任务添加在区块内部交易对应的初始系统合约中,得到系统合约20a。在执行区块内部交易时可以调用系统合约20a执行扩展业务任务。区块链网络中所生成的每个区块均可以包括区块内部交易,且每个区块中的区块内部交易均位于区块的末尾。每个区块中的区块内部交易均为对应的区块生成节点所添加的,不同区块中的区块内部交易均可以调用系统合约20a。换言之,区块链网络将扩展业务任务添加至初始系统合约之后,后续所生成的区块均可以通过区块内部交易调用系统合约20a实现扩展业务任务。
其中,需要说明的是,区块内部交易对应的初始系统合约可以为区块链网络中的一个智能合约,该初始系统合约仅用于实现对区块生成节点的奖励任务,即初始系统合约中仅包括奖励任务对应的任务执行逻辑。系统合约是指在初始系统合约中添加了业务扩展任务的智能合约,该系统合约不仅可以用于实现对区块生成节点的奖励任务,还可以用于实现所添加的业务扩展业务,即系统合约中包括奖励任务对应的任务执行逻辑,以及业务扩展任务对应的任务执行逻辑。
请参见图3,是本申请实施例提供的一种区块生成方法的流程示意图,可以理解的是,该方法可以由计算机设备执行,计算机设备可以是区块链网络中的节点服务器,或者是区块链网络中的其他节点设备。如图3所示,该区块生成方法可以包括以下步骤:
步骤S101,接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;交易信息包括由客户端根据用户的交易操作而生成的交易数据,定序列表包括具有排列顺序的交易数据。
具体的,用户在发起交易时,可以通过客户端向区块链网络上传该用户所发起的交易信息;区块链网络中的区块链节点可以获取客户端上传的交易信息,在交易信息通过验证后,将交易信息打包成初始区块。其中,该交易信息可以由客户端根据用户的交易操作而生成的交易数据,该交易信息可以包括至少两笔交易数据,区块链节点可以对至少两笔交易数据进行排序,进而将排序后的至少两笔交易数据依次打包进初始区块中,即初始区块中包括针对至少两笔交易数据的定序列表。
其中,在将交易信息上传至区块链网络之前,客户端可以采用非对称加密算法创建密钥对,该密钥对可以包括公钥和私钥,客户端可以将密钥对中的公钥上传至区块链网络,而私钥由客户端保管。非对称加密算法可以包括但不限于:Elgamal算法(一种非对称加密算法)、Rabin算法(一种非对称加密算法)、Diffie-Hellman算法(一种非对称加密算法)、ECC算法(椭圆曲线加密算法);密钥对中的私钥用于客户端对上传至区块链网络的交易信息进行数字签名,密钥对中的公钥用于区块链节点对上传至区块链网络中的交易信息进行验证。需要说明的是,区块链网络中的公钥是具有唯一性的,一个公钥对应一个客户端。
客户端将公钥上传至区块链网络后,则表明该客户端在区块链网络中完成了身份注册,此时的客户端具有在区块链网络中进行数据提交以及信息查看的资格。换言之,在区块链网络中完成身份注册的客户端,可以根据用户的交易操作生成交易数据,并将交易数据上传至区块链网络。
应当理解,区块链节点在接收到客户端上传的交易信息后,可以对交易信息进行验签,验签通过的交易信息才能打包进初始区块中。区块链节点对交易信息进行验签的过程具体为:区块链节点可以获取交易信息对应的数字签名,根据客户端传输至区块链网络的公钥,对交易信息的数字签名进行解密,得到第一摘要信息,进而根据哈希算法对交易信息进行哈希运算,得到交易信息对应的第二摘要信息,当第一摘要信息和第二摘要信息相同时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中。若区块链节点所接收的交易信息中携带的数字签名不是客户端的数字签名,即交易信息中的数字签名是使用假的私钥所生成的数字签名,则区块链节点使用真实的公钥进行解密时,会直接显示解密失败。其中,第一摘要信息为客户端根据哈希运算计算得到的针对交易信息的摘要信息,第二摘要信息为区块链节点根据哈希运算计算得到的针对实际所接收的交易信息的摘要信息,客户端与区块链节点所使用的哈希算法是相同的。
其中,哈希算法可以将数据或者消息压缩成摘要,不仅可以将数据的格式固定下来,还可以使数据量变小,哈希算法可以包括但不限于SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。以SHA-256算法为例,对于任意大小的数据,SHA-256算法均可以产生一个256比特的哈希值,对于不同的数据可以产生不同的哈希值。
可选的,区块链节点还可以在接收到客户端发送的交易信息后,可以获取交易信息的属性信息,该属性信息可以包括容量信息、输入信息(可以是指交易信息对应的输入总金额)以及输出信息(可以是指交易信息对应的输出总金额),当属性信息满足区块链网络中的交易合法条件时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中;当属性信息不满足区块链网络中的交易合法条件时,确定交易信息未通过区块链网络中的有效性验证,删除交易信息,并向交易信息对应的客户端返回交易警告提示信息。其中交易合法条件可以包括但不限于:交易信息的容量小于区块的上限容量、交易信息中存在UTXO以及交易信息对应的输入总金额大于输出总金额等。
区块链节点对交易信息的属性信息的具体验证可以包括:获取交易信息的容量信息和区块链网络中区块的上限容量;确认交易信息中的未花费的交易输出(UnspentTransaction Output,UTXO)是否存在,获取交易信息对应的输入总金额和输出总金额等信息,当交易信息的容量信息小于区块链网络中的上限容量、交易信息中存在UTXO以及交易信息对应的输入总金额大于或等于输出总金额均满足时,可以确定交易信息通过区块链网络中的有效性验证,并将通过验证的交易信息打包进初始区块中;当交易信息的容量信息大于区块链网络中区块的上限容量,或者交易信息中不存在UTXO,或者交易信息中的UTXO被其余交易引用,或者交易信息对应的输入总金额小于输出总金额,都可以确定该交易信息未通过区块链网络中的有效性验证,可以删除交易信息,向交易信息对应的客户端返回交易警告提示信息,即提示客户端交易信息无效,以使客户端可以重新上传交易信息。
需要说明的是,交易信息的验签过程与交易信息对应的属性信息验证过程不分时间先后顺序,即区块链节点在接收到交易信息后,可以先对交易信息进行验签,再对交易信息的属性信息进行验证;也可以先对交易信息的属性信息进行验证,再对交易信息进行验签,这里不做具体限定。
可选的,在交易信息通过区块链网络中的有效性验证后,可以获取交易信息中至少两笔交易数据分别对应的优先级,将至少两笔交易数据按照优先级的排列顺序写入初始区块中。其中,优先级可以由至少两笔交易数据分别对应的手续费(手续费等于输入总金额与输出总金额的差值)所确定,手续费越高,交易数据的优先级越高;优先级可以由客户端向区块链网络上传交易数据的时间所确定,发起交易数据的时间越早,交易数据的优先级越高。
请一并参见图4,是本申请实施例提供的一种初始区块生成示意图。如图4所示,客户端30a根据用户的交易操作生成交易数据后,可以将交易数据上传至区块链网络,区块链网络中的区块链节点30b可以接收客户端30a上传的交易数据。当然,区块链节点30b可以接收客户端30a上传的多笔交易数据,或者其余客户端上传至区块链网络中的交易数据,将所有接收到的交易数据组成交易数据表30c,该交易数据表30c中所包含的交易数据可以是由至少一个客户端上传至区块链网络的,该交易数据表30c中包括交易数据1,交易数据2,……,交易数据n,交易数据表30c中所包含的n个交易数据可以根据交易数据的接收时间进行排序,也可以对所接收到的交易数据进行随机排序。
区块链节点30b可以获取交易数据表30c中每笔交易数据分别对应的优先级(由交易数据中的输入总金额与输出总金额之间的差值所确定),如交易数据1对应的优先级为:B,交易数据2对应的优先级为:A,交易数据3对应的优先级为:E,……,交易数据n对应的优先级为:C。区块链节点30b可以按照优先级从高到低的顺序,对交易数据表30c中所包含的所有交易数据进行排序,得到重新排序后的交易数据表30d,如交易数据表30d中所包含的n个交易数据的排列顺序为:交易数据2,交易数据1,交易数据n,……,交易数据3,……(此处默认A的优先级最高)。区块链节点30b可以将交易数据表30d打包成初始区块30e,在初始区块30e可以包括区块头和区块体,区块头中存储有当前区块哈希值(也可以称为当前区块特征值)、前一区块哈希值(也可以称为前一区块特征值)、生成时间戳、区块高度、版本号以及难度值等信息,区块体中存储有交易数据表30d中所包含的n个交易数据。
步骤S102,获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务。
具体的,区块链节点在将交易信息打包成初始区块后,可以创建用于奖励区块生成节点的区块内部交易,该区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约可以用于执行扩展业务任务。区块内部交易是由区块生成节点创建的一笔特殊交易,也可以称为创币交易或者coinbase交易,该区块内部交易的输出可以指向区块生成节点对应的账号地址,且不需要消耗UTXO。
应当理解,区块内部交易在区块链网络中对应一个系统合约,即通过该区块内部交易可以调用系统合约,并执行系统合约中的业务逻辑,实现系统合约中所包含的扩展业务任务和用于奖励区块生成节点的奖励任务。因此,在请求节点(可以是指终端设备、服务器或客户端等)向区块链注册任务智能合约时,需要将任务智能合约中的扩展业务任务添加至区块内部交易对应的系统合约中,添加扩展业务任务后的系统合约才能执行扩展业务任务。区块链节点获取请求节点上传的任务智能合约,根据任务智能合约获取扩展业务任务,从区块链网络中获取区块内部交易对应的初始区块合约,将扩展业务任务对应的业务逻辑添加至初始系统合约,将包含扩展业务任务的初始系统合约确定为系统合约。初始系统合约仅用于实现奖励区块生成节点的奖励任务,系统合约由于添加了扩展业务任务,因此除了用于实现奖励区块生成节点的奖励任务之外,还可以用于执行扩展业务任务。在得到系统合约之后,区块链网络中后续生成的区块中的区块内部交易均可以用于触发系统合约实现扩展业务功能,例如,在生成区块高度为100的区块时,在初始系统合约中添加了扩展业务功能,那么在区块高度大于100区块中,每个区块内部交易均可以调用系统合约执行扩展业务任务。
其中,任务智能合约可以由请求节点随交易数据上传至区块链网络,区块链网络中的区块链节点对携带任务智能合约的交易数据进行验证,验证通过后,可以将携带任务智能合约的交易数据打包成区块,并在区块共识通过后进行正式上链,此时表明任务智能合约在区块链网络中发布成功。区块链节点可以从任务智能合约中获取扩展业务任务对应的业务逻辑,将业务逻辑添加至区块内部交易对应的初始系统合约中,将添加扩展业务任务后的初始系统合约确定为系统合约,在区块链网络中对系统合约进行广播,该系统合约通过共识后,表明扩展业务任务在区块内部交易对应的系统合约中添加成功,即扩展业务任务在区块链网络中注册成功。其中,任务智能合约是指开发人员使用智能合约高级语言所编写的计算机程序代码,通过编译器可以将高级语言编写的任务智能合约编译成区块链节点的以太坊虚拟机中的字节码,以太坊虚拟机可以用于解释执行任务智能合约中的字节码。智能合约高级语言包括但不限于Solidity(一种智能合约编程语言)、Serpent(一种智能合约编程语言)、LLL(一种智能合约编程语言),如开发人员可以使用Solidity编写任务智能合约,并使用编译器将Solidity编写的任务智能合约编译成以太坊虚拟机字节码,进而将编译成以太坊虚拟机字节码随交易数据提交至区块链网络并进行上链。在智能合约中可以包括多种合约方法,如设置授权资产分配规则的方法、设置版权人账户的方法、设置使用对象账户的方法等。
扩展业务任务可以包括但不限于:定时任务、节点委员会切换任务(即区块链网络中的共识节点列表切换任务)。当扩展业务任务包括定时任务时,请求节点可以将开发人员编写的任务智能合约随交易数据上传至区块链网络,区块链节点可以从任务智能合约中确定定时任务,获取区块内部交易对应的初始智能合约,并获取定时任务对应的任务触发条件和任务执行逻辑,将任务触发条件和任务执行逻辑添加至初始系统合约,将包含定时任务的初始系统合约确定为上述系统合约。换言之,任务智能合约由开发人员进行编写,在经过多方共同协定、各自签署后可以随请求节点发起的交易提交至区块链网络,区块链网络中的区块链节点可以将携带任务智能合约的交易打包成区块,基于区块链网络中点对点的传输方式,对包含任务智能合约的区块进行网络传播,以使区块链网络中的其余节点对包含任务智能合约的区块进行共识验证,共识通过后的区块可以进行正式上链,区块共识通过即表明任务智能合约在区块链网络中发布成功。该任务智能合约中包括定时任务,即通过该任务智能合约向区块链网络成功注册定时任务。区块链节点可以获取任务智能合约所注册的定时任务的任务触发条件以及任务执行逻辑,即一段用于实现定时任务的计算机程序代码;区块链节点将定时任务的任务触发条件和任务执行逻辑添加至区块内部交易的初始系统合约,得到系统合约。区块链网络中的节点在生成区块时,均可以创建一个区块内部交易,在得到系统合约后所生成的所有区块中,区块内部交易均可以触发系统合约执行定时任务。
请一并参见图5,是本申请实施例提供的一种扩展业务任务添加示意图。以扩展业务任务为定时任务为例,如图5所示,请求方(即请求节点)可以通过发起交易来向区块链网络上传任务智能合约,即请求方向区块链网络上传携带任务智能合约的交易数据,区块链网络中的节点1在接收到请求方所上传的携带任务智能合约的交易数据后,可以对携带任务智能合约的交易数据进行验签,可以将验签通过的携带任务智能合约交易数据打包成区块50a,将区块50a在区块链网络中进行广播,以使区块链网络中的其余节点对区块50a进行共识验证,区块50a通过共识后即可进行正式上链。在区块50a正式写入区块链后,节点1可以根据任务智能合约获取定时任务50c,即获取定时任务50c对应的计算机程序代码;从区块链网络中获取区块内部交易对应的初始系统合约50d,将定时任务50c对应的计算机程序代码添加至初始系统合约50d,得到包含定时任务50c的系统合约50e。
可选的,当扩展业务任务包括节点委员会切换任务时,请求节点(该请求节点可以为区块链网络中的共识节点)可以向区块链网络注册列表切换周期信息。列表切换周期信息提交至区块链网络并注册成功后,区块链网络中的任一区块链节点均可以将列表切换周期信息添加至区块内部交易对应的初始系统合约,得到包含节点委员会切换任务的系统合约,即区块链网络中的任一区块链节点均可以获取针对节点委员会的列表切换触发条件,如列表切换触发条件为目标区块高度,或者时间节点信息等。换言之,在当前区块的区块高度满足节点委员会的切换触发条件时,通过区块内部交易可以调用系统合约,并通过系统合约切换区块链网络中的节点委员会。需要说明的是,在扩展业务任务为节点委员会切换任务时,需要区块链节点在本地创建两个存储区,一个存储区用于存储区块链网络中处于有效工作状态的有效节点委员会列表,另一个存储区用于存储变更后的临时节点委员会列表,节点委员会切换任务的执行过程即为有效节点委员会切换为临时委员会列表的过程。
可选的,在系统合约中包含了定时任务后,还可以在系统合约中添加其余的扩展业务任务,如节点委员会切换任务等。换言之,在区块内部交易对应的系统合约中,可以同时添加不同的扩展业务任务,也可以在不同时间添加不同的扩展业务任务,即区块内部交易对应的系统合约中可以添加多个扩展业务任务。
步骤S103,将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块。
具体的,区块链节点可以将创建的区块内部交易添加至定序列表的末尾位置,将包含区块内部交易的初始区块确定为目标区块,即将区块内部交易作为初始区块的最后一笔特殊交易添加至定序列表,得到目标区块。其中,区块链节点生成目标区块的过程可以包括:区块链节点可以构建一个新区块(此时的新区块为空区块,即未存储数据的区块),将通过有效性验证的交易信息按照优先级依次打包进该新区块,以得到上述初始区块;然后可以将区块内部交易打包进初始区块,并创建初始区块的区块头,区块头可以包括版本号、前一区块哈希值(可以是前一区块的区块头哈希值,该前一区块哈希值用于回溯前一区块并保证前一区块不被篡改)、默克尔(Merkle)树根、生成时间戳、难度目标值以及随机数等信息。将包含区块头和区块内部交易的初始区块确定为目标区块。其中,默克尔树可以理解为一个二叉树,对交易信息中的每笔交易数据进行两次哈希运算(如SHA256算法)得到相应的哈希值,然后对哈希值两两组队再进行两次哈希运算,若交易数量为奇数,则对最后一个哈希值进行复制然后再做哈希运算,依次类推,可以得到一个默克尔树根,将默克尔树根存入区块头中。
在区块链节点生成目标区块后,可以将目标区块在区块链网络中进行广播,以使区块链网络中除区块生成节点之外的其余节点接收该目标区块,区块链网络中的共识节点可以对目标区块进行共识验证。区块链网络中的共识节点在接收到目标区块后,可以对目标区块进行以下验证:验证目标区块的区块头中的随机数是否符合目标难度值;检查生成时间戳是否小于时间阈值(如当前系统时间2小时);检查默克尔树根是否正确,检查区块容量是否小于区块容量的上限;验证区块的最后一笔交易是否为区块内部交易;验证目标区块中是否只有一笔区块内部交易;验证区块内部交易是否为区块生成节点所创建的;验证目标区块中所包含的每笔交易等。当检测到目标区块的区块头中的随机数满足目标难度值,且生成时间戳大于时间阈值,且目标区块中的默克尔树根正确,且目标区块的区块容量小于区块链网络中区块容量的上限,且目标区块中的最后一笔交易为区块内部交易,且区块内部交易为区块生成节点所创建并添加的,且目标区块中的每笔交易数据均通过验证,则可以确定目标区块通过验证,即上述每一项均满足条件时,可以确定目标区块通过验证;当上述任一项不满足时,可以确定目标区块未通过验证;其余节点在得到目标区块的验证结果后,可以对验证结果进行广播。区块链节点在接收到其余节点的验证结果后,可以统计目标区块对应的赞成投票数(即针对目标区块通过验证的节点数量),若赞成投票数达到节点数量阈值(如区块链网络中所有共识节点数量的2/3),则可以确定目标区块通过共识,将通过共识的目标区块进行正式上链,即将通过共识的目标区块添加至区块链。
其中,区块链网络中的节点可以基于共识机制对目标区块进行验证,共识机制包括但不限于:工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、工作量证明与权益证明混合(PoW+PoS)、股份授权证明(Delegated Proof of Stake,DPoS)、实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)、瑞波共识协议(RippleConsensus Protocol,RCP)。
请一并参见图6,是本申请实施例提供的一种目标区块的验证过程示意图。如图6所示,区块链节点60b(区块链节点60b可以为区块链网络中的共识节点)在接收到客户端60a上传至区块链网络的交易数据后,区块链节点60b可以将接收到的交易数据生成目标区块60c,并将目标区块60c广播给区块链网络中的其余共识节点,如区块链网络中有n+1(n为大于0的正整数)个共识节点,区块链节点60b为区块链网络中的任意一个共识节点,区块链节点60b可以将目标区块广播给其余n个共识节点,其余n个共识节点均可以对目标区块进行验证,得到对目标区块的验证结果,其余n个共识节点也可以将验证结果进行广播,每个共识节点对目标区块的验证过程可以参见前述描述,这里不再进行赘述。换言之,区块链节点60b可以获取其余n个共识节分别对应的验证结果,即获取n个验证结果。区块链节点60b可以根据自身的验证结果以及所获取的n个验证结果,统计针对节点更新请求的投票值,统计得到的赞成投票值为:数值1,若数值1达到数量阈值(如数量阈值为2/3(n+1)等),可以将目标区块作为第N+i个区块添加至区块链中,N+i可以表示为目标区块在区块链中的区块高度。
步骤S104,当执行目标区块中的区块内部交易时,调用系统合约执行扩展业务任务。
具体的,在生成目标区块后,区块链节点可以根据目标区块中针对交易信息和区块内部交易的定序列表,根据定序列表中交易数据的排列顺序,执行每笔交易数据,得到每笔交易数据分别对应的执行结果,并将执行结果在区块链网络中进行广播。当执行目标区块中的区块内部交易时,可以通过区块内部交易调用系统合约,通过系统合约执行扩展业务任务,得到区块内部交易对应的执行结果,该区块内部交易对应的执行结果中包括区块生成节点对应的交易手续费用和扩展业务任务对应的执行结果。
可选的,当扩展业务任务为定时任务,且定时任务的任务触发条件为目标区块高度时,在执行目标区块中的区块内部交易的过程中,可以获取目标区块的区块高度,若目标区块的区块高度与目标区块高度相同,则通过区块内部交易调用系统合约,执行系统合约中的奖励业务和定时任务,得到区块内部交易对应的执行结果,区块内部交易对应的执行结果包括奖励给区块生成节点的手续费用和定时任务对应的结果。其中,定时任务的任务触发条件可以包括时间间隔、固定时间节点、区块间隔数量以及目标区块高度中的至少一种,定时任务一旦添加至区块内部交易对应的系统合约中,区块链网络中后续所生成的区块中均可以包括区块内部交易,且每个区块中的区块内部交易均可以用于触发系统合约执行定时任务。例如,若定时任务为每10个区块触发一次定时任务,且定时任务的上一次触发节点为区块高度为90的区块,则可以确定定时任务的下一次触发节点为区块高度100的区块;区块链节点在生成目标区块后,可以获取该目标区块对应的区块高度,当目标区块的区块高度小于100时,在执行目标区块中的区块内部交易的过程中,调用系统合约不会执行上述定时任务(未达到定时任务的任务触发条件);当目标区块的区块高度等于100时,在执行目标区块中的区块内部交易的过程中,调用系统合约可以执行上述定时任务(达到定时任务的任务触发条件)。
当扩展业务任务为节点委员会切换任务时,若列表切换周期信息包括列表切换周期区块数量和列表切换区块高度,则区块链节点可以获取目标区块对应的区块高度,当目标区块对应的区块高度与列表切换区块高度相同时,在执行区块内部交易的过程中,可以调用系统合约执行节点委员会切换任务。节点委员会切换任务一旦添加至区块内部交易对应的系统合约中,区块链网络中后续所生成的区块中均可以包括区块内部交易,且每个区块中的区块内部交易均可以用于触发系统合约执行节点委员会切换任务。例如,若列表切换周期信息中的列表切换周期区块数量为20,即每20个区块切换一次节点委员会列表,当前列表切换周期的列表切换区块高度为90,则可以确定下个列表切换周期的列表切换区块高度为110;区块链节点在生成目标区块后,可以获取目标区块对应的区块高度,当目标区块的区块高度小于100时,区块链网络中的有效节点委员会列表保持不变;当目标区块的区块高度等于100时,在执行区块内部交易的过程中,调用系统合约执行节点委员会切换任务,即将有效节点委员会切换为临时节点委员会列表,得到区块内部交易对应的执行结果,即节点委员会切换任务对应的切换结果和针对区块生成节点的奖励结果。
本申请实施例可以通过接收客户端发送的交易信息,根据交易信息生成初始区块,获取该初始区块中针对上述交易信息的定序列表,进而获取用于奖励区块生成节点的区块内部交易,该区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,该系统合约用于执行所述扩展业务任务,将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块,当执行目标区块中的区块内部交易时,调用系统合约执行上述扩展业务任务。可见,可以将提交至区块链网络的扩展业务任务添加在区块内部交易对应的系统合约中,在区块生成节点将交易数据打包成区块时,可以将区块内部交易添加在区块的末尾位置,通过区块内部交易可以触发系统合约执行扩展业务任务,可以扩展区块交易数据的功能,进而提高区块事务的完整性。
请参见图7,是本申请实施例提供的一种区块生成装置的结构示意图。该区块生成装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块生成装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该区块生成装置1可以包括:生成模块11,获取模块12,确定模块13,执行模块14;
生成模块11,用于接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;交易信息包括由客户端根据用户的交易操作而生成的交易数据,定序列表包括具有排列顺序的交易数据;
获取模块12,用于获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务;
确定模块13,用于将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块;
执行模块14,用于当执行目标区块中的区块内部交易时,调用系统合约执行扩展业务任务。
其中,生成模块11,获取模块12,确定模块13,执行模块14的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
请一并参见图7,该区块生成装置1还可以包括:交易删除模块15,区块广播模块16,扩展任务获取模块17,扩展任务添加模块18;
交易删除模块15,用于当属性信息不满足区块链网络中的交易合法条件时,确定交易信息未通过区块链网络的有效性验证,删除交易信息,向交易信息对应的客户端返回交易警告提示信息;
区块广播模块16,用于将目标区块在区块链网络中进行广播,以使区块链网络中除区块生成节点之外的其余节点接收目标区块,对目标区块进行共识验证;共识验证包括区块内部交易的位置验证、数量验证、提交节点验证以及交易数据合法性验证;
扩展任务获取模块17,用于获取请求节点上传的任务智能合约,根据任务智能合约获取扩展业务任务;
扩展任务添加模块18,用于获取区块内部交易对应的初始系统合约,将扩展业务任务对应的业务逻辑添加至初始系统合约,得到系统合约。
其中,交易删除模块15的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,区块广播模块16的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,扩展任务获取模块17,扩展任务添加模块18的具体功能实现方式可以参见上述图3所对应实施例中的步骤S102,这里不再进行赘述。
请一并参见图7,生成模块11可以包括:属性信息获取单元111,验证单元112,解密单元113,哈希运算单元114,比较单元115;
属性信息获取单元111,用于接收客户端发送的交易信息,获取交易信息对应的属性信息;属性信息包括容量信息、输入信息以及输出信息;
验证单元112,用于当属性信息满足区块链网络中的交易合法条件时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中;
解密单元113,用于接收客户端发送的交易信息,获取交易信息对应的数字签名,根据客户端传输至区块链网络的公钥,对数字签名进行解密,得到第一摘要信息;
哈希运算单元114,用于根据哈希算法对交易信息进行哈希运算,得到交易信息对应的第二摘要信息;
比较单元115,用于当第一摘要信息和第二摘要信息相同时,确定交易信息通过区块链网络的有效性验证,将交易信息写入初始区块中。
其中,属性信息获取单元111,验证单元112,解密单元113,哈希运算单元114,比较单元115的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,这里不再进行赘述。
请一并参见图7,上述交易信息包括至少两笔交易数据时,验证单元112可以包括:条件判断子单元1121,排序子单元1122;
条件判断子单元1121,用于当属性信息满足区块链网络中的交易合法条件时,确定交易信息通过区块链网络的有效性验证;
排序子单元1122,用于获取至少两笔交易数据分别对应的优先级,将至少两笔交易数据按照优先级的排序顺序写入初始区块中。
其中,条件判断子单元1121,排序子单元1122的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,这里不再进行赘述。
请一并参见图7,当扩展业务任务包括定时任务时,扩展任务添加模块18可以包括:定时任务获取单元181,定时任务添加单元182;
定时任务获取单元181,用于获取区块内部交易对应的初始系统合约,获取定时任务对应的任务触发条件和任务执行逻辑;
定时任务添加单元182,将任务触发条件和任务执行逻辑添加至初始系统合约,得到系统合约。
其中,定时任务获取单元181,定时任务添加单元182的具体功能实现方式可以参见上述图3所对应实施例中的步骤S102,这里不再进行赘述。
请一并参见图7,当任务触发条件包括目标区块高度时,执行模块14可以包括:区块高度获取单元141,合约调用单元142,定时任务执行单元143;
区块高度获取单元141,用于当执行目标区块中的区块内部交易时,获取目标区块的区块高度;
合约调用单元142,用于若目标区块的区块高度与目标区块高度相同,则通过区块内部交易调用系统合约;
定时任务执行单元143,用于执行系统合约中的奖励业务和定时任务,得到区块内部交易的执行结果。
其中,区块高度获取单元141,合约调用单元142,定时任务执行单元143的具体功能实现方式可以参见上述图3所对应实施例中的步骤S104,这里不再进行赘述。
本申请实施例可以通过接收客户端发送的交易信息,根据交易信息生成初始区块,获取该初始区块中针对上述交易信息的定序列表,进而获取用于奖励区块生成节点的区块内部交易,该区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,该系统合约用于执行所述扩展业务任务,将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块,当执行目标区块中的区块内部交易时,调用系统合约执行上述扩展业务任务。可见,可以将提交至区块链网络的扩展业务任务添加在区块内部交易对应的系统合约中,在区块生成节点将交易数据打包成区块时,可以将区块内部交易添加在区块的末尾位置,通过区块内部交易可以触发系统合约执行扩展业务任务,可以扩展区块交易数据的功能,进而提高区块事务的完整性。
请参见图8,是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图8所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
接收交易信息,根据交易信息生成初始区块,获取初始区块中针对交易信息的定序列表;交易信息包括由客户端根据用户的交易操作而生成的交易数据,定序列表包括具有排列顺序的交易数据;
获取用于奖励区块生成节点的区块内部交易;区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,系统合约用于执行扩展业务任务;
将区块内部交易添加至定序列表中的末尾位置,将包含区块内部交易的初始区块确定为目标区块;
当执行目标区块中的区块内部交易时,调用系统合约执行上述扩展业务任务。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应实施例中对区块生成方法的描述,也可执行前文图7所对应实施例中对区块生成装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的区块生成装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对区块生成方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储存储器(Read-Only Memory,ROM)或随机存储存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种区块生成方法,其特征在于,包括:
接收交易信息,根据所述交易信息生成初始区块,获取所述初始区块中针对所述交易信息的定序列表;所述交易信息包括由客户端根据用户的交易操作而生成的交易数据,所述定序列表包括具有排列顺序的所述交易数据;
获取用于奖励区块生成节点的区块内部交易;所述区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,所述系统合约用于执行所述扩展业务任务;
将所述区块内部交易添加至所述定序列表中的末尾位置,将包含所述区块内部交易的初始区块确定为目标区块;
当执行所述目标区块中的所述区块内部交易时,调用所述系统合约执行所述扩展业务任务。
2.根据权利要求1所述的方法,其特征在于,所述接收交易信息,根据所述交易信息生成初始区块,包括:
接收所述客户端发送的交易信息,获取所述交易信息对应的属性信息;所述属性信息包括容量信息、输入信息以及输出信息;
当所述属性信息满足所述区块链网络中的交易合法条件时,确定所述交易信息通过所述区块链网络的有效性验证,将所述交易信息写入所述初始区块中。
3.根据权利要求2所述的方法,其特征在于,所述交易信息包括至少两笔交易数据;
所述当所述属性信息满足所述区块链网络中的交易合法条件时,确定所述交易信息通过所述区块链网络的有效性验证,将所述交易信息写入所述初始区块中,包括:
当所述属性信息满足所述区块链网络中的交易合法条件时,确定所述交易信息通过所述区块链网络的有效性验证;
获取所述至少两笔交易数据分别对应的优先级,将所述至少两笔交易数据按照所述优先级的排序顺序写入所述初始区块中。
4.根据权利要求1所述的方法,其特征在于,所述接收交易信息,根据所述交易信息生成初始区块,包括:
接收所述客户端发送的交易信息,获取所述交易信息对应的数字签名,根据所述客户端传输至区块链网络的公钥,对所述数字签名进行解密,得到第一摘要信息;
根据哈希算法对所述交易信息进行哈希运算,得到所述交易信息对应的第二摘要信息;
当所述第一摘要信息和所述第二摘要信息相同时,确定所述交易信息通过所述区块链网络的有效性验证,将所述交易信息写入所述初始区块中。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取请求节点上传的任务智能合约,根据所述任务智能合约获取所述扩展业务任务;
获取所述区块内部交易对应的初始系统合约,将所述扩展业务任务对应的业务逻辑添加至所述初始系统合约,得到所述系统合约。
6.根据权利要求5所述的方法,其特征在于,所述扩展业务任务包括定时任务;
所述获取所述区块内部交易对应的初始系统合约,将所述扩展业务任务对应的业务逻辑添加至所述初始系统合约,得到所述系统合约,包括:
获取所述区块内部交易对应的初始系统合约,获取所述定时任务对应的任务触发条件和任务执行逻辑;
将所述任务触发条件和所述任务执行逻辑添加至所述初始系统合约,得到所述系统合约。
7.根据权利要求6所述的方法,其特征在于,所述任务触发条件包括目标区块高度;
所述当执行所述目标区块中的所述区块内部交易时,调用所述系统合约执行所述扩展业务任务,包括:
当执行所述目标区块中的所述区块内部交易时,获取所述目标区块的区块高度;
若所述目标区块的区块高度与所述目标区块高度相同,则通过所述区块内部交易调用所述系统合约;
执行所述系统合约中的奖励业务和所述定时任务,得到所述区块内部交易的执行结果。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述目标区块在区块链网络中进行广播,以使所述区块链网络中除所述区块生成节点之外的其余节点接收所述目标区块,对所述目标区块进行共识验证;所述共识验证包括所述区块内部交易的位置验证、数量验证、提交节点验证以及交易数据合法性验证。
9.根据权利要求2所述的方法,其特征在于,还包括:
当所述属性信息不满足所述区块链网络中的交易合法条件时,确定所述交易信息未通过所述区块链网络的有效性验证,删除所述交易信息,向所述交易信息对应的客户端返回交易警告提示信息。
10.一种区块生成装置,其特征在于,包括:
生成模块,用于接收交易信息,根据所述交易信息生成初始区块,获取所述初始区块中针对所述交易信息的定序列表;所述交易信息包括由客户端根据用户的交易操作而生成的交易数据,所述定序列表包括具有排列顺序的所述交易数据;
获取模块,用于获取用于奖励区块生成节点的区块内部交易;所述区块内部交易对应的系统合约中包括区块链网络中的扩展业务任务,所述系统合约用于执行所述扩展业务任务;
确定模块,用于将所述区块内部交易添加至所述定序列表中的末尾位置,将包含所述区块内部交易的初始区块确定为目标区块;
执行模块,用于当执行所述目标区块中的所述区块内部交易时,调用所述系统合约执行所述扩展业务任务。
11.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010225104.8A CN111445333B (zh) | 2020-03-26 | 2020-03-26 | 区块生成方法、装置、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010225104.8A CN111445333B (zh) | 2020-03-26 | 2020-03-26 | 区块生成方法、装置、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111445333A CN111445333A (zh) | 2020-07-24 |
CN111445333B true CN111445333B (zh) | 2023-12-08 |
Family
ID=71655668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010225104.8A Active CN111445333B (zh) | 2020-03-26 | 2020-03-26 | 区块生成方法、装置、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111445333B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112150146B (zh) * | 2020-09-22 | 2023-11-03 | 京东科技控股股份有限公司 | 区块链的区块处理方法、装置、设备及存储介质 |
CN112734420B (zh) * | 2020-12-11 | 2023-07-21 | 广西大学 | 基于大数据平台的token管理方法、装置、服务器及存储介质 |
CN112488688B (zh) * | 2020-12-17 | 2024-03-26 | 广州智链未来科技有限公司 | 基于区块链的交易处理方法、装置、设备及存储介质 |
CN112581129A (zh) * | 2020-12-18 | 2021-03-30 | 上海浦东发展银行股份有限公司 | 区块链交易数据治理方法及装置、计算机设备及存储介质 |
CN112818014B (zh) * | 2020-12-31 | 2022-07-26 | 杭州趣链科技有限公司 | 区块链数据解析方法、装置和电子设备 |
CN114124497A (zh) * | 2021-11-12 | 2022-03-01 | 中国银行股份有限公司 | 一种数据校验系统和方法 |
CN114884734A (zh) * | 2022-05-10 | 2022-08-09 | 中山市当下科技有限公司 | 一种区块链一层数据结构的校验方法 |
CN114723564B (zh) * | 2022-06-01 | 2022-10-28 | 杭州天谷信息科技有限公司 | 一种区块链生成方法以及区块链结构 |
CN117453662A (zh) * | 2022-07-19 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备和计算机可读存储介质 |
CN115293769B (zh) * | 2022-10-08 | 2022-12-27 | 中铱数字科技有限公司 | 一种基于区块链的动态管理和校验节点系统 |
CN116228417B (zh) * | 2023-01-13 | 2023-12-05 | 北京淡远科技有限公司 | 基于区块链的物联网数据交易方法、装置、系统和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008160712A (ja) * | 2006-12-26 | 2008-07-10 | Fujitsu Fsas Inc | 通信端末装置及び通信制御方法 |
CN108763934A (zh) * | 2018-05-30 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质、服务器 |
CN110046992A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的交易哈希获取方法及系统 |
US10373129B1 (en) * | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
CN110555684A (zh) * | 2019-08-26 | 2019-12-10 | 北京米弘科技有限公司 | 基于区块链系统的账户及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11526938B2 (en) * | 2016-03-31 | 2022-12-13 | Refinitiv Us Organization Llc | Systems and methods for providing financial data to financial instruments in a distributed ledger system |
-
2020
- 2020-03-26 CN CN202010225104.8A patent/CN111445333B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008160712A (ja) * | 2006-12-26 | 2008-07-10 | Fujitsu Fsas Inc | 通信端末装置及び通信制御方法 |
US10373129B1 (en) * | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
CN108763934A (zh) * | 2018-05-30 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质、服务器 |
CN110046992A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的交易哈希获取方法及系统 |
CN110555684A (zh) * | 2019-08-26 | 2019-12-10 | 北京米弘科技有限公司 | 基于区块链系统的账户及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111445333A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111445333B (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
CN111737724B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
CN109964446B (zh) | 一种基于投票的共识方法 | |
Lashkari et al. | A comprehensive review of blockchain consensus mechanisms | |
CN108833081B (zh) | 一种基于区块链的设备组网认证方法 | |
CN110442652B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN111382456B (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
CN115210741B (zh) | 部分有序的区块链 | |
CN111027028A (zh) | 基于智能合约的版权数据处理方法以及装置 | |
CN111427957A (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN111681003A (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
KR102537774B1 (ko) | 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들 | |
CN110968644A (zh) | 一种数据处理方法以及设备 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN111274597A (zh) | 一种数据处理方法以及设备 | |
CN111222885B (zh) | 数据处理请求背书方法、装置、计算机设备及存储介质 | |
US20220114276A1 (en) | Controlling a data network with respect to a use of a distributed database | |
CN111008900A (zh) | 基于智能合约的数据分配方法以及装置 | |
Zhang et al. | Cross-Chain Interoperability and Collaboration for Keyword-Based Embedded Smart Contracts in the Internet of Things | |
CN112104749B (zh) | 一种基于区块链的条码标签生命周期管理方法和装置 | |
CN117473557B (zh) | 一种可信设置方法及装置 | |
George | Introducing blockchain applications | |
CN117455496A (zh) | 资源包的处理方法、装置、产品、设备和介质 | |
CN117437052A (zh) | 交易处理方法、装置、计算机、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026397 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |