CN110569309A - 用于实现区块链的设备、方法、系统以及介质 - Google Patents
用于实现区块链的设备、方法、系统以及介质 Download PDFInfo
- Publication number
- CN110569309A CN110569309A CN201910873174.1A CN201910873174A CN110569309A CN 110569309 A CN110569309 A CN 110569309A CN 201910873174 A CN201910873174 A CN 201910873174A CN 110569309 A CN110569309 A CN 110569309A
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- unit
- nodes
- blockchain
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及用于实现区块链的设备、方法、系统以及介质。用于实现区块链的设备包括:服务组件,包括钱包、多签名单元、监控单元、隐私交易单元以及数字资产单元;核心组件,包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;基础组件,包括网络通信单元、存储单元、密码学单元以及账本单元。
Description
技术领域
本发明涉及区块链技术,具体地涉及用于实现区块链的设备、方法、系统以及介质。
背景技术
以太坊是目前市场上一种主流的公有链,其被广泛地应用。但是,以太坊主要使用pow算法作为共识算法,其共识效率较低。Fabric是目前市场上一种主流的联盟链,虽然其使用的共识算法效率较高,但是不能很好的支持C端(客户端)的应用,且不能兼容以太坊上的应用。
发明内容
为了解决现有技术中的一个或多个问题,本发明提供了用于实现区块链的设备、方法、系统以及介质,其采用了运行效率高的新型区块链架构。
根据本发明的一个方面,提供了一种用于实现区块链的设备,包括:服务组件,包括用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;核心组件,包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;基础组件,包括用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
根据本发明的一个方面,提供了一种用于实现区块链的方法,包括:在服务组件中提供用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;在核心组件中提供用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;在基础组件中提供用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
根据本发明的一个方面,提供了一种用于实现区块链的设备,包括:处理器;以及存储器,存储有程序,所述程序在由处理器执行时使处理器执行包括如下步骤的方法:在服务组件中提供用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;在核心组件中提供用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;在基础组件中提供用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
根据本发明的一个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时使处理器执行包括如下步骤的方法:在服务组件中提供用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;在核心组件中提供用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;在基础组件中提供用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
根据本发明的一个方面,提供了一种用于实现区块链的系统,包括分布式应用、区块链网络的节点、以及区块链监控服务器。区块链网络的节点包括用于实现区块链的设备,该设备包括:服务组件,包括用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;核心组件,包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;基础组件,包括用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
根据参照附图的以下描述,本发明的其它特性特征和优点将变得清晰。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于说明本发明的原理。
图1示出了根据本发明的实施例的用于实现区块链的设备的示例性配置。
图2示出了根据本发明的实施例的区块链网络的示例性拓扑结构。
图3示出了根据本发明的实施例的区块链网络的示例性共识流程。
图4示出了根据本发明的实施例的共识节点的示例性准入准出管理流程。
图5示出了根据本发明的实施例的示例性热升级流程。
图6示出了根据本发明的实施例的智能合约的示例性部署和执行流程。
图7示出了根据本发明的实施例的区块链网络的示例性经济模型。
图8示出了根据本发明的实施例的区块链网络的面向B2B2C的示例性解决方案。
图9示出了根据本发明的实施例的用于实现区块链网络的示例性方法。
图10示出了根据本发明的实施例的用于实现区块链的示例性系统。
图11示出了根据本发明的实施例的系统在压测情况下所能达到的性能状态。
图12示出了可以实现根据本发明的实施例的计算设备的示例性配置。
具体实施方式
下面将参考附图来详细描述本发明的优选的实施例。不是本发明必需的细节和功能被省略,以便不会混淆本发明的理解。
请注意,类似的参考数字和字母指的是图中的类似的项目,因而一旦在一幅图中定义了一个项目,就不需要在之后的图中讨论了。
在本公开中,术语“第一”、“第二”等仅仅被用来在元件或步骤之间进行区分,而并不意图表示时间顺序、优先级或重要性。
本公开中,术语“区块链技术”包括但不限于关于分布式存储、点对点网络、共识机制、加密算法等的技术。术语“共识机制”通常是指区块链系统中实现不同节点之间建立信任、获取权益的数学算法。
图1示出了根据本发明的实施例的用于实现区块链的设备100的示例性配置。如图1所示,设备100包括服务组件110、核心组件120和基础组件160。
服务组件110包括用于管理用户的公钥和私钥的钱包111、用于进行签名的多签名单元112、用于对区块链网络的指定节点进行监控的监控单元113、用于保护交易隐私的隐私交易单元114、以及用于存储数字资产的数字资产单元115。
钱包111是可以让用户登录的客户端程序,其管理用户的公钥和私钥。用户可以通过钱包来部署合约、执行合约、转账等操作。多签名单元112用于进行多签名交易,其中,多签名交易要求在多人签名之后才能将合约地址中的资产转移至其它地址。监控单元113用于对区块链网络的指定节点进行监控,其可以显示区块的详情、交易详情等信息。
隐私交易单元114用于保护交易隐私。隐私交易单元114可以在节点之间采用单独的新建秘钥对进行握手,以实现安全通信。隐私交易单元114还可以针对Proto3进行扩展对interface进行编码,以实现对象编码。隐私交易单元114还可以使得共识节点的增加和删除都需要区块链网络的共识和管理,以实现节点控制。隐私交易单元114还可以使用只有用户本人知晓的从用户的公钥派生而来的账户地址,以实现账户匿名。隐私交易单元114还可以支持同一用户的多个地址以及在不产生花费的情况下在所述多个地址之间转移资产。
隐私交易单元114可以与分布式应用程序Dapp(未示出)协作来保护交易隐私。例如,分布式应用程序Dapp可以应用Solidity密码学,利用斯诺知识证明、可链接AOS环签名、默克尔树验证从数字签名中获取签名地址。分布式应用程序Dapp还可以进行权限控制,例如,是否启用角色、账号、合约。分布式应用程序Dapp还可以进行Zokrates零知识证明交易以在DApp中运用可验证的计算。该证明由类Python语言生成,并在Solidity中完成验证。分布式应用程序Dapp还可以进行Aztec隐私交易。交易内容由零知识证明与特定的动态加密支持,无关方无法知晓交易内容。分布式应用程序Dapp还可以进行多签名交易,在资产转移时由多人签名。
数字资产单元115用于存储可以在钱包111中进行管理的数字资产。数字资产可以是符合ERC20标准、ERC721标准或其它代币标准的数字资产。
核心组件120包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块130、利用拜占庭(BFT)算法在区块链网络的共识节点之间进行共识的共识模块140、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块150。
根据本发明的一些实施例,智能合约模块130包括合约升级单元131。合约升级单元131进行合约的在线升级以及业务逻辑的热更新。合约可以由分布式应用程序将Solidity源码利用Solc编译成为字节码和应用程序二进制接口并部署成为智能合约模块中的以太坊虚拟机代码。合约可以由分布式应用程序通过Web3应用程序接口调用。
智能合约模块130包括以太坊虚拟机(EVM)132。以太坊虚拟机132可以支持当前以太坊公有链上的应用,从而可以直接将这些应用移植部署到设备100上。
根据本发明的一些实施例,智能合约模块130包括经济模型单元133。经济模型单元133使用诸如ERC20标准、ERC721标准或其它代币标准建立经济模型。所建立的经济模型在不消耗燃料的情况下部署或运行智能合约。
根据本发明的一些实施例,智能合约模块130包括命令行接口(Cli)134。命令行接口(Cli)134提供进行快速操作的命令行模式。
根据本发明的一些实施例,共识模块140包括容错容恶单元141。容错容恶单元141使用拜占庭(BFT)算法进行共识并在超过三分之二的共识节点投票通过提案区块的情况下将提案区块添加至本地区块链账本中成为新区块。使用BFT算法,共识节点拥有容错和容恶机制,可以支持全网节点数少于三分之一的节点有错误或者作恶的情况下也可以达成正确的结果,不影响共识的结果。注意,此处是少于三分之一,就是最少是4个节点的时候会可以有一个节点的容错容恶机制。只有三个节点进行共识的话,有一个节点出现异常共识将无法继续,因为正好是三分之一个节点出现异常。
根据本发明的一些实施例,共识模块140包括权益投票单元142。权益投票单元142设置共识节点的权益从区块链网络中选取能够进行区块提案的主节点。共识节点根据设定好的权益进行投票选举主节点来进行打块。权益值越高的节点,成为主节点的几率就越大。权益算法会按照权益比例依次选举节点成为主节点,这个概率是固定的。此外,权益投票单元142还可以利用随机数来更换区块链网络中的主节点。
根据本发明的一些实施例,共识模块140包括大规模扩展单元143。大规模扩展单元143根据业务模型来调节共识节点和非共识节点的数量。节点分为共识和非共识节点(又称观察节点)两类。共识节点的数量决定了整个共识的效率。共识节点数量越少共识的效率越高。共识节点的数量越多,整个共识节点群的容错容恶能力就越强。所以共识节点的数量需要根据不同业务模型来进行取舍平衡。非共识节点不参与共识,只同步数据,也可以发送交易到共识节点群中。非共识节点理论上是可以大规模扩展的,没有节点数量的上限。
根据本发明的一些实施例,共识模块140包括故障恢复单元144。故障恢复单元144在区块链网络中的第一节点发生故障时使用停止命令停止并重启第一节点。在重启后根据存储的状态文件和状态数据库来恢复第一节点的状态。在开启了种子节点开关的情况下,可以根据地址簿中的种子节点的地址进行重新连接来重新加入区块链网络。此外,还可以根据初始化设置中的连接节点进行重新连接来重新加入区块链网络。可以对重新加入区块链网络的第一节点进行同步,以获取在故障期间缺失的数据。
根据本发明的一些实施例,节点管理模块150包括准入准出管理单元151。准入准出管理单元151对运维方发起的用于对节点进行变更的变更请求签名并将附有签名的变更请求广播给其它共识节点。对从其它共识节点接收到的变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名。在确定有超过三分之二的共识节点对该变更请求进行了签名的情况下该区块链网络进行共识。在共识之后再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名。在再次验证通过的情况下执行该变更请求。
根据本发明的一些实施例,用于对节点进行变更的变更请求包括添加新节点、删除已有节点和变更节点权益。在变更请求是添加新节点的情况下,执行变更请求可以包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务。在变更请求是删除已有节点的情况下,执行变更请求可以包括在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。在变更请求是变更节点权益的情况下,执行变更请求可以包括在当前区块中变更节点权益并使得在当前区块之后的第二个区块中使用变更后的节点权益提供区块链服务。
根据本发明的一些实施例,节点管理模块150包括热升级单元152。热升级单元152在判定允许从区块链网络删除多个共识节点中的第一节点的情况下,使第一节点停止区块链服务并对第一节点执行升级。热升级单元152重新启动第一节点并在判定允许将第一节点重新添加至区块链网络的情况下将第一节点重新添加至区块链网络。热升级单元152将重新添加的第一节点的本地数据同步为与所述区块链网络一致。在热升级期间,第一节点停止区块链服务,并且由共识节点中的其它节点提供区块链服务。热升级可以在底层结构不变的情况下,可以通过每个节点独立升级执行程序的方法,升级整条区块链的版本。
根据本发明的一些实施例,节点管理模块150包括网络角色管理单元153。网络角色管理单元153将区块链网络的每个节点标识为共识节点或非共识节点。共识节点参与共识和区块同步,非共识节点参与区块同步而不参与共识。网络角色管理单元153可以设置种子节点开关,并开启或关闭种子节点开关。种子节点用于重新建立区块链网络的连接。种子节点是组网类型中的概念,任何共识节点或者非共识节点都可以是种子节点。网络角色管理单元153在开启种子节点开关的情况下,将区块链网络的至少一个节点标识为种子节点。网络角色管理单元153在关闭种子节点开关的情况下,区块链网络中没有种子节点。
根据本发明的一些实施例,节点管理模块150包括地址薄154。在网络角色管理单元153开启了种子节点开关的情况下,在地址薄154中存储种子节点的地址。在网络角色管理单元153关闭了种子节点开关的情况下,不在地址薄154中存储种子节点的地址。每个节点可以在本地保有一个连接地址簿。在开始种子节点开关的情况下,大家会首先去连接一个种子节点,获取地址簿的信息,然后根据获得的连接地址簿信息,去连接节点,建立网络。
基础组件160包括用于建立节点之间的通信连接的网络通信单元161、用于存储区块链信息的存储单元162、用于进行加密和解密的密码学单元114、以及用于管理区块链账本的账本单元115。
存储单元162可以支持key-value型数据库,例如,使用leveldb或其它数据库。存储单元162可以存储诸如账本、区块、交易等的区块链信息。密码学单元163可以支持椭圆曲线、非对称加密算法。账本单元164可以记录区块链的账本、区块以及区块中的交易。
值得注意的是,虽然参考图1描述了用于实现区块链的设备100的各个组成部分,但是上述组成部分中的一个或多个可以不是必须的。
图2示出了根据本发明的实施例的区块链网络200的示例性拓扑结构。如图2所示,区块链网络200可以包括多个共识节点(例如,共识节点1-4)和多个非共识节点(又称观察节点)。共识节点负责进行共识操作和生产账本,特别是参与应用BFT算法进行的共识操作。非共识节点则仅接收消息和同步记录账本,并不参与共识操作,也没有共识投票的权力。多个共识节点两两之间相互连接和/或通信,而非共识节点只用与至少一个共识节点或非共识节点连接和/或通信以实现同步即可。
大规模扩展单元143可以根据业务模型来调节共识节点和非共识节点的数量。由于共识节点参与区块链网络的共识,而非共识节点不参与区块链网络的共识,所以共识节点的数量会影响区块链网络的共识效率。大规模扩展单元143可以控制共识节点的数量,以防止共识节点过多导致共识效率低下。大规模扩展单元143可以通过增加非共识节点来在不影响共识效率的情况下扩大区块链网络的规模。
共识节点参与共识和区块同步,为了组成一个区块链网络,共识节点是必需的,非共识节点是可选的。非共识节点只参与区块同步,也可以发送交易到区块链网络。共识节点的加入和退出需要经过管理步骤(发送节点变更请求)才能够完成,无关节点无法加入本区块链网络。但是,应当认识到,共识节点和非共识节点并非是固定的,而是可以通过本发明的方法进行动态切换。
图3示出了根据本发明的实施例的区块链网络的示例性共识流程300。容错容恶单元141可以执行共识流程300以在区块链网络的共识节点之间通过三阶段的投票达成共识,从而向区块链中增加一个新的区块。
如图3所示,首先进行第一阶段投票(提案阶段)。区块链网络中的共识节点根据一个统一公式,在当前的共识节点中选取一个主节点。主节点根据本身的本地区块信息,提出一个新区块的提案区块,并将提案区块在区块链网络中进行广播。
在区块链网络初始化时,每个共识节点会被分配初始化权重,随后该权重可以由准入准出管理单元151变更。在共识过程中,当前共识节点集合中的共识节点根据当前权重选举当前一轮共识的主节点。
根据本发明的一些实施例,可以利用随机数来动态更换主节点。例如,可以通过至少两个客户端生成对应的至少两个随机数并传递给智能合约,利用智能合约对所述至少两个随机数进行运算以得到最终随机数,并且在共识算法中利用所述最终随机数来确定所述区块链网络中的一个节点作为下一个领导者。该运算包括把所述至少两个随机数连接成字符串,对所述字符串应用安全散列算法,把散列后得到的值的末位字符变为小写并且取其ACSII值,以及将所述ACSII值除以区块链网络的节点数并且取余数,将所述余数作为最终随机数。
主节点在提出提案区块之后,区块链网络进入第二阶段投票(预投票阶段)。区块链网络中的共识节点收到提案区块后,在本地对于这个提案区块进行验证。如果验证通过,则发出一个同意该提案区块的投票,并广播给区块链网络中的其它共识节点,并且等待所有其它共识节点的投票。如果验证不通过,则什么也不做。
在对提案区块进行验证之后,进入第三阶段投票(预提交阶段)。共识节点在一定时间内,收集其它节点的投票。如果收集齐全网超过三分之二共识节点的投票,则向区块链网络广播指示本节点收到超过三分之二共识节点的提交消息,并且等待其它节点的提交消息。
在三阶段投票结束之后,进入提交阶段。如果共识节点在一定时间内收集到超过全网三分之二共识节点的提交消息,则将提案区块加入本地区块链账本中成为新区块,并执行区块中包含的事务。
在本公开的一些实施例中,共识节点加入需要超过三分之二共识节点同意并对交易进行签名,以保证节点治理的服从大多数原则。非共识节点只需初始化配置即可加入网络。
图4示出了根据本发明的实施例的共识节点的示例性准入准出管理流程400。准入准出管理单元151可以通过准入准出管理流程400来添加新节点、删除已有节点和变更节点权益。
如图4所示,在步骤402,运维方发起对节点进行变更的变更请求,并将该变更请求广播给区块链网络中的共识节点。在步骤404,区块链网络中的共识节点在接收到对运维方发起的用于对节点进行变更的变更请求之后对该变更请求进行验证。在验证通过之后,对该变更请求签名并将附有签名的变更请求广播给区块链网络中的其它共识节点。
在步骤406,区块链网络中的共识节点在从其它共识节点接收到附有签名的变更请求之后对其进行验证,并统计对该变更请求进行了签名的共识节点的数量。在步骤408,判断是否有超过三分之二的共识节点对该变更请求进行了签名。如果确定有超过三分之二的共识节点对该变更请求进行了签名,则进入步骤410,否则结束该流程。在步骤410,区块链网络中的共识节点进行共识,例如执行共识流程300。在步骤412中,再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名。可见,流程400在步骤406和步骤412中对变更请求的签名进行了双重核验。该双重核验可以防止有作恶节点的恶意破坏网络。变更请求进入网络和执行时都进行验证可以防止恶意节点故意发布破坏网络的变更请求。
在步骤414中,在再次验证通过的情况下执行该变更请求。可以对更改后的共识节点的集合进行缓存,使得缓存的共识节点的集合在当前区块之后的第二个区块(既,当前区块的下一个区块之后的区块)中开始提供区块链服务。例如,在变更请求是添加新节点的情况下,执行变更请求包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务。在变更请求是删除已有节点的情况下,执行变更请求包括在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。在变更请求是变更节点权益的情况下,执行变更请求包括在当前区块中变更节点权益并使得在当前区块之后的第二个区块中使用变更后的节点权益提供区块链服务。这种做法使得对区块链网络的变更所产生的影响被延后,从而能够保证系统稳定性。此外,准入准出管理流程400可以一次只变更一个共识节点,以防止多个共识节点变更导致区块链网络无法正常运行。
图5示出了根据本发明的实施例的示例性热升级流程500。热升级单元152可以通过执行热升级流程500以在不停止区块链服务的情况下对升级节点。
如图5所示,在步骤502,判定允许从区块链网络删除多个共识节点中的第一节点,使第一节点停止区块链服务并对第一节点执行升级。可以发起针对所述第一节点的节点删除请求,并获取其它共识节点对删除请求的签名。在验证有超过三分之二的共识节点对删除请求进行了签名之后进行共识并删除第一节点。在删除第一节点之后升级第一节点。
在步骤504,重新启动第一节点并判定允许将第一节点重新添加至所述区块链网络。可以发起针对所述第一节点的节点添加请求,获取其它共识节点对添加请求的签名,并且验证是否有超过三分之二的共识节点对添加请求进行了签名。在步骤506,在验证有超过三分之二的共识节点对添加请求进行了签名之后进行共识并添加第一节点。在步骤508,将重新添加的第一节点的本地数据同步为与区块链网络一致。
在热升级流程500中,虽然第一节点停止了区块链服务,但是区块链网络中的其它共识节点仍然提供区块链服务。可见,热升级流程500可以在不停止区块链网络的区块链服务的情况下升级共识节点。
图6示出了根据本发明的实施例的智能合约的示例性部署和执行流程。
如图6所示,Dapp利用Solc或者集成工具将Solidity源码编译成为字节码(ByteCode)和应用程序二进制接口(ABI,Application Binary Interface)。Dapp可以使用Swap Wallet/Remix/Truffle/Geth console等工具将合约部署成为智能合约模块130中的以太坊虚拟机代码(EVM代码),即创建合约。Dapp通过Web3 API使用Injected Web3或者Web3 provider对象均可调用EVM代码,即调用合约。
交易按照网络的接收顺序排列在经过共识投票的区块中。其后,通过以下流程按照先后顺序执行区块中的交易:a)DeliverTX;b)ApplyTransaction新建EVM;c)ApplyMessage;d)TransactionDb;e)Call[core/vm/evm.go];f)run;g)Run[core/vm/interpreter.go]新建内存存储(Memory)、新建堆(Stack)。
图7示出了根据本发明的实施例的区块链网络的示例性经济模型。如图7所示,经济模型单元133可以使用诸如ERC20标准、ERC721标准或其它代币标准建立经济模型,并且在不消耗燃料的情况下部署或运行智能合约。经济模型单元133可以要求账户在部署或者运行智能合约时所持有的燃料(gas)需要大于燃料阈值gasLimit,但是却不会真正地消耗燃料。经济模型单元133所使用的数字资产可以是由DApp发行的例如符合ERC20标准、ERC721标准或其它标准的数字资产。
图8示出了根据本发明的实施例的区块链网络的面向B2B2C的示例性解决方案。根据本发明的实施例的区块链网络能够打通行业内以及行业间壁垒。通过区块链,数据安全并且隐私性地在行业内以及行业间流动,更加安全并且隐私性地为用户提供服务。根据本发明的实施例的区块链网络能够在跨境贸易保险、健康保险、代理人履历等场景中为个人用户提供了更加安全和隐私的区块链服务。根据本发明的实施例的区块链网络能够与以太坊(Ethereum)社区同步。2C端服务部分可以使用以太坊虚拟机,从而保持与以太坊同步升级,为用户提供更加便利的资产管理服务。
图9示出了根据本发明的实施例的用于实现区块链网络的示例性方法900。
如图9所示,在步骤902,在服务组件中提供用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元。
用户可以登录钱包来管理用户的公钥和私钥。用户可以通过钱包来部署合约、执行合约、转账等操作。通过多签名单元可以进行多签名交易,其中,多签名交易要求在多人签名之后才能将合约地址中的资产转移至其它地址。通过监控单元可以对区块链网络的指定节点进行监控,以显示区块的详情、交易详情等信息。
通过隐私交易单元可以保护交易隐私。通过隐私交易单元可以在节点之间采用单独的新建秘钥对进行握手,以实现安全通信。通过隐私交易单元还可以针对Proto3进行扩展对interface进行编码,以实现对象编码。通过隐私交易单元还可以使得共识节点的添加和删除都需要区块链网络的共识和管理,以实现节点控制。通过隐私交易单元还可以使用只有用户本人知晓的从用户的公钥派生而来的账户地址,以实现账户匿名。通过隐私交易单元还可以支持同一用户的多个地址以及在不产生花费的情况下在所述多个地址之间转移资产。
通过隐私交易单元可以与分布式应用程序Dapp(未示出)协作来保护交易隐私。例如,分布式应用程序Dapp可以应用Solidity密码学,利用斯诺知识证明、可链接AOS环签名、默克尔树验证从数字签名中获取签名地址。分布式应用程序Dapp还可以进行权限控制,例如,是否启用角色、账号、合约。分布式应用程序Dapp还可以进行Zokrates零知识证明交易以在DApp中运用可验证的计算。该证明由类Python语言生成,并在Solidity中完成验证。分布式应用程序Dapp还可以进行Aztec隐私交易。交易内容由零知识证明与特定的动态加密支持,无关方无法知晓交易内容。分布式应用程序Dapp还可以进行多签名交易,在资产转移时由多人签名。
通过数字资产单元可以存储可以在钱包中进行管理的数字资产。数字资产可以是符合ERC20标准、ERC721标准或其它代币标准的数字资产。
在步骤904,在核心组件中提供用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块。
可以在智能合约模块中提供合约升级单元,以进行合约的在线升级以及业务逻辑的热更新。所述合约可以由分布式应用程序将Solidity源码利用Solc编译成为字节码和应用程序二进制接口并部署成为智能合约模块中的以太坊虚拟机代码。所述合约可以由分布式应用程序通过Web3应用程序接口调用。
可以在智能合约模块中提供以太坊虚拟机(EVM),以直接部署当前以太坊公有链上的应用。可以在智能合约模块中提供经济模型单元,以使用诸如ERC20标准、ERC721标准或其它代币标准建立经济模型,其中,所建立的经济模型在不消耗燃料的情况下部署或运行智能合约。可以在智能合约模块中提供命令行接口(Cli),以提供进行快速操作的命令行模式。
可以在共识模块中提供容错容恶单元,并使用拜占庭(BFT)算法进行共识并在超过三分之二的共识节点投票通过提案区块的情况下将提案区块添加至本地区块链账本中成为新区块。使用BFT算法,共识节点拥有容错和容恶机制,可以支持全网节点数少于三分之一的节点有错误或者作恶的情况下也可以达成正确的结果,不影响共识的结果。注意,此处是少于三分之一,就是最少是4个节点的时候会可以有一个节点的容错容恶机制。只有三个节点进行共识的话,有一个节点出现异常共识将无法继续,因为正好是三分之一个节点出现异常。
可以在共识模块中提供权益投票单元,以设置共识节点的权益从区块链网络中选取能够进行区块提案的主节点。共识节点根据设定好的权益进行投票选举主节点来进行打块。权益值越高的节点,成为主节点的几率就越大。权益算法会按照权益比例依次选举节点成为主节点,这个概率是固定的。此外,还可以利用随机数来更换区块链网络中的主节点。
可以在共识模块中提供大规模扩展单元,以根据业务模型来调节共识节点和非共识节点的数量。节点分为共识和非共识节点(又称观察节点)两类。共识节点的数量决定了整个共识的效率。共识节点数量越少共识的效率越高。共识节点的数量越多,整个共识节点群的容错容恶能力就越强。所以共识节点的数量需要根据不同业务模型来进行取舍平衡。非共识节点不参与共识,只同步数据,也可以发送交易到共识节点群中。非共识节点理论上是可以大规模扩展的,没有节点数量的上限。
可以在共识模块中提供故障恢复单元,以在区块链网络中的第一节点发生故障时使用停止命令停止并重启第一节点,在重启后根据存储的状态文件和状态数据库来恢复第一节点的状态。在开启了种子节点开关的情况下,可以根据地址簿中的种子节点的地址进行重新连接来重新加入区块链网络。此外,还可以根据初始化设置中的连接节点进行重新连接来重新加入区块链网络。可以对重新加入区块链网络的第一节点进行同步,以获取在故障期间缺失的数据。
可以在节点管理模块中提供准入准出管理单元,以对运维方发起的用于对节点进行变更的变更请求签名并将附有签名的变更请求广播给其它共识节点,对从其它共识节点接收到的变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在确定有超过三分之二的共识节点对该变更请求进行了签名的情况下该区块链网络进行共识,在共识之后再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在再次验证通过的情况下执行该变更请求。
用于对节点进行变更的变更请求可以包括添加新节点、删除已有节点和变更节点权益。在变更请求是添加新节点的情况下,执行变更请求可以包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务。在变更请求是删除已有节点的情况下,执行变更请求可以包括在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。在变更请求是变更节点权益的情况下,执行变更请求可以包括在当前区块中变更节点权益并使得在当前区块之后的第二个区块中使用变更后的节点权益提供区块链服务。
可以在节点管理模块中提供热升级单元,并判定允许从区块链网络删除多个共识节点中的第一节点,使第一节点停止区块链服务并对第一节点执行升级。重新启动第一节点并判定允许将第一节点重新添加至所述区块链网络。将重新添加的第一节点的本地数据同步为与所述区块链网络一致。在热升级期间,第一节点停止区块链服务,并且由共识节点中的其它节点提供区块链服务。热升级可以在底层结构不变的情况下,可以通过每个节点独立升级执行程序的方法,升级整条区块链的版本。
可以在节点管理模块中提供网络角色管理单元,以将区块链网络的每个节点标识为共识节点或非共识节点。共识节点参与共识和区块同步,非共识节点参与区块同步而不参与共识。网络角色管理单元153可以设置种子节点开关,并开启或关闭种子节点开关。种子节点用于重新建立区块链网络的连接。种子节点是组网类型中的概念,任何共识节点或者非共识节点都可以是种子节点。网络角色管理单元153在开启种子节点开关的情况下,将区块链网络的至少一个节点标识为种子节点。网络角色管理单元153在关闭种子节点开关的情况下,区块链网络中没有种子节点。
可以在节点管理模块中提供地址薄。在开启了种子节点开关的情况下,在地址薄中存储种子节点的地址。在关闭了种子节点开关的情况下,不在地址薄中存储种子节点的地址。每个节点可以在本地保有一个连接地址簿。在开始种子节点开关的情况下,大家会首先去连接一个种子节点,获取地址簿的信息,然后根据获得的连接地址簿信息,去连接节点,建立网络。
在步骤906在基础组件中提供用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
可以在存储单元中支持key-value型数据库,例如,使用leveldb或其它数据库。可以在存储单元中存储诸如账本、区块、交易等的区块链信息。可以在密码学单元中支持椭圆曲线、非对称加密算法。可以在账本单元中记录区块链的账本、区块以及区块中的交易。
值得注意的是,以上步骤的先后顺序可以根据需要进行调整。此外,方法900中所涉及的各个单元和各个模块所执行的具体操作已经在前面进行了描述,为了简洁起见,这里不再赘述。
图10示出了根据本发明的实施例的用于实现区块链的示例性系统1000。如图10所示,系统1000包括分布式应用Dapp、区块链网络节点(共识节点、非共识节点(观察节点))以及区块链监控服务器。共识节点和非共识节点可以采用如图1所示的设备100。根据本发明的一些实施例,分布式应用程序、区块链网络节点和区块链监控服务器可以被部署在独立的本地计算设备中。根据本发明的一些实施例,分布式应用程序可以被部署在本地计算设备中,区块链网络节点和区块链监控服务器可以被部署在云服务平台上。
图11示出了根据本发明的实施例的系统在压测情况下所能达到的性能状态。如图11所示在压测情况下,在压力测试的情况下,使用top命令观察各个cpu的使用情况,发现该系统在多线程运作的情况下,各个cpu使用压力较为平均。此外,用pprof工具进行观察,可以发现各个线程资源使用较为平均。
图12示出了可以实现根据本发明的实施例的计算设备2000的示例性配置。计算设备2000是可以应用本发明的上述方面的硬件设备的实例。计算设备2000可以是被配置为执行处理和/或计算的任何机器。计算设备2000可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(PDA)、智能电话、车载计算机或以上组合。共识节点、非共识节点可以全部或至少部分地由上述计算设备2000或与其相似的设备或系统实现。
如图12所示,计算设备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可以具有存储于其上的、用于实现前述在区块链网络的PBFT共识机制中动态更改共识节点的方法和/或步骤的数据/指令/代码。计算设备2000还可以包括通信设备2012,该通信设备2012可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
计算设备2000还可以包括工作存储器2014。该工作存储器2014可以是能够存储对于处理器2004有用的指令和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器(RAM)和只读存储器(ROM)。
位于上述工作存储器上的软件元件可以包括但不限于操作系统2016、一个或多个应用程序2018、驱动器和/或其他数据和代码。上述一个或多个应用程序2018可以包括用于执行本发明的方法及各步骤的指令。可以通过读取和执行一个或多个应用程序2018的处理器实现本发明的设备100的部件/单元/元件。软件元件的指令的可执行代码或源代码可以存储在非暂态计算机可读存储介质(诸如如上所述的存储设备2010)中,并且可以通过编译和/或安装读入工作存储器2014中。还可以从远程位置下载软件元件的指令的可执行代码或源代码。
应当理解,可以根据特定要求进行变型。例如,可以使用定制的硬件和/或特定元件可以以硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合的方式实现。此外,可以采用与其他计算设备(诸如网络输入/输出设备)的连接。例如,本发明的方法和设备中的一些或全部可以根据本发明通过使用汇编语言编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)或逻辑和算法的硬件编程语言(例如VERILOG,VHDL,C++)来实现。
应当进一步理解,计算设备2000的元件可以分布在整个网络上。例如,可以在使用一个处理器执行一些处理的同时,使用其他远程处理器执行其他处理。计算机系统2000的其他元件也可以类似地分布。因此,计算设备2000可以被理解为在多个地点执行处理的分布式计算系统。
可以通过许多方式来实施本发明的方法和设备。例如,可以通过软件、硬件、固件、或其任何组合来实施本发明的方法和设备。上述的方法步骤的次序仅是说明性的,本发明的方法步骤不限于以上具体描述的次序,除非以其它方式明确说明。此外,在一些实施例中,本发明还可以被实施为记录在记录介质中的程序,其包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于实现根据本发明的方法的程序的记录介质。
虽然已通过示例详细展示了本发明的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本发明的范围。本领域技术人员应该理解,上述实施例可以在不脱离本发明的范围和实质的情况下被修改。本发明的范围是通过所附的权利要求限定的。
本发明还可以包括如下实施方式。
1、一种用于实现区块链的设备,包括:
服务组件,包括用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;
核心组件,包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;
基础组件,包括用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
2、如项目1所述的设备,其中,节点管理模块包括准入准出管理单元,所述准入准出管理单元对运维方发起的用于对节点进行变更的变更请求签名并将附有签名的变更请求广播给其它共识节点,对从其它共识节点接收到的变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在确定有超过三分之二的共识节点对该变更请求进行了签名的情况下该区块链网络进行共识,在共识之后再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在再次验证通过的情况下执行该变更请求。
3、如项目2所述的设备,其中,所述变更请求是添加新节点或者删除已有节点,并且执行所述变更请求包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务或者在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。
4、如项目1所述的设备,其中,节点管理模块包括热升级单元,所述热升级单元判定允许从区块链网络删除多个共识节点中的第一节点,使第一节点停止区块链服务并对第一节点执行升级,重新启动第一节点并判定允许将第一节点重新添加至所述区块链网络,将重新添加的第一节点的本地数据同步为与所述区块链网络一致,其中,在第一节点停机期间,由所述多个共识节点中的其它节点提供区块链服务。
5、如项目1所述的设备,其中,节点管理模块包括网络角色管理单元,所述网络角色管理单元将区块链网络的每个节点标识为共识节点或非共识节点,并将区块链网络的至少一个节点标识为种子节点,其中,共识节点参与共识和区块同步,非共识节点参与区块同步而不参与共识,种子节点用于重新建立区块链网络的连接。
6、如项目5所述的设备,其中,节点管理模块包括存储了种子节点的地址的地址薄。
7、如项目1所述的设备,其中,共识模块包括容错容恶单元,所述容错容恶单元使用拜占庭算法进行共识并在超过三分之二的共识节点投票通过提案区块的情况下将提案区块添加至本地区块链账本中成为新区块。
8、如项目1所述的设备,其中,共识模块包括权益投票单元,所述权益投票单元设置共识节点的权益并且利用随机数从区块链网络中选取能够进行区块提案的主节点。
9、如项目1所述的设备,其中,共识模块包括大规模扩展单元,所述大规模扩展单元根据业务模型来调节共识节点和非共识节点的数量。
10、如项目1所述的设备,其中,共识模块包括故障恢复单元,所述故障恢复单元在区块链网络中的第一节点发生故障时使用停止命令停止并重启第一节点,在重启后根据存储的状态文件和状态数据库来恢复第一节点的状态,根据地址簿中的种子节点的地址或初始化设置中的连接节点进行重新连接来重新加入区块链网络。
11、如项目1所述的设备,其中,智能合约模块包括合约升级单元,所述合约升级单元进行合约的在线升级以及业务逻辑的热更新。
12、如项目11所述的设备,其中,所述合约由分布式应用程序将Solidity源码利用Solc编译成为字节码和应用程序二进制接口并部署成为智能合约模块中的以太坊虚拟机代码,并且
所述合约由分布式应用程序通过Web3应用程序接口调用。
13、如项目1所述的设备,其中,智能合约模块包括经济模型单元,所述经济模型单元使用包括ERC20标准或ERC721标准的代币标准建立经济模型,其中,所建立的经济模型在不消耗燃料的情况下部署或运行智能合约。
14、如项目1所述的设备,其中,智能合约模块包括命令行接口,所述命令行接口提供进行快速操作的命令行模式。
15、如项目1所述的设备,其中,隐私交易单元支持同一用户的多个地址以及在不产生花费的情况下在所述多个地址之间转移资产。
16、一种用于实现区块链的方法,包括:
在服务组件中提供用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;
在核心组件中提供用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;
在基础组件中提供用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
17、一种用于实现区块链的设备,包括:
处理器;以及
存储器,存储有程序,所述程序在由处理器执行时使处理器执行如项目16所述的方法。
18、一种非暂态计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时使处理器执行如项目16所述的方法。
19、一种用于实现区块链的系统,包括分布式应用、包含了项目1-15中任一项所述的设备的区块链网络的节点、以及区块链监控服务器。
20、如项目19所述的系统,其中,分布式应用程序、区块链网络的节点和区块链监控服务器被部署在独立的本地计算设备中。
21、如项目19所述的系统,其中,分布式应用程序被部署在本地计算设备中,区块链网络节点和区块链监控服务器被部署在云服务平台上。
Claims (10)
1.一种用于实现区块链的设备,包括:
服务组件,包括用于管理用户的公钥和私钥的钱包、用于进行签名的多签名单元、用于对区块链网络的指定节点进行监控的监控单元、用于保护交易隐私的隐私交易单元、以及用于存储数字资产的数字资产单元;
核心组件,包括用于管理智能合约的其上运行有以太坊虚拟机的智能合约模块、利用拜占庭算法在区块链网络的共识节点之间进行共识的共识模块、以及通过进行双重核验来执行区块链网络的节点变更的节点管理模块;
基础组件,包括用于建立节点之间的通信连接的网络通信单元、用于存储区块链信息的存储单元、用于进行加密和解密的密码学单元、以及用于管理区块链账本的账本单元。
2.如权利要求1所述的设备,其中,节点管理模块包括准入准出管理单元,所述准入准出管理单元对运维方发起的用于对节点进行变更的变更请求签名并将附有签名的变更请求广播给其它共识节点,对从其它共识节点接收到的变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在确定有超过三分之二的共识节点对该变更请求进行了签名的情况下该区块链网络进行共识,在共识之后再次对变更请求的签名进行验证并确定是否有超过三分之二的共识节点对该变更请求进行了签名,在再次验证通过的情况下执行该变更请求。
3.如权利要求2所述的设备,其中,所述变更请求是添加新节点或者删除已有节点,并且执行所述变更请求包括在当前区块中将新节点加入区块链网络并使得加入的新节点在当前区块之后的第二个区块中提供区块链服务或者在当前区块中将所述已有节点从区块链网络中删除并使得删除的已有节点在当前区块之后的第二个区块中停止区块链服务。
4.如权利要求1所述的设备,其中,节点管理模块包括热升级单元,所述热升级单元判定允许从区块链网络删除多个共识节点中的第一节点,使第一节点停止区块链服务并对第一节点执行升级,重新启动第一节点并判定允许将第一节点重新添加至所述区块链网络,将重新添加的第一节点的本地数据同步为与所述区块链网络一致,其中,在第一节点停机期间,由所述多个共识节点中的其它节点提供区块链服务。
5.如权利要求1所述的设备,其中,节点管理模块包括网络角色管理单元,所述网络角色管理单元将区块链网络的每个节点标识为共识节点或非共识节点,并将区块链网络的至少一个节点标识为种子节点,其中,共识节点参与共识和区块同步,非共识节点参与区块同步而不参与共识,种子节点用于重新建立区块链网络的连接。
6.如权利要求5所述的设备,其中,节点管理模块包括存储了种子节点的地址的地址薄。
7.如权利要求1所述的设备,其中,共识模块包括容错容恶单元,所述容错容恶单元使用拜占庭算法进行共识并在超过三分之二的共识节点投票通过提案区块的情况下将提案区块添加至本地区块链账本中成为新区块。
8.如权利要求1所述的设备,其中,共识模块包括权益投票单元,所述权益投票单元设置共识节点的权益并且利用随机数从区块链网络中选取能够进行区块提案的主节点。
9.如权利要求1所述的设备,其中,共识模块包括大规模扩展单元,所述大规模扩展单元根据业务模型来调节共识节点和非共识节点的数量。
10.如权利要求1所述的设备,其中,共识模块包括故障恢复单元,所述故障恢复单元在区块链网络中的第一节点发生故障时使用停止命令停止并重启第一节点,在重启后根据存储的状态文件和状态数据库来恢复第一节点的状态,根据地址簿中的种子节点的地址或初始化设置中的连接节点进行重新连接来重新加入区块链网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873174.1A CN110569309B (zh) | 2019-09-17 | 2019-09-17 | 用于实现区块链的设备、方法、系统以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873174.1A CN110569309B (zh) | 2019-09-17 | 2019-09-17 | 用于实现区块链的设备、方法、系统以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569309A true CN110569309A (zh) | 2019-12-13 |
CN110569309B CN110569309B (zh) | 2023-06-20 |
Family
ID=68780319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910873174.1A Active CN110569309B (zh) | 2019-09-17 | 2019-09-17 | 用于实现区块链的设备、方法、系统以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569309B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111047330A (zh) * | 2020-03-18 | 2020-04-21 | 杭州智块网络科技有限公司 | 区块的验证分红奖励方法和装置 |
CN111417946A (zh) * | 2020-02-24 | 2020-07-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
CN111522697A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的重启处理方法、共识节点及区块链系统 |
CN111522696A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 |
CN111586102A (zh) * | 2020-04-07 | 2020-08-25 | 浙商银行股份有限公司 | 一种基于bft共识的联盟链组网方法 |
CN112037062A (zh) * | 2020-08-31 | 2020-12-04 | 成都质数斯达克科技有限公司 | 交易共识方法、装置、电子设备及可读存储介质 |
CN112365938A (zh) * | 2020-09-21 | 2021-02-12 | 贵州电网有限责任公司 | 采用区块链技术实现电网it资产数据管理的方法 |
CN112600874A (zh) * | 2020-11-24 | 2021-04-02 | 成都质数斯达克科技有限公司 | 节点加入方法、装置、电子设备及可读存储介质 |
CN112991067A (zh) * | 2021-04-28 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置和系统 |
CN113132378A (zh) * | 2021-04-15 | 2021-07-16 | 无锡全面互链科技有限公司 | 一种区块链节点设备及区块链网络系统 |
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113506107A (zh) * | 2021-06-21 | 2021-10-15 | 数界(深圳)科技有限公司 | 一种区块链节点虚拟化的实现方法及区块链节点 |
WO2022036909A1 (zh) * | 2020-08-21 | 2022-02-24 | 中诚区块链研究院(南京)有限公司 | 一种具有高安全性交易区块系统 |
CN114221777A (zh) * | 2021-08-17 | 2022-03-22 | 北京恒安嘉新安全技术有限公司 | 受限条件下数字货币流量自同步监测方法、装置和设备 |
CN114677093A (zh) * | 2021-08-20 | 2022-06-28 | 北京航空航天大学 | 一种基于区块链的公益捐赠系统及实现方法 |
CN114928558A (zh) * | 2022-06-14 | 2022-08-19 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
CN115051985A (zh) * | 2022-04-01 | 2022-09-13 | 重庆邮电大学 | 一种基于动态节点的拜占庭容错共识协议的数据共识方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN109447601A (zh) * | 2018-10-11 | 2019-03-08 | 上海保险交易所股份有限公司 | 在区块链网络中执行见证人转移交易的方法 |
CN110059494A (zh) * | 2019-04-17 | 2019-07-26 | 深圳市路云区链网络科技有限公司 | 一种区块链交易数据的隐私保护方法及区块链系统 |
-
2019
- 2019-09-17 CN CN201910873174.1A patent/CN110569309B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN109447601A (zh) * | 2018-10-11 | 2019-03-08 | 上海保险交易所股份有限公司 | 在区块链网络中执行见证人转移交易的方法 |
CN110059494A (zh) * | 2019-04-17 | 2019-07-26 | 深圳市路云区链网络科技有限公司 | 一种区块链交易数据的隐私保护方法及区块链系统 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111417946A (zh) * | 2020-02-24 | 2020-07-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
CN111417946B (zh) * | 2020-02-24 | 2023-08-04 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
CN111047330A (zh) * | 2020-03-18 | 2020-04-21 | 杭州智块网络科技有限公司 | 区块的验证分红奖励方法和装置 |
CN111586102B (zh) * | 2020-04-07 | 2021-05-18 | 浙商银行股份有限公司 | 一种基于bft共识的联盟链组网方法 |
CN111586102A (zh) * | 2020-04-07 | 2020-08-25 | 浙商银行股份有限公司 | 一种基于bft共识的联盟链组网方法 |
CN111522696A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 |
CN111522697B (zh) * | 2020-07-03 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的重启处理方法、共识节点及区块链系统 |
CN111522697A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的重启处理方法、共识节点及区块链系统 |
WO2022036909A1 (zh) * | 2020-08-21 | 2022-02-24 | 中诚区块链研究院(南京)有限公司 | 一种具有高安全性交易区块系统 |
CN112037062A (zh) * | 2020-08-31 | 2020-12-04 | 成都质数斯达克科技有限公司 | 交易共识方法、装置、电子设备及可读存储介质 |
CN112037062B (zh) * | 2020-08-31 | 2023-08-25 | 成都质数斯达克科技有限公司 | 交易共识方法、装置、电子设备及可读存储介质 |
CN112365938A (zh) * | 2020-09-21 | 2021-02-12 | 贵州电网有限责任公司 | 采用区块链技术实现电网it资产数据管理的方法 |
CN112600874A (zh) * | 2020-11-24 | 2021-04-02 | 成都质数斯达克科技有限公司 | 节点加入方法、装置、电子设备及可读存储介质 |
CN112600874B (zh) * | 2020-11-24 | 2023-03-31 | 成都质数斯达克科技有限公司 | 节点加入方法、装置、电子设备及可读存储介质 |
CN113132378A (zh) * | 2021-04-15 | 2021-07-16 | 无锡全面互链科技有限公司 | 一种区块链节点设备及区块链网络系统 |
CN112991067B (zh) * | 2021-04-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置和系统 |
CN112991067A (zh) * | 2021-04-28 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置和系统 |
CN113506107A (zh) * | 2021-06-21 | 2021-10-15 | 数界(深圳)科技有限公司 | 一种区块链节点虚拟化的实现方法及区块链节点 |
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN114221777A (zh) * | 2021-08-17 | 2022-03-22 | 北京恒安嘉新安全技术有限公司 | 受限条件下数字货币流量自同步监测方法、装置和设备 |
CN114221777B (zh) * | 2021-08-17 | 2024-01-30 | 北京恒安嘉新安全技术有限公司 | 受限条件下数字货币流量自同步监测方法、装置和设备 |
CN114677093A (zh) * | 2021-08-20 | 2022-06-28 | 北京航空航天大学 | 一种基于区块链的公益捐赠系统及实现方法 |
CN115051985A (zh) * | 2022-04-01 | 2022-09-13 | 重庆邮电大学 | 一种基于动态节点的拜占庭容错共识协议的数据共识方法 |
CN115051985B (zh) * | 2022-04-01 | 2024-01-12 | 深圳瑞泰信资讯有限公司 | 一种基于动态节点的拜占庭容错共识协议的数据共识方法 |
CN114928558A (zh) * | 2022-06-14 | 2022-08-19 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
CN114928558B (zh) * | 2022-06-14 | 2023-12-12 | 上海万向区块链股份公司 | 基于区块链的运维方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110569309B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110569309B (zh) | 用于实现区块链的设备、方法、系统以及介质 | |
CN110430087B (zh) | 区块链热升级的架构设计与实现 | |
CN107579848B (zh) | 实用拜占庭容错共识机制中动态更改共识节点的方法 | |
TWI740575B (zh) | 用於優先化共用區塊鏈資料儲存的方法、系統和裝置 | |
CN113098907B (zh) | 一种区块链的群组划分方法与装置 | |
JP7012879B2 (ja) | 誤り訂正符号に基づく共有されたブロックチェーンデータの記憶のコンセンサス | |
CN111552676A (zh) | 基于区块链的存证方法、装置、设备及介质 | |
US12069146B2 (en) | Management services for distributed computing architectures using rolling changes | |
US20230089134A1 (en) | Data communication method and apparatus, computer device, and storage medium | |
TW202119210A (zh) | 基於錯誤校正碼的共享區塊鏈資料儲存的資料安全性 | |
CN112291372B (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
US11595475B2 (en) | Self-replicating management services for distributed computing architectures | |
US10880383B2 (en) | Methods and devices for establishing communication between nodes in blockchain system | |
CN114362961B (zh) | 基于区块链的账户恢复方法、装置、设备及存储介质 | |
US12032943B1 (en) | Method for upgrading blockchain system, and terminal device | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
JP2022523217A (ja) | 投票集計を伴うトポロジードリブンビザンチンフォールトトレラント合意プロトコル | |
CN115328645A (zh) | 计算任务调度方法、计算任务调度装置及电子设备 | |
CN113610527B (zh) | 联盟链的交易方法、装置、系统、终端设备及存储介质 | |
WO2014167278A1 (en) | Methods and apparatus for remote connection | |
CN111831743B (zh) | 基于云存储的区块链数据存储系统及方法 | |
CN115002218B (zh) | 流量分发方法、装置、计算机设备及存储介质 | |
WO2024207733A1 (zh) | 区块链的共识方法、装置、计算机可读介质及电子设备 | |
KR20240002729A (ko) | 외부 저장장치를 활용하는 비잔틴 장애 감내 블록 데이터 저장 시스템, 장치 및 방법 | |
CN117118639A (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 | ||
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 CO.,LTD. Address before: 200120 Shanghai East Road Pudong New Area Financial Information Center 22 Applicant before: SHANGHAI INSURANCE EXCHANGE CO.,LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |