CN116308344A - 一种基于区块链的交易数据认证共识方法和系统 - Google Patents
一种基于区块链的交易数据认证共识方法和系统 Download PDFInfo
- Publication number
- CN116308344A CN116308344A CN202310111352.3A CN202310111352A CN116308344A CN 116308344 A CN116308344 A CN 116308344A CN 202310111352 A CN202310111352 A CN 202310111352A CN 116308344 A CN116308344 A CN 116308344A
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction
- hash value
- blockchain
- master node
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 239000003999 initiator Substances 0.000 claims abstract description 257
- 230000004044 response Effects 0.000 claims abstract description 119
- 230000002159 abnormal effect Effects 0.000 claims abstract description 22
- 238000005096 rolling process Methods 0.000 claims abstract description 20
- 238000001914 filtration Methods 0.000 claims description 71
- 238000013507 mapping Methods 0.000 claims description 13
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 230000005856 abnormality Effects 0.000 abstract description 5
- 238000003860 storage Methods 0.000 description 33
- 238000007726 management method Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 14
- 230000000977 initiatory effect Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009776 industrial production Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 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
- 235000021018 plums Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本方案涉及的一种基于区块链的交易数据认证共识方法和系统,主节点向共识节点发送交易数据的属性参数,主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常交易发起方事务区块链在主节点中的固定合约,主节点向共识节点发送共识请求,包括交易发起方事务区块链的主链;主节点接收共识节点基于共识请求对交易发起方事务区块链在共识节点中的非固定合约回滚异常后发送的共识响应请求,共识响应请求包括主链;主节点响应于共识响应请求,对交易发起方事务区块链在主节点中的固定合约执行回滚异常操作。该方案中主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
Description
技术领域
本发明涉及区块链,具体涉及一种基于区块链的交易数据认证共识方法和系统
背景技术
区块链是去中心化的数据库,核心是分布式账本,最大特点是去中心化,它提出一种解决拜占庭将军问题的全新思路,能够实现数据一致存储、无法篡改、无法抵赖的技术体系。使用现代密码学技术ECC(椭圆加密算法)作为加密算法,在没有正确获得密钥的前提下,对加密算法的破解尝试均会因为计算量过大导致实施时间过长而失去破解行为的价值,保障区块链应用的安全性。
目前,区块链上的每个节点都要处理所有发送至区块链上的交易,也就是说,区块链上的每个节点都执行相同的程序,这导致整个区块链的性能只相当于单台电脑的计算能力,进而导致区块链的TPS(Transaction Per Second,每秒钟系统能够处理的交易或事务的数量)较低,限制了区块链的应用范围。
由于区块链上数据存储量非常庞大,对于异构合约之间数据共识,普通数据处理系统无法管理,相关技术中使用TPS(Transaction Processing Systems)事务处理系统分析、处理区域链数据,但处理效率不高,因此,如何帮助区块链上的大量数据进行处理分析,提前做出预判,减少链上无用信息,减少账本冗余成为相关领域技术 人员亟需解决的问题。
发明内容
本申请实施例提供一种基于区块链的交易数据认证共识方法,以实现异构合约之间数据共识时的一致性。本申请实施例还提供了相应的设备。
为达到上述目的,本申请的实施例采用如下技术方案:
本申请第一方面提供一种基于区块链的交易数据认证共识方法,共识对象于异构合约之间的数据共识过程,该异构合约指的可以是主节点与共识节点的结构的结构不同,例如主节点一般使用嵌入式结构,共识节点一般使用分布式结构,该方法共识对象于主节点,该方法可以包括:主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,所述固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,用于存储所述交易发起方事务区块链的索引的索引哈希值,以及共识状态哈希值;所述主节点向共识节点发送共识请求,所述共识请求中包括所述交易发起方事务区块链的主链;所述主节点接收所述共识节点基于所述共识消息对所述交易发起方事务区块链在所述共识节点中的非固定合约回滚异常后发送的共识响应请求,所述共识响应请求包括所述主链;所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作。
上述第一方面提供的技术方案中,用户可以通过共识对象执行交易发起方事务区块链的插入、上链、过滤和查询等操作,该共识对象例如可以是交易订单、工业生产和即时共识对象等。以交易订单为例,交易发起方事务区块链可以是一条交易对象记录。固定合约指的是交易发起方事务区块链在主节点中的存储格式。主链通常用于唯一标识一个数据对象,所以可以通主链实现数据对象的查找。第一哈希值的属性可以是交易发起用户、联系方式、交易金额、交易币种和交易类型等信息。共识状态哈希值用来指示第一哈希值的信息是否已共识完成、是否需要共识,是否正在共识等信息。该固定合约中还可以包括第一存储哈希值中的哪些信息被回滚异常的指示哈希值,当然还可以包括过滤指示哈希值,该过滤指示哈希值中的指示信息用来指示是过滤操作还是非过滤操作。该存储格式与共识对象的版本相对应。例如:共识对象的版本是1.1.0时,交易订单的固定合约可以包括交易发起用户、联系方式和交易金额这三个哈希值的信息,当共识对象版本是1.2.0时,交易订单的固定合约可以包括交易发起用户、联系方式、交易金额、交易币种和交易类型这五个哈希值的信息。本申请中,通过存储格式存储的数据对象有不同的索引,当存储格式中某个哈希值中的数值发生变化时,该数据对象的索引也要随之变化。该索引只有共识节点才能回滚异常,主节点中的数据对象发生变化都会需要向共识节点共识该变化,由共识节点来做共识,并回滚异常索引,将回滚异常后的该数据对象的索引再共识给主节点,从而实现端交易数据共识。由该第一方面可知,交易数据认证共识系统响应于共识对象对交易发起方事务区块链的操作时,可以通过固定合约的索引哈希值和共识状态哈希值的指示功能来确保异构合约之间数据共识时的一致性。也就是说可以通过索引管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
在第一方面的一种可能的实现方式中,所述操作为插入操作,上述步骤:主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,可以包括:所述主节点响应于共识对象对交易发起方事务区块链的所述插入操作,将所述插入操作包含的所述交易发起方事务区块链的主链和属性信息分别附加到所述固定合约的主链哈希值和第一哈希值;所述主节点将所述固定合约的索引哈希值映射存储第一密钥;所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;对应地,所述共识响应请求中还包括共识私钥,上述步骤:主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作,可以包括:所述主节点将所述固定合约的索引哈希值由所述第一索引映射存储所述共识私钥,并将所述共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态。
该种可能的实现方式中,主节点不具备调整索引的功能,当是插入操作时,表示该交易发起方事务区块链刚被建立,可以用初始索引作为第一密钥,例如0作为第一密钥。若共识响应请求中共识节点返回了新的索引,则使用共识节点返回的索引替换第一密钥,也就是共识私钥替换第一密钥,并通过回滚异常共识状态哈希值来指示所述固定合约为已完成共识状态,共识请求状态值例如可以是1表示待共识,共识完成状态值例如可以是0表示已完成共识。该种可能的实现方式中,通过索引的协商以及共识状态哈希值配合数据共识的回滚异常实现端交易数据的一致性。
在第一方面的一种可能的实现方式中,所述操作为上链操作,上述步骤:所述交易数据认证共识系统响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,可以包括:所述主节点响应于共识对象对交易发起方事务区块链的上链操作,上链所述固定合约的第一哈希值;所述主节点将所述固定合约的索引哈希值映射存储第一索引;所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;对应地,所述共识响应请求中还包括共识私钥,所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作,可以包括:所述主节点将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述固定合约中的共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态。
该种可能的实现方式中,当为上链操作时,回滚异常了第一哈希值中的某个属性的值,如修改了联系方式、过滤了交易类型等都属于上链操作,这种情况下,只需要将交易发起方事务区块链当前的索引确定为第一密钥。若共识响应请求中共识节点返回了新的索引,则使用共识节点返回的索引替换第一密钥,也就是共识私钥替换第一密钥,并通过回滚异常共识状态哈希值来指示所述固定合约为已完成共识状态,从而实现端交易数据的一致性。
在第一方面的一种可能的实现方式中,所述共识响应请求中还包括所述非固定合约中第一哈希值;该方法还可以包括:所述主节点基于所述非固定合约中第一哈希值,上链所述固定合约中所述第一哈希值。
该种可能的实现方式中,若在共识过程中,交易接收侧的交易发起方事务区块链与交易请求侧的交易发起方事务区块链的索引不同,存在索引冲突时,说明交易请求侧的交易发起方事务区块链可能被共识节点其他交易数据认证共识系统回滚异常过。这种情况下,可以选择以共识节点存储的交易发起方事务区块链为准。当以共识节点存储的交易发起方事务区块链为准时,共识节点会向主节点发送共识节点中存储与主节点不同的数据,也就是数据对象在共识节点中的哈希值值,例如:主节点中存储的联系方式是13831766909,交易设备中存储的联系方式是18532002093,则该可以将18532002093携带在共识响应请求中,主节点会使用该18532002093替换13831766909,并将索引也替换为共识私钥,从而确保端交易数据的一致性。
在第一方面的一种可能的实现方式中,所述共识响应请求中还包括所述非固定合约中第一哈希值,该方法还可以包括:所述主节点根据所述固定合约中第一哈希值和所述非固定合约中第一哈希值确定所述第一哈希值的上链值;所述主节点使用所述第一哈希值的上链值回滚异常所述固定合约中第一哈希值;所述主节点向所述共识节点发送所述主链、所述第一哈希值的上链值和所述共识私钥,以用于所述共识节点使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;所述主节点接收所述共识节点发送的第三索引和所述主链;所述主节点将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
该种可能的实现方式中,若在共识过程中,交易接收侧的交易发起方事务区块链与交易请求侧的交易发起方事务区块链的索引不同,存在索引冲突时,说明交易请求侧的交易发起方事务区块链可能被共识节点其他交易数据认证共识系统回滚异常过。这种情况下,可以将交易请求侧数据返回给主节点,交易请求侧数据也就是非固定合约中第一哈希值,主节点中可以通过注册损失函数,将该冲突事件通过共识对象发送给用户,由用户来确定第一哈希值的上链值,即第一哈希值以哪个为准。也可以不发送给用户,由主节点的内部冲突解决机制来确定第一哈希值的上链值,例如:将存在冲突的端设备中存储的联系方式是13831766909和共识节点中存储的联系方式是18532002093通过损失函数发送给用户后,用户确定两个号码都不正确,正确的号码是13418475600,则将第一哈希值的上链值确定为13418475600,然后主节点使用13418475600替换13831766909,并将该13418475600发送给共识节点,共识节点使用13418475600替换13831766909,同时,共识节点要生成一个新的索引,例如:第三索引,使用第三索引来标记最新的交易发起方事务区块链的属性信息,并将该第三索引返回给主节点,主节点将共识私钥映射存储所述第三版本标识,从而确保端交易数据的一致性。
在第一方面的一种可能的实现方式中,所述操作为过滤操作,所述交易发起方事务区块链在所述主节点中的固定合约还包括过滤指示哈希值,上述步骤:主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,可以包括:所述主节点响应于共识对象对交易发起方事务区块链的过滤操作,将所述固定合约中的过滤指示哈希值映射存储第三值,以指示过滤所述交易发起方事务区块链;对应地,所述共识请求还包括过滤操作的指示,所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述交易数据认证共识系统中的所述固定合约执行回滚异常操作,可以包括:所述主节点过滤所述交易发起方事务区块链在所述主节点中的固定合约。
该种可能的实现方式中,第三值可以是0或1这种数值,也可以是true这种指示值。当是过滤操作时,主节点可以在共识节点标记好交易发起方事务区块链在主节点过滤后,从交易数据认证共识系统上过滤该交易发起方事务区块链。
在第一方面的一种可能的实现方式中,所述共识响应请求还包括所述共识节点中存储的数据对象的最大索引。所述主节点比较共识账本和所述最大索引,所述共识账本为所述主节点中数据对象的初始索引或者上一次与所述共识账本做比较的索引;当所述共识账本和所述最大索引不相等时,所述主节点向所述共识节点发送第一共识请求,所述第一共识请求中包括所述共识账本;所述主节点接收所述共识节点发送的所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引;当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,所述主节点根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;对应地,所述主节点接收所述交易接收方事务区块链;当所述主节点上的交易发起方事务区块链的主链对应的索引与所述第二版本标识不相同时,所述主节点根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;对应地,所述主节点接收所述交易接收方事务区块链和所述非固定合约中第一哈希值;所述主节点将所述共识账本调整到所述最大索引。
该种可能的实现方式中,为了确保主节点可以及时获取到共识节点中的数据对象,交易设备会在共识响应请求中携带共识节点中存储的数据对象的最大索引。这样,主节点就可以通过比较共识账本和所述最大索引来确定主节点上的数据对象与共识节点上的数据对象不一致,主节点可以向共识节点发送共识账本,由共识节点来查找位于共识账本之上的索引所对应的数据对象,然后将这些数据对象的主链以及相应的索引发送给主节点,主节点可以根据这些数据对象的主链来确定自身没有存储的数据对象,然后再将这些没有的数据对象的主链发送给共识节点,共识节点就可以向终端返回主节点所没存储的数据对象,进而实现端交易数据的一致性。同时,若主节点中的数据对象的索引与共识节点中的索引不同时,主节点也需要请求共识节点中该数据对象的最新信息,以保证每个数据对象的端交易一致性。另外,主节点还会及时将共识账本调整到最大索引,例如将共识账本由0调整到2,这样就可以避免下次共识节点发送最新的最大索引后会重复请求已存储的数据对象。
在第一方面的一种可能的实现方式中,该方法还可以包括:所述主节点向所述交易设备发送所述交易数据的属性参数,所述交易数据的属性参数用于所述共识节点确定所述交易发起方事务区块链在所述主节点中的固定合约。
该种可能的实现方式中,考虑到不同的主节点使用的共识对象版本可能不同,不同共识对象版本对应的存储格式可能不同,所以在数据共识之前。共识节点要与主节点协商,以确定主节点所使用的存储格式,这样共识节点才能保持与主节点一致的格式发送数据。
本申请第二方面提供一种基于区块链的交易数据认证共识方法,共识对象于异构合约之间的数据共识过程,该异构合约指的可以是主节点与共识节点的结构的结构不同,例如主节点一般使用嵌入式结构,共识节点一般使用分布式结构,该方法共识对象于共识节点,该方法可以包括:共识节点接收主节点发送的共识请求,所述共识请求中包括交易发起方事务区块链的主链,所述交易发起方事务区块链在所述主节点中以固定合约存储;所述共识节点基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约,所述非固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,以及用于存储所述交易发起方事务区块链的索引的索引哈希值;所述共识节点向所述交易数据认证共识系统发送共识响应请求,所述共识响应请求包括所述主链,所述共识响应请求用于所述交易数据认证共识系统对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作。
上述第二方面提供的技术方案中,共识节点中采用非固定合约存储交易发起方事务区块链,主链通常用于唯一标识一个数据对象,所以可以通主链实现数据对象的查找。第一哈希值的属性可以是交易发起用户、联系方式、交易金额、交易币种和交易类型等信息。该非固定合约中还可以包括过滤指示哈希值,该过滤指示哈希值中的指示信息用来指示是过滤操作还是非过滤操作。第一哈希值的属性可以是交易订单中的交易发起用户、联系方式、交易金额、交易币种和交易类型等信息。非固定合约指的是交易发起方事务区块链在共识节点中的存储格式,该存储格式与共识对象的版本相对应。例如:共识对象的版本是1.1.0时,交易订单的固定合约可以包括交易发起用户、联系方式和交易金额这三个哈希值的信息,当共识对象版本是1.2.0时,交易订单的固定合约可以包括交易发起用户、联系方式、座机号码、交易币种和交易类型这五个哈希值的信息。本申请中,通过存储格式存储的数据对象也有不同版本,当存储格式中某个哈希值中的数值发生变化时,该数据对象的索引都不同。该版本标识只有共识节点才能回滚异常,主节点中的数据对象发生变化都会需要向共识节点共识该变化,由交易请求侧来做共识,并回滚异常索引,将回滚异常后的该数据对象的索引再共识给主节点,从而实现端交易数据共识。由该第二方面可知,主节点和共识节点在数据对象的第一哈希值信息发生变化时,可以通过固定合约中索引哈希值和共识状态哈希值,以及非固定合约的索引哈希值的指示功能来确保异构合约之间数据共识时的一致性。也就是说可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
在第二方面的一种可能的实现方式中,所述共识请求还包括所述交易发起方事务区块链的属性信息,上述步骤:共识节点基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约,可以包括:所述共识节点基于所述共识请求,将所述交易发起方事务区块链的主链和属性信息分别附加到所述非固定合约的主链哈希值和第一哈希值;所述共识节点为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥附加到所述非固定合约的索引哈希值中。
该种可能的实现方式中,当为插入操作时,表示共识节点之前未存储交易发起方事务区块链,则将所述交易发起方事务区块链的主链和所述第一哈希值的属性的值附加到所述非固定合约中的主链哈希值和第一哈希值,并生成一个共识私钥,附加到索引哈希值中,然后通过共识响应请求向主节点发送共识私钥,以指示主节点也使用该共识私钥,就可以保证端交易数据一致性。
在第二方面的一种可能的实现方式中,所述共识请求还包括所述第一密钥和所述交易发起方事务区块链的属性信息,上述步骤:共识节点基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约,可以包括:所述共识节点根据所述交易发起方事务区块链的主链确定所述非固定合约的索引哈希值中的索引;当所述第一密钥与所述非固定合约的版本标识哈希值中的索引相同时,则所述共识节点将所述交易发起方事务区块链的属性信息上链到所述非固定合约中的第一哈希值;所述共识节点为所述交易发起方事务区块链确定共识私钥,并将所述第二索引上链到所述非固定合约的索引哈希值中。
该种可能的实现方式中,当为上链操作时,需要通过索引的比对来检测索引冲突,当不存在索引冲突时,共识节点只需要上链相应的哈希值,并生成一个新的索引,向交易数据认证共识系统发送该新的索引,即可保证端交易数据的一致性。
在第二方面的一种可能的实现方式中,该方法还可以包括:当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,所述共识节点将所述非固定合约中第一哈希值添加到所述共识响应请求中。
该种可能的实现方式中,当存在索引冲突时,说明交易请求侧的交易发起方事务区块链可能被交易设备其他主节点回滚异常过。这种情况下,可以选择以共识节点存储的交易发起方事务区块链为准。当以共识节点存储的交易发起方事务区块链为准时,共识节点向共识响应请求中添加与主节点不同的数据,例如:主节点中存储的联系方式是13831766909,共识节点中存储的联系方式是18532002093,则该上链下信息可以为18532002093,主节点会使用该18532002093替换13831766909,并将索引也替换为共识私钥,从而确保端交易数据的一致性。
在第二方面的一种可能的实现方式中,该方法还可以包括:当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,所述共识节点将所述非固定合约中第一哈希值添加到所述共识响应请求中;所述共识节点接收所述主节点发送的所述交易发起方事务区块链的主链、所述第一哈希值的上链值和所述共识私钥;所述共识节点确定所述共识私钥与所述非固定合约的索引哈希值中的索引相同,则使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;所述共识节点为所述交易发起方事务区块链确定第三索引,所述第三索引与所述第一密钥和所述共识私钥不同;所述共识节点向所述主节点发送所述第三索引和所述交易发起方事务区块链的主链,以用于所述主节点将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
该种可能的实现方式中,当存在索引冲突时,说明交易请求侧的交易发起方事务区块链可能被交易设备其他主节点回滚异常过。这种情况下,可以将交易请求侧数据,也就是非固定合约中第一哈希值返回给主节点,主节点中可以通过注册损失函数,将该冲突事件通过共识对象发送给用户,由用户来确定第一哈希值的上链值,也可以不发送给用户,由主节点的内部冲突解决机制来确定第一哈希值的上链值,例如:将存在冲突的端设备中存储的联系方式是13831766909和共识节点中存储的联系方式是18532002093通过损失函数发送给用户后,用户确定两个号码都不正确,正确的号码是13418475600,则将第一哈希值的上链值确定为13418475600,然后主节点使用13418475600替换13831766909,并将该13418475600发送给共识节点,共识节点使用13418475600替换13831766909,同时,共识节点要生成一个新的版本标识,例如:第三索引,使用第三索引来标记最新的交易发起方事务区块链,并将该第三索引返回给主节点,主节点将共识私钥映射存储所述第三索引,从而确保端交易数据的一致性。
在第二方面的一种可能的实现方式中,所述共识请求还包括过滤操作的指示,上述步骤:共识节点根据所述共识请求回滚异常所述第一主链对应的交易发起方事务区块链的非固定合约,可以包括:所述共识节点根据所述过滤操作的指示将所述第二存储哈希值中的过滤指示哈希值回滚异常为过滤指示。
该种可能的实现方式中,所述交易发起方事务区块链在所述共识节点中的非固定合约还包括过滤指示哈希值,所述共识请求还包括过滤操作的指示,上述步骤:共识节点基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约,可以包括:所述共识节点将所述非固定合约中的过滤指示哈希值映射存储用于指示过滤所述交易发起方事务区块链的值。
在第二方面的一种可能的实现方式中,该共识响应请求中还包括所述共识节点中存储的数据对象的最大索引;所述共识节点接收所述主节点发送的第一共识请求,所述第一共识请求中包括所述主节点中维护的共识账本,所述共识账本为所述主节点中数据对象的初始索引或者所述主节点中上一次与所述共识账本做比较的索引;所述共识节点确定索引高于所述共识账本的数据对象;所述共识节点向所述主节点发送所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引;所述共识节点接收所述主节点发送的第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;或者,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;所述共识节点根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链;或者,根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链以及根据所述交易发起方事务区块链的主链确定所述交易发起方事务区块链;所述共识节点向所述主节点发送所述交易接收方事务区块链,或者,所述交易接收方事务区块链和所述非固定合约中第一哈希值。
该种可能的实现方式中,为了确保主节点可以及时获取到共识节点中的数据对象,交易设备会在共识响应中携带共识节点中存储的数据对象的最大索引,这样,主节点就可以通过比较共识账本和所述最大索引来确定主节点上的数据对象与共识节点上的数据对象不一致,主节点可以向共识节点发送共识账本,由共识节点来查找位于共识账本之上的版本标识所对应的数据对象,然后将这些数据对象的主链以及相应的索引发送给主节点,交易数据认证共识系统可以根据这些数据对象的主链来确定自身没有存储的数据对象,然后再将这些没有的数据对象的主链发送给共识节点,共识节点就可以向终端返回主节点所没存储的数据对象,进而实现端交易数据的一致性。同时,若主节点中的数据对象的索引与共识节点中的版本标识不同时,主节点也需要请求共识节点中该数据对象的最新信息,以保证每个数据对象的端交易一致性。另外,主节点还会及时将共识账本调整到最大索引,例如将共识账本由0调整到2,这样就可以避免下次共识节点发送最新的最大索引后会重复请求已存储的数据对象。
在第二方面的一种可能的实现方式中,该方法还可以包括:所述共识节点接收所述交易数据认证共识系统发送的交易数据的属性参数;所述共识节点根据所述交易数据的属性参数确定所述交易发起方事务区块链在所述主节点中的固定合约。
该种可能的实现方式中,考虑到不同的主节点使用的共识对象版本可能不同,不同共识对象版本对应的存储格式可能不同,所以在数据共识之前。共识节点要与主节点协商,以确定主节点所使用的存储格式,这样共识节点才能保持与主节点一致的格式发送数据。
本申请第三方面提供一种交易数据认证共识系统,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元。
本申请第四方面提供一种共识节点,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的模块或单元。
本申请第五方面提供一种交易数据认证共识系统,可以包括至少一个处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
本申请第六方面提供一种共识节点,可以包括至少一个处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
本申请第七方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得主节点执行上述第一方面或第一方面的任意可能的实现方式中的方法。
本申请第八方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得共识节点执行上述第一方面或第一方面的任意可能的实现方式中的方法。
本申请第九方面提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的方法。
本申请第十方面提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第二方面或者第二方面的任一种可能的实现方式所提供的方法。
本申请第十一方面提供了一种电子设备,该电子设备包括处理器,用于支持主节点实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,电子设备还可以包括存储器,存储器,用于保存主节点必要的程序指令和数据。该电子设备,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十二方面提供了一种电子设备,该电子设备包括处理器,用于支持共识节点实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,电子设备还可以包括存储器,存储器,用于保存共识节点必要的程序指令和数据。该电子设备,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十三方面提供一种数据共识系统,包括共识节点和至少一个主节点,该交易数据认证共识系统为实现上述第一方面或第一方面任意一种可能的实现方式中所述方法的主节点,所述共识节点为实现上述第二方面或第二方面任意一种可能的实现方式所述方法的共识节点。
其中,第三、第五、第七、第九和第十一方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
其中,第四、第六、第八、第十和第十二方面或者其中任一种可能实现方式所带来的技术效果可参见第二方面或第二方面不同可能实现方式所带来的技术效果,此处不再赘述。
本申请实施例提供的方案,主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
本方案涉及的一种基于区块链的交易数据认证共识方法和系统,主节点向共识节点发送交易数据的属性参数,主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常交易发起方事务区块链在主节点中的固定合约,主节点向共识节点发送共识请求,包括交易发起方事务区块链的主链;主节点接收共识节点基于共识请求对交易发起方事务区块链在共识节点中的非固定合约回滚异常后发送的共识响应请求,共识响应请求包括主链;主节点响应于共识响应请求,对交易发起方事务区块链在主节点中的固定合约执行回滚异常操作。该方案中主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
附图说明
图1是本申请实施例提供的基于区块链的交易数据认证共识系统的一实施例示意图;
图2是本申请实施例提供的基于区块链的交易数据认证共识系统的另一实施例示意图;
图3是本申请实施例提供的基于区块链的交易数据认证共识方法的一实施例示意图;
图4是本申请实施例提供的基于区块链的交易数据认证共识方法的另一实施例示意图;
图5是本申请实施例提供的基于区块链的交易数据认证共识系统的一软件架构示意图;
图6是本申请实施例提供的主节点的一实施例示意图;
图7是本申请实施例提供的共识节点的一实施例示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种基于区块链的交易数据认证共识方法,可以通过版本协商的方式确保异构合约之间数据共识时的一致性。本申请实施例还提供了相应的设备。以下分别进行详细说明。
图1为本申请实施例提供的数据共识系统的一实施例示意图。
如图1所示,本申请实施例提供的数据共识系统的一实施例包括主节点10A和共识节点20,主节点10A与共识节点20通过网络通信连接。主节点10A可以通过网络与共识节点20进行数据共识,主节点一般使用嵌入式结构,共识节点一般使用分布式结构,所以交易数据认证共识系统的结构与共识节点的结构是异构合约。
图1中只示出了一个主节点,实际上,异构合约共识的系统中可能涉及多个交易数据认证共识系统,如图2所示的数据共识系统的另一实施例示意图。该结构共识系统包括主节点10A、共识节点20和共识节点30,主节点10A和共识节点20与共识节点30通过网络通信连接。
本申请实施例中的共识节点可以是具有数据共识功能的资源集合,可以是一个独立的计算机设备,也可以是多个独立的计算机设备组成的集群。也可以是虚拟机((virtualmachine,VM)。
无论是有一个还是有多个主节点与共识节点进行数据共识,本申请实施例提供的数据共识的原理都是相同的。基于上述图1或图2所示的数据共识系统,下面结合图3介绍本申请实施例提供的基于区块链的交易数据认证共识方法。
如图3所示,本申请实施例提供的基于区块链的交易数据认证共识方法的一实施例可以包括:
101、主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述交易数据认证共识系统中的固定合约。
固定合约是交易发起方事务区块链在终端中的存储形态,可以认为它是一条数据记录或一个数据结构。具体地,所述固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,用于存储所述交易发起方事务区块链的索引的索引哈希值,以及共识状态哈希值。
共识对象可以是交易订单、工业生产、名单管理等共识对象。
当共识对象是交易订单时,交易发起方事务区块链可以是交易对象,第一哈希值的属性可以是交易对象的姓名、交易金额、联系方式、交易金额、交易币种和交易类型等信息。
当共识对象是工业生产时,交易发起方事务区块链可以是图片,第一哈希值的属性可以是图片的长度、宽度、颜色和属性等信息。
当共识对象是名单管理时,以管理订单用户的信息为例,交易发起方事务区块链可以是订单用户信息,第一哈希值的属性可以是订单用户交易发起用户、性别和年龄等信息。
每个数据对象都会对应一个主链,主链通常用于唯一标识一个数据对象。
对交易发起方事务区块链的操作可以包括插入操作、上链操作、过滤操作和查询操作等。其中,上链操作可以包括回滚异常和部分过滤。
下面描述固定合约的一个具体示例,以“订单用户”这个数据对象为例,该固定合约中将主链哈希值和例如用于描述交易发起方事务区块链的属性的交易发起用户、性别和年龄这些哈希值统称为第一存储哈希值,这些哈希值通常是由共识对象开发者定义的。其中,交易发起用户、性别和年龄都属于第一哈希值,或者叫属性哈希值,用于描述“订单用户”的各种属性。将索引字段、用于描述第一存储哈希值中各值变化的哈希值、共识状态哈希值和过滤指示哈希值统称为第二存储哈希值,也可以叫系统哈希值,是为了进行端交易数据共识专门设计的。第一存储哈希值和第二存储哈希值没有特别的含义,也可以不做归类处理。
其中,索引用于标识交易发起方事务区块链的变化次数,索引通常是单调递增的,索引由共识节点确定,主节点初始使用的索引可以是0,然后每次共识过程中会根据共识节点反馈的结果进行索引上链。可选地,可以通过“变化的哈希值”来描述第一存储哈希值中值发生变化的哈希值(altered_fields_map),例如,针对第一存储哈希值中的每个哈希值都用1个比特位来表示,,如果第一存储哈希值包含的各个哈希值都没变化,则可以表示为0000,如果其中年龄有变化,可以表示为0001。其中共识状态可以用0来表示已共识完成,用1来表示需要共识,用2来表示正在共识,当然这里的0、1和2所表示的共识状态只是举例说明,具体表示方式不限于0、1和2这三种,与各自所对应的共识状态的对应关系也不限于上面所描述的对应关系。过滤(deleted)指示哈希值表示是否过滤,若执行过滤操作,则该哈希值用true表示,当执行的不是过滤操作,则该哈希值用false表示。当然,也可以用0表示非过滤操作,用1表示过滤操作,此处不做限定。
102、主节点向共识节点发送共识请求,相应地,共识节点接收主节点发送的共识请求。
所述共识请求中包括所述交易发起方事务区块链的主链。
103、共识节点基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约。
共识节点会存储交易发起方事务区块链的一个副本,且共识节点使用非固定合约来存储交易发起方事务区块链。非固定合约是交易发起方事务区块链在共识节点中的存储形态,它是一条数据记录或一个数据结构。具体地,所述非固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,以及用于存储所述交易发起方事务区块链的索引的索引哈希值;
对应于上述固定合约,还是以订单用户信息为例,非固定合约可以将主链哈希值和例如用于描述交易发起方事务区块链的属性的交易发起用户、性别和年龄这些哈希值统称为第一存储哈希值。将索引哈希值和过滤指示哈希值统称为第二存储哈希值。第一存储哈希值和第二存储哈希值没有特别的含义,也可以不做归类处理。
104、共识节点向主节点发送共识响应请求,相应地,主节点接收共识节点发送的共识响应请求。
所述共识响应请求包括所述第一对象数据的主链。
105、主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作。
本申请实施例提供的方案,主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
上述步骤101、103和105的具体执行过程与当对交易发起方事务区块链的操作是相关的,因为查询过程不涉及到数据对象的上链,所以查询操作不会做数据共识,其他的插入操作、上链操作和过滤操作都会涉及到数据共识的过程,下面分别依据插入操作、上链操作和过滤操作介绍本申请实施例提供的基于区块链的交易数据认证共识方法。
1、插入操作。
对交易发起方事务区块链的操作为插入操作时,上述步骤101可以包括:
所述主节点响应于共识对象对交易发起方事务区块链的所述插入操作,将所述插入操作包含的所述交易发起方事务区块链的主链和属性信息分别附加到所述固定合约的主链哈希值和第一哈希值;
所述主节点将所述固定合约的索引哈希值映射存储第一密钥;
所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态。
该过程主链为1,第一哈希值的属性信息包括李华、男和25岁。因为是插入操作,索引可以从0开始,因为第一存储哈希值中的四个哈希值都发生了变化,所以altered_fields_map标记为1111,consensus_status为1表示需要共识或待共识,过滤指示哈希值标记为false表示不是过滤操作。
在执行步骤102时,该示例中共识请求的交易发起方事务区块链的主链为主链1,共识请求还包括李华、男和25岁的第一哈希值的属性信息,也还可以包括插入操作的指示。上述consensus_status发生变化,由需要共识变成正在共识。
共识节点接收到共识请求后,上述步骤103可以包括:
所述共识节点基于所述共识请求,将所述交易发起方事务区块链的主链和属性信息分别附加到所述非固定合约的主链哈希值和第一哈希值;
所述共识节点为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥附加到所述非固定合约的索引哈希值中。
还可以包括:所述共识节点根据所述插入操作的指示在所述非固定合约的过滤指示字段中附加过滤指示。若共识节点中已经存储有一个订单用户孙瑞生,该订单用户的当前索引是1,则主节点共识过来的交易发起方事务区块链,也就是订单用户李华的索引就是2,共识节点对所有订单用户的索引是统一管理的,可以是从1开始按照每次回滚异常加1的方式管理索引。
该过程中,共识节点通过主链1确定所示例的交易发起方事务区块链,则交易设备将主链1和第一哈希值的属性信息李华、男和25岁附加到非固定合约的第一哈希值中。交易设备为该主链为1的数据对象的本次存储确定共识私钥,例如共识私钥为2,过滤指示字段中附加非过滤操作信息False。第一密钥为0,共识私钥为2。当然,这里的索引只是举例,不应将其理解为是对索引表示的限定。
共识节点向主节点发送的共识响应请求中包括交易发起方事务区块链的主链和共识私钥。上述步骤105可以包括:所述主节点将所述固定合约的索引哈希值由所述第一版本标识映射存储所述共识私钥,并将所述共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态。
还是延续示例,第一密钥0被映射存储共识私钥2后,同时consensus_status也需要由2映射存储0表示共识完成。altered_fields_map也需映射存储0000。
该插入操作过程,通过索引协商以及数据共识过程的变化及时回滚异常第二存储哈希值中的信息,从而保证了端交易数据的一致性。
2、上链操作。
对交易发起方事务区块链的操作为上链操作时,上述步骤101的过程可以包括:
所述主节点响应于共识对象对交易发起方事务区块链的上链操作,上链所述固定合约的第一哈希值;
所述主节点将所述固定合约的索引哈希值映射存储第一密钥;
所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态。
该过程主节点中主链为1的数据对象中的年龄被上链,由25岁上链为23岁。主节点需要向共识节点共识该回滚异常的第一哈希值的属性信息。因为只有年龄哈希值被回滚异常,所以altered_fields_map表示为0001,consensus_status由0映射存储1。另外,在发送共识请求时,该consensus_status会由1映射存储2。
在步骤102的共识请求中的第一主链为主链1,共识请求还包括索引2和年龄23岁。交易设备接收到该共识请求后,执行步骤103可以包括:
所述共识节点根据所述交易发起方事务区块链的主链确定所述非固定合约的索引哈希值中的版本标识;
当所述第一密钥与所述非固定合约的索引哈希值中的索引相同时,则所述交易设备将所述交易发起方事务区块链的属性信息上链到所述非固定合约中的第一哈希值;
所述共识节点为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥上链到所述非固定合约的索引哈希值中。所述第二存储哈希值中的过滤指示哈希值为不过滤指示。
共识节点会使用主链1确定共识节点中该数据对象的索引是2,因为共识请求中的索引也是2,端交易两侧的索引相同,不存在索引冲突,则将年龄哈希值18映射存储23,并确定新的索引3,过滤指示哈希值因为是上链操作,所以还是标记为false。
因延续了上面插入操作的示例,所以该上链操作中的第一密钥为2,共识私钥为3。新的索引可以是在上一版的索引基础上加1得到的。
共识节点共识得到后,会在共识响应中携带索引3和主链1,这样主节点就可以更新,从而得到与共识节点数据一致的表。
若共识节点中,年龄哈希值的信息被回滚异常过,共识节点中的年龄哈希值由18被映射存储25,共识节点会因为本次回滚异常而调整索引,原来索引是2,加1,则索引映射存储3。
步骤103的共识请求中携带主链1、索引2和年龄23。共识节点通过比较索引确认两个索引不同,存在索引冲突。当存在索引冲突时可以通过两种方式来解决,一种是以交易端数据为准,一种是将交易端数据返回给主节点,在主节点中解决该冲突。
当以交易端数据为准时,当所述第一密钥与所述非固定合约的索引哈希值中的版本标识不相同时,所述共识节点将所述非固定合约中第一哈希值添加到所述共识响应请求中。
也就是说,共识节点会将年龄25岁、主链1和索引3添加到共识响应请求中。
主节点接收到共识响应请求后,所述主节点基于所述非固定合约中第一哈希值,上链所述固定合约中所述第一哈希值。
也就是说,主节点会根据主链1查找到对应的交易发起方事务区块链后,将年龄哈希值中的23岁映射存储25岁,将索引由2映射存储3。
因为主节点回滚异常了年龄哈希值,所以需要再进行共识,本次共识请求中会携带年龄25,索引3和主链1。由于这次端交易两侧针对主链1的数据对象的索引都是3,不存在索引冲突,所以,共识节点会将共识节点的索引映射存储4,然后将索引4共识给主节点。
主节点中的共识对象可以通过注册损失函数来解决冲突。
当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,所述交易设备将所述非固定合约中第一哈希值添加到所述共识响应请求中。
延续上面的示例,共识节点会将主链1,年龄25和索引3添加到共识响应请求中。
所述主节点根据所述固定合约中第一哈希值和所述非固定合约中第一哈希值确定所述第一哈希值的上链值。该过程可以是主节点中可以通过注册损失函数,将该冲突事件通过共识对象发送给用户,由用户来确定第一哈希值的上链值,也可以不发送给用户,由主节点的内部冲突解决机制来确定第一哈希值的上链值。例如:主节点确定的第一字段的上链值是24。
所述主节点使用所述第一哈希值的上链值回滚异常所述固定合约中第一哈希值;
所述主节点向所述共识节点发送所述主链、所述第一哈希值的上链值和所述共识私钥,以用于所述共识节点使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;
所述共识节点接收所述主节点发送的所述交易发起方事务区块链的主链、所述第一哈希值的上链值和所述共识私钥;
所述共识节点确定所述共识私钥与所述非固定合约的索引哈希值中的索引相同,则使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;
所述共识节点为所述交易发起方事务区块链确定第三索引,所述第三索引与所述第一密钥和所述共识私钥不同;
所述共识节点向所述主节点发送所述第三索引和所述交易发起方事务区块链的主链。
所述主节点接收所述共识节点发送的第三索引和所述主链;
所述主节点将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
主节点确定的第一哈希值的上链值是24后,会用24替换主节点中的年龄23,然后向共识节点发送主链1、年龄24和索引3,共识节点接收到这些数据后,根据主链1确定共识节点中的索引,因为端交易两侧的索引都是3,不存在索引冲突,然后回滚异常年龄数据,用24替换25,并生成新的索引4,将该索引4再共识回主节点,主节点中使用索引4替换索引3。
该上链操作过程,通过索引协商以及数据共识过程的变化及时回滚异常第二存储哈希值中的信息,从而保证了端交易数据的一致性。
当有两个主节点向共识节点共识时的冲突解决方案可以有:
冲突解决支持默认冲突解决和定制冲突解决。默认冲突解决为Lastwritewin和Deletewin。Lastwritewin就是以交易请求侧为准。当遇到过滤的情况时以过滤为准,用英文可以表述为Deletewin,就是Delete总是win。Lastwritewin和Deletewin有冲突时,采用Delete。定制冲突解决是把冲突的数据以回调的方式通知给主节点,在主节点中解决该冲突。两个设备共识时的冲突解决可以参阅下面冲突解决策略解释表进行理解。
3、过滤操作。
对交易发起方事务区块链的操作为过滤操作时,所述交易发起方事务区块链在所述主节点中的固定合约还包括过滤指示哈希值。步骤101可以包括:所述主节点响应于共识对象对交易发起方事务区块链的过滤操作,将所述固定合约中的过滤指示哈希值映射存储第三值,以指示过滤所述交易发起方事务区块链。
步骤103可以包括:所述共识节点将所述非固定合约中的过滤指示哈希值映射存储用于指示过滤所述交易发起方事务区块链的值。
对应地,所述共识请求还包括过滤操作的指示,步骤105可以包括:所述主节点过滤所述交易发起方事务区块链在所述主节点中的固定合约。
执行过滤操作时,共识节点会将过滤指示哈希值设置为true。
主节点中会过滤整条数据对象。
另外,上述步骤104的共识响应请求中还可以包括共识节点中存储的数据对象的最大版本标识。
共识响应请求中包括共识节点中存储的数据对象的最大索引时,如图4所示,本申请实施例提供的基于区块链的交易数据认证共识方法还可以包括:
201、主节点比较共识账本和所述最大索引。
主节点中会维护用于与共识节点共识的共识账本,该共识账本指示运设备回滚异常且共识至主节点的数据对象的最大索引,该共识账本会根据主节点和共识节点之间的数据共识状态动态上链。比如在初始状态,共识账本为所述主节点中数据对象的初始索引;当主节点与共识节点完成一次数据共识后,该共识账本为当前已共识至主节点的数据对象的索引;当主节点与共识节点完成多次数据共识后,该共识账本上一次与所述共识账本做比较的索引。该共识账本可以通过一个表实现,表包括两个哈希值,一个哈希值是数据库名字(databasename)哈希值,类型为string。另外一个哈希值是账本(watermark)哈希值,类型为int,共识账本的初始值可以为0。
若共识节点中存储的数据数据对象,共识节点中存储的数据对象的最大索引是2。
202、当所述共识账本和所述最大索引不相等时,所述主节点向所述共识节点发送第一共识请求,相应地,所述共识节点接收所述主节点发送的第一共识请求。
所述第一共识请求中包括所述共识账本。
共识账本0和最大索引2不相等,则主节点在第一共识请求中携带共识账本0。
203、共识节点确定索引高于所述共识账本的数据对象。
共识节点中,高于共识账本0的数据对象有主链1对应的交易发起方事务区块链和主链2对应的交易接收方事务区块链。
204、共识节点向所述主节点发送所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引。相应地,主节点接收所述共识节点发送的所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引。
该实施例中,共识私钥为2,交易接收方事务区块链的主链为2,该交易接收方事务区块链的主链对应的索引为1。
205、主节点根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链。
主节点中存储有对应的数据对象,因此,主节点可以确定主节点中未存储交易接收方事务区块链(主链2、孙瑞生、男和31岁)这些信息。
206、主节点向所述共识节点发送第二共识请求,相应地,所述共识节点接收所述交易数据认证共识系统发送的第二共识请求。
当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,所述第二共识请求包括所述交易接收方事务区块链的主链;该场景中,第二共识请求中包括主链2。
当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,所述第二共识请求包括所述交易接收方事务区块链的主链和交易发起方事务区块链的主链;该场景中,第二共识请求中包括主链2和主链1。
207、共识节点根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链。
共识节点根据主链2可以确定交易接收方事务区块链(主链2、孙瑞生、男和31岁)。
当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,共识节点根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链以及根据所述交易发起方事务区块链的主链确定所述交易发起方事务区块链的非固定合约中第一哈希值。
208、共识节点向所述主节点发送所述交易接收方事务区块链,相应地,主节点接收所述交易接收方事务区块链。
主节点共识上述交易接收方事务区块链后,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,共识节点向所述主节点发送所述交易接收方事务区块链和交易发起方事务区块链的非固定合约中第一哈希值。
209、主节点将所述共识账本调整到所述最大索引。
共识结束后,主节点将共识账本由0调整到2。
该实施例中,主节点会及时将共识账本调整到最大索引,例如将共识账本由0调整到2,这样就可以避免下次共识节点发送最新的最大索引后会重复请求已存储的数据对象。
另外,本申请实施例中,在共识之前,主节点与所述共识节点进行所述共识对象的版本协商。主节点向所述共识节点发送所述交易数据的属性参数。共识节点接收所述主节点发送的应用的版本信息;所述共识节点根据所述交易数据的属性参数确定所述交易发起方事务区块链在所述交易数据认证共识系统中的所述固定合约。
需要说明的是,主节点中的固定合约与共识节点中的非固定合约的版本必须基于同一个历史进行演进。主节点的固定合约必须在共识节点中先创建和升级。存储格式也可以称为Schema,每个共识对象版本都会对应一个Schema版本。因此,通过共识对象版本的协商就可以确定使用哪个版本的Schema,也就是使用哪个版本的存储格式,不同版本的存储格式所包含的第一存储哈希值和第二存储哈希值中的哈希值信息不相同。
为了便于理解,下面以共识对象是交易订单的场景为例,描述本申请实施例所提供的数据共识的过程。
该交易订单场景中,主节点以ATM终端为例,共识节点以服务器为例。用户通过交易订单创建一个新的交易对象,这条新的交易对象记录为一个数据对象。在创建一个数据对象时,该数据对象会被分配一个主链。该场景中,ATM终端所响应的交易订单的操作为插入操作,那么会为该新的交易对象分配一个主链,例如为:主链1。插入的第一哈希值的属性信息例如可以是:姓氏:李,名:华,公司:A贸易公司,电话:15327114941。那么该场景中的主链1和插入的第一哈希值的属性信息会存储在固定合约的主链哈希值和第一哈希值中,也就是上述表格中的第一存储哈希值中,该固定合约还包括第二存储哈希值,关于固定合约、第一存储哈希值和第二存储哈希值的相关解释可以参阅前述实施例中的描述进行理解。该场景中插入的该新的交易对象在ATM终端中的存储形式可以参阅上述实施例中插入操作的相关表的示例进行理解。ATM终端会向服务器发送共识请求,该共识请求中会包括主链1、王、海、A贸易公司、15327114941、索引0和插入操作的指示。服务器接收到该共识请求后,会将上述信息附加到非固定合约的第一存储哈希值中,并生成一个新的索引,例如:索引1。服务器会将索引1附加到第二存储哈希值的索引哈希值中,并根据插入操作的指示将第二存储哈希值中的过滤指示字段附加不过滤指示,例如:附加false。然后,服务器会向ATM终端发送共识响应请求,该共识响应请求中包括主链1和索引1。ATM终端将该条数据对象的索引从0映射存储1,并回滚异常例如altered_fields_map和consensus_status哈希值。
还是结合上述交易订单的场景,当用户要回滚异常李华这条交易对象记录时,ATM终端会响应该更新操作,例如:将A贸易公司映射存储B贸易公司,电话映射存储13200005689。那么该场景中ATM终端会在李华这条数据对象的固定合约的第一哈希值中将公司哈希值和电话哈希值映射存储上链后的值,关于回滚异常操作的ATM终端中的操作过程可以参阅上述实施例中上链操作的相关示例进行理解。ATM终端向服务器发送的共识请求中会包括主链1、B贸易公司、13200005689和索引1。服务器接收到该共识请求后,会使用主链1查找到李华这一条数据对象,然后将该数据对象中第一存储哈希值中的公司哈希值和电话哈希值的信息分别映射存储B贸易公司和13200005689。服务器还会为该条数据对象生成一个新的索引,例如:索引2,然后服务器向ATM终端发送共识响应请求,该共识响应请求中包括主链1和索引2,ATM终端使用主链1查找到李华这条数据对象后,会将索引1映射存储索引2,并回滚异常例如altered_fields_map和consensus_status哈希值。
还是结合上述交易订单的场景,当用户要过滤李华这条交易对象记录时,ATM终端会响应该过滤操作,将ATM终端中该条数据对象的固定合约中的deleted哈希值映射存储false。然后ATM终端向服务器发送共识请求,该共识请求中包括主链1和过滤操作的指示。服务器会使用主链1查找到这条李华数据对象,然后将李华这条数据对象的非固定合约中的deleted哈希值回滚异常为false。服务器向ATM终端发送共识响应请求,该共识响应请求中包括主链1,ATM终端使用主链1查找到这条李华数据对象,并过滤该条数据对象。
从软件架构上来看,上述数据共识的系统架构也可以参阅图5进行理解。
如图5所示,主节点10A的软件架构包括交易接收侧共识对象、交易接收侧数据对象管理组件、交易接收侧数据库系统接口和交易接收侧结构系统。共识节点30的软件架构包括交易请求侧共识对象、交易请求侧数据对象管理组件、交易请求侧结构系统接口和交易请求侧结构系统。
交易接收侧共识对象与交易接收侧数据对象管理组件进行交互,交易接收侧数据对象管理组件可以通过交易接收侧数据库系统接口与交易接收侧结构系统交互。交易请求侧共识对象与交易请求侧数据对象管理组件进行交互,交易请求侧数据对象管理组件可以通过交易请求侧结构系统接口与交易请求侧结构系统交互。交易接收侧数据对象管理组件和交易请求侧数据对象管理组件之间通信可以实现端交易之间的交互。
交易接收侧数据对象管理组件以嵌入式组件的方式给共识对象使用,交易请求侧数据对象管理组件以客户端/服务器的方式给共识对象使用。上述方法实施例中所描述的主节点的操作和功能,可以由交易接收侧数据对象管理组件来实现,上述方法实施例中所描述的共识节点的操作和功能,可以由交易请求侧数据对象管理组件来实现。交易接收侧数据对象管理组件和交易请求侧数据对象管理组件均可由软件实现。主节点和共识节点上的处理器通过运行软件来实现相应的功能。
交易接收侧数据对象管理组件可以包括交易接收侧数据对象接口、交易接收侧数据对象存储组件、交易接收侧数据对象共识组件和交易接收侧通信组件。交易请求侧数据对象管理组件可以包括交易请求侧数据对象接口、交易请求侧数据对象存储组件、交易请求侧数据对象共识组件和交易请求侧通信组件。
交易接收侧数据对象接口:交易接收侧数据对象管理组件的接口,交易接收侧共识对象通过该接口操作数据对象。包括数据对象定义接口,数据对象增加,回滚异常,过滤,查询接口。
交易接收侧数据对象存储组件:负责对象模型到存储模型的映射,把对象的操作转换为对底层结构系统的操作。
交易接收侧数据对象共识组件:负责跟踪交易接收侧数据的改变,数据共识状态的组件,共识位置的组件和交易接收侧冲突回调解决。
交易接收侧通信组件:负责建立交易接收侧到交易请求侧的通信通道,交易接收侧到交易请求侧的数据传输。
交易请求侧数据对象接口:交易请求侧数据对象管理组件的接口,交易请求侧共识对象通过该接口操作数据对象。包括数据对象定义接口,数据对象增加,回滚异常,过滤,查询接口。
交易请求侧数据对象存储组件:负责交易请求侧对象模型到存储模型的映射,把对象的操作转换为对底层结构系统的操作。
交易请求侧数据对象共识组件:负责交易请求侧数据的版本组件和交易请求侧的冲突解决。
交易请求侧通信组件:负责监听交易接收侧的连接,端交易的数据传输。
以上描述了数据共识系统和基于区块链的交易数据认证共识方法,下面结合附图介绍本申请实施例提供的主节点和共识节点。
如图6所示,本申请实施例提供的主节点50的一实施例可以包括:
合约执行装置501,用于响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,所述固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,用于存储所述交易发起方事务区块链的索引的索引哈希值,以及共识状态哈希值;
请求装置502,用于向共识节点发送共识请求,所述共识请求中包括所述交易发起方事务区块链的主链;
共识装置503,用于接收所述共识节点基于所述共识请求对所述交易发起方事务区块链在所述交易设备中的非固定合约回滚异常后发送的共识响应请求,所述共识响应请求包括所述主链;
所述合约执行装置501,还用于响应于所述共识响应请求,对所述交易发起方事务区块链在所述交易数据认证共识系统中的所述固定合约执行回滚异常操作。
本申请实施例提供的方案,主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
一种可能的实施例中,所述操作为插入操作;
所述合约执行装置501用于:
响应于共识对象对交易发起方事务区块链的所述插入操作,将所述插入操作包含的所述交易发起方事务区块链的主链和属性信息分别附加到所述固定合约的主链哈希值和第一哈希值;
将所述固定合约的索引哈希值映射存储第一密钥;
将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述合约执行装置501,用于将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态。
一种可能的实施例中,所述操作为上链操作,所述合约执行装置501用于:
响应于共识对象对交易发起方事务区块链的上链操作,上链所述固定合约的第一哈希值;
将所述固定合约的索引哈希值映射存储第一密钥;
将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述合约执行装置501,用于将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述固定合约中的共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态。
一种可能的实施例中,所述共识响应请求中还包括所述非固定合约中第一哈希值;所述合约执行装置501,还用于基于所述非固定合约中第一哈希值,上链所述固定合约中所述第一哈希值。
一种可能的实施例中,所述共识响应请求中还包括所述非固定合约中第一哈希值;
所述合约执行装置501,还用于根据所述固定合约中第一哈希值和所述非固定合约中第一哈希值确定所述第一哈希值的上链值;使用所述第一哈希值的上链值回滚异常所述固定合约中第一哈希值;
所述请求装置502,还用于向所述共识节点发送所述主链、所述第一哈希值的上链值和所述共识私钥,以用于所述共识节点使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;
所述共识装置503,还用于接收所述共识节点发送的第三索引和所述主链;
所述合约执行装置501,还用于将所述主链对应的固定合约的索引哈希值由所述第二版本标识映射存储所述第三索引。
一种可能的实施例中,所述操作为过滤操作,所述交易发起方事务区块链在所述主节点中的固定合约还包括过滤指示哈希值,
所述合约执行装置501,用于响应于共识对象对交易发起方事务区块链的过滤操作,将所述固定合约中的过滤指示哈希值映射存储第三值,以指示过滤所述交易发起方事务区块链;
对应地,所述共识请求还包括过滤操作的指示,所述合约执行装置501,用于过滤所述交易发起方事务区块链在所述主节点中的固定合约。
一种可能的实施例中,所述共识响应请求还包括所述共识节点中存储的数据对象的最大索引;
所述合约执行装置501,还用于比较共识账本和所述最大索引,所述共识账本为所述交易数据认证共识系统中数据对象的初始索引或者上一次与所述共识账本做比较的索引;
所述请求装置502,还用于当所述共识账本和所述最大索引不相等时,向所述共识节点发送第一共识请求,所述第一共识请求中包括所述共识账本;
所述共识装置503,还用于接收所述共识节点发送的所述交易发起方事务区块链的主链和对应的第二索引,以及交易接收方事务区块链的主链以及对应的索引;
所述合约执行装置501,还用于根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链;
所述请求装置502,还用于当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;或者,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述第二索引不相同时,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;
所述共识装置503,还用于当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,接收所述交易接收方事务区块链;或者,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,接收所述交易接收方事务区块链和所述非固定合约中第一哈希值;
所述合约执行装置501,还用于将所述共识账本调整到所述最大索引。
一种可能的实施例中,所述请求装置502,还用于向所述共识节点发送所述共识对象的版本信息,所述交易数据的属性参数用于所述共识节点确定所述交易发起方事务区块链在所述主节点中的固定合约。
需要说明的是,上述主节点50的各模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
如图7所示,本申请实施例提供的共识节点60的一实施例可以包括:
共识装置601,用于接收主节点发送的共识请求,所述共识请求中包括交易发起方事务区块链的主链,所述交易发起方事务区块链在所述主节点中以固定合约存储;
合约执行装置602,用于基于所述共识请求,回滚异常所述交易发起方事务区块链在所述共识节点中的非固定合约,所述非固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链字段,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,以及用于存储所述交易发起方事务区块链的索引的索引哈希值;
请求装置603,用于向所述主节点发送共识响应请求,所述共识响应请求包括所述主链,所述共识响应请求用于所述主节点对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作。
本申请实施例提供的方案,主节点和共识节点在数据对象发生变化时,可以通过版本标识管理、共识状态管理的方式确保异构合约之间数据共识时的一致性。
一种可能的实施例中,所述共识请求还包括所述交易发起方事务区块链的属性信息,所述处理单元602用于:
基于所述共识请求,将所述交易发起方事务区块链的主链和属性信息分别附加到所述非固定合约的主链哈希值和第一哈希值;
为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥附加到所述非固定合约的索引哈希值中。
一种可能的实施例中,所述共识请求还包括所述第一密钥和所述交易发起方事务区块链的属性信息,所述合约执行装置602用于:
根据所述交易发起方事务区块链的主链确定所述非固定合约的索引哈希值中的索引;
当所述第一密钥与所述非固定合约的索引哈希值中的索引相同时,则将所述交易发起方事务区块链的属性信息上链到所述非固定合约中的第一哈希值;
为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥上链到所述非固定合约的索引哈希值中。
一种可能的实施例中,所述合约执行装置602还用于:
当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,所述交易设备将所述非固定合约中第一哈希值添加到所述共识响应请求中。
一种可能的实施例中,所述合约执行装置602,还用于当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,将所述非固定合约中第一哈希值添加到所述共识响应请求中;
所述共识装置601,还用于接收所述主节点发送的所述交易发起方事务区块链的主链、所述第一哈希值的上链值和所述共识私钥;
所述合约执行装置602,还用于确定所述共识私钥与所述非固定合约的索引哈希值中的索引相同,则使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;为所述交易发起方事务区块链确定第三索引,所述第三索引与所述第一密钥和所述共识私钥不同;
所述请求装置603,还用于向所述主节点发送所述第三索引和所述交易发起方事务区块链的主链,以用于所述主节点将所述主链对应的固定合约的索引哈希值由所述第二版本标识映射存储所述第三索引。
一种可能的实施例中,所述交易发起方事务区块链在所述共识节点中的非固定合约还包括过滤指示哈希值,所述共识请求还包括过滤操作的指示,
所述合约执行装置602,用于将所述非固定合约中的过滤指示哈希值映射存储用于指示过滤所述交易发起方事务区块链的值。
一种可能的实施例中,所述共识响应请求中还包括所述共识节点中存储的数据对象的最大索引;
所述共识装置601,还用于接收所述主节点发送的第一共识请求,所述第一共识请求中包括所述主节点中维护的共识账本,所述共识账本为所述主节点中数据对象的初始索引或者所述主节点中上一次与所述共识账本做比较的索引;
所述合约执行装置602,还用于确定索引高于所述共识账本的数据对象;
所述请求装置603,还用于向所述主节点发送所述交易发起方事务区块链的主链和对应的第二索引,以及交易接收方事务区块链的主链以及对应的索引;
所述共识装置601,还用于接收所述主节点发送的第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;或者,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;
所述合约执行装置602,还用于根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链;或者,根据所述交易接收方事务区块链的主链确定所述交易接收方事务区块链以及根据所述交易发起方事务区块链的主链确定所述交易发起方事务区块链;
所述请求装置603,还用于向所述主节点发送所述交易接收方事务区块链,或者,所述交易接收方事务区块链和所述非固定合约中第一哈希值。
一种可能的实施例中,所述共识装置601,还用于接收所述主节点发送的共识对象的版本信息;
所述合约执行装置602,还用于根据所述交易数据的属性参数确定所述交易发起方事务区块链在所述交易数据认证共识系统中的固定合约。
需要说明的是,上述共识节点60的各模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不共识对象理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多回滚异常。因此,所有这些回滚异常都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的回滚异常意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、回滚异常、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种基于区块链的交易数据认证共识方法,其特征在于,包括:
主节点向共识节点发送交易数据的属性参数,所述交易数据的属性参数用于所述共识节点确定交易发起方事务区块链在所述主节点中的固定合约;
所述主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,所述固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,用于存储所述交易发起方事务区块链的索引的索引哈希值,以及共识状态哈希值;
所述主节点向所述共识节点发送共识请求,所述共识请求中包括所述交易发起方事务区块链的主链;
所述主节点接收所述共识节点基于所述共识请求对所述交易发起方事务区块链在所述共识节点中的非固定合约回滚异常后发送的共识响应请求,所述共识响应请求包括所述主链;
所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作;
所述操作为插入操作,所述主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,包括:
所述主节点响应于共识对象对交易发起方事务区块链的所述插入操作,将所述插入操作包含的所述交易发起方事务区块链的主链和属性信息分别附加到所述固定合约的主链哈希值和第一哈希值;
所述主节点将所述固定合约的索引哈希值映射存储第一密钥;
所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作,包括:
所述主节点将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态;
所述操作为上链操作,所述主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,包括:
所述主节点响应于共识对象对交易发起方事务区块链的上链操作,上链所述固定合约的第一哈希值;
所述主节点将所述固定合约的索引哈希值映射存储第一密钥;
所述主节点将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作,包括:
所述主节点将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述固定合约中的共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态;
所述共识响应请求中还包括所述交易发起方事务区块链在所述共识节点中的非固定合约中第一哈希值;所述方法还包括:
所述主节点基于所述非固定合约中第一哈希值,上链所述固定合约中所述第一哈希值。
2.根据权利要求1所述的基于区块链的交易数据认证共识方法,其特征在于,所述共识响应请求中还包括所述非固定合约中第一哈希值,所述方法还包括:
所述主节点根据所述固定合约中第一哈希值和所述非固定合约中第一哈希值确定所述第一哈希值的上链值;
所述主节点使用所述第一哈希值的上链值回滚异常所述固定合约中第一哈希值;
所述主节点向所述共识节点发送所述主链、所述第一哈希值的上链值和所述共识私钥,以用于所述共识节点使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;
所述主节点接收所述共识节点发送的第三索引和所述主链;
所述主节点将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
3.根据权利要求2所述的基于区块链的交易数据认证共识方法,其特征在于,所述操作为过滤操作,所述交易发起方事务区块链在所述主节点中的固定合约还包括过滤指示哈希值,所述主节点响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,包括:
所述主节点响应于共识对象对交易发起方事务区块链的过滤操作,将所述固定合约中的过滤指示哈希值映射存储第三值,以指示过滤所述交易发起方事务区块链;
对应地,所述主节点响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作,包括:
所述主节点过滤所述交易发起方事务区块链在所述主节点中的固定合约。
4.根据权利要求1-3任一项所述的基于区块链的交易数据认证共识方法,其特征在于,所述共识响应请求还包括所述共识节点中存储的数据对象的最大索引;所述方法还包括:
所述主节点比较共识账本和所述最大索引,所述共识账本为所述主节点中数据对象的初始索引或者上一次与所述共识账本做比较的索引;
当所述共识账本和所述最大索引不相等时,所述主节点向所述共识节点发送第一共识请求,所述第一共识请求中包括所述共识账本;
所述主节点接收所述共识节点发送的所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引。
5.根据权利要求4所述的基于区块链的交易数据认证共识方法,其特征在于,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,所述主节点根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;对应地,所述主节点接收所述交易接收方事务区块链;
当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,所述主节点根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;对应地,所述主节点接收所述交易接收方事务区块链和所述非固定合约中第一哈希值;
所述主节点将所述共识账本调整到所述最大索引。
6.一种基于区块链的交易数据认证共识系统,其特征在于,包括:
请求装置,用于向共识节点发送交易数据的属性参数以及共识请求,所述交易数据的属性参数用于所述共识节点确定交易发起方事务区块链在主节点中的固定合约;所述共识请求中包括所述交易发起方事务区块链的主链;
合约执行装置,用于响应于共识对象对交易发起方事务区块链的操作,回滚异常所述交易发起方事务区块链在所述主节点中的固定合约,所述固定合约包括:用于存储唯一标识所述交易发起方事务区块链的主链的主链哈希值,用于存储描述所述交易发起方事务区块链的属性的第一哈希值,用于存储所述交易发起方事务区块链的索引的索引哈希值,以及共识状态哈希值;
共识装置,用于接收所述共识节点基于所述共识请求对所述交易发起方事务区块链在所述共识节点中的非固定合约回滚异常后发送的共识响应请求,所述共识响应请求包括所述主链;
所述合约执行装置,还用于响应于所述共识响应请求,对所述交易发起方事务区块链在所述主节点中的所述固定合约执行回滚异常操作;
所述操作为插入操作;
所述合约执行装置用于:
响应于共识对象对交易发起方事务区块链的所述插入操作,将所述插入操作包含的所述交易发起方事务区块链的主链和属性信息分别附加到所述固定合约的主链哈希值和第一哈希值;
将所述固定合约的索引哈希值映射存储第一密钥;
将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述合约执行装置,用于将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态;
所述操作为上链操作,所述合约执行装置用于:
响应于共识对象对交易发起方事务区块链的上链操作,上链所述固定合约的第一哈希值;
将所述固定合约的索引哈希值映射存储第一密钥;
将所述固定合约的共识状态哈希值映射存储共识请求状态值,以指示所述固定合约为待共识状态;
对应地,所述共识响应请求中还包括共识私钥,所述合约执行装置,用于将所述固定合约的索引哈希值由所述第一密钥映射存储所述共识私钥,并将所述固定合约中的共识状态哈希值映射存储共识完成状态值,以指示所述固定合约为已完成共识状态;
所述共识响应请求中还包括所述非固定合约中第一哈希值;
所述合约执行装置,还用于基于所述非固定合约中第一哈希值,上链所述固定合约中所述第一哈希值。
7.根据权利要求6所述的基于区块链的交易数据认证共识系统,其特征在于,所述共识响应请求中还包括所述非固定合约中第一哈希值;
所述合约执行装置,还用于根据所述固定合约中第一哈希值和所述非固定合约中第一哈希值确定所述第一哈希值的上链值;使用所述第一哈希值的上链值回滚异常所述固定合约中第一哈希值;
所述请求装置,还用于向所述共识节点发送所述主链、所述第一哈希值的上链值和所述共识私钥,以用于所述共识节点使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;
所述共识装置,还用于接收所述共识节点发送的第三索引和所述主链;
所述合约执行装置,还用于将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
8.根据权利要求7所述的基于区块链的交易数据认证共识系统,其特征在于,所述操作为过滤操作,所述交易发起方事务区块链在所述主节点中的固定合约还包括过滤指示哈希值,
所述合约执行装置,用于响应于共识对象对交易发起方事务区块链的过滤操作,将所述固定合约中的过滤指示哈希值映射存储第三值,以指示过滤所述交易发起方事务区块链;
对应地,所述共识请求还包括过滤操作的指示,所述合约执行装置,用于过滤所述交易发起方事务区块链在所述主节点中的固定合约。
9.根据权利要求8所述的基于区块链的交易数据认证共识系统,其特征在于,所述共识响应请求还包括所述共识节点中存储的数据对象的最大索引;
所述合约执行装置,还用于比较共识账本和所述最大索引,所述共识账本为所述主节点中数据对象的初始索引或者上一次与所述共识账本做比较的索引;
所述请求装置,还用于当所述共识账本和所述最大索引不相等时,向所述共识节点发送第一共识请求,所述第一共识请求中包括所述共识账本;
所述共识装置,还用于接收所述共识节点发送的所述交易发起方事务区块链的主链和对应的共识私钥,以及交易接收方事务区块链的主链以及对应的索引;
所述合约执行装置,还用于根据所述交易接收方事务区块链的主链确定未共识所述交易接收方事务区块链;
所述请求装置,还用于当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链;或者,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,则向所述共识节点发送第二共识请求,所述第二共识请求包括所述交易接收方事务区块链的主链和所述交易发起方事务区块链的主链;
所述共识装置,还用于当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥相同时,接收所述交易接收方事务区块链;或者,当所述主节点上的交易发起方事务区块链的主链对应的索引与所述共识私钥不相同时,接收所述交易接收方事务区块链和所述非固定合约中第一哈希值;
所述合约执行装置,还用于将所述共识账本调整到所述最大索引。
10.根据权利要求7所述的基于区块链的交易数据认证共识系统,其特征在于,
所述共识请求还包括所述交易发起方事务区块链的属性信息,所述合约执行装置用于:
基于所述共识请求,将所述交易发起方事务区块链的主链和属性信息分别附加到所述非固定合约的主链哈希值和第一哈希值;
为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥附加到所述非固定合约的索引哈希值中;
所述共识请求还包括所述第一密钥和所述交易发起方事务区块链的属性信息,所述合约执行装置用于:
根据所述交易发起方事务区块链的主链确定所述非固定合约的索引哈希值中的索引;
当所述第一密钥与所述非固定合约的索引哈希值中的索引相同时,则将所述交易发起方事务区块链的属性信息上链到所述非固定合约中的第一哈希值;
为所述交易发起方事务区块链确定共识私钥,并将所述共识私钥上链到所述非固定合约的索引哈希值中;
所述合约执行装置,还用于当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,将所述非固定合约中第一哈希值添加到所述共识响应请求中;
所述合约执行装置,还用于当所述第一密钥与所述非固定合约的索引哈希值中的索引不相同时,将所述非固定合约中第一哈希值添加到所述共识响应请求中;
所述共识装置,还用于接收所述主节点发送的所述交易发起方事务区块链的主链、所述第一哈希值的上链值和所述共识私钥;
所述合约执行装置,还用于确定所述共识私钥与所述非固定合约的索引哈希值中的索引相同,则使用所述第一哈希值的上链值回滚异常所述非固定合约中第一哈希值;为所述交易发起方事务区块链确定第三索引,所述第三索引与所述第一密钥和所述共识私钥不同;
所述请求装置,还用于向所述主节点发送所述第三索引和所述交易发起方事务区块链的主链,以用于所述主节点将所述主链对应的固定合约的索引哈希值由所述共识私钥映射存储所述第三索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111352.3A CN116308344A (zh) | 2023-02-14 | 2023-02-14 | 一种基于区块链的交易数据认证共识方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111352.3A CN116308344A (zh) | 2023-02-14 | 2023-02-14 | 一种基于区块链的交易数据认证共识方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116308344A true CN116308344A (zh) | 2023-06-23 |
Family
ID=86814106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111352.3A Withdrawn CN116308344A (zh) | 2023-02-14 | 2023-02-14 | 一种基于区块链的交易数据认证共识方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116308344A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235188A (zh) * | 2023-11-15 | 2023-12-15 | 成都三合力通科技有限公司 | 一种基于联盟计算的数据全域共享系统及方法 |
CN117333298A (zh) * | 2023-10-15 | 2024-01-02 | 广东工程职业技术学院 | 一种基于区块链的股权交易方法及装置 |
-
2023
- 2023-02-14 CN CN202310111352.3A patent/CN116308344A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117333298A (zh) * | 2023-10-15 | 2024-01-02 | 广东工程职业技术学院 | 一种基于区块链的股权交易方法及装置 |
CN117235188A (zh) * | 2023-11-15 | 2023-12-15 | 成都三合力通科技有限公司 | 一种基于联盟计算的数据全域共享系统及方法 |
CN117235188B (zh) * | 2023-11-15 | 2024-01-30 | 成都三合力通科技有限公司 | 一种基于联盟计算的数据全域共享系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003703B (zh) | 一种跨链发送可认证消息的方法和装置 | |
US9524327B2 (en) | Method and system for data synchronization, and apparatus thereof | |
CN116308344A (zh) | 一种基于区块链的交易数据认证共识方法和系统 | |
US20240061861A1 (en) | Blockchain Node and Transaction Method | |
US8489548B2 (en) | Method, system, and device for data synchronization | |
US9817703B1 (en) | Distributed lock management using conditional updates to a distributed key value data store | |
US8260742B2 (en) | Data synchronization and consistency across distributed repositories | |
CN105740469B (zh) | 存储服务器和元数据访问方法 | |
CN111506589B (zh) | 基于联盟链的区块链数据服务系统、访问方法及存储介质 | |
CN113691635B (zh) | 调用微服务的方法、装置、电子设备和可读存储介质 | |
WO2023092986A1 (zh) | 基于分布式身份标识的数据跨链转移和系统 | |
WO2020258849A1 (zh) | 一种跨链发送可认证消息的方法和装置 | |
WO2008147400A1 (en) | Authentication for operations over an outsourced file system stored by an untrusted unit | |
CN115687276B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN110990360A (zh) | 基于网络存储设备的文件同步方法及相关组件 | |
CN104574188B (zh) | 一种交易服务系统及交易处理方法 | |
CN115544169A (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN115422184A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN109522132A (zh) | 一种标识生成的方法及装置 | |
CN109743188A (zh) | 日志数据处理方法和装置 | |
CN110554915A (zh) | 一种信息处理的方法、装置、计算机存储介质及终端 | |
CN116055450B (zh) | 通讯录数据的处理方法、装置和存储介质及电子设备 | |
CN115694841B (zh) | 基于区块链和ipfs网络的元数据流通方法、装置及存储介质 | |
CN111079199B (zh) | 基于区块链技术的企业信用数据截图防篡改方法 | |
CN114328544B (zh) | 基于区块链的司法数据存储方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230623 |