区块链代码块独立升级方法、装置及电子设备制造方法及图纸

技术编号:21570849 阅读:22 留言:0更新日期:2019-07-10 15:14
一种区块链代码块独立升级方法,其中,所述区块链上的区块,包括代码块和数据块,所述方法包括以下步骤:将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络;将包含升级代码的新版本代码块经过共识过程后上链;新版本代码块生效,根据新的代码逻辑执行区块链协议,完成区块链协议的升级。本发明专利技术还提供一种区块链代码块独立升级装置,将区块链上的功能相对独立的代码块独立进行升级,便于区块链技术的开发和升级;协议的升级过程在链上进行,投票过程公开、透明,每个用户获得与其持有的权益等比重的投票权,对每个用户都非常公平;新版本代码不需要考虑和处理老版本的代码逻辑,设计简单,逻辑清晰,维护方便,便于测试。

Block Chain Code Block Independent Upgrade Method, Device and Electronic Equipment

【技术实现步骤摘要】
区块链代码块独立升级方法、装置及电子设备
本专利技术涉及区块链技术,尤其涉及一种区块链协议升级的方法、装置及电子设备。
技术介绍
区块链技术是维护一个不断增长的数据记录的分布式数据库,这些数据通过密码学的技术和之前被写入的所有数据关联,使得第三方甚至是节点的拥有者难以篡改。区块(block)包含有数据库中实际需要保存的数据,这些数据通过区块组织起来被写入数据库。链(chain)通常指的是利用Merkletree等方式来校验当前所有区块是否被修改。目前,区块链技术主要分为以下三类:公有区块链((PublicBlockChains))是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。行业区块链((ConsortiumBlockChains)):由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程,其他任何人可以通过该区块链开放的API进行限定查询。私有区块链((PrivateBlockChains)):仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。由于区块链技术去中心化特性,不能强制客户端升级其客户端及协议,因此区块链的协议升级非常困难。当新协议与旧协议不兼容时,例如新协议修改了区块链的数据结构、共识算法、校验规则、系统参数甚至于修复某些bug等,这时无法采用传统的停机升级方式,只能通过硬分叉解决。实施硬分叉,部分没有升级的节点无法验证已经升级的节点生产的区块,必须要说服绝大多数的共识参与方在短时间内完成软件的升级,否则将会分叉出两条独立的链。此外,随着版本的不断更新迭代,为了能够处理所有版本的处理逻辑和校验逻辑,客户端代码越来越复杂,使得测试和维护也越来越困难。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种区块链代码块独立升级方法,将区块链上的代码块独立进行升级,避免区块链分成两条独立的链,降低客户端代码的复杂程度。为实现上述目的,本专利技术提供的区块链代码块独立升级方法,其中,所述区块链上的区块,包括代码块和数据块,所述方法包括以下步骤:将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络;将包含升级代码的新版本代码块经过共识过程后上链;新版本代码块生效,根据新的代码逻辑执行区块链协议,完成区块链协议的升级。进一步地,所述代码块包括,需要升级的代码块编号、升级后的版本号,以及升级后的代码;所述数据块包括,区块的业务数据,所述区块的业务数据根据所述代码块的最新生效版本进行校验和处理。进一步地,所述将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络的步骤,包括以下步骤:下载包括所述代码块最初版本的代码的创始块;将所述最初版本的代码写入本地计算设备;执行所述最初版本的代码加入到区块链网络。进一步地,所述新版本代码块生效的步骤,进一步包括以下步骤:接收客户端根据其持有的权益按比重进行的投票;所述新版本代码块在预定区块高度内得到的投票累积比重超过预设阈值时,确认新版本代码块生效。更进一步地,所述根据新的代码逻辑执行区块链协议,完成区块链协议的升级的步骤,包括以下步骤:将所述新版本代码块写入本地计算设备;在所述新版本代码块生效后的高度,按照新的代码逻辑执行区块链协议,完成区块链协议的升级。为实现上述目的,本专利技术提供一种区块链代码块独立升级装置,其中,所述区块链上的区块,包括代码块和数据块,所述装置,包括,客户端模块、共识模块、以及执行模块,其中,所述客户端模块,将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络;所述共识模块,其将包含升级代码的新版本代码块经过共识过程后上链;所述执行模块,其在所述新版本代码块生效后,根据新的代码逻辑执行区块链协议,完成区块链协议的升级。进一步地,所述代码块包括,需要升级的代码块编号、升级后的版本号,以及升级后的代码;所述数据块包括,区块的业务数据,所述区块的业务数据根据所述代码块的最新生效版本进行校验和处理。进一步地,所述客户端模块,下载包括所述代码块最初版本的代码的创始块,将所述最初版本的代码写入本地计算设备,并执行最初版本的代码加入到区块链网络。进一步地,包括生效确认模块,所述生效确认模块,其接收客户端根据其持有的权益按比重进行的投票,所述新版本代码块在预定区块高度内得到的投票累积比重超过预设阈值时,确认新版本代码块生效。更进一步地,所述升级模块,其将所述新版本代码块写入本地计算设备,在所述新版本代码块生效后的高度,按照新的代码逻辑执行区块链协议,完成区块链协议的升级。为实现上述目的,本专利技术提供的一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行上述的区块链代码块独立升级方法。为实现上述目的,本专利技术提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的区块链代码块独立升级方法。本专利技术的一种区块链代码块独立升级方法,具有以下有益效果:1)区块链上的功能相对独立的代码块独立进行升级,便于区块链技术的开发和升级;2)协议的升级过程在链上进行,投票过程公开、透明,每个用户获得与其持有的权益等比重的投票权,对每个用户都非常公平;3)新版本代码不需要考虑和处理老版本的代码逻辑,设计简单,逻辑清晰,维护方便,便于测试。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为根据本专利技术的区块链代码块独立升级方法流程图;图2为根据本专利技术的电子设备结构示意图;图3为根据本专利技术的区块链代码块独立升级装置结构示意图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。需要说明的是,在本说明书实施例中,将区块链划分为功能相对独立的多个代码块,共识节点将该升级代码加入到待升级的代码块中进行独立升级,避免了区块链分成两条独立的链,同时也降低了客户端代码的复杂程度。在本实施例中,区块链的代码块,包括:区块链的数据结构以及对这些数据结构的校验和处理规则、共识算法、加解密和签名等密码学工具、执行智能合约的虚拟机、网络传输协议等代码块。上述各代码块之间具有相互的独立性,对某个代码块的修改和升级可以完全不影响到其他代码块,因此,可以给各代码块单独设置版本号,各部分可以独立开发和升级。实施例一图1为根据本专利技术的区块链代码块独立升级方法流程图,下面将参考图1,对本专利技术的区块链代码块独立升级方法进行详细描述。首先,在步骤101,将区块链上的区块划分为代码块和数据块。其中,代码块,包含需要升级的代码块编号、升级后的版本号,以及升级后的代码;数据块,包含区块的业务数据,区块的业务数据根据代码块的最新生效版本进行校验和处理。在步骤10本文档来自技高网
...

【技术保护点】
1.一种区块链代码块独立升级方法,其中,所述区块链上的区块,包括代码块和数据块,其特征在于,所述方法包括以下步骤:将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络;将包含升级代码的新版本代码块经过共识过程后上链;新版本代码块生效,根据新的代码逻辑执行区块链协议,完成区块链协议的升级。

【技术特征摘要】
1.一种区块链代码块独立升级方法,其中,所述区块链上的区块,包括代码块和数据块,其特征在于,所述方法包括以下步骤:将下载的创世块代码写入本地计算设备,执行所述创世块代码加入到区块链网络;将包含升级代码的新版本代码块经过共识过程后上链;新版本代码块生效,根据新的代码逻辑执行区块链协议,完成区块链协议的升级。2.根据权利要求1所述的区块链代码块独立升级方法,其特征在于,所述代码块包括,需要升级的代码块编号、升级后的版本号,以及升级后的代码;所述数据块包括,区块的业务数据,所述区块的业务数据根据所述代码块的最新生效版本进行校验和处理。3.根据权利要求1所述的区块链代码块独立升级方法,其特征在于,所述将下载的创世块代码写入本地计算设备,执行所述创世块代码加入区块链网络的步骤,进一步包括以下步骤:下载包括所述代码块最初版本的代码的创始块;将所述最初版本的代码写入本地计算设备;执行所述最初版本的代码加入到区块链网络。4.根据权利要求1所述的区块链代码块独立升级方法,其特征在于,所述新版本代码块生效的步骤,进一步包括以下步骤:接收客户端根据其持有的权益按比重进行的投票;所述新版本代码块在预定区块高度内得到的投票累积比重超过预设阈值时,确认新版本代码块生效。5.根据权利要求1所述的区块链代码块独立升级方法,其特征在于,所述根据新的代码逻辑执行区块链协议,完成区块链协议的升级的步骤,进一步包括以下步骤:将所述新版本代码块写入本地计算设备;在所述新版本代码块生效后的高度,按照新的代码逻辑执行区块链协议,完成区块链协议的升级。6.一种区块链代码块独立升级装置,其中,所述区块链上的区块,包括代码块和数据块,其特征在于,所述装置包括,客户端模块、共识模块、以及执行模块...

【专利技术属性】
技术研发人员:万涔涔
申请(专利权)人:杭州秘猿科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1