CN112256305B - 一种区块链软件更新方法及系统 - Google Patents
一种区块链软件更新方法及系统 Download PDFInfo
- Publication number
- CN112256305B CN112256305B CN202011214548.8A CN202011214548A CN112256305B CN 112256305 B CN112256305 B CN 112256305B CN 202011214548 A CN202011214548 A CN 202011214548A CN 112256305 B CN112256305 B CN 112256305B
- Authority
- CN
- China
- Prior art keywords
- nodes
- updating
- update
- consensus
- updated
- 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
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Abstract
本发明涉及一种区块链软件更新方法及系统,其中所述方法包括:区块链社区在链下达成更新共识;基于所述更新共识对全网节点进行分组,其中不同群组之间不存在相同节点;不同群组中的节点在不同的时间段内进行所述区块链软件更新。通过本发明可以避免分叉带来的负面影响,例如,保持区块链原有的通证经济学设计,避免区块链网络和基础设施面临风险、区块链社区产生分裂;降低虚拟货币市场的风险和困扰,以及该区块链上层分布式应用的失能风险;提高该区块链使用者和投资者信心;维护该区块链上下游生态。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种区块链软件更新方法及系统。
背景技术
区块链技术起始于2009年的比特币,为第一代区块链技术,特征为开创了基于P2P网络无许可分布式账本新纪元。2014年以太坊在比特币的基础上改进了虚拟机,使用完备图灵机工作机制完成了其创始人将计算机构筑到分布式记账系统上的想法,开创了“世界计算机” 智能合约应用先河,成为第二代区块链技术的代表。
尽管区块链技术发展至今已有十年有余,由于其技术领域的前沿性及复杂性,一些基础建设问题一直没有得到很好的解决,其中包括了区块链更新技术。目前的区块链系统其软件的更新与普通的非区块链系统,或者说中心化系统的软件更新有很大的差异。普通软件更新非常容易,只要下载新版本覆盖旧版本即可马上使用。但是区块链软件的更新无法依靠只更新本地软件来实现。由于共识需要全网协作,部分节点本地的更新反而会打破整体共识规则,导致新旧两种版本的节点各自形成自己的共识而分道扬镳,其结果就是产生分叉。
区块链分叉对于区块链系统来说影响巨大深远,它不仅使得社区发生分裂(包括节点、矿工集群、验证者、轻节点等),也使链上历史发生分裂,形成两种版本的记录,彼此之间既相似又不同。其上运行的价值锁链也会因此发生复制混淆,成为恶意攻击的极好靶点。
需要说明的是,目前与区块链更新相关的发明案绝大多数要么是区块链数据更新,其实就是区块链的记账,或者说新区块如何加入,要么是用区块链作为手段来更新落地端应用的数据。
有一些试图缓解这种分叉过程带来的影响的方法,比如Tezos试图通过社区治理,通过在几个月的较短周期内进行较小的渐进式升级使得在社区投票时比较容易达成一致,通过社区投票规则中设定较高的参与率(80%)和绝对多数值(80%)使升级方案通过后比较容易一致更新,用这种小步滚动的方法更新到新版本。其并没有从根本上解决共识分裂,防止分叉:尽管有超过80%的社区一致性,但是仍然有少部分未达成一致或者可能不知道这个更新的,所以在进行更新的时候仍然会造成分叉;给社区带来较大压力:短期举行一次投票和更新,且要求如此高的参与度,使社区使用者必须时刻准备为此工作,维护成本较高。
因此,为了解决目前区块链领域一大痛点,为区块链未来发展带来很大帮助,如何避免区块链更新产生分叉是当前亟待解决的问题。
发明内容
为了达到上述目的,本发明提供一种区块链软件更新方法,包括以下步骤:
步骤S101、区块链社区在链下达成更新共识;
步骤S103、基于所述更新共识对全网节点进行分组,其中不同群组之间的不存在相同节点;
步骤S105、不同群组中的节点在不同的时间段内进行所述区块链软件更新。
其中,所述步骤S101具体包括:
确定更新时间点、更新元数据、更新配置参数、更新分组方案和更新发起节点中的一个或多个。
其中,在达成更新共识之前,所述区块链全网工作在旧版本下。
其中,所述步骤S105包括:
步骤S1051、发起节点发起第一更新交易,将所述更新共识写入所述第一更新交易,签名并广播至全网;
步骤S1053、共识节点从P2P网络收集并验证所述第一更新交易合法性,加入新区块,发布到全网;
步骤S1055、全网节点收到所述新区块,在验证交易时读取到所述第一更新交易,验证所述共识节点发布第一更新交易的合法性,若合法,依据所述更新共识对所述全网节点进行分组,并进行自我系统更新。
其中,所述步骤S1053中验证所述第一更新交易的合法性具体包括:
检查所述交易内容与所述更新共识是否一致。
其中,所述步骤1055中所述依据所述更新共识对所述全网节点进行分组,并进行自我系统更新,具体包括:
按照预定规则对所述全网节点进行分组;
每组节点在不同的时间段内依次更新;
当更新的节点的数量小于预定阈值时,更新后的节点暂停工作,而其他组未更新节点保持在旧版本下工作;
当所述更新节点数量大于或等于预定阈值时,启动更新后的节点工作在新版本下,暂停所有处于旧版本下的未更新节点的工作,并依次对未更新节点进行软件更新。
其中,所述不同的时间段彼此之间无交集。
其中,所述方法还包括:
未能及时更新的节点在所述更新时间点之后自检,并暂停工作进行及时更新后恢复工作。
其中,所述方法还包括:对于恶意避开更新继续工作的节点,其他节点将不再予以合作。
本发明还提出了一种区块链软件更新系统,其包括:
更新共识模块,其用于使得区块链社区在链下达成更新共识;
分组模块,其用于基于所述更新共识对全网节点进行分组,其中不同群组之间的不存在相同节点;
更新实施模块,其用于不同群组中的节点在不同的时间段内进行所述区块链软件更新。
通过本发明可以避免分叉带来的负面影响,例如,保持区块链原有的通证经济学设计,避免区块链网络和基础设施面临风险、区块链社区产生分裂;降低虚拟货币市场的风险和困扰,以及该区块链上层分布式应用的失能风险;提高该区块链使用者和投资者信心;维护该区块链上下游生态。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出与本发明某一实施例一致的一种区块链软件更新方法流程图;
图2是示出与本发明某一实施例一致的对所述全网节点进行分组和更新的流程图;
图3是示出与本发明某一实施例一致的某一步骤的流程图;
图4是示出根据本发明实施例的一种区块链软件更新的系统结构框图;
图5是示出与本发明某一实施例一致的对所述全网节点进行分组和更新的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
由于目前区块链软件的更新无法依靠只更新本地软件来实现。其主要原因在于共识需要全网协作,如果只是进行部分节点本地的更新反而会打破整体共识规则,导致新旧两种版本的节点各自形成自己的共识而分道扬镳,从而出现分叉的结果;最终使得社区发生分裂(包括节点、矿工集群、验证者、轻节点等),也使链上历史发生分裂,形成两种版本的记录,彼此之间既相似又不同。其上运行的价值锁链也会因此发生复制混淆,成为恶意攻击的极好靶点。而本发明根据更新共识,并且将全网节点进行分组,对其依次进行更新,使得同一时刻进行工作的节点均在同一版本(新版本或旧版本)下进行,从而可以避免部分节点进行更新时出现工作中的节点在不同版本下进行工作的情况,避免了进行节点更新时产生分叉的情况。
下面结合附图详细说明本发明的可选实施例。
实施例一、
如图1所示,本发明公开了一种区块链软件更新方法,包括以下步骤:
一种区块链软件更新方法,包括以下步骤:
步骤S101、区块链社区在链下达成更新共识;
步骤S103、基于所述更新共识对全网节点进行分组,其中不同群组之间的不存在相同节点;
步骤S105、不同群组中的节点在不同的时间段内进行所述区块链软件更新。
为了便于本领域技术人员可以更好地理解本实施例的技术方案,故对其进行详细的说明。其中,本实施例的所述步骤S101具体可以包括:
确定更新时间点、更新元数据、更新配置参数、更新分组方案和更新发起节点中的一个或多个。
另外,在达成更新共识之前,所述区块链全网工作在旧版本下。
进一步地,参见图2所示,本发明实施例的所述步骤S105可以包括:
步骤S1051、发起节点发起第一更新交易,将所述更新共识写入所述第一更新交易,签名并广播至全网;
步骤S1053、共识节点从P2P(Peer to Peer,对等网络)网络收集并验证所述第一更新交易合法性,加入新区块,发布到全网;
步骤S1055、全网节点收到所述新区块,在验证交易时扫描到所述第一更新交易,验证所述共识节点的第一更新交易的合法性,若合法,依据所述更新共识对所述全网节点进行分组,并进行自我系统更新。
在一个应用场景中,所述步骤S1053中验证所述第一更新交易的合法性具体包括:
检查所述交易内容与所述更新共识是否一致。
进一步地,参见图3所示,所述步骤1055中所述依据所述更新共识对所述全网节点进行分组,并进行自我系统更新,具体包括:
按照预定规则对所述全网节点进行分组;
每组节点在不同的时间段内依次更新;
当更新的节点的数量小于预定阈值时,更新后的节点暂停工作,而其他组未更新节点保持在旧版本下工作;
当所述更新节点数量大于或等于预定阈值时,启动更新后的节点工作在新版本下,暂停所有处于旧版本下的未更新节点的工作,并依次对未更新节点进行软件更新。
为了保证节点在同一时刻在同一版本(新版本或旧版本)下工作,需要保证,所述不同的时间段彼此之间无交集;另外,为了避免在更新过程中进行版本切换工作时出现真空区的情况,可以使得不同的时间段为连续的时间段。
另外,本发明实施例的所述区块链软件更新方法还可以包括:
未能及时更新的节点在所述更新时间点之后自检,并暂停工作进行及时更新后恢复工作。
在一个应用场景中,所述区块链软件更新方法还可以包括:对于恶意避开更新继续工作的节点,其他节点将不再予以合作。
实施例二、
在实施例一的基础上,本实施例还可以包括以下内容:
参见图4所示,本发明还提出了一种区块链软件更新系统,其包括:
更新共识模块,其用于使得区块链社区在链下达成更新共识;
分组模块,其用于基于所述更新共识对全网节点进行分组,其中不同群组之间的不存在相同节点;
更新实施模块,其用于不同群组中的节点在不同的时间段内进行所述区块链软件更新。
实施例三、
在上述实施例的基础上,本实施例还可以包括以下内容:
参见图5所示,对所述全网节点进行分组和更新的步骤具体可以包括:
步骤1、区块链全网在旧版本下工作;
步骤2、区块链社区在链下达成更新共识(对更新达成一致,确定更新时间点、元数据、配置参数等,确定甲乙组方案和发起人及节点);
步骤3、所述发起人在所述节点发起一个更新交易,将所述共识写入交易并签名,广播到全网;
步骤4、共识节点根据该区块链的共识机制打包更新交易,验证所述更新交易合法性(检查所述交易内容与所述更新共识是否一致,所述发起人和节点合法等),加入新区块,发布到全网;其中所述共识节点是指所有的旷工节点,任何一条区块链上的参与共识的节点
步骤5、全网节点(包含所有节点)收到所述新区块,在验证交易时扫描到所述更新交易,验证所述更新交易的合法性,若合法,依据所述更新信息分甲乙两组进行自我系统更新;
步骤6、甲乙组区分可以节点哈希数值单双数区分,或者其他方法,具体可根据需求来设定;
步骤7、在所述更新时间点之前甲组节点更新,乙组节点保持在旧版本下工作,甲组更新完成后暂停工作;
步骤8、在所述更新时间点之后甲组节点启动其在新版本下的工作,同时乙组节点暂停工作,更新,更新完成后直接在新版本下工作;
步骤9、区块链全网在新版本下工作;
步骤10、未上线或者因其他原因未能及时更新的节点:在所述更新时间点之后自检,暂停工作,更新,恢复工作;若恶意避开更新继续工作,其他节点将不予合作;
步骤11、区块链全网时刻在最新版本状态下稳定工作,持有旧版本的节点除非是在更新期更新时间点之前的乙组,否则将被区块链分布式群体合作所排除;
其中,对于步骤2,区块链社区在链下达成的更新共识可采取的方法应包括,但不限于:
对此次更新达成一致的投票情况,包括:投票时间段,计票算法,投票数,赞成票数,通过规则,通过与否;
更新元数据应包括:更新的版本号,被替代的版本号,更新内容列表;
更新参数应包括: 更新时间点,更新发起人,更新发起节点,更新发起时间点,甲乙组分组方案
更新时间点:指全网版本更新时间点,是甲组启动在新版本进行工作,同时乙组停止旧版本上工作开始更新的时间;优选的标识是区块高度,因为其在异步网络上是个固定指标,且与区块生成节奏一致;
更新发起人:为安全起见,须指定一个社区认可的可靠操作者来发出此次更新交易;通常这个人是基金会负责人或者开发者负责人,在社区具有足够的知名度,以减少更新时的操作者作恶可能性;
更新发起节点:为安全起见,须指定一个可靠节点来发出此次更新交易;通常这个节点是某个系统备用节点,由开发团队掌握,以减少更新时被黑客作恶的可能性;
更新发起时间点:指更新发起人发出更新交易的时间点;优选的标识是区块高度;这样社区可以约定在这个时刻集中在线率一举完成全网的版本更新;
其中,对于步骤3,所述更新发起人发起更新交易,优选的,通过命令行专业工具,先物理上登录到所述更新节点,使用更新节点的本初账号发起更新交易,填入交易内容,内容是上述第2点内容,用账号私钥,向全网发出交易;优选的,如果是开发者成员,使用的是系统后备节点,且节点有管理员密钥组件,可在用账号私钥签名的同时附加个人私钥签名,以提高安全性。
其中,对于步骤4,总体过程类似区块链对普通交易的打包上链过程,其中略有特别的是多了一个验证更新交易合法性的过程,包括:
a)验证提交的更新交易内容与社区链下投票的内容一致性,优选的,使用预言机自动化验证:将社区投票内容放置在预言机上,提出验证码,验证时对比交易提取的验证码是否与预言机上验证码等价;
b)检查更新交易中的签名是否是社区确定的更新发起人和发起节点;
如果a) , b)都通过,合法;否则,不合法;
其中,对于步骤5,总体过程类似普通节点接收新区块记账的过程,不同的是,当发现更新交易时,做如上述第4点的验证,合法后进入更新实施步骤。
其中,对于步骤6,原则上,可以根据需要以任意方式分组,举例来说,有以下两种环境下两种优选方式:
开放式非授权环境下:这种环境下考虑公平、机会均等、随机、去集团化,可用节点ID的哈希数值的单双数来分组,由于哈希散列的特性,这种分组方式具有很好的抗身份和集团化攻击能力,可防御女巫和日蚀等攻击;
授权环境下:这种环境下考虑控制、稳定、高效、安全,可将高权限高可靠性的节点优先纳入甲组,在保证甲组有足够多的可靠节点维持运行全网的功能下,可尽量提前更新时间点,缩短更新进程,提高效率;
其中,对于步骤7和8,甲乙两组交替更新,关键在于,在实地启动更新后,在更新时间点前,乙组有足够多的在线节点可以维持全网正常工作,在更新时间点时,甲组有足够多的节点完成了更新,且可以维持全网正常工作,在更新时间点后,在任意时刻,统计甲组在线的节点、甲组下线的节点、乙组已完成更新并在线的节点,其在线工作的节点总数足够维持全网正常工作。
其中,对于步骤10,在社区执行更新后,对于那些未能及时参与更新的节点,上线后可以马上更新自身的版本,如果不更新也不会因为旧版本而扰乱社区的工作秩序。
其中,对于步骤11,这里建立一个规则,即不管在更新前,更新中,还是更新后,全网都有且仅有一个明确统一的运行版本,不在这个版本上运行的节点将不被分布式工作队伍认可。
以上实施例是以甲乙两组节点为例,当然本申请中的全网节点可以分为任意多组,只要保证全网和组内可正常运行即可。
实施例四
在上述实施例的基础上,本实施例还可以包括以下内容:
本发明在进行更新时,其更新分组方案为三组及以上,本实施以三组为例,其中,对所述全网节点进行分组和更新的步骤具体可以包括:
步骤1、区块链全网在旧版本下工作;
步骤2、区块链社区在链下达成更新共识;
步骤3、所述发起人在所述节点发起一个更新交易,将所述共识写入交易并签名,广播到全网;
步骤4、共识节点根据该区块链的共识机制打包更新交易,验证所述更新交易合法性,加入新区块,发布到全网;
步骤5、全网节点(包含所有节点)收到所述新区块,在验证交易时扫描到所述更新交易,验证所述更新交易的合法性,若合法,依据所述更新信息分ABC三组(其与实施例三中甲乙两组为相同性质)进行自我系统更新,并且对应存在前后两个具有一定时间间隔的更新时间点(两个更新时间点分别为在先的第一更新时间点和在后的第二更新时间点);
步骤6、在所述第一更新时间点之前A组节点更新,BC组节点保持在旧版本下工作,A组更新完成后暂停工作;
步骤7、在所述第一更新时间点之后B组节点更新,A组节点暂停工作,并且C组节点保持在旧版本下工作;
步骤8、在所述第二更新时间点之后,AB组节点启动并在新版本下的工作,同时C组节点暂停工作并进行更新,C组节点更新完成后直接在新版本下工作;
步骤9、区块链全网在新版本下工作;
第一更新时间点:指节点更新时间点,是A组节点更新完成并暂停工作,B组节点开始更新,C组在旧版本上工作的时间;
第二更新时间点:指节点更新时间点,是AB组启动在新版本进行工作,同时C组停止旧版本上工作开始更新的时间;
其中,对于步骤7和8,ABC三组依次完成更新,关键在于,在实地启动更新后,在第一更新时间点后,A组处于暂停工作状态,B组处于更新状态,在第二更新时间点前,C组有足够多的在线节点可以维持全网正常工作,在第二更新时间点时,AB两组有足够多的节点完成了更新,且可以维持全网正常工作,在第二更新时间点后,在任意时刻,统计AB两组在线的节点、AB两组下线的节点、C组已完成更新并在线的节点,其在线工作的节点总数足够维持全网正常工作。
实施例五
本公开实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行如上实施例所述的方法步骤。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(AN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。
Claims (10)
1.一种区块链软件更新方法,其特征在于,包括以下步骤:
步骤S101、区块链社区在链下达成更新共识,所述更新共识为对更新达成一致;
步骤S103、基于所述更新共识对全网节点进行分组,其中不同群组之间不存在相同节点;
步骤S105、不同群组中的节点在不同的时间段内进行所述区块链软件更新。
2.如权利要求1所述方法,其特征在于,所述步骤S101具体包括:
确定更新时间点、更新元数据、更新配置参数、更新分组方案和更新发起节点中的一个或多个。
3.如权利要求1所述方法,其特征在于,在达成更新共识之前,所述区块链全网工作在旧版本下。
4.如权利要求1所述方法,其特征在于,所述步骤S105包括:
步骤S1051、发起节点发起第一更新交易,将所述更新共识写入所述第一更新交易,签名并广播至全网;
步骤S1053、共识节点从P2P网络收集并验证所述第一更新交易合法性,加入新区块,发布到全网;
步骤S1055、全网节点收到所述新区块,在验证交易时读取到所述第一更新交易,验证所述共识节点发布第一更新交易的合法性,若合法,依据所述更新共识对所述全网节点进行分组,并进行自我系统更新。
5.如权利要求4所述方法,其特征在于,所述步骤S1053中验证所述第一更新交易的合法性具体包括:
检查交易内容与所述更新共识是否一致。
6.如权利要求4所述方法,其特征在于,所述步骤1055中所述依据所述更新共识对所述全网节点进行分组,并进行自我系统更新,具体包括:
按照预定规则对所述全网节点进行分组;
每组节点在不同的时间段内依次更新;
当更新的节点的数量小于预定阈值时,更新后的节点暂停工作,而其他组未更新节点保持在旧版本下工作;
当所述更新节点数量大于或等于预定阈值时,启动更新后的节点工作在新版本下,暂停所有处于旧版本下的未更新节点的工作,并依次对未更新节点进行软件更新。
7.如权利要求1所述方法,其特征在于,所述不同的时间段彼此之间无交集。
8.如权利要求2所述方法,其特征在于,所述方法还包括:
未能及时更新的节点在所述更新时间点之后自检,并暂停工作进行及时更新后恢复工作。
9.如权利要求2所述方法,其特征在于,所述方法还包括:对于恶意避开更新继续工作的节点,其他节点将不再予以合作。
10.一种使用如权利要求1-9任意一项所述区块链软件更新方法的区块链软件更新系统,其特征在于,包括:
更新共识模块,其用于使得区块链社区在链下达成更新共识;
分组模块,其用于基于所述更新共识对全网节点进行分组,其中不同群组之间不存在相同节点;
更新实施模块,其用于不同群组中的节点在不同的时间段内进行所述区块链软件更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214548.8A CN112256305B (zh) | 2020-11-04 | 2020-11-04 | 一种区块链软件更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214548.8A CN112256305B (zh) | 2020-11-04 | 2020-11-04 | 一种区块链软件更新方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256305A CN112256305A (zh) | 2021-01-22 |
CN112256305B true CN112256305B (zh) | 2022-05-10 |
Family
ID=74267310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011214548.8A Active CN112256305B (zh) | 2020-11-04 | 2020-11-04 | 一种区块链软件更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256305B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641391B (zh) * | 2021-10-19 | 2022-02-18 | 杭州趣链科技有限公司 | 升级区块链系统的方法、装置及终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
CN110493345A (zh) * | 2019-08-23 | 2019-11-22 | 北京智芯微电子科技有限公司 | 基于区块链的物联网终端软件升级方法及系统 |
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
CN111291060A (zh) * | 2020-01-14 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111556049A (zh) * | 2020-04-26 | 2020-08-18 | 苏州鸿链信息科技有限公司 | 一种基于共识节点分组隔离的区块链隐私保护方法 |
CN111861464A (zh) * | 2020-07-18 | 2020-10-30 | 北京天仪百康科贸有限公司 | 区块链的节点共识方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10304143B2 (en) * | 2016-05-05 | 2019-05-28 | Lance Timothy Kasper | Consensus system for manipulation resistant digital record keeping |
CN108122165B (zh) * | 2017-12-15 | 2020-10-30 | 北京中电普华信息技术有限公司 | 一种区块链共识方法及系统 |
CN110445627B (zh) * | 2019-08-12 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 群组更新方法、装置、计算机设备以及计算机存储介质 |
CN111698094B (zh) * | 2020-06-12 | 2023-06-09 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及区块链系统 |
-
2020
- 2020-11-04 CN CN202011214548.8A patent/CN112256305B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814905A (zh) * | 2019-01-17 | 2019-05-28 | 上海边界智能科技有限公司 | 一种基于区块链的软件升级方法及装置 |
CN110493345A (zh) * | 2019-08-23 | 2019-11-22 | 北京智芯微电子科技有限公司 | 基于区块链的物联网终端软件升级方法及系统 |
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
CN111291060A (zh) * | 2020-01-14 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111556049A (zh) * | 2020-04-26 | 2020-08-18 | 苏州鸿链信息科技有限公司 | 一种基于共识节点分组隔离的区块链隐私保护方法 |
CN111861464A (zh) * | 2020-07-18 | 2020-10-30 | 北京天仪百康科贸有限公司 | 区块链的节点共识方法及系统 |
Non-Patent Citations (2)
Title |
---|
"Research on Block-Chain-Based Intelligent Transaction and Collaborative Scheduling Strategies for Large Grid";Xiaolin Fu 等;《IEEE Access》;20200818;第8卷;第151866-151877页 * |
"基于区块链的共识机制研究";丁越;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20200215;第I138-980页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112256305A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10630463B2 (en) | Meta block chain | |
WO2021036545A1 (zh) | 一种基于智能合约的数据处理方法、设备及存储介质 | |
CN110097467B (zh) | 一种针对智能合约安全性和稳定性的侧链测试系统和方法 | |
US20200027066A1 (en) | Blockchain-Based Digital Token Utilization | |
JP2024038031A (ja) | セキュアな投票及び配布に利用されるブロックチェーンが実装された計数システム及び方法 | |
CN110633323A (zh) | 业务数据存储方法、装置、存储介质和计算机设备 | |
CN115210741B (zh) | 部分有序的区块链 | |
US11074139B2 (en) | Dynamic block chain system using metadata for backing up data based on digest rules | |
CN111133463A (zh) | 使用分布式协调的智能合约执行 | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN109542888A (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN111985003A (zh) | 数据库恶意对等体识别 | |
US11928222B2 (en) | Distributed ledger network implementing a synchronous trust consensus model | |
CN110598375B (zh) | 一种数据处理方法、装置及存储介质 | |
CN114372296B (zh) | 一种基于区块链的用户行为数据审计方法及系统 | |
Yadav et al. | A comparative study on consensus mechanism with security threats and future scopes: Blockchain | |
CN109658099B (zh) | 一种基于区块链的账本记账方法 | |
CN111339110A (zh) | 基于区块链的交易备份方法及系统 | |
CN112256305B (zh) | 一种区块链软件更新方法及系统 | |
WO2018013124A1 (en) | Digital asset platform | |
CN111143874A (zh) | 基于区块链的起重设备监测方法、系统及存储介质 | |
CN114650289B (zh) | 用于区块链共识的方法及装置 | |
CN113472543A (zh) | 基于区块链的就业数据处理方法、装置、电子设备及介质 | |
CN114329550A (zh) | 区块链链下交易方法、装置、设备及存储介质 | |
WO2023025394A1 (en) | Consensus method for blockchain |
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 |