CN110430087A - 区块链热升级的架构设计与实现 - Google Patents
区块链热升级的架构设计与实现 Download PDFInfo
- Publication number
- CN110430087A CN110430087A CN201910870384.5A CN201910870384A CN110430087A CN 110430087 A CN110430087 A CN 110430087A CN 201910870384 A CN201910870384 A CN 201910870384A CN 110430087 A CN110430087 A CN 110430087A
- Authority
- CN
- China
- Prior art keywords
- node
- common recognition
- block chain
- chain network
- block
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了区块链热升级的架构设计与实现。具体而言,公开了一种用于对区块链网络进行热升级的方法,该区块链网络包括多个共识节点,所述方法包括以下步骤:通过准出步骤判定允许从所述区块链网络删除所述多个共识节点中的第一节点;通过停机步骤使第一节点停止区块链网络服务;通过升级步骤对第一节点执行升级;通过重启步骤重新启动第一节点;通过准入步骤判定允许将第一节点重新加入所述区块链网络;通过数据同步步骤将重新加入的第一节点的本地数据同步为与所述区块链网络一致;其中,在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
Description
技术领域
本公开涉及区块链技术,具体地,涉及区块链网络的热升级。
背景技术
区块链技术是结合了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新兴技术。区块链技术具有去中心化、开放、独立、安全等特点,其发展和应用正日益受到关注。
使用区块链技术构建的网络可以称为区块链网络。区块链网络可以包括多个节点。区块链网络内的交易可以由多个节点共同完成,每个节点可以记录完整的账本,因此交易的合法性受到多个节点监督。
区块链网络的多个节点为网络提供了去中心化的特性,但也为网络的升级带来了挑战。常规地,当期望对区块链网络进行升级时,可能需要首先将组成该网络的所有节点停止运行,再对各个节点进行升级。例如,对于作为区块链技术的分支之一的联盟链(例如,超级账本Hyperledger Fabric),考虑到联盟链所采用的共识算法以及采用CA来管理用户注册,节点的升级需要在网络的全体节点停止运行之后才能进行。这将影响区块链网络服务的质量和可用性。另外,由区块链网络的安全性问题所引起的升级通常是紧急、连续的升级。在这种情况下,如果针对每次升级都必须停止区块链网络的服务,那么网络服务的质量和可用性将会进一步恶化。
发明内容
本公开提供一种对区块链网络进行热升级的方法。使用本公开的方法,可以在维持区块链网络正常服务的情况下连续、安全地对区块链网络中的各个节点进行升级。因此,本公开可以避免升级区块链网络时的停机问题,从而确保区块链网络服务的质量和可用性。
根据本公开的一个方面,提供了一种用于对区块链网络进行热升级的方法,所述区块链网络包括多个共识节点,所述方法包括以下步骤:准出步骤,所述准出步骤判定允许从所述区块链网络删除所述多个共识节点中的第一节点;停机步骤,所述停机步骤使第一节点停止区块链网络服务;升级步骤,所述升级步骤对第一节点执行升级;重启步骤,所述重启步骤重新启动第一节点;准入步骤,所述准入步骤判定允许将第一节点重新加入所述区块链网络;数据同步步骤,所述数据同步步骤将重新加入的第一节点的本地数据同步为与所述区块链网络一致;其中,在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
根据本公开的一个方面,提供了一种能够进行热升级的区块链网络系统,所述区块链网络系统包括多个共识节点,所述多个共识节点包括第一节点。所述第一节点被配置为:停止区块链网络服务;执行升级;重新启动;重新加入所述区块链网络;以及将本地数据同步为与所述区块链网络一致。所述多个共识节点被配置为:在所述第一节点停止区块链网络服务之前,判定允许从所述区块链网络删除所述第一节点;以及在所述第一节点重新加入所述区块链网络,判定允许所述第一节点重新加入所述区块链网络。在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
根据本公开的另一个方面,提供了一种用于对区块链网络进行热升级的系统,其包括:一个或更多个处理器;以及一个或更多个存储器,被配置为存储一系列计算机可执行指令,其中所述一系列计算机可执行指令在由所述一个或更多个处理器运行时使得所述一个或更多个处理器执行如上所述的方法。
根据本公开的另一个方面,提供了一种非暂态的计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或更多个处理器运行时使得所述一个或更多个处理器执行如上所述的方法。
根据参照附图的以下描述,本公开的其它特性特征和优点将变得清晰。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本公开的实施例,并且与描述一起用于说明本公开的原理。
图1示出了根据本发明的实施例的区块链网络的体系架构的示意图。
图2A-2B示出了根据本公开示例性实施例的区块链网络的拓扑结构。
图3示出了根据本公开一个示例性实施例的对区块链网络进行热升级的方法的示例性流程图。
图4示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的准出过程的示例性流程图。
图5示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的准入过程的示例性流程图。
图6示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的数据同步过程的示例性流程图。
图7示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的数据同步过程的示意图。
图8是示出了根据本公开一个示例性实施例的用于区块链网络热升级的装置的基本配置的框图。
图9示出了可以实现根据本公开的实施例的计算设备的示例性配置。
具体实施方式
下面将参考附图来详细描述本公开的优选的实施例。不是本公开必需的细节和功能被省略,以便不会混淆本公开的理解。
请注意,类似的参考数字和字母指的是图中的类似的项目,因而一旦在一幅图中定义了一个项目,就不需要在之后的图中讨论了。
在本公开中,术语“第一”、“第二”等仅仅被用来在元件或步骤之间进行区分,而并不意图表示时间顺序、优先级或重要性。
在本公开中,术语“区块链技术”包括但不限于关于分布式存储、点对点网络、共识机制、加密算法等的技术。术语“升级”通常指对网络或节点所包含或使用的软件算法和/或硬件设备进行改变。
在本公开中,术语“共识机制”通常指区块链网络中实现不同节点之间建立信任、获取权益的数学算法,执行该算法的过程可以被成为“共识操作”。为了描述的方便,本文主要结合实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识机制来描述本公开。PBFT机制是由Miguel Castro和Barbara Liskov在1999年提出的一种共识机制。PBFT共识算法可以在少数节点作恶场景中达成共识,它采用签名、签名验证、哈希等密码学算法确保消息传递过程中的防篡改性、防伪造性、不可抵赖性,并优化了前人工作,将拜占庭容错算法复杂度从指数级降低到多项式级别。在一个由(3*f+1)个节点构成的系统中,只要有不少于(2*f+1)个非恶意节点正常工作,该系统就能达成一致性(如:7个节点的系统中允许2个节点出现拜占庭错误)。目前,PBFT机制已经被应用于区块链网络的共识算法,以搭建联盟链。需要注意的是,尽管本文主要结合PBFT机制描述了本公开,但本公开的应用不限于此。本领域技术人员可以理解,本公开也可以结合其他合适的共识机制,例如Paxos算法、Raft算法等等。
图1示出了根据本发明的实施例的区块链网络的体系架构100的示意图。如图1所示,区块链网络的体系架构100可以包括服务层110、核心层120和基础层160。
服务层110可以包括用于管理用户的公钥和私钥的钱包111、用于进行签名的多签名单元112、用于对区块链网络的指定节点进行监控的监控单元113、用于保护交易隐私的隐私交易单元114、以及用于存储数字资产的数字资产单元115。
钱包111是可以让用户登录的客户端程序,其管理用户的公钥和私钥。用户可以通过钱包来部署合约、执行合约、转账等操作。多签名单元112用于进行多签名交易,其中,多签名交易要求在多人签名之后才能将合约地址中的资产转移至其它地址。
监控单元113用于对区块链网络的指定节点进行监控,其可以显示区块的详情、交易详情等信息。
隐私交易单元114可以用于保护交易隐私。隐私交易单元114可以在节点之间采用单独的新建秘钥对进行握手,以实现安全通信。隐私交易单元114还可以针对Proto3进行扩展对接口进行编码,以实现对象编码。隐私交易单元114还可以使得共识节点的增加和删除都需要区块链网络的共识和管理,以实现节点控制。隐私交易单元114还可以使用只有用户本人知晓的从用户的公钥派生而来的账户地址,以实现账户匿名。隐私交易单元114还可以支持同一用户的多个地址以及在不产生花费的情况下在所述多个地址之间转移资产。
数字资产单元115可以用于存储可以在钱包111中进行管理的数字资产。数字资产可以是符合ERC20标准、ERC721标准等的代币标准的数字资产。
核心层120包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块130、利用实用拜占庭(PBFT)算法在区块链网络的共识节点之间进行共识的共识模块140、以及通过进行双重验证来执行区块链网络的节点变更的节点管理模块150。
智能合约模块130可以包括合约升级单元131,所述合约升级单元进行合约的在线升级以及业务逻辑的热更新。所述合约可以由分布式应用程序将Solidity源码利用Solc编译成为字节码和应用程序二进制接口并部署成为智能合约模块中的以太坊虚拟机代码。所述合约可以由分布式应用程序通过Web3应用程序接口调用。智能合约模块130还可以包括以太坊虚拟机(EVM)132。以太坊虚拟机132可以支持当前以太坊公有链上的应用,从而可以直接将这些应用移植部署到体系架构100上。智能合约模块130还可以包括经济模型单元133。经济模型单元133使用诸如ERC20标准、ERC721标准或其它代币标准建立经济模型,其中,所建立的经济模型在不消耗燃料的情况下部署或运行智能合约。智能合约模块130还可以包括命令行接口(Cli)134。命令行接口(Cli)134提供进行快速操作的命令行模式。
共识模块140可以包括容错容恶单元141。容错容恶单元141使用实用拜占庭算法进行共识并在超过三分之二的共识节点投票通过提案区块的情况下将提案区块添加至本地区块链账本中成为新区块。共识模块140还可以包括权益投票单元142。权益投票单元142可以设置共识节点的权益并且利用随机数从区块链网络中选取能够进行区块提案的主节点。共识模块140还可以包括大规模扩展单元143。大规模扩展单元143根据业务模型来调节共识节点和非共识节点的数量。共识模块140还可以包括故障恢复单元144。故障恢复单元144在区块链网络中的第一节点发生故障时使用停止命令停止并重启第一节点,在重启后根据存储的状态文件和状态数据库来恢复第一节点的状态,根据地址簿中的种子节点的地址或初始化设置中的连接节点进行重新连接来重新加入区块链网络。
节点管理模块150可以包括准入准出管理单元151。准入准出管理单元151可以对运维管理员发起的用于对节点进行变更的变更请求签名并将附有签名的变更请求广播给其它共识节点,对从其它共识节点接收到的变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在确定有超过三分之二的共识节点对该变更请求进行了签名的情况下该区块链网络进行共识,在共识之后再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在再次验证通过的情况下执行该变更请求。用于对节点进行变更的变更请求包括添加新节点、删除已有节点和变更节点权益。在变更请求是添加新节点的情况下,执行变更请求包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务。在变更请求是删除已有节点的情况下,执行变更请求包括在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。在变更请求是变更节点权益的情况下,执行变更请求包括在当前区块中变更节点权益并使得在当前区块之后的第二个区块中使用变更后的节点权益提供区块链服务。
节点管理模块150还可以包括热升级单元152。热升级单元152判定允许从区块链网络删除多个共识节点中的第一节点,使第一节点停止区块链服务并对第一节点执行升级。热升级单元152重新启动第一节点并判定允许将第一节点重新添加至所述区块链网络。热升级单元152将重新添加的第一节点的本地数据同步为与所述区块链网络一致。在热升级期间,第一节点停止区块链服务,并且由共识节点中的其它节点提供区块链服务。
节点管理模块150还可以包括网络角色管理单元153。网络角色管理单元153将区块链网络的每个节点标识为共识节点或非共识节点,并将区块链网络的至少一个节点标识为种子节点。共识节点参与共识和区块同步,非共识节点参与区块同步而不参与共识,种子节点用于重新建立区块链网络的连接。节点管理模块150还可以包括存储了种子节点的地址的地址薄154。
基础层160可以包括用于建立节点之间的通信连接的网络通信单元161、用于存储区块链信息的存储单元162、用于进行加密和解密的密码学单元163、以及用于管理区块链账本的账本单元164。存储单元162可以支持key-value型数据库,例如,使用leveldb或其它数据库。存储单元162可以存储诸如账本、区块、交易等的区块链信息。密码学单元163可以支持椭圆曲线、非对称加密算法。账本单元164可以记录区块链的账本、区块以及区块中的交易。
图2A示出了根据本公开一个示例性实施例的区块链网络200A的拓扑结构。如图2A所示,区块链网络200A可以包括多个共识节点(例如,共识节点211-214)和多个非共识节点,其中共识节点负责进行共识操作和生产账本,特别是参与应用PBFT算法进行的共识操作;而非共识节点则仅接收消息和同步记录账本,并不参与共识操作,也没有共识投票的权力。多个共识节点两两之间相互连接和/或通信,而非共识节点只用与至少一个共识节点或非共识节点连接和/或通信以实现同步即可。为了防止节点作恶,PBFT共识过程中每个共识节点均对其发送的消息进行签名,以及验证收到的消息的签名。因此,每个共识节点可以维护一对公钥和私钥。私钥可以用于对发送的消息进行签名。公钥可以作为节点标识符被用于标识和验证签名。例如,每个共识节点可以知晓共识网络内其他共识节点的公钥,从而可以用特定共识节点的公钥对接收自该特定共识节点的消息进行验证。
本领域技术人员可以理解,在区块链网络200A中,非共识节点并非是必需的,可以根据实际需要进行增减,而且非共识节点的增加或者减少并不受PBFT算法的影响,因为他们只是接收共识节点的投票以及出块逻辑,并且记录账本,他们的投票共识节点也不会接收和承认。增加非共识节点只需要使用统一的配置文件将其接入网络即可,而删除非共识节点也只需要直接关闭下架节点即可。因此,下文中着重讨论对区块链网络中共识节点的操作,而省略了对非共识节点的操作的描述。
图2B进一步示出了根据本公开一个示例性实施例的区块链网络200B的拓扑结构。如图2A类似,根据本公开实施例的区块链网络200B包括多个共识节点211-214。区块链网络200B还包括与其中至少一个共识节点(例如但不限于,共识节点211)连接和/或通信的运维管理员220。虽然图2B未示出,但是本领域技术人员均能理解,应用本公开的区块链网络还可以根据需要包括如图2A所示的非共识节点。
运维管理员220可以表示提供和/或维护区块链网络200B的基础设施的运营方。运维管理员220可以负责共识节点211-214中的一个或多个共识节点的维护(例如,监控、升级等等)。例如,可以由一个运维管理员负责维护区块链网络的所有共识节点。或者,可以由多个运维管理员分别负责维护区块链网络中的相应一部分共识节点。作为一个示例,每个运维管理员可以负责维护区块链网络中的单个共识节点。运维管理员可以与其所负责的一个或多个共识节点通信。优选地,运维管理员不限于仅与其所负责维护的共识节点连接或通信,而是可以与区块链网络中的任意一个或更多个共识节点、甚至全部共识节点连接和/或通信。
每个运维管理员可以采用专门的计算设备(如工作站、服务器、台式计算机、膝上型计算机等),具有固定的IP地址,可以由运维操作人员通过特别的系统操作接口进行操作。由运维管理员采用的计算设备可以使用各种方式与共识节点连接和/或通信。例如,运维管理员和共识节点的连接可以是有线连接(诸如通过以太网(注册商标)或广域网(WAN)的LAN的连接)或无线连接(诸如通过无线保真(Wi-Fi)、Wi-Fi直接(Wi-Fi Direct)或使用其它通信方法的无线通信连接)。
运维管理员对共识节点的维护包括但不限于对共识节点的运行状态的监控、对共识节点所采用的软件和/或硬件设备进行升级,等等。运维管理员对共识节点的升级可以响应于共识节点的异常而做出(例如,存在硬件故障),此时升级可能针对出现了异常的一个或多个共识节点。运维管理员对共识节点的升级也可以基于区块链网络的需求而做出(例如,区块链网络存在统一升级的需求),此时升级可能针对区块链网络中的所有共识节点。
由运维管理员发起的针对一个或多个节点的升级可以采用如本文所描述的热升级的方式,从而在维持区块链网络正常服务的情况下连续、安全地对区块链网络中的各个节点进行升级。下面将结合图3进一步具体描述。
图3示出了根据本公开一个示例性实施例的对区块链网络进行热升级的方法300的示例性流程图。方法300可以是针对如图2A或图2B所示的区块链网络200A或200B执行的,或者说由该区块链网络来执行。如前所述,该区块链网络可以包括多个节点,这些节点可以包括多个共识节点(例如,211-214),或者还包括一个或多个非共识节点。下面描述的升级主要是针对共识节点进行的。
如图3所示,方法300包括准出步骤S301、停机步骤S302、升级步骤S303、重启步骤S304、准入步骤S305,数据同步步骤S306,并且还可选地包括继续升级判定步骤S307。其中,继续升级判定步骤S307用虚线框示出,意味着该步骤是可选的。
在准出步骤S301中,判定是否允许从区块链网络删除多个共识节点中的第一节点。第一节点的示例可以是图2A-2B中的共识节点211-214中的任一个(例如,211)。准出步骤S301可以响应于负责维护第一节点的运维管理员(例如,220)的指令而触发。在一些情况下,第一节点可以是出现故障而不能正常工作的共识节点。在另一些情况下,例如,当需要对区块链网络进行整体升级时。第一节点可以是从需要升级的共识节点中随机选择的一个共识节点。在准出步骤中执行的判定可以涉及区块链网络中的所有共识节点对针对第一节点的节点删除交易达成共识。准出步骤可以避免错误或恶意地删除第一节点。例如,某些恶意行为可能意图通过将正常的第一节点删除来减少网络中的正常的共识节点的数量。准出步骤的具体细节将在后面结合图4进一步描述。
当在准出步骤S301中判定允许从区块链网络删除第一节点时,方法300可以继续到停机步骤S302。在停机步骤S302中,第一节点的区块链网络服务被停止。例如,第一节点可以停止与区块链网络中的其他节点进行通信,包括但不限于停止接收来自其他节点的消息、停止向其他节点发送消息、停止参与共识投票,等等。相应地,在第一节点停机期间,第一节点将不能同步记录账本,并且不能产生和存储新的区块。当需要升级第一节点的硬件时,可能还需要将第一节点断电。但是,在第一节点停机之前被存储到第一节点本地的各种数据可以不随第一节点的停机而消失。例如,这些数据可以存储在第一节点能够访问的本地或远程的非易失性存储器中。
在第一节点停机之后,方法300可以继续到升级步骤S303。升级步骤可以由负责维护第一节点的运维管理员来执行。可以针对第一节点的软件和/或硬件进行升级。例如,运维管理员可以将新的二进制文件(例如,可执行文件、配置文件、库文件等等)载入到第一节点中,从而更新第一节点的软件。这些软件可以涉及用于区块链网络提供的诸多功能和服务的逻辑和配置。
如前面结合图1所描述的,区块链网络的体系架构100可以包括服务层110、核心层120和基础层160。在升级步骤S303中,可以对用于基础层160和/或核心层120的二进制文件进行升级。这些二进制文件可以位于第一节点上,并且被第一节点用来提供区块链网络服务。例如,可以对用于核心层120的智能合约模块130、共识模块140以及节点管理模块150中的一者或多者的二进制文件和/或用于基础层的存储单元162和密码学单元163中的一者或多者的二进制文件进行升级。升级可以包括例如将现有的可执行文件替换为新的可执行文件,或者将现有的配置文件替换为新的配置文件。通过升级步骤S303,可以更新第一节点的各个功能模块的逻辑和/或配置。需要注意的是,以上所述的模块中的一个或多个模块可能集成在单个可执行文件中,或者由单个配置文件描述,因此替换后的可执行文件/配置文件相对于替换前的可执行文件/配置文件可能仅更新一部分逻辑或配置。
在某些情况下,区块链网络的体系架构100可能集成了不同的开源方案。在这种情况下用于体系架构100中的各个功能单元的可执行文件/配置文件可能是基于不同的开源方案编写的。在这种情况下,可以根据所基于的开源方案来进行升级。例如,可以首先升级基于第一开源方案编写的所有可执行文件,然后再更新基于第二开源方案编写的所有可执行文件。通过这种方式,可以确保升级的稳定有序。
升级步骤S303可以不对用于第一节点的账本单元164的逻辑和配置进行升级,即不改变第一节点的区块链账本数据结构、区块数据结构、或者交易数据结构。这是因为区块链账本数据结构、区块数据结构、或者交易数据结构代表了区块链网络的核心特性。如果改变了第一节点的账本单元164的逻辑和配置,可能造成升级后的第一节点无法再与原有的区块链网络兼容。另外,升级步骤S303也可以不对用于第一节点的网络通信单元161进行升级。
附加地或替代地,也可以对第一节点的硬件设备进行检修和更换,以例如使用新的硬件设备(诸如,处理器设备、存储器设备、I/O设备,等等)。硬件设备升级还可以包括软件的备份和将软件重新部署在升级后的硬件设备上。
在完成升级步骤S303之后,方法300可以继续到重启步骤S304以重新启动升级后的第一节点。本文所指的重新启动不一定指第一节点的断电和上电。例如,当涉及第一节点上的软件升级时,重启步骤例如可以包括在第一节点上启动并运行升级后的可执行文件,而无需将第一节点重新上电。当涉及第一节点的硬件升级时,重启步骤例如可以包括对第一节点的硬件进行热插拔、进行重新上电和/或完好性检查等等。重启后的第一节点将运行升级后的软件和/或硬件。
然后,方法300可以继续到准入步骤S305。准入步骤例如可以响应于第一节点的重启而由第一节点向区块链网络发起,或者由负责维护第一节点的运维管理员向区块链网络发起。准入步骤判定是否允许将第一节点重新加入区块链网络。在准入步骤中执行的判定可以涉及区块链网络中的所有共识节点对针对第一节点的节点添加交易达成共识。第一节点在升级过程中可能受到侵害而转化成恶意节点。准入步骤可以阻止这样的恶意节点加入区块链网络,从而确保区块链网络的安全性。准入步骤的具体细节将在后面结合图5进一步描述。
当在准入步骤S305中判定允许将第一节点重新加入区块链网络时,方法300可以继续到数据同步步骤S306。由于第一节点在停机期间不能同步地更新区块或账本,所以重新加入区块链网络的第一节点的本地区块高度可能要小于区块链网络中的其他节点。这使得第一节点可能不能有效地履行共识节点的职责,例如在共识投票时无法可靠地投票。数据同步步骤S306可以将第一节点的本地数据同步为与所述区块链网络一致,从而使得重新加入网络的第一节点具备正常的共识节点的能力。后文结合图6和图7描述了数据同步步骤S306的细节。
方法300还可以可选地包括继续升级判定步骤S307。在该步骤中,可以判定区块链网络中是否还存在待升级的一个或多个其他共识节点。当存在待升级的另一个共识节点时,方法300可以返回到步骤S301,并针对该另一个共识节点执行步骤S301-S306。如果待升级的多个其他共识节点中的特定共识节点与第一共识节点具有相同的运维管理员,可以优先对该特定共识节点进行升级。以此类推,可以优先升级由第一节点的运维管理员维护的所有待升级的节点。如果待升级的另一个共识节点与第一节点由不同的运维管理员维护时,第一节点的运维管理员可以将升级控制权移交给该另一个共识节点的运维管理员。如果区块链网络中不存在待升级的另一个共识节点时,可以结束方法300。
作为一个优选的实施例,可以针对由同一运维管理员维护的多个共识节点进行批升级,这是因为由同一运维管理员维护的多个共识节点通常具有相同的软件、硬件配置和安全性等级。例如,可以对由同一运维管理员维护的多个共识节点合并执行一次准出步骤S301,并分别对多个节点中的每个节点执行步骤S302-S304,然后再对这多个共识节点合并执行一次准入步骤S305。这种批升级的方式可以减少准入步骤和准出步骤执行的次数,从而降低区块链网络的负担,并提高升级的效率。对于这多个共识节点,也可以确保升级操作的一致性。
上述的本公开的方法300提供了一种用于对区块链网络进行热升级的方法。在对单个共识节点(例如,第一节点)进行升级期间,可以仅停止该单个共识节点的区块链网络服务,而由其他共识节点维持区块链网络的服务。可以通过这种方法依次对区块链网络中的多个或所有共识节点进行升级。方法300所提供的准出机制、准入机制、以及数据同步机制为节点的热升级提供了身份验证和共识承接,从而提高了升级的安全性,减小了遭受恶意行为或者错误的可能性。这将在下面结合图4至图7进一步描述。
图4示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的准出过程400的示例性流程图。可以在图3所示的准出步骤S301中针对待升级的第一节点执行准出过程400。如图所示,准出过程400可以包括构建交易步骤S401、获取签名步骤S402、发起交易步骤S403、签名验证步骤S404、共识步骤S405和更新列表步骤S406。通过执行准出过程400,可以安全、可靠地将作为共识节点的第一节点从区块链网络中的删除,即,停止该共识节点的区块链网络服务。
准出过程400可以从构建交易步骤S401开始。在该步骤中,构建针对第一节点的节点删除交易。该步骤可以例如由负责维护第一节点的运维管理员执行。运维管理员可以将与第一节点有关的信息(例如,节点标识符、节点描述等等)封装在节点删除交易消息中,并将该节点删除交易消息广播给区块链网络的所有共识节点。该节点删除交易消息可以由运维管理员直接发送给所有共识节点。或者,该节点删除交易消息可以由运维管理员首先发送给由该运维管理员维护的一个或多个共识节点中的一个共识节点,并然后由该共识节点将该节点删除交易消息广播给区块链网络的其他共识节点。优选地,运维管理员可以使用该运维管理员的密钥对节点删除交易消息进行签名。接收该节点删除交易消息的一个或多个共识节点可以验证该签名,从而验证节点删除交易是由合法的运维管理员构建的。
在构建交易步骤S401之后,准出过程400可以继续到获取签名步骤S402,在该步骤中,为节点删除交易获取区块链网络中的多个共识节点的签名。例如,响应于接收到节点删除交易消息,区块链网络中的每个共识节点可以使用该共识节点的私钥对节点删除交易消息进行签名。共识节点对节点删除交易消息进行签名可以指共识节点将与该共识节点的私钥有关的数据添加到节点删除交易消息的签名字段中。每个共识节点可以在验证节点删除交易是由合法的运维管理员构建之后(例如,验证节点删除交易消息中的运维管理员的签名)才对该节点删除交易消息进行签名,否则可以不对节点删除交易进行签名。区块链网络中的每个共识节点在对节点删除交易消息签名之后将经签名的节点删除交易消息发送给区块链网络中的其他共识节点。
随后,准出过程400可以继续到发起交易步骤S403。在该步骤中,在该步骤中,发起带签名的节点删除交易。该步骤例如可以响应于运维管理员的指令由运维管理员所维护的一个或多个共识节点中的一个共识节点执行。或者,可以在节点删除交易消息从运维管理员发出后经过了指定的时间量时开始执行。
响应于发起交易步骤S403的执行,准出过程400可以继续到签名验证步骤S404,在该步骤中,每个共识节点验证该共识节点接收到的节点删除交易消息所带有的签名中的每一个签名是否正确,并且还验证正确的签名的总数量是否达到区块链网络的所述共识节点的总数量的三分之二。例如,当接收共识节点收到由发出共识节点广播的节点删除交易消息时,接收共识节点可以使用与发出共识节点对应的公钥来验证该节点删除交易消息是否由该发出共识节点广播正确地签名,并且对正确的签名的数量进行计数。当正确的签名的数量达到区块链网络的所有共识节点的总数量的三分之二时,该接收共识节点可以认为签名验证步骤成功。否则,接收共识节点可以认为签名验证步骤未成功。
当签名验证步骤S404成功时,准出过程400可以继续到共识步骤S405。在该共识步骤中,由提案节点提出包含节点删除交易的提案区块并将提案区块广播给所有共识节点,由所有共识节点对提案区块中的节点删除交易进行验证。根据本公开的一个实施例,该共识步骤可以采用基于PBFT的共识操作。基于PBFT的共识操作可以包括如下步骤:所有共识节点根据一个统一公式从当前共识节点中选出一个提案节点,由选出的提案节点提出包含所述节点删除交易的提案区块并将该提案区块广播给所有共识节点,由所有共识节点对所述提案区块中的各交易进行验证,各共识节点在验证通过的情况下,向所有共识节点广播同意投票消息,并且等待其他共识节点的同意投票消息,各共识节点在预定时间内收到了超过三分之二数量的共识节点发出的同意投票消息的情况下,向所有共识节点广播提交(commit)消息,并且等待其他节点的提交消息,各共识节点在预定时间内收到了超过三分之二数量的共识节点发出的提交消息的情况下,可以认为区块链网络对提案区块达成了共识,即,对针对第一节点的节点删除交易达成了共识。
在所述共识步骤中对所述提案区块达成共识后,可以执行更新列表步骤S406。在该更新列表步骤中,区块链网络中的各个节点执行针对第一节点的节点删除交易,从而更新该节点的共识节点集合列表,其中经更新的共识节点集合列表将不再包含第一节点。这意味着对于区块链网络中的其他共识节点,第一节点已经被排除在共识网络之外。
根据本公开的一个实施例,在更新列表步骤S406中,各个节点在执行针对第一节点的节点删除交易时对该节点删除交易可以进行二次签名验证。例如,在该二次签名验证中,每个节点可以再次验证该节点删除交易所携带的正确的签名的数量达到区块链网络的共识节点的总数量的三分之二。当二次签名验证通过时,该节点可以更新该节点的共识节点集合列表以删除第一节点。当二次签名验证失败时,该节点可以拒绝更新该节点的共识节点集合列表,从而保留第一节点。二次签名验证是在执行节点删除交易时进行的。二次签名验证的存在可以进一步提高区块链网络的安全性。尤其是可以避免在共识步骤S405中选出的提案节点是恶意节点的情况下第一节点被错误或恶意地删除。在共识步骤S405中选出的提案节点是恶意节点的情况下,该恶意的提案节点可能将未通过首次签名验证(即签名验证步骤S404)的节点删除交易恶意地打包到提案区块中,造成第一节点被错误或恶意地删除。而本公开所提供的在各个节点处更新共识节点集合列表之前对该节点删除交易的二次签名验证可以有效地避免这种恶意行为。
根据本公开的一个实施例,更新列表步骤S406还可以包括每个节点在更新共识节点集合列表之后,将经更新的共识节点集合列表临时地存储在该节点的内存中,并且在间隔至少一个区块之后再将经更新的共识节点集合列表存储在该节点的本地文件中作为新的共识节点集合列表。通过这种方式,各个节点将延后至少一个区块才启用经更新的共识节点集合列表,这可以进一步提高区块链网络的安全性。
根据本公开的实施例,准出过程400还可以可选地包括准出条件检验步骤S407(未示出)。在该步骤中,可以判定以下准出条件是否被满足:(1)待删除的共识节点的数量与所述区块链网络的共识节点的总数量之比小于阈值比例;以及(2)除了待删除的共识节点之外的剩余节点的数量大于阈值数量。当以上准出条件中的任一项不被满足时,可以结束准出过程400。优选地,准出条件中所使用的阈值比例可以是1/3,而阈值数量可以是4。例如,对于具有总共N个共识节点的区块链网络并且待删除的共识节点的数量为M的情况,如果M≥1/3*N,或者N-M≤4,则可以判定不满足准出条件。当不满足准出条件的情况下,可以向运维管理员提示减少待删除的共识节点的数量,或者延后删除一个或多个共识节点。
在通过准出过程400安全地将第一节点从区块链网络删除之后,可以对第一节点进行软件或硬件升级。然后可以通过准入过程将第一节点重新加入区块链网络,使之重新成为该区块链网络的共识节点。
图5示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的准入过程500的示例性流程图。可以在图3所示的准入步骤S305中针对升级后的第一节点执行准入过程500。如图所示,准入过程500可以包括构建交易步骤S501、获取签名步骤S502、发起交易步骤S503、签名验证步骤S504、共识步骤S505和更新列表步骤S506。通过执行准入过程500,可以安全、可靠地将升级后的第一几点重新加入区块链网络,即,作为共识节点来提供区块链网络服务。
准入过程500可以从构建交易步骤S501开始。在该步骤中,构建针对第一节点的节点添加交易。该步骤可以例如由负责维护第一节点的运维管理员执行。运维管理员可以将与第一节点有关的信息(例如,节点标识符、节点描述等等)封装在节点添加交易消息中,并将该节点添加交易消息广播给区块链网络中的所有活动的共识节点。根据一个实施例,该节点添加交易消息可以由运维管理员直接发送给所有共识节点。根据本公开的另一个实施例,该节点添加交易消息可以由运维管理员首先发送给由该运维管理员维护的一个或多个共识节点中的一个活动的共识节点,并然后由该共识节点将该节点添加交易消息广播给区块链网络的其他共识节点。优选地,运维管理员可以使用该运维管理员的密钥对节点添加交易消息进行签名。接收该节点添加交易消息的一个或多个共识节点可以验证该签名,从而验证节点添加交易是由合法的运维管理员构建的。
在构建交易步骤S501之后,准入过程500可以继续到获取签名步骤S502,在该步骤中,为节点添加交易获取区块链网络中的多个共识节点的签名。例如,响应于接收到节点添加交易消息,区块链网络中的每个共识节点可以将与其私钥有关的数据添加到节点添加交易消息的签名字段中。每个共识节点可以在验证节点添加交易消息中的运维管理员的签名之后才对该节点添加交易消息进行签名。每个共识节点可以将经签名的节点添加交易消息发送给其他共识节点。
随后,准入过程500可以继续到发起交易步骤S503。在该步骤中,在该步骤中,发起带签名的节点添加交易。
响应于发起交易步骤S503的执行,准入过程500可以继续到签名验证步骤S504,在该步骤中,每个共识节点验证该共识节点接收到的节点添加交易消息所带有的签名中的每一个签名的正确性,并且还统计正确的签名的数量。当正确的签名的数量达到区块链网络的所有共识节点的总数量的三分之二时,可以认为签名验证步骤成功。否则,可以认为签名验证步骤未成功。
当签名验证步骤S504成功时,准入过程500可以继续到共识步骤S505。在该共识步骤中,由提案节点提出包含节点添加交易的提案区块并将提案区块广播给所有共识节点,由所有共识节点对提案区块中的节点添加交易进行验证。根据本公开的一个实施例,该共识步骤可以采用基于PBFT的共识操作。该共识操作可以类似与在步骤S404中所进行的共识操作,在此不再详细描述。
在所述共识步骤S505中对提案区块达成共识后,可以执行更新列表步骤S506。在该更新列表步骤中,区块链网络中的各个节点执行针对第一节点的节点添加交易,从而更新该节点的共识节点集合列表,其中经更新的共识节点集合列表包含第一节点。这意味着对于区块链网络中的其他共识节点,第一节点再次被包含在共识网络之内。
根据本公开的一个实施例,更新列表步骤S506可以包括各个共识节点在执行针对第一节点的节点添加交易时对该节点添加交易的二次签名验证。例如,在该二次签名验证中,区块链网络中的每个共识节点可以验证该节点添加交易所携带的正确的签名的数量达到区块链网络的共识节点的总数量的三分之二。当二次签名验证通过时,该共识节点可以更新该共识节点的共识节点集合列表以添加第一节点。当二次签名验证失败时,该节点可以拒绝更新该节点的共识节点集合列表,从而拒绝添加第一节点。二次签名验证是在执行节点添加交易时进行的。如前面已经解释的,二次签名验证可以减少提案节点是恶意节点的情况所带来的风险。
根据本公开的一个实施例,更新列表步骤S506还可以包括每个节点在更新共识节点集合列表之后,将经更新的共识节点集合列表临时地存储在该节点的内存中,并且在间隔至少一个区块之后再将经更新的共识节点集合列表存储在该节点的本地文件中作为新的共识节点集合列表。通过这种方式,各个节点将延后至少一个区块才启用经更新的共识节点集合列表,可以进一步提高区块链网络的安全性。
根据本公开的实施例,准入过程500还可以可选地包括准入条件检验步骤S507(未示出)。在该步骤中,可以判定待添加的共识节点的数量与区块链网络的共识节点的总数量之比小于预定的阈值比例。当以上准入条件不被满足时,可以结束准入过程500。优选地,准入条件中所使用的阈值比例可以是1/2。例如,对于具有总共N个共识节点的区块链网络并且待添加的共识节点的数量为M的情况,如果M≥1/2*N,则可以判定不满足准入条件。当不满足准入条件的情况下,可以向运维管理员提示减少待添加的共识节点的数量或者延后添加一个或多个共识节点。
在通过准入过程500安全地将第一节点加入区块链网络之后,可以对第一节点进行数据同步,使第一节点的本地数据同步为与区块链网络一致。这是因为在区块链网络中只有具有完整的区块链(即,具有最高块高)的共识节点的投票才被认为是可靠的。因此,重新加入区块链网络的第一节点在成为有效的共识节点之前需要完成数据同步过程。
图6示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的数据同步过程的示例性流程图。可以在图3所示的数据同步步骤S306中针对重新加入区块链网络的第一节点执行数据同步过程600。如图所示,数据同步过程600包括比较步骤S601、下载请求步骤S602、下载步骤S603、连接步骤S604。
在比较步骤S601中,第一节点可以比较自身的区块高度与所述区块链网络的最高区块高度。区块链网络中的各个节点可以定时向所有其他节点广播该节点的当前区块高度。因此,第一节点可以知晓所接收到的各个节点的区块高度,并将其中的最大区块高度(即,区块链网络的区块高度)与第一节点自身的区块高度进行比较。如果最大区块高度等于第一节点自身的区块高度,则可以认为在第一节点停机升级期间区块链网络没有产生新的区块,因此可以不进行步骤S602-S604。如果最大区块高度大于第一节点自身的区块高度,可以继续执行步骤S602-S604。
在下载请求步骤S602中,第一节点可以向具有最高区块高度的一个或多个其他节点中的每个节点发送下载请求。该一个或多个其他节点可以是随机选择的。或者,可以优先从与第一节点共享运维管理员的多个节点中选择该一个或多个其他节点。发送给一个或多个其他节点的下载请求包含与要从这些节点下载的一个或多个特定区块相关联的信息。例如,下载请求可以指定要从特定节点下载的起始区块标识符和结束区块标识符。或者,下载请求可以指定要从特定节点下载的区块数量以及起始区块标识符或结束区块标识符中的一者。
在下载步骤S603中,第一节点可以从所述一个或多个其他节点接收要下载的一个或多个特定区块,并将该一个或多个特定区块缓存在第一节点本地的下载队列中。该下载队列可以是按照区块高度排序的有序队列。根据本公开的一个实施例,第一节点可以并行地并且分别地从多个其他节点接收所述一个或多个特定区块中的相应一部分区块,然后将该相应一部分区块按照区块高度缓存在下载队列中。
在连接步骤S604中,第一节点可以将有序队列中的一个或多个特定区块与第一节点的本地区块连接。相应地,下载队列将被清空。
图7示出了根据本公开一个示例性实施例的用于区块链网络的共识节点的数据同步过程700的示意图。如图7所示,共识节点711可以是在升级后重新加入区块链网络的第一节点,并且共识节点712和713可以是在共识节点711升级期间负责维护区块链网络服务的多个共识节点中的两个。共识节点712和713可以具有区块链网络中具有最高区块高度的两个节点。共识节点711-713的示例可以是图2A-2B中的共识节点211-214。共识节点711的本地区块高度为4(即,区块0至区块3),而共识节点712和713的区块高度为6(即,区块0至区块5)。也就是说,区块0、1、2、3可以是在共识节点711停机和升级之前产生的区块,其可以称为共识节点711的已有区块;区块4和区块5可以是在共识节点711停机和升级期间产生的区块,其可以称为共识节点711的缺失区块。区块6可以是在共识节点711的数据同步期间正在生成的区块,其可以称为当前区块。在一些实施例中,由于区块6是在共识节点711加入区块链网络之后生成的,所以共识节点711也可以参与区块6的生成(例如,在针对区块6的共识操作期间投票)。
在数据同步过程700中,共识节点711可以基于从共识节点712和713或其他共识节点接收到的区块高度的值判定共识节点711的本地区块高度已经低于区块链网络的区块高度,因此需要与区块链网络进行数据同步。共识节点711还可以判定需要下载的缺失区块是区块4和区块5。响应于此判定,共识节点711可以向共识节点712和713发出下载请求。如图所示,共识节点711向共识节点712发出的下载请求可以指定要下载的区块为区块4,并且向共识节点713发出的下载请求可以指定要下载的区块为区块5。响应于接收到共识节点711的下载请求,共识节点712和713可以分别将区块4和区块5发送给共识节点711。共识节点711在收到区块4和区块5中的一者或多者后,可以将该区块缓存在共识节点711本地的下载队列721中。下载队列721可以是按照区块高度对接收到的区块进行排序的有序队列。因此,在下载队列721中,区块4可以排在比区块5靠前的存储区域中。区块4和区块5的下载可以是由多个并行线程同步执行的。当共识节点711判定所有需要的区块(即区块4或区块5二者)都已经被下载之后,可以执行连接步骤以将区块4和区块5从下载队列721中取出并有序地连接到共识节点711本地的区块链(具体而言,区块3)上。
如果共识节点711参与的区块6在数据同步过程700完成之前已经成功生成,则区块6(或者更多的一个或多个当前区块)也可以缓存在下载队列721中。在下载队列721中,区块6可以排在比区块5靠后的存储区域中。对于区块6之后的一个或多个当前区块也是如此。当共识节点711判定缺失区块4和5已经全部下载完成,则可以将区块4和5连同区块6(或者更多的一个或多个当前区块)一起连接到共识节点711本地的区块链上。
需要注意的是,尽管图7示出了两个缺失区块4和5,并且共识节点711分别从两个共识节点712和713下载一个缺失区块,但是本领域技术人员可以理解这种描绘仅仅是示例性的。在替代实施例中,共识节点711可以具有更多或更少的待下载的缺失区块、可以仅从单个共识节点下载全部的缺失区块、可以从更多的其他共识节点下载缺失区块、并且共识节点711从各个其他共识节点下载的缺失区块的数量可以不同。例如,共识节点711可以决定从哪个节点下载哪些缺失区块,并发送对应的下载请求。
根据本公开的一个实施例,共识节点711可以在执行数据同步过程期间对区块链网络中的所有投票投否决票。例如,虽然共识节点711名义上参与了当前区块6的生成,但是共识节点711可以在针对当前区块6的共识操作期间投否决票。对于在数据同步过程期间的其他当前区块也是如此。这样的安排可以是有益的。一方面,由于共识节点711的数据同步过程尚未完成,所以共识节点711可能不具有最新的完整的区块链账本。在这种情况下,共识节点711无法基于准确的数据或状态可靠地投票。如果等到共识节点711在数据同步完成之后再针对区块6进行投票(这种投票可能是可靠的),就很可能会超过区块链网络通常为投票设定的最大超时,进而拖慢区块链网络的速度。为了提高区块链网络的决策速率,可以将共识节点711配置为在执行数据同步过程期间对区块链网络中的所有投票投否决票。进一步地,共识节点711可以尽可能快地进行投票而无需对投票进行任何验证。对于执行PBFT共识机制的区块链网络,这是无妨的。因为PBFT共识机制允许所有共识节点中的最多1/3节点是无效节点。因此,共识节点711在数据同步期间表现为无效节点不会实质地影响到区块链网络的安全可靠性,反而能够提高区块链网络的效率。共识节点711可以在其数据同步完成之后正常地进行投票。
另外,注意到加入区块链网络的第一节点必须完成数据同步之后才能作为正常的共识节点来运行。数据同步过程的持续时间与第一节点所缺失的区块的数量呈正相关。因此,在一些情况下,当存在待加入的多个共识节点时,优先加入具有最少缺失区块的共识节点(即,具有最高本地区块高度的节点)可能是有益的。这能够以最小的数据同步时间得到具有足够多共识节点的区块链网络。另外,具有最高本地区块高度的共识节点是恶意节点的可能性更小,因为它在区块链网络中经受住了更长时间的考验。优先加入这样的节点可以降低区块链网络的风险,尤其是在区块链网络中的节点数量较少的情况下。为此,前述的准入过程500还可以可选地包括排序步骤。在该步骤中,当需要将多个节点(可以包括前述的第一节点)加入区块链网络时,可以依据该多个节点的本地区块高度这些节点进行排序,并且允许具有最高本地区块高度的节点加入所述区块链网络,成为共识节点。换句话说,对于区块链网络的多个节点的热升级过程,可以采取后出先进的原则。
图8是示出了根据本公开一个示例性实施例的用于区块链网络热升级的装置1000的基本配置的框图。如图8所示,用于区块链网络热升级的装置1000包括:准出部件1001、停机部件1002、升级部件1003、重启部件1004、准入部件1005,数据同步部件1006。本领域技术人员应当理解,用于区块链网络热升级的装置1000所包含的部件可以不限于上述部件1001-1006,而是可以包括用于实现根据本公开实施例的前述方法的其他步骤的部件。装置1000的各个部件可以由硬件、软件、固件或其任意组合来实现。另外,本领域技术人员也应当理解,装置1000的各个部件可以根据需要被组合或分割成子部件。
具体而言,准出部件1001被配置为使得区块链网络的多个共识节点判定允许从所述区块链网络删除所述多个共识节点中的第一节点;停机部件1002被配置为使第一节点停止区块链网络服务;升级部件1003被配置为使得对第一节点执行升级;重启部件1004被配置为使得升级后的第一节点重新启动。准入部件1005被配置为使得区块链网络判定允许将第一节点重新加入所述区块链网络;数据同步部件1006被配置为使得重新加入区块链网络的第一节点将其本地数据同步为与所述区块链网络一致。装置1000的上述各个部件不限于上述的各个功能,而是可以实现如前所述的根据本公开实施例的各种方法的相应步骤的功能。
图9示出了可以实现根据本公开的实施例的计算设备2000的示例性配置。计算设备2000是可以应用本公开的上述方面的硬件设备的实例。计算设备2000可以是被配置为执行处理和/或计算的任何机器。计算设备2000可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(PDA)、智能电话、车载计算机或以上组合。前述系统管理员、共识节点、非共识节点或用于区块链网络热升级的装置1000等均可以全部或至少部分地由上述计算设备2000或与其相似的设备或系统实现。
如图9所示,计算设备2000可以包括可能经由一个或多个接口与总线2002连接或通信的一个或多个元件。例如,计算设备2000可以包括总线2002、一个或多个处理器2004、一个或多个输入设备2006以及一个或多个输出设备2008。总线2002可以包括但不限于,工业标准架构(Industry Standard Architecture,ISA)总线、微通道架构(Micro ChannelArchitecture,MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设组件互连(PCI)总线等。一个或多个处理设备2004可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。输入设备2006可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备2008可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算设备2000还可以包括或被连接至非暂态存储设备2010,该非暂态存储设备2010可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。非暂态存储设备2010可以与任何接口可拆卸地连接。非暂态存储设备2010可以具有存储于其上的、用于实现前述区块链网络热升级的方法和/或步骤的数据/指令/代码。计算设备2000还可以包括通信设备2012,该通信设备2012可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
计算设备2000还可以包括工作存储器2014。该工作存储器2014可以是能够存储对于处理器2004有用的指令和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器(RAM)和只读存储器(ROM)。
位于上述工作存储器上的软件元件可以包括但不限于操作系统2016、一个或多个应用程序2018、驱动器和/或其他数据和代码。上述一个或多个应用程序2018可以包括用于执行如上所述的对区块链网络进行热升级的各方法及各步骤的指令。可以通过读取和执行一个或多个应用程序2018的处理器实现前述用于对区块链网络进行热升级的设备/装置1000的部件/单元/元件。更具体地,例如,前述装置1000中的准出部件1001、停机部件1002、升级部件1003、重启部件1004、准入部件1005,数据同步部件1006可以分别由处理器2004在执行具有用于执行图3的步骤S301-S306的指令的应用程序2018时实现。前述装置1000中的其它各个部件也可以用类似的方式实现。软件元件的指令的可执行代码或源代码可以存储在非暂态计算机可读存储介质(诸如如上所述的存储设备2010)中,并且可以通过编译和/或安装读入工作存储器2014中。还可以从远程位置下载软件元件的指令的可执行代码或源代码。
应当理解,可以根据特定要求进行变型。例如,可以使用定制的硬件和/或特定元件可以以硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合的方式实现。此外,可以采用与其他计算设备(诸如网络输入/输出设备)的连接。例如,本公开的方法和设备中的一些或全部可以根据本公开通过使用汇编语言编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)或逻辑和算法的硬件编程语言(例如VERILOG,VHDL,C++)来实现。
本公开至少包括如下的实施例:
1、一种用于对区块链网络进行热升级的方法,所述区块链网络包括多个共识节点,所述方法包括以下步骤:准出步骤,所述准出步骤判定允许从所述区块链网络删除所述多个共识节点中的第一节点;停机步骤,所述停机步骤使第一节点停止区块链网络服务;升级步骤,所述升级步骤对第一节点执行升级;重启步骤,所述重启步骤重新启动第一节点;准入步骤,所述准入步骤判定允许将第一节点重新加入所述区块链网络;数据同步步骤,所述数据同步步骤将重新加入的第一节点的本地数据同步为与所述区块链网络一致;其中,在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
2、根据实施例1所述的方法,所述准出步骤包括:构建交易步骤,构建针对所述第一节点的节点删除交易;获取签名步骤,为所述节点删除交易获取所述多个共识节点的签名;发起交易步骤,发起带所述签名的所述节点删除交易;签名验证步骤,验证所述签名中的每一个签名是否正确,并且还验证正确的签名的总数量是否达到所述多个共识节点的总数量的三分之二;共识步骤,当所述签名验证步骤成功时,由提案节点提出包含所述节点删除交易的提案区块并将所述提案区块广播给所有共识节点,由所有共识节点对所述提案区块中的所述节点删除交易进行验证;更新列表步骤,在所述共识步骤中对所述提案区块达成共识后,所述区块链网络中的各个节点执行所述节点删除交易,从而更新共识节点集合列表,其中经更新的共识节点集合列表不包含第一节点。
3、根据实施例2所述的方法,其中,更新列表步骤还包括:在执行所述节点删除交易时,每个共识节点对所述节点删除交易所带有的所述签名进行二次验证。
4、根据实施例2所述的方法,其中,更新列表步骤还包括:在更新所述共识节点集合列表之后,将所述经更新的共识节点集合列表临时地存储在各个节点的内存中,并且在间隔至少一个区块之后,将所述经更新的共识节点集合列表存储在各个节点的本地文件中,作为新的共识节点集合列表。
5、根据实施例1所述的方法,其中,所述升级步骤包括以下各项中的一者或多者:(1)使用新的可执行文件替换第一节点的现有可执行文件;以及(2)使用新的硬件替换第一节点的现有硬件。
6、根据实施例5所述的方法,其中,所述区块链网络的架构至少包括核心层和基础层,被替换的可执行文件包括以下各项中的至少一项:(1)用于核心层的智能合约功能、共识功能以及节点功能中的一者或多者的可执行文件;以及(2)用于所述基础层的存储功能和密码学功能中的一者或多者的可执行文件;并且其中,对所述可执行文件的替换不改变第一节点的区块链账本数据结构、区块数据结构、或者交易数据结构。
7、根据实施例1所述的方法,其中,所述准入步骤包括:构建交易步骤,构建针对所述第一节点的节点添加交易;获取签名步骤,为所述节点添加交易获取所述多个共识节点的签名;发起交易步骤,发起带所述签名的所述节点添加交易;签名验证步骤,验证所述签名中的每一个签名是否正确,并且还验证正确的签名的总数量是否达到所述多个共识节点的总数量的三分之二;共识步骤,当所述签名验证步骤成功时,由提案节点提出包含所述节点添加交易的提案区块并将所述提案区块广播给所有共识节点,由所有共识节点对所述提案区块中的所述节点添加交易进行验证;更新列表步骤,在所述共识步骤中对所述提案区块达成共识后,所述区块链网络中的各个节点执行所述节点添加交易,从而根据所述添加请求来更新共识节点集合列表,经更新的共识节点集合列表中包含第一节点。
8、根据实施例7所述的方法,其中,更新列表步骤还包括:在执行所述节点添加交易时,每个共识节点对所述节点添加交易所带有的所述签名进行二次验证。
9、根据实施例7所述的方法,其中,更新列表步骤还包括:在更新所述共识节点集合列表之后,将所述经更新的共识节点集合列表仅存储在各个节点的内存中,并且在间隔至少一个区块之后,再将所述经更新的共识节点集合列表存储在各个节点的本地文件中,作为新的共识节点集合列表。
10、根据实施例1所述的方法,其中,所述数据同步步骤包括:比较步骤,比较第一节点的区块高度与所述区块链网络的最高区块高度;下载请求步骤,当所述比较步骤判定第一节点的区块高度小于所述区块链网络的最高区块高度时,第一节点向具有最高区块高度的一个或多个其他节点发送下载请求,所述下载请求包含与要下载的一个或多个特定区块相关联的信息;下载步骤,第一节点从所述一个或多个其他节点接收所述一个或多个特定区块,并将所述一个或多个特定区块缓存在本地的下载队列中,所述下载队列是按照区块高度排序的有序队列;连接步骤,将所述有序队列中的所述一个或多个特定区块与第一节点的本地区块连接。
11、根据实施例10所述的方法,其中,在所述下载步骤中,第一节点并行地并且分别地从多个其他节点接收所述一个或多个特定区块中的相应一部分区块。
12、根据实施例10所述的方法,其中,在执行所述数据同步步骤期间,第一节点被配置为对所述区块链网络中的所有投票投否决票。
13、根据实施例1所述的方法,其中,所述准出步骤还包括准出条件检验步骤,在该步骤中,判定以下准出条件是否被满足:(1)待删除的共识节点的数量与所述区块链网络的共识节点的总数量之比小于阈值比例;以及(2)除了待删除的共识节点之外的剩余共识节点的数量大于阈值数量。
14、根据实施例1所述的方法,其中,所述准入步骤还包括准入条件检验步骤,在该步骤中,判定以下准入条件是否被满足:待添加的共识节点的数量与所述区块链网络的共识节点的总数量之比小于预定的阈值比例。
15、根据实施例1所述的方法,其中,所述方法还包括:当需要将多个节点加入所述区块链网络时,依据节点的本地区块高度对待加入的第一节点和所述一个或多个其他节点进行排序;允许具有最高本地区块高度的优先节点加入所述区块链网络,成为共识节点。
16、一种能够进行热升级的区块链网络系统,所述区块链网络系统包括多个共识节点,所述多个共识节点包括第一节点,其中,所述第一节点被配置为:停止区块链网络服务;执行升级;重新启动;重新加入所述区块链网络;以及将本地数据同步为与所述区块链网络一致;并且其中,所述多个共识节点被配置为:在所述第一节点停止区块链网络服务之前,判定允许从所述区块链网络删除所述第一节点;以及在所述第一节点重新加入所述区块链网络,判定允许所述第一节点重新加入所述区块链网络;并且其中,在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
17、一种用于对区块链网络进行热升级的系统,包括:一个或更多个处理器;以及一个或更多个存储器,被配置为存储一系列计算机可执行指令,其中所述一系列计算机可执行指令在由所述一个或更多个处理器运行时使得所述一个或更多个处理器执行如实施例1-15中任一项所述的方法。
18、一种非暂态的计算机可读介质,其上存储有计算机可执行指令,其中所述一系列计算机可执行指令在由一个或更多个处理器运行时使得所述一个或更多个处理器执行如实施例1-15中任一项所述的方法。
19、一种包括用于执行如实施例1-15中任一项所述的方法的部件的装置。
可以通过许多方式来实施本公开的方法和设备。例如,可以通过软件、硬件、固件、或其任何组合来实施本公开的方法和设备。上述的方法步骤的次序仅是说明性的,本公开的方法步骤不限于以上具体描述的次序,除非以其它方式明确说明。此外,在一些实施例中,本公开还可以被实施为记录在记录介质中的程序,其包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于实现根据本公开的方法的程序的记录介质。
虽然已通过示例详细展示了本公开的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本公开的范围。本领域技术人员应该理解,上述实施例可以在不脱离本公开的范围和实质的情况下被修改。本公开的范围是通过所附的权利要求限定的。
Claims (10)
1.一种用于对区块链网络进行热升级的方法,所述区块链网络包括多个共识节点,所述方法包括以下步骤:
准出步骤,所述准出步骤判定允许从所述区块链网络删除所述多个共识节点中的第一节点;
停机步骤,所述停机步骤使第一节点停止区块链网络服务;
升级步骤,所述升级步骤对第一节点执行升级;
重启步骤,所述重启步骤重新启动第一节点;
准入步骤,所述准入步骤判定允许将第一节点重新加入所述区块链网络;
数据同步步骤,所述数据同步步骤将重新加入的第一节点的本地数据同步为与所述区块链网络一致;
其中,在第一节点停止区块链网络服务期间,由所述多个共识节点中的其他节点维持区块链网络的服务。
2.根据权利要求1所述的方法,所述准出步骤包括:
构建交易步骤,构建针对所述第一节点的节点删除交易;
获取签名步骤,为所述节点删除交易获取所述多个共识节点的签名;
发起交易步骤,发起带所述签名的所述节点删除交易;
签名验证步骤,验证所述签名中的每一个签名是否正确,并且还验证正确的签名的总数量是否达到所述多个共识节点的总数量的三分之二;
共识步骤,当所述签名验证步骤成功时,由提案节点提出包含所述节点删除交易的提案区块并将所述提案区块广播给所有共识节点,由所有共识节点对所述提案区块中的所述节点删除交易进行验证;
更新列表步骤,在所述共识步骤中对所述提案区块达成共识后,所述区块链网络中的各个节点执行所述节点删除交易,从而更新共识节点集合列表,其中经更新的共识节点集合列表不包含第一节点。
3.根据权利要求2所述的方法,其中,更新列表步骤还包括:
在执行所述节点删除交易时,每个共识节点对所述节点删除交易所带有的所述签名进行二次验证。
4.根据权利要求2所述的方法,其中,更新列表步骤还包括:
在更新所述共识节点集合列表之后,将所述经更新的共识节点集合列表临时地存储在各个节点的内存中,并且
在间隔至少一个区块之后,将所述经更新的共识节点集合列表存储在各个节点的本地文件中,作为新的共识节点集合列表。
5.根据权利要求1所述的方法,其中,所述升级步骤包括以下各项中的一者或多者:
(1)使用新的可执行文件替换第一节点的现有可执行文件;以及
(2)使用新的硬件替换第一节点的现有硬件。
6.根据权利要求5所述的方法,其中,所述区块链网络的架构至少包括核心层和基础层,被替换的可执行文件包括以下各项中的至少一项:
(1)用于核心层的智能合约功能、共识功能以及节点管理功能中的一者或多者的可执行文件;以及
(2)用于所述基础层的存储功能和密码学功能中的一者或多者的可执行文件;并且
其中,对所述可执行文件的替换不改变第一节点的区块链账本数据结构、区块数据结构、或者交易数据结构。
7.根据权利要求1所述的方法,其中,所述准入步骤包括:
构建交易步骤,构建针对所述第一节点的节点添加交易;
获取签名步骤,为所述节点添加交易获取所述多个共识节点的签名;
发起交易步骤,发起带所述签名的所述节点添加交易;
签名验证步骤,验证所述签名中的每一个签名是否正确,并且还验证正确的签名的总数量是否达到所述多个共识节点的总数量的三分之二;
共识步骤,当所述签名验证步骤成功时,由提案节点提出包含所述节点添加交易的提案区块并将所述提案区块广播给所有共识节点,由所有共识节点对所述提案区块中的所述节点添加交易进行验证;
更新列表步骤,在所述共识步骤中对所述提案区块达成共识后,所述区块链网络中的各个节点执行所述节点添加交易,从而根据所述添加请求来更新共识节点集合列表,经更新的共识节点集合列表中包含第一节点。
8.根据权利要求7所述的方法,其中,更新列表步骤还包括:
在执行所述节点添加交易时,每个共识节点对所述节点添加交易所带有的所述签名进行二次验证。
9.根据权利要求7所述的方法,其中,更新列表步骤还包括:
在更新所述共识节点集合列表之后,将所述经更新的共识节点集合列表仅存储在各个节点的内存中,并且
在间隔至少一个区块之后,再将所述经更新的共识节点集合列表存储在各个节点的本地文件中,作为新的共识节点集合列表。
10.根据权利要求1所述的方法,其中,所述数据同步步骤包括:
比较步骤,比较第一节点的区块高度与所述区块链网络的最高区块高度;
下载请求步骤,当所述比较步骤判定第一节点的区块高度小于所述区块链网络的最高区块高度时,第一节点向具有最高区块高度的一个或多个其他节点发送下载请求,所述下载请求包含与要下载的一个或多个特定区块相关联的信息;
下载步骤,第一节点从所述一个或多个其他节点接收所述一个或多个特定区块,并将所述一个或多个特定区块缓存在本地的下载队列中,所述下载队列是按照区块高度排序的有序队列;
连接步骤,将所述有序队列中的所述一个或多个特定区块与第一节点的本地区块连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910870384.5A CN110430087B (zh) | 2019-09-16 | 2019-09-16 | 区块链热升级的架构设计与实现 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910870384.5A CN110430087B (zh) | 2019-09-16 | 2019-09-16 | 区块链热升级的架构设计与实现 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110430087A true CN110430087A (zh) | 2019-11-08 |
CN110430087B CN110430087B (zh) | 2022-04-05 |
Family
ID=68419048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910870384.5A Active CN110430087B (zh) | 2019-09-16 | 2019-09-16 | 区块链热升级的架构设计与实现 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110430087B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008218A (zh) * | 2019-12-04 | 2020-04-14 | 福州博泉网络科技有限公司 | 区块链链上数据结构化存储方法及系统 |
CN111046055A (zh) * | 2019-12-11 | 2020-04-21 | 杭州趣链科技有限公司 | 一种区块链全局配置的变更方法、设备和存储介质 |
CN111224782A (zh) * | 2019-11-22 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 基于数字签名的数据校验方法、智能设备及存储介质 |
CN111401900A (zh) * | 2020-03-20 | 2020-07-10 | 深圳市网心科技有限公司 | 一种区块链验证人更新方法、装置、设备及可读存储介质 |
CN111506327A (zh) * | 2020-04-15 | 2020-08-07 | 深圳市网心科技有限公司 | 区块链节点热升级方法及相关设备 |
CN111596937A (zh) * | 2020-05-14 | 2020-08-28 | 北京众享比特科技有限公司 | 一种区块链中节点的新特征同步生效的实现方法和系统 |
CN112235137A (zh) * | 2020-10-12 | 2021-01-15 | 杭州溪塔科技有限公司 | 一种区块链节点程序的升级方法、装置及电子设备 |
CN112631641A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 区块链服务升级方法、装置、终端设备及存储介质 |
CN112907082A (zh) * | 2021-02-23 | 2021-06-04 | 上海腾天节能技术有限公司 | 一种区块链共识算法评估优化方法 |
CN113067707A (zh) * | 2021-06-02 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN113765671A (zh) * | 2021-08-06 | 2021-12-07 | 深圳前海微众银行股份有限公司 | 一种区块链节点热重启的方法及装置 |
CN113761063A (zh) * | 2021-08-26 | 2021-12-07 | 浙商银行股份有限公司 | 一种不停机区块链迁移方法、设备及存储介质 |
CN114006906A (zh) * | 2020-11-23 | 2022-02-01 | 北京八分量信息科技有限公司 | 一种通过优化节点通讯来降低内存消耗的方法 |
CN114363336A (zh) * | 2021-12-31 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 一种启动/关闭区块链节点服务的方法和装置 |
CN114928558A (zh) * | 2022-06-14 | 2022-08-19 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
EP4016323A4 (en) * | 2020-03-24 | 2022-11-30 | Tencent Technology (Shenzhen) Company Limited | SYNCHRONOUS PROCESSING METHOD AND RELATED APPARATUS |
EP4068692A4 (en) * | 2019-11-26 | 2023-01-11 | Daikin Industries, Ltd. | BLOCKCHAIN SYSTEM, PROGRAM AND NETWORK CONNECTION DEVICE |
US12099482B2 (en) | 2020-03-24 | 2024-09-24 | Tencent Technology (Shenzhen) Company Limited | Synchronization processing method and related apparatus |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598490A (zh) * | 2016-11-25 | 2017-04-26 | 深圳前海微众银行股份有限公司 | 区块链数据的访问方法和区块链管理系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
US20180088928A1 (en) * | 2016-09-28 | 2018-03-29 | Mcafee, Inc. | Device-driven auto-recovery using multiple recovery sources |
CN108768749A (zh) * | 2018-06-21 | 2018-11-06 | 佛山科学技术学院 | 一种基于区块链的节点隔离自恢复方法及装置 |
CN109688012A (zh) * | 2018-12-29 | 2019-04-26 | 杭州趣链科技有限公司 | 一种联盟链节点热备切换的方法 |
-
2019
- 2019-09-16 CN CN201910870384.5A patent/CN110430087B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180088928A1 (en) * | 2016-09-28 | 2018-03-29 | Mcafee, Inc. | Device-driven auto-recovery using multiple recovery sources |
CN106598490A (zh) * | 2016-11-25 | 2017-04-26 | 深圳前海微众银行股份有限公司 | 区块链数据的访问方法和区块链管理系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN108768749A (zh) * | 2018-06-21 | 2018-11-06 | 佛山科学技术学院 | 一种基于区块链的节点隔离自恢复方法及装置 |
CN109688012A (zh) * | 2018-12-29 | 2019-04-26 | 杭州趣链科技有限公司 | 一种联盟链节点热备切换的方法 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111224782A (zh) * | 2019-11-22 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 基于数字签名的数据校验方法、智能设备及存储介质 |
CN111224782B (zh) * | 2019-11-22 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 基于数字签名的数据校验方法、智能设备及存储介质 |
EP4068692A4 (en) * | 2019-11-26 | 2023-01-11 | Daikin Industries, Ltd. | BLOCKCHAIN SYSTEM, PROGRAM AND NETWORK CONNECTION DEVICE |
CN111008218B (zh) * | 2019-12-04 | 2022-05-24 | 福州博泉网络科技有限公司 | 区块链链上数据结构化存储方法及系统 |
CN111008218A (zh) * | 2019-12-04 | 2020-04-14 | 福州博泉网络科技有限公司 | 区块链链上数据结构化存储方法及系统 |
CN111046055A (zh) * | 2019-12-11 | 2020-04-21 | 杭州趣链科技有限公司 | 一种区块链全局配置的变更方法、设备和存储介质 |
CN111401900A (zh) * | 2020-03-20 | 2020-07-10 | 深圳市网心科技有限公司 | 一种区块链验证人更新方法、装置、设备及可读存储介质 |
JP7553554B2 (ja) | 2020-03-24 | 2024-09-18 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 同期処理方法及び関連装置 |
US12099482B2 (en) | 2020-03-24 | 2024-09-24 | Tencent Technology (Shenzhen) Company Limited | Synchronization processing method and related apparatus |
JP2022553963A (ja) * | 2020-03-24 | 2022-12-27 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 同期処理方法及び関連装置 |
EP4016323A4 (en) * | 2020-03-24 | 2022-11-30 | Tencent Technology (Shenzhen) Company Limited | SYNCHRONOUS PROCESSING METHOD AND RELATED APPARATUS |
CN111506327B (zh) * | 2020-04-15 | 2023-04-21 | 深圳市迅雷网络技术有限公司 | 区块链节点热升级方法及相关设备 |
CN111506327A (zh) * | 2020-04-15 | 2020-08-07 | 深圳市网心科技有限公司 | 区块链节点热升级方法及相关设备 |
CN111596937B (zh) * | 2020-05-14 | 2023-09-15 | 北京众享比特科技有限公司 | 一种区块链中节点的新特征同步生效的实现方法和系统 |
CN111596937A (zh) * | 2020-05-14 | 2020-08-28 | 北京众享比特科技有限公司 | 一种区块链中节点的新特征同步生效的实现方法和系统 |
CN112235137A (zh) * | 2020-10-12 | 2021-01-15 | 杭州溪塔科技有限公司 | 一种区块链节点程序的升级方法、装置及电子设备 |
CN114006906A (zh) * | 2020-11-23 | 2022-02-01 | 北京八分量信息科技有限公司 | 一种通过优化节点通讯来降低内存消耗的方法 |
CN114006906B (zh) * | 2020-11-23 | 2023-11-07 | 北京八分量信息科技有限公司 | 一种通过优化节点通讯来降低内存消耗的方法 |
CN112631641A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 区块链服务升级方法、装置、终端设备及存储介质 |
CN112907082B (zh) * | 2021-02-23 | 2024-04-09 | 上海腾天节能技术有限公司 | 一种区块链共识算法评估优化方法 |
CN112907082A (zh) * | 2021-02-23 | 2021-06-04 | 上海腾天节能技术有限公司 | 一种区块链共识算法评估优化方法 |
CN113067707B (zh) * | 2021-06-02 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN113067707A (zh) * | 2021-06-02 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN113765671A (zh) * | 2021-08-06 | 2021-12-07 | 深圳前海微众银行股份有限公司 | 一种区块链节点热重启的方法及装置 |
CN113761063A (zh) * | 2021-08-26 | 2021-12-07 | 浙商银行股份有限公司 | 一种不停机区块链迁移方法、设备及存储介质 |
CN113761063B (zh) * | 2021-08-26 | 2024-04-16 | 浙商银行股份有限公司 | 一种不停机区块链迁移方法、设备及存储介质 |
CN114363336A (zh) * | 2021-12-31 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 一种启动/关闭区块链节点服务的方法和装置 |
CN114928558A (zh) * | 2022-06-14 | 2022-08-19 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
CN114928558B (zh) * | 2022-06-14 | 2023-12-12 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110430087B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110430087A (zh) | 区块链热升级的架构设计与实现 | |
CN110569309B (zh) | 用于实现区块链的设备、方法、系统以及介质 | |
CN111209346B (zh) | 一种区块链数据归档方法、装置和计算机可读存储介质 | |
CN110915166B (zh) | 区块链 | |
EP3559885B1 (en) | Data isolation in a blockchain network | |
CN111382456B (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
US11599431B2 (en) | Database optimized disaster recovery orchestrator | |
US11108559B2 (en) | Producing proof of receipt, existence and other data provenance evidence | |
CN110633323A (zh) | 业务数据存储方法、装置、存储介质和计算机设备 | |
CN107579848A (zh) | 实用拜占庭容错共识机制中动态更改共识节点的方法 | |
CN109345386A (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN111164935A (zh) | 在基于区块链的私有交易中提供隐私和安全保护的系统和方法 | |
TWI720918B (zh) | 基於錯誤校正碼之共用區塊鏈資料儲存的共識 | |
JP7479393B2 (ja) | 仮想分散型台帳ネットワークのためのシステムおよび方法 | |
CN102763102A (zh) | 用于数据环境的自服务配置 | |
US11627122B2 (en) | Inter-system linking method and node | |
CN112291372B (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
CN111327648A (zh) | 基于区块链智能合约的处理方法和系统 | |
US20210374112A1 (en) | Migration support system, migration support method, and node | |
US12069146B2 (en) | Management services for distributed computing architectures using rolling changes | |
CN115211093A (zh) | 数据对象的有效阈值存储 | |
CN110598375B (zh) | 一种数据处理方法、装置及存储介质 | |
CN115699054A (zh) | 区块链的更快查看改变 | |
CN106716968A (zh) | 账户管理方法、装置及账户管理系统 | |
CN110599384B (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 | ||
CB02 | Change of applicant information |
Address after: 200120 T3, 1788, 1800 Century Avenue, free trade Experimental Zone, Pudong New Area, Shanghai Applicant after: Shanghai insurance exchange, Limited by Share Ltd Address before: 200120 Shanghai East Road Pudong New Area Financial Information Center 22 Applicant before: Shanghai insurance exchange, Limited by Share Ltd |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |