CN112035144A - 区块链系统的升级方法、装置、计算机设备及存储介质 - Google Patents
区块链系统的升级方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112035144A CN112035144A CN202010906080.2A CN202010906080A CN112035144A CN 112035144 A CN112035144 A CN 112035144A CN 202010906080 A CN202010906080 A CN 202010906080A CN 112035144 A CN112035144 A CN 112035144A
- Authority
- CN
- China
- Prior art keywords
- block
- transaction
- field
- upgrading
- transaction request
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration 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
-
- 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/405—Establishing or using transaction specific rules
-
- 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
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链技术领域,公开了一种区块链系统的升级方法、装置、计算机设备及存储介质。区块链系统的升级方法通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求;若目标节点的交易请求符合预设升级条件,可依据交易请求发起投票事务,在区块链系统中传输投票事务,使区块生成节点执行响应投票事务进行投票,当投票通过则目标节点生成包括配置事务数据的第一目标区块,进行区块链系统升级,本发明通过在第一目标区块上添加配置事务数据,以实现区块链系统升级成功后,此后区块链统一使用升级后的配置事务数据工作,避免区块链系统升级时产生区块链分叉的情况。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及区块链系统的升级方法、装置、计算机设备及存储介质。
背景技术
在当前的区块链网络中由于区块链机制预设、强制执行的特性,当区块链网络需要升级时,升级方案必须要经过节点的一致认同,然后所有节点在区块到达某个高度前完成本地节点升级,当区块高度达到升级方案指定高度后,统一使用升级后的方案继续进行交易打包、共识等操作。若升级方案无法达成一致,即部分节点拒绝升级方案,则会在区块链网络中出现保持原方案的旧节点和升级后的新节点,造成区块链分叉。区块链分叉分为软分叉和硬分叉。当区块链系统出现软分叉时,旧节点需要兼容新节点,增加了系统的工作量,影响区块链网络的数据处理效率;当系统出现硬分叉时,会导致两个版本系统同时存在,致使用户被分流。
发明内容
针对现有区块链系统升级时存在区块链分叉的问题,现提供一种旨在可避免区块链分叉的区块链系统的升级方法、装置、计算机设备及存储介质。
为实现上述目的,本发明提供一种区块链系统的升级方法,包括:
监测目标节点的交易请求是否符合预设升级条件;
当所述目标节点的所述交易请求符合所述预设升级条件时,依据所述交易请求发起投票事务;
在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
当投票通过则所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
优选的,所述交易请求包括标志位字段和配置字段;
其中,所述标志位字段用于标识所述交易请求,所述配置字段用于标识配置信息的对称加密哈希值;
所述预设升级条件为:所述交易请求的所述标志位字段符合预设字段,且所述配置字段不为空值。
优选的,所述预设升级条件还包括:当前链高度达到预设链高度;
所述当所述目标节点的所述交易请求符合所述预设升级条件时,依据所述交易请求发起投票事务,包括:
当所述目标节点的所述交易请求的所述标志位字段符合预设字段、所述配置字段不为空值且当前链高度达到预设链高度时,依据所述交易请求发起投票事务。
优选的,所述第一目标区块的区块结构由包含元数据的第一区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第一区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第一配置版本字段,所述第一配置版本字段用于记录当前升级的配置事务数据。
优选的,所述当投票通过则所述目标节点生成第一目标区块,进行所述区块链系统升级,包括:
当投票通过则所述目标节点进行升级交易打包生成所述第一目标区块,并将所述第一目标区块添加到区块链上,对投票同意的节点进行升级。
优选的,还包括:
当投票未通过则所述目标节点生成第二目标区块,并将所述第二目标区块添加到区块链上。
优选的,所述第二目标区块的区块结构由包含元数据的第二区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第二区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第二配置版本字段,所述第二配置版本字段用于记录引用区块链中父区块的配置事务数据。
为实现上述目的,本发明还提供一种区块链系统的升级装置,包括:
监测单元,用于监测目标节点的交易请求是否符合预设升级条件;
投票事务发起单元,当所述目标节点的所述交易请求符合所述预设升级条件时,用于依据所述交易请求发起投票事务;
投票单元,用于在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
升级单元,当投票通过时,用于控制所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
为实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
区块链系统的升级方法、装置、计算机设备及存储介质可通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求;若目标节点的交易请求符合预设升级条件,则表示该交易请求为升级交易请求,可依据交易请求发起投票事务,在区块链系统中传输投票事务,使区块生成节点执行响应投票事务进行投票,当投票通过则目标节点生成包括配置事务数据的第一目标区块,进行区块链系统升级,本发明通过在第一目标区块上添加配置事务数据,以实现区块链系统升级成功后,此后区块链统一使用升级后的配置事务数据工作,避免区块链系统升级时产生区块链分叉的情况。
附图说明
图1为本发明所述的区块链系统的升级方法一种实施例的流程图;
图2为本发明所述的区块链系统的升级方法的另一种实施例的流程图;
图3为本发明所述的区块链系统的升级装置的一种实施例的模块图;
图4为本发明计算机设备的一个实施例的硬件架构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
软分叉是指部分节点升级后,旧节点能够兼容新节点产生的区块,但新节点不能兼容旧节点产生的区块,即旧节点可以验证、接受新节点产生的正确区块,同时验证、接受其他旧节点产生的正确区块,而新节点则只能验证、接受其他新节点产生的正确区块,而无法验证或拒绝旧节点产生的正确区块区块,如此,在旧节点保存的区块数据中包含了所有节点产生的正确区块,而新节点则只保存新节点产生的正确区块,因此链上会产生一个分叉,新节点和旧节点各自产生区块,但随着时间增长,因为旧节点产生区块被新节点拒绝,更多使用旧节点的矿工会选择升级为新节点,使新节点总算力增长,导致新节点产生区块的速度超过旧节点产生区块的速度,最终使旧节点保存的两条链路中,新节点产生的区块组成的链路长度将超过旧节点产生的区块组成的链路,成为最长链路(即主链),从而使旧节点产生的区块组成的链路失效,最终链上只剩下一条主链。如图1所示,区块链在block2区块之后部分节点进行了升级,其中,block1、block2、block3和block4代表旧节点产生的区块;block3a、block4a和block5a代表新节点产生的区块;新节点所占有的算力比例小于51%时,两条链路各自增长,当新节点占有的算力超过51%后,旧节点保存的新节点产生的链路长度将会超过旧节点产生的链路,这将迫使未升级的旧节点升级为新节点,因为旧节点保存有所有的区块数据,升级后能直接开始在主链中继续工作,直至所有的旧节点都升级为新的节点,分叉被消灭。
硬分叉的升级方案一般会产生不同的区块格式和交易格式等,如此,新节点与旧节点之间拒绝或无法验证对方节点产生的区块。硬分叉如图2所示,区块链在block2区块之后部分节点进行了升级,其中,block1、block2、block3、block4和block5代表旧节点产生的区块;block3a、block4a和block5a代表新节点产生的区块;旧节点拒绝新节点产生的区块block3a,甚至断开与新节点的网络连接,按照原有方案继续产生新的区块block4和block5,而新节点同样无法验证block2之后旧节点产生的区块,各自沿着自己认为正确的方案继续工作,产生各自认为正确的区块,如此,链路就产生了硬分叉,硬分叉时永久性分叉,会造成多中心化、分裂区块链生态、算力分裂等后果。
综上所述,现有的区块链系统进行升级时,若升级方案无法得到所有节点的一致支持,就会产生分叉,虽然软分叉可以使升级过程平稳过渡,但软分叉仅支持在当前执行方案上做修改的升级方案。若升级方案是摒弃当前执行方案的全新方案,则只能产生硬分叉。
基于上述内容存在的问题本发明提供的区块链系统的升级方法、装置、计算机设备及存储介质可避免因区块链系统升级时产生区块链分叉的情况,可适用于金融业务、银行业务和保险业务等领域。本发明可通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求;若目标节点的交易请求符合预设升级条件,则表示该交易请求为升级交易请求,可依据交易请求发起投票事务,在区块链系统中传输投票事务,使区块生成节点执行响应投票事务进行投票,当投票通过则目标节点生成包括配置事务数据的第一目标区块,进行区块链系统升级,本发明通过在第一目标区块上添加配置事务数据,以实现区块链系统升级成功后,此后区块链统一使用升级后的配置事务数据工作,从而避免因区块链系统升级时产生区块链分叉的情况。
实施例一
请参阅图1,本实施例的一种区块链系统的升级方法,包括:
S1.监测目标节点的交易请求是否符合预设升级条件;
在本步骤中,通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求。
需要说明的是:所述交易请求包括标志位字段Flag和配置字段Config;其中,所述标志位字段用于标识所述交易请求,所述配置字段用于标识配置信息的对称加密哈希值HASH。
在本实施例中的交易请求的数据结构不同于现有的交易请求的数据结构,现有的交易请求的数据结构如表1:
表1
字段 | 含义 |
Version | 版本号 |
Inputs | 交易输入 |
Outputs | 交易输出 |
Locktime | 锁定时间 |
本实施例中的交易请求的数据结构比现有区块链的交易请求的数据结构多出两个字段Flag和Config,具体参见表2:
表2
参见表2,作为举例而非限定,在本实施例中交易请求的数据结构中,当Flag字段值设为0x00,Config字段为空置时,表示该交易请求为普通交易请求;当Flag字段值设为0xFF,且Config字段值为本次升级方案的JSON字符串的对称加密HASH值时,表示该交易请求为配置交易config Transaction(即:升级交易请求)。
在本实施例中,所述预设升级条件为:所述交易请求的所述标志位字段符合预设字段,且所述配置字段不为空值。
在步骤S1中通过预设升级条件识别交易请求的标志位字段Flag和配置字段Config,以鉴别交易请求是升级交易请求,还是普通交易请求。
S2.当所述目标节点的所述交易请求符合所述预设升级条件时,依据所述交易请求发起投票事务;
所述预设升级条件还包括:当前链高度达到预设链高度;
具体地,步骤S2可包括:
当所述目标节点的所述交易请求的所述标志位字段符合预设字段、所述配置字段不为空值且当前链高度达到预设链高度时,依据所述交易请求发起投票事务。
在实际应用中确定投票生效区块高度(即:预设链高度),依据所述交易请求以及所述投票生效区块高度发起投票事务,使区块链中的区块生成节点若检测到待生成的当前区块高度(即:当前链高度)是投票生效区块高度,同时标志位字段符合预设字段、所述配置字段不为空值则依据交易请求发起投票事务。
具体地,步骤S2可包括:确定投票事务的投票生效比例阈值,依据交易请求以及投票生效比例阈值发起投票事务,使区块链中的区块生成节点在投票通过的比例值大于投票生效比例阈值时则确定投票通过。
S3.在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
在具体实施例中,当交易请求的发起方发起交易请求时,则将该交易请求传输至区块链系统中,以使区块链中的多数节点或特定的节点,以及当前的区块生成目标节点接收到投票事务。进而区块生成的节点对区块链系统中与该投票事务关联的一切事务进行监督,依据投票事务对区块链系统环境、升级请求的发起方以及升级请求关联的内容进行判定,并依据判定结果来确定是否响应该投票事务。例如,可以依据区块高度、发起方针对交易请求关联内容的发起权限等投票事务规定的数据信息进行判定。若可以对该投票事务进行投票,则区块链中的多数节点或特定的节点对该投票提案事务进行投票。
S4.当投票通过则所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
需要说明的是:所述第一目标区块的区块结构由包含元数据的第一区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第一区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第一配置版本字段,所述第一配置版本字段用于记录当前升级的配置事务数据。
本实施例中,在区块链网络中每个区块的区块头添加配置版本字段ConfigVersion,用于保存当前区块使用的配置交易config Transaction版本,即当前区块使用的config Transaction所在的区块哈希值Hash,区块头的数据结构如下表3所示:
表3
字段 | 含义 |
Version | 版本:用于跟踪软件/协议的更新 |
Previous Block Hash | 父区块哈希值:引用区块链中父区块的哈希值 |
MerkleRoot | 默克根:该区块中交易默克树根的哈希值 |
Timestamp | 时间戳:该区块产生的近似时间 |
Bits | 难度目标:该区块工作量证明算法的难度目标 |
Nonce | 随机数:用于工作量证明算法的计数器 |
Config Version | 配置版本:当前配置事务所在区块的哈希值 |
在本实施例中,第一区块头中的所述第一配置版本字段Config Version存储的是当前区块使用的配置交易config Transaction版本。
区块主体的数据结构如表4所示:
表4
字段 | 含义 |
TransAmount | 区块中交易数 |
MerkleRoot | 区块中所有交易 |
进一步地,步骤S4包括:
当投票通过则所述目标节点进行升级交易打包生成所述第一目标区块,并将所述第一目标区块添加到区块链上,对投票同意的节点进行升级。
在本实施例中,区块链网络生成创世区块(第一个被最早构建的区块称为创世块)时,发起配置交易config Transaction时,需将预设置的相关配置和属性数据由configTransaction保存到创世区块中。区块链网络中所有节点产生区块和验证区块所需的属性和配置数据都从最新的config Transaction中获取配置Config,通过对称加密算法解密还原后使用,直至下一个包含config Transaction的区块出现。
在优选的实施例中,参阅图2执行完步骤S3后还可包括步骤A。
所述步骤A为:判断投票是否通过,若是,执行步骤S4;若否,执行步骤S5;
S5.当投票未通过则所述目标节点生成第二目标区块,并将所述第二目标区块添加到区块链上。
需要说明的是:所述第二目标区块的区块结构由包含元数据的第二区块头和构成包括交易数据的区块主体顺次组成,其中:所述第二区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第二配置版本字段,所述第二配置版本字段用于记录引用区块链中父区块的配置事务数据。
在本实施例中,区块链网络需要升级时,目标节点发起一次config Transaction交易,将升级后的执行方案的对称加密HASH值保存在这笔配置交易的Config字段中,并将Flag字段值置为0xFF,并将交易发送到区块链网络中,目标节点打包配置交易上链时,会检查每笔交易的Flag字段和Config字段,若某笔交易的Flag字段值为0xFF且Config字段不为空值,则判定该交易为config Transaction,节点广播该区的同时发起全网投票,若同意config Transaction执行的节点达到或超过全网节点的51%(或80%)时,全网同步该区块进行升级,并且后续产生的区块的区块头中的Config Version字段中自动保存此区块的Hash值,作为快速查找当前链上使用中的config Transaction所在区块,在新的configTransaction投票通过前,此区块后的所有节点都需要从当前config Transaction中获取所需的配置数据,节点打包区块或需要对其他节点创建的区块做验证时,根据区块头中的Config Version快速查找到当前config Transaction所在区块,然后找到该区块中的config Transaction,从Config字段中获取所需要的数据。若同意config Transaction执行的节点不足51%,则本次升级失败,该区块作为普通区块上链,网络中的所有节点继续使用原来的config Transaction数据。
在本实施例中,区块链系统的升级方法可通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求;若目标节点的交易请求符合预设升级条件,则表示该交易请求为升级交易请求,可依据交易请求发起投票事务,在区块链系统中传输投票事务,使区块生成节点执行响应投票事务进行投票,当投票通过则目标节点生成包括配置事务数据的第一目标区块,进行区块链系统升级,本发明通过在第一目标区块上添加配置事务数据,以实现区块链系统升级成功后,此后区块链统一使用升级后的配置事务数据工作,避免区块链系统升级时产生区块链分叉的情况。
本发明的区块链系统的升级方法在现有区块链的基本结构上添加了配置交易config Transaction,通过配置交易来修改区块结构、共识机制等可能引起区块链分叉的可升级项。包含配置交易configTransaction的区块在上链前要进行一次全网节点投票,根据全网节点的投票结果决定升级时否成功,若支持升级的节点数量占据多数,则升级成功,此后全网统一使用升级后的方案工作,若反对升级的节点占据多数,则升级失败,全网继续保持原有方案进行工作,这种方式避免了现有的区块链在升级时,只要有一个节点反对升级,就会造成区块链分叉,以及使用的方案与升级方案无法兼容时,造成区块链网络硬分叉(永久性分叉)的缺陷。
本发明的区块链系统的升级方法避免区块链升级时产生分叉,且通过全网节点投票的方式决定升级结果,保证了区块链平等、自由、透明,以及去中心化的基础,杜绝了个体意志的干扰。在区块头结构中添加了Config Version字段保存当前区块使用的配置交易config Transaction所在的区块的Hash值,通过此区块Hash值即可快速查询到configTransaction数据,且在通过包含config Transaction的区块的Config Version即可快速查询到上一个版本的config Transaction,以此类推,可以很容易的在整个区块链中找到所有的config Transaction版本,保证了升级方案可溯源,且当使用中的方案中存在重大安全隐患时,也可由此迅速做出执行方案回滚,避免损失。
实施例二
请参阅图3,本实施例的一种区块链系统的升级装置1,包括:监测单元11、投票事务发起单元12、投票单元13和升级单元14,其中:
监测单元11,用于监测目标节点的交易请求是否符合预设升级条件;
在实施例中,监测单元11通过监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求。
需要说明的是:所述交易请求包括标志位字段Flag和配置字段Config;其中,所述标志位字段用于标识所述交易请求,所述配置字段用于标识配置信息的对称加密哈希值HASH。
在本实施例中的交易请求的数据结构不同于现有的交易请求的数据结构,本实施例中的交易请求的数据结构比现有区块链的交易请求的数据结构多出两个字段Flag和Config,具体可参见表2。
作为举例而非限定,在本实施例中交易请求的数据结构中,当Flag字段值设为0x00,Config字段为空置时,表示该交易请求为普通交易请求;当Flag字段值设为0xFF,且Config字段值为本次升级方案的JSON字符串的对称加密HASH值时,表示该交易请求为配置交易config Transaction(即:升级交易请求)。
在本实施例中,所述预设升级条件为:所述交易请求的所述标志位字段符合预设字段,且所述配置字段不为空值。通过预设升级条件识别交易请求的标志位字段Flag和配置字段Config,以鉴别交易请求是升级交易请求,还是普通交易请求。
投票事务发起单元12,当所述目标节点的所述交易请求符合所述预设升级条件时,用于依据所述交易请求发起投票事务;
所述预设升级条件还包括:当前链高度达到预设链高度;
具体地,当所述目标节点的所述交易请求的所述标志位字段符合预设字段、所述配置字段不为空值且当前链高度达到预设链高度时,投票事务发起单元12依据所述交易请求发起投票事务。
在实际应用中可通过投票事务发起单元12确定投票生效区块高度,依据所述交易请求以及所述投票生效区块高度发起投票事务,使区块链中的区块生成节点若检测到待生成的当前区块高度是投票生效区块高度,同时标志位字段符合预设字段、所述配置字段不为空值则依据交易请求发起投票事务。
具体地,还可通过投票事务发起单元12确定投票事务的投票生效比例阈值,依据交易请求以及投票生效比例阈值发起投票事务,使区块链中的区块生成节点在投票通过的比例值大于投票生效比例阈值时则确定投票通过。
投票单元13,用于在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
在具体实施例中,当交易请求的发起方发起交易请求时,则将该交易请求传输至区块链系统中,以使区块链中的多数节点或特定的节点,以及当前的区块生成目标节点接收到投票事务。进而区块生成的节点对区块链系统中与该投票事务关联的一切事务进行监督,依据投票事务对区块链系统环境、升级请求的发起方以及升级请求关联的内容进行判定,并依据判定结果来确定是否响应该投票事务。例如,可以依据区块高度、发起方针对交易请求关联内容的发起权限等投票事务规定的数据信息进行判定。若可以对该投票事务进行投票,则区块链中的多数节点或特定的节点对该投票提案事务进行投票。
升级单元14,当投票通过时,用于控制所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
需要说明的是:所述第一目标区块的区块结构由包含元数据的第一区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第一区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第一配置版本字段,所述第一配置版本字段用于记录当前升级的配置事务数据。
本实施例中,在区块链网络中每个区块的区块头添加配置版本字段Config Version,用于保存当前区块使用的配置交易config Transaction版本,即当前区块使用的config Transaction所在的区块哈希值Hash,区块头的数据结构可参考表3。
在本实施例中,第一区块头中的所述第一配置版本字段Config Version存储的是当前区块使用的配置交易config Transaction版本。
区块主体的数据结构可参考表4。
进一步地,当投票通过时,采用升级单元14控制所述目标节点进行升级交易打包生成所述第一目标区块,并将所述第一目标区块添加到区块链上,对投票同意的节点进行升级。
在本实施例中,区块链网络生成创世区块(第一个被最早构建的区块称为创世块)时,发起配置交易config Transaction时,需将预设置的相关配置和属性数据由configTransaction保存到创世区块中。区块链网络中所有节点产生区块和验证区块所需的属性和配置数据都从最新的config Transaction中获取配置Config,通过对称加密算法解密还原后使用,直至下一个包含config Transaction的区块出现。
在本实施例中,当投票未通过则采用升级单元14控制所述目标节点生成第二目标区块,并将所述第二目标区块添加到区块链上。
需要说明的是:所述第二目标区块的区块结构由包含元数据的第二区块头和构成包括交易数据的区块主体顺次组成,其中:所述第二区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第二配置版本字段,所述第二配置版本字段用于记录引用区块链中父区块的配置事务数据。
本实施例中,区块链系统的升级装置1可通过监测单元11监测目标节点的交易请求是否符合预设升级条件,以判断该交易请求是升级交易请求,还是普通交易请求;若目标节点的交易请求符合预设升级条件,则表示该交易请求为升级交易请求,采用投票事务发起单元12依据交易请求发起投票事务,利用投票单元13在区块链系统中传输投票事务,使区块生成节点执行响应投票事务进行投票,当投票通过时,采用升级单元14控制目标节点生成包括配置事务数据的第一目标区块,进行区块链系统升级,本发明通过在第一目标区块上添加配置事务数据,以实现区块链系统升级成功后,此后区块链统一使用升级后的配置事务数据工作,避免区块链系统升级时产生区块链分叉的情况。
实施例三
为实现上述目的,本发明还提供一种计算机设备2,该计算机设备2包括多个计算机设备2,实施例二的区块链系统的升级装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备2至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器23、网络接口22以及区块链系统的升级装置1(参考图4)。需要指出的是,图4仅示出了具有组件-的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例一的区块链系统的升级方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器23在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器23通常用于控制计算机设备2的总体操作例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器23用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的区块链系统的升级装置1等。
所述网络接口22可包括无线网络接口或有线网络接口,该网络接口22通常用于在所述计算机设备2与其他计算机设备2之间建立通信连接。例如,所述网络接口22用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图4仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述区块链系统的升级装置1还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器23)所执行,以完成本发明。
实施例四
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器23执行时实现相应功能。本实施例的计算机可读存储介质用于存储区块链系统的升级装置1,被处理器23执行时实现实施例一的区块链系统的升级方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链系统的升级方法,其特征在于,包括:
监测目标节点的交易请求是否符合预设升级条件;
当所述目标节点的所述交易请求符合所述预设升级条件时,依据所述交易请求发起投票事务;
在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
当投票通过则所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
2.根据权利要求1所述的区块链系统升级方法,其特征在于,所述交易请求包括标志位字段和配置字段;
其中,所述标志位字段用于标识所述交易请求,所述配置字段用于标识配置信息的对称加密哈希值;
所述预设升级条件为:所述交易请求的所述标志位字段符合预设字段,且所述配置字段不为空值。
3.根据权利要求2所述的区块链系统升级方法,其特征在于,所述预设升级条件还包括:当前链高度达到预设链高度;
所述当所述目标节点的所述交易请求符合所述预设升级条件时,依据所述交易请求发起投票事务,包括:
当所述目标节点的所述交易请求的所述标志位字段符合预设字段、所述配置字段不为空值且当前链高度达到预设链高度时,依据所述交易请求发起投票事务。
4.根据权利要求1所述的区块链系统的升级方法,其特征在于,所述第一目标区块的区块结构由包含元数据的第一区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第一区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第一配置版本字段,所述第一配置版本字段用于记录当前升级的配置事务数据。
5.根据权利要求1所述的区块链系统的升级方法,其特征在于,所述当投票通过则所述目标节点生成第一目标区块,进行所述区块链系统升级,包括:
当投票通过则所述目标节点进行升级交易打包生成所述第一目标区块,并将所述第一目标区块添加到区块链上,对投票同意的节点进行升级。
6.根据权利要求1所述的区块链系统的升级方法,其特征在于,还包括:
当投票未通过则所述目标节点生成第二目标区块,并将所述第二目标区块添加到区块链上。
7.根据权利要求6所述的区块链系统的升级方法,其特征在于,所述第二目标区块的区块结构由包含元数据的第二区块头和构成包括交易数据的区块主体顺次组成,其中:
所述第二区块头依次包括版本字段、父区块哈希值字段、默克根字段、时间戳字段、难度目标字段、随机数字段和第二配置版本字段,所述第二配置版本字段用于记录引用区块链中父区块的配置事务数据。
8.一种区块链系统的升级装置,其特征在于,包括:
监测单元,用于监测目标节点的交易请求是否符合预设升级条件;
投票事务发起单元,当所述目标节点的所述交易请求符合所述预设升级条件时,用于依据所述交易请求发起投票事务;
投票单元,用于在区块链系统中传输所述投票事务,使区块生成节点执行响应所述投票事务进行投票;
升级单元,当投票通过时,用于控制所述目标节点生成第一目标区块,进行所述区块链系统升级;
其中,所述第一目标区块包括配置事务数据。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010906080.2A CN112035144B (zh) | 2020-09-01 | 2020-09-01 | 区块链系统的升级方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010906080.2A CN112035144B (zh) | 2020-09-01 | 2020-09-01 | 区块链系统的升级方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035144A true CN112035144A (zh) | 2020-12-04 |
CN112035144B CN112035144B (zh) | 2023-05-26 |
Family
ID=73590968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010906080.2A Active CN112035144B (zh) | 2020-09-01 | 2020-09-01 | 区块链系统的升级方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035144B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380149A (zh) * | 2021-01-18 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 基于节点内存的数据处理方法、装置、设备以及介质 |
CN112631641A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 区块链服务升级方法、装置、终端设备及存储介质 |
CN114189441A (zh) * | 2021-12-01 | 2022-03-15 | 北京众享比特科技有限公司 | 用于对区块链中节点进行升级的方法及其相关产品 |
CN114338677A (zh) * | 2021-12-30 | 2022-04-12 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
CN116664129A (zh) * | 2023-07-28 | 2023-08-29 | 杭州趣链科技有限公司 | 区块链账本数据迭代方法、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958787A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链系统升级方法、装置、设备及存储介质 |
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
US20190253239A1 (en) * | 2018-11-30 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain smart contract updates using decentralized decision |
WO2020008445A1 (en) * | 2018-07-06 | 2020-01-09 | Scytale Technologies Ltd | Encrypted blockchain voting system |
CN110768822A (zh) * | 2019-09-29 | 2020-02-07 | 南京金宁汇科技有限公司 | 动态升级联盟链组织结构的方法、系统及存储介质 |
-
2020
- 2020-09-01 CN CN202010906080.2A patent/CN112035144B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958787A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链系统升级方法、装置、设备及存储介质 |
WO2020008445A1 (en) * | 2018-07-06 | 2020-01-09 | Scytale Technologies Ltd | Encrypted blockchain voting system |
US20190253239A1 (en) * | 2018-11-30 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain smart contract updates using decentralized decision |
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
CN110768822A (zh) * | 2019-09-29 | 2020-02-07 | 南京金宁汇科技有限公司 | 动态升级联盟链组织结构的方法、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
李彬等: "基于区块链技术的自动需求响应系统应用初探", 《中国电机工程学报》, pages 3691 - 3702 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631641A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 区块链服务升级方法、装置、终端设备及存储介质 |
CN112380149A (zh) * | 2021-01-18 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 基于节点内存的数据处理方法、装置、设备以及介质 |
CN114189441A (zh) * | 2021-12-01 | 2022-03-15 | 北京众享比特科技有限公司 | 用于对区块链中节点进行升级的方法及其相关产品 |
CN114338677A (zh) * | 2021-12-30 | 2022-04-12 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
CN114338677B (zh) * | 2021-12-30 | 2022-10-21 | 中山大学 | 一种区块链系统中的区块生成方法和相关装置 |
CN116664129A (zh) * | 2023-07-28 | 2023-08-29 | 杭州趣链科技有限公司 | 区块链账本数据迭代方法、电子设备及可读存储介质 |
CN116664129B (zh) * | 2023-07-28 | 2023-11-10 | 武汉趣链数字科技有限公司 | 区块链账本数据迭代方法、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112035144B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035144A (zh) | 区块链系统的升级方法、装置、计算机设备及存储介质 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN107396360B (zh) | 区块验证方法及装置 | |
CN110300984B (zh) | 改变在区块链中记录的智能合约 | |
US20190278767A1 (en) | Smart contract upgrade method and system based on alliance chain | |
CN110690974B (zh) | 基于区块链的数据验证方法、装置、设备及可读存储介质 | |
CN108572986B (zh) | 一种数据更新的方法及节点设备 | |
CN111294390B (zh) | 一种区块数据快速同步方法、装置、设备及存储介质 | |
CN111209343B (zh) | 节点数据同步方法、装置、设备以及存储介质 | |
CN110599346A (zh) | 一种区块链信息获取方法及相关设备 | |
CN109542602B (zh) | 一种基于区块链的分布式任务处理方法、装置及系统 | |
CN110995825B (zh) | 一种智能合约的发布方法、智能节点设备及存储介质 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
CN114338054B (zh) | 区块链可信数据传输、验证和获取方法及装置 | |
WO2021174882A1 (zh) | 数据分片校验方法、装置、计算机设备及可读存储介质 | |
CN111597567A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN111698227B (zh) | 信息同步管理方法、装置、计算机系统及可读存储介质 | |
CN112817935A (zh) | 基于字段类型的数据处理方法、装置、设备及存储介质 | |
CN113330419A (zh) | 一种设备应用安装方法和装置 | |
CN114995894A (zh) | 操作系统的启动控制方法、终端设备及可读存储介质 | |
CN111722946A (zh) | 分布式事务处理方法、装置、计算机设备及可读存储介质 | |
CN111489156A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |