CN108365993B - 区块链节点动态变更方法、系统和计算机可读存储介质 - Google Patents
区块链节点动态变更方法、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN108365993B CN108365993B CN201810199551.3A CN201810199551A CN108365993B CN 108365993 B CN108365993 B CN 108365993B CN 201810199551 A CN201810199551 A CN 201810199551A CN 108365993 B CN108365993 B CN 108365993B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- contract
- nodes
- node configuration
- 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
-
- 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
-
- 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
-
- 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/0866—Checking the configuration
-
- 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/0866—Checking the configuration
- H04L41/0869—Validating the configuration within one network element
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链节点动态变更方法、系统和计算机可读存储介质,所述方法包括:在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;由共识模块和网络模块对所述区块进行联网和共识联网和共识,以使区块链网络中的各个节点得到所述区块;由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。本发明可在所有类型的区块链中实现节点的动态变更,使得节点的变更场景更加丰富,变更方式更加灵活。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链节点动态变更方法、系统和计算机可读存储介质。
背景技术
现有区块链的节点共识方法,主要包括工作量证明(Proof Of Work,POW)、权益证明(Proof of Stake,POS)、委托权益证明(Delegated Proof of Stake,DPOS)以及可用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等算法。
其中,PBFT算法不支持节点的动态变更,节点的加入和退出需要终止服务修改全局配置,对节点的变更方式较为局限。而POW、POS和DPOS算法,虽然可以进行节点动态变更,但是只适用于公有链场景中,不适用联盟链场景,对节点的动态变更场景较为局限。
发明内容
本发明的主要目的在于提供一种区块链节点动态变更方法、系统和计算机可读存储介质,旨在解决现有的节点动态变更方式和变更场景较为局限的技术问题。
为实现上述目的,本发明提供一种区块链节点动态变更方法,应用于节点动态变更架构,所述节点动态变更架构包括共识模块、网络模块、虚拟机、合约和节点配置,所述区块链节点动态变更方法包括:
在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
可选地,所述在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块的步骤之前,所述方法还包括:
判断区块链网络中当前的各个节点对应的区块高度是否一致,及各个节点的配置信息是否一致;
若区块高度一致且配置信息一致,则进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。
可选地,所述由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块的步骤包括:
由共识模块和网络模块通过合约的第一接口读取合约关联的节点配置列表;
根据读取的节点配置列表确定待进行联网和共识的各个节点;
通过确定的各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
可选地,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤包括:
基于合约的框架回调,在合约中读取第二接口;
通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点。
可选地,所述在所述节点配置列表中变更节点的方式包括:增加节点和删除节点。
可选地,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤之后,所述方法还包括:
区块链网络中的各个节点进入下一区块的共识阶段,以调用节点配置列表;
在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
可选地,所述方法还包括:
由各个节点向合约请求读取历史区块高度;
根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在合约的第一接口获取所述历史区块高度对应的节点配置信息。
可选地,所述节点配置列表的节点配置信息包括节点IP、节点ID、端口号以及节点的描述信息。
此外,为实现上述目的,本发明还提供一种区块链节点动态变更系统,所述区块链节点动态变更系统包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的节点动态变更程序,所述节点动态变更程序被所述处理器执行时实现如上文所述的区块链节点动态变更方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有节点动态变更程序,所述节点动态变更程序应用于区块链节点动态变更系统,所述节点动态变更程序被处理器执行时实现如上文所述的区块链节点动态变更方法的步骤。
本发明提出的区块链节点动态变更方法,在区块链网络中接收到节点变更的交易请求时,先由节点将所述交易请求打包成区块,然后由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块,再由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点,从而实现了区块链网络中节点的动态变更,本发明可在所有类型的区块链中实现节点的动态变更,使得节点的变更场景更加丰富,变更方式更加灵活。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
图2为本发明区块链节点动态变更方法第一实施例的流程示意图;
图3为图2中步骤S20的细化流程示意图;
图4为图2中步骤S40的细化流程示意图;
图5为本发明区块链节点动态变更方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:在区块链网络中接收到节点变更的交易请求时,先由节点将所述交易请求打包成区块,然后由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块,再由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点,从而实现了区块链网络中节点的动态变更。以解决现有的节点动态变更方式和变更场景,较为局限的问题。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的区块链节点动态变更系统的结构示意图。
本发明实施例的区块链节点动态变更系统可以是PC、便携计算机,也可以是服务器、虚拟机等设备。
如图1所示,该区块链节点动态变更系统可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口(例如用于连接有线键盘、有线鼠标等)、无线接口(例如用于连接无线键盘、无线鼠标)。网络接口1004可选的可以包括标准的有线接口(用于连接有线网络)、无线接口(如WI-FI接口、蓝牙接口、红外线接口等,用于连接无线网络)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的区块链节点动态变更系统结构并不构成对区块链节点动态变更系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及节点动态变更程序。其中,操作系统是管理和控制区块链节点动态变更系统与软件资源的程序,支持网络通信模块、用户接口模块、节点动态变更程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的区块链节点动态变更系统中,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,以实现以下步骤:
在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
进一步地,所述在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块的步骤之前,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,以实现以下步骤:
判断区块链网络中当前的各个节点对应的区块高度是否一致,及各个节点的配置信息是否一致;
若区块高度一致且配置信息一致,则进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。
进一步地,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,以实现由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块的步骤:
由共识模块和网络模块通过合约的第一接口读取合约关联的节点配置列表;
根据读取的节点配置列表确定待进行联网和共识的各个节点;
通过确定的各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
进一步地,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,以实现基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤:
基于合约的框架回调,在合约中读取第二接口;
通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点。
进一步地,所述在所述节点配置列表中变更节点的方式包括:增加节点和删除节点。
进一步地,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤之后,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,以实现以下步骤:
区块链网络中的各个节点进入下一区块的共识阶段,以调用节点配置列表;
在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
进一步地,所述区块链节点动态变更系统通过处理器1001调用存储器1005中存储的节点动态变更程序,还实现以下步骤:
由各个节点向合约请求读取历史区块高度;
根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在合约的第一接口获取所述历史区块高度对应的节点配置信息。
进一步地,所述节点配置列表的节点配置信息包括节点IP、节点ID、端口号以及节点的描述信息。
本发明提出的区块链节点动态变更系统,在区块链网络中接收到节点变更的交易请求时,先由节点将所述交易请求打包成区块,然后由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块,再由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点,从而实现了区块链网络中节点的动态变更,本发明可在所有类型的区块链中实现节点的动态变更,使得节点的变更场景更加丰富,变更方式更加灵活。
基于上述区块链节点动态变更系统的硬件结构,提出本发明区块链节点动态变更方法各个实施例。
参照图2,图2为本发明区块链节点动态变更方法第一实施例的流程示意图。
在本实施例中,所述区块链节点动态变更方法包括:
步骤S10,在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
步骤S20,由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
步骤S30,由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
步骤S40,基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
在本实施例中,所述区块链节点动态变更方法应用于节点动态变更架构,所述节点动态变更架构包括共识模块、网络模块、虚拟机、合约和节点配置。所述节点动态变更架构是区块链节点动态变更系统中的节点变更机制,通过该节点动态变更架构实现节点的动态变更过程。
需要说明的是,在节点动态变更架构中,节点配置由合约进行控制,通过操作合约可以改变节点配置,共识模块中的共识机制和网络模块中的网络依赖于节点配置,同时共识机制和网络保证了区块链系统的运转,从而带动虚拟机正确执行,虚拟机的正确执行也将对合约进行正确的操控,通过这一个环状的架构,能够支持节点配置的动态变化。
在本实施例中,节点动态变更架构中的合约为智能合约,该合约记录了节点列表,也提供了节点变更的接口,下文中该节点变更的接口用第二接口表示。此外,需要说明的是,节点动态变更架构中的节点配置是供共识模块和网络模块使用的,这两个模块不便于直接从合约读取配置,因此,在实施例中提供了一个内存管理的节点配置列表,共识机制和网络模块通过节点配置获取接口,直接得到节点配置,下文中该节点配置获取接口用第一接口表示。后续,当虚拟机执行到合约调用时,即可触发自动回调以改变节点配置列表。
本实施例中,所述节点动态变更的方式包括节点动态扩容(也称节点动态增加)和节点动态删除。
在本实施例中,所述步骤S10之前,所述方法还包括:
步骤A,判断区块链网络中当前的各个节点对应的区块高度是否一致,及各个节点的配置信息是否一致;
步骤B,若区块高度一致且配置信息一致,则进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。
在本实施例,在区块链网络中进行节点的动态变更之前,先判断区块链网络中当前的各个节点对应的区块高度是否一致,以及各个节点的配置信息是否一致,若区块高度一致且配置信息一致,则可进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。例如,当前所有节点的区块高度都是100,且节点配置都是一致的,则进入101号块共识阶段。
应当理解的是,若区块链网络中当前的各个节点对应的区块高度不同,或者各个节点的配置信息不同,则在区块链网络中先自动进行同步,以使各个节点的区块高度保持一致,以及使各个节点的配置信息保持一致,在同步之后,可执行后续的节点动态变更操作。
以下详细介绍本实施例中逐步实现区块链节点动态变更方法的各个步骤:
步骤S10,在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
在本实施例中,在区块链网络中各个节点的区块高度一致,节点配置一致的情况下,各个节点进入下一个区块的共识阶段,具体地,先发送一笔节点变更的交易请求至区块链网络,例如,发送一笔交易T“增加一个节点”至区块链网络,在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块,若继续以上文区块高度都是100为例,则此时节点将所述交易请求打包成区块101。
步骤S20,由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
当节点将交易请求打包成区块之后,共识模块和网络模块对该区块进行联网和共识,以使得区块链网络中的各个节点都得到该区块,具体地,参照图3,所述步骤S20包括:
步骤S21,由共识模块和网络模块通过合约的第一接口读取合约关联的节点配置列表;
步骤S22,根据读取的节点配置列表确定待进行联网和共识的各个节点;
步骤S23,通过确定的各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
即,由共识模块和网络模块通过第一接口读取合约关联的节点配置列表,其中,所述第一接口即上文所述的节点配置获取接口,通过第一接口在读取到节点配置列表之后,根据读取的节点配置列表确定待进行联网和共识的各个节点,在确定各个节点之后,通过各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
步骤S30,由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
步骤S40,基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
在各个节点得到区块之后,各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。具体地,参照图4,所述步骤S40包括:
步骤S41,基于合约的框架回调,在合约中读取第二接口;
步骤S42,通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点。
即,基于合约的框架回调在合约中读取第二接口,其中,所述第二接口即上文所述的节点变更的接口,在读取到第二接口之后,通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点,其中,所述在所述节点配置列表中变更节点的方式包括:增加节点和删除节点,具体采用哪种变更方式,根据最开始的节点变更请求确定。
本实施例提出的区块链节点动态变更方法,在区块链网络中接收到节点变更的交易请求时,先由节点将所述交易请求打包成区块,然后由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块,再由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点,从而实现了区块链网络中节点的动态变更,本发明可在所有类型的区块链中实现节点的动态变更,使得节点的变更场景更加丰富,变更方式更加灵活。
进一步地,基于第一实施例提出本发明区块链节点动态变更方法的第二实施例。
区块链节点动态变更方法的第二实施例与区块链节点动态变更方法的第一实施例的区别在于,参照图5,所述步骤S40之后,所述方法还包括:
步骤S50,区块链网络中的各个节点进入下一区块的共识阶段,以调用节点配置列表;
步骤S60,在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
在本实施例中,基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点之后,区块链网络中的各个节点都进入下一区块的共识阶段,以调用节点配置列表,并在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
例如:各个节点执行101号块的交易过程,引发框架回调以更改节点配置列表之后,所有节点进入102号块共识阶段,因此会调用节点配置以获取当前最新块的节点配置,使得所有节点都采用最新的节点配置。
进一步地,基于第一或第二实施例提出本发明区块链节点动态变更方法的第三实施例。
区块链节点动态变更方法的第三实施例与区块链节点动态变更方法的第一或第二实施例的区别在于,所述方法还包括:
步骤C,由各个节点向合约请求读取历史区块高度;
步骤D,根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在合约的第一接口获取所述历史区块高度对应的节点配置信息。
在本实施例中,需要说明的是,合约中的节点配置随着区块链高度的变化也随之发生变化,即,不同的区块高度对应的节点配置不同,且本实施例第一接口可支持查询历史区块高度对应的节点配置信息,因此,各个节点可向合约请求读取历史区块高度,在读取到历史区块高度之后,根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在第一接口获取所述历史区块高度对应的节点配置信息,其中,所述节点配置列表的节点配置信息包括节点IP、节点ID、端口号以及节点的描述信息。
在本实施例中,第一接口支持查询历史区块高度的节点配置信息,使得节点动态变更过程更加智能和灵活。
本发明进一步提供一种计算机可读存储介质。
所述计算机可读存储介质上存储有节点动态变更程序,所述节点动态变更程序被处理器执行时实现以下步骤:
在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
进一步地,所述在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块的步骤之前,所述节点动态变更程序被处理器执行时,还实现以下步骤:
判断区块链网络中当前的各个节点对应的区块高度是否一致,及各个节点的配置信息是否一致;
若区块高度一致且配置信息一致,则进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。
进一步地,所述节点动态变更程序被处理器执行时,还实现由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块的步骤:
由共识模块和网络模块通过合约的第一接口读取合约关联的节点配置列表;
根据读取的节点配置列表确定待进行联网和共识的各个节点;
通过确定的各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
进一步地,所述节点动态变更程序被处理器执行时,还实现基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤:
基于合约的框架回调,在合约中读取第二接口;
通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点。
进一步地,所述在所述节点配置列表中变更节点的方式包括:增加节点和删除节点。
进一步地,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤之后,所述节点动态变更程序被处理器执行时,还实现以下步骤:
区块链网络中的各个节点进入下一区块的共识阶段,以调用节点配置列表;
在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
进一步地,所述节点动态变更程序被处理器执行时,还实现以下步骤:
由各个节点向合约请求读取历史区块高度;
根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在合约的第一接口获取所述历史区块高度对应的节点配置信息。
进一步地,所述节点配置列表的节点配置信息包括节点IP、节点ID、端口号以及节点的描述信息。
本实施例提出的所述计算机可读存储介质,在区块链网络中接收到节点变更的交易请求时,先由节点将所述交易请求打包成区块,然后由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块,再由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调,最终基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点,从而实现了区块链网络中节点的动态变更,本发明可在所有类型的区块链中实现节点的动态变更,使得节点的变更场景更加丰富,变更方式更加灵活。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链节点动态变更方法,其特征在于,应用于节点动态变更架构,所述节点动态变更架构包括共识模块、网络模块、虚拟机、合约和节点配置,其中,所述节点动态变更框架为一个环状的架构:节点配置由合约进行控制,通过操作合约可以改变节点配置,共识模块中的共识机制和网络模块中的网络依赖于节点配置,同时共识机制和网络带动虚拟机正确执行,虚拟机的正确执行也将对合约进行正确的操控,所述区块链节点动态变更方法包括:
在区块链网络中各个节点的区块高度一致,节点配置一致的情况下,在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块;
由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块;
由各个节点在虚拟机中执行所述区块的交易过程,以根据执行的交易过程引发合约的框架回调;
基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点。
2.如权利要求1所述的区块链节点动态变更方法,其特征在于,所述在区块链网络中接收到节点变更的交易请求时,由节点将所述交易请求打包成区块的步骤之前,所述方法还包括:
判断区块链网络中当前的各个节点对应的区块高度是否一致,及各个节点的配置信息是否一致;
若区块高度一致且配置信息一致,则进入下一区块的共识阶段,以在区块链网络中监测变更节点的交易请求。
3.如权利要求1所述的区块链节点动态变更方法,其特征在于,所述由共识模块和网络模块对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块的步骤包括:
由共识模块和网络模块通过合约的第一接口读取合约关联的节点配置列表;
根据读取的节点配置列表确定待进行联网和共识的各个节点;
通过确定的各个节点对所述区块进行联网和共识,以使区块链网络中的各个节点得到所述区块。
4.如权利要求1所述的区块链节点动态变更方法,其特征在于,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤包括:
基于合约的框架回调,在合约中读取第二接口;
通过读取的第二接口更新节点配置列表,以在所述节点配置列表中变更节点。
5.如权利要求4所述的区块链节点动态变更方法,其特征在于,所述在所述节点配置列表中变更节点的方式包括:增加节点和删除节点。
6.如权利要求1所述的区块链节点动态变更方法,其特征在于,所述基于合约的框架回调更新节点配置列表,以在所述节点配置列表中变更节点的步骤之后,所述方法还包括:
区块链网络中的各个节点进入下一区块的共识阶段,以调用节点配置列表;
在调用的节点配置列表中获取最新区块的节点配置信息,使得区块链网络中的所有节点都采用最新的节点配置信息。
7.如权利要求1-6任一项所述的区块链节点动态变更方法,其特征在于,所述方法还包括:
由各个节点向合约请求读取历史区块高度;
根据预设的历史区块高度与节点配置列表中节点配置信息的映射关系,在合约的第一接口获取所述历史区块高度对应的节点配置信息。
8.如权利要求7所述的区块链节点动态变更方法,其特征在于,所述节点配置列表的节点配置信息包括节点IP、节点ID、端口号以及节点的描述信息。
9.一种区块链节点动态变更系统,其特征在于,所述区块链节点动态变更系统包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的节点动态变更程序,所述节点动态变更程序被所述处理器执行时实现如权利要求1至8中任一项所述的区块链节点动态变更方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有节点动态变更程序,所述节点动态变更程序被处理器执行时实现如权利要求1至8任一项所述的区块链节点动态变更方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810199551.3A CN108365993B (zh) | 2018-03-09 | 2018-03-09 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810199551.3A CN108365993B (zh) | 2018-03-09 | 2018-03-09 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108365993A CN108365993A (zh) | 2018-08-03 |
CN108365993B true CN108365993B (zh) | 2020-04-28 |
Family
ID=63004036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810199551.3A Active CN108365993B (zh) | 2018-03-09 | 2018-03-09 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108365993B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039748B (zh) * | 2018-08-10 | 2021-09-03 | 上交所技术有限责任公司 | 一种pbft协议动态增删节点的方法 |
CN109241359A (zh) * | 2018-08-18 | 2019-01-18 | 深圳市网心科技有限公司 | 区块链节点设备、区块链系统、区块数据处理系统和方法 |
WO2019072296A2 (en) * | 2018-12-13 | 2019-04-18 | Alibaba Group Holding Limited | REALIZING A CHANGE OF A PRIMARY NODE IN A DISTRIBUTED SYSTEM |
MX2019008741A (es) | 2018-12-13 | 2019-09-09 | Alibaba Group Holding Ltd | Realizacion de un proceso de recuperacion para un nodo de red en un sistema distribuido. |
EP3566392B1 (en) | 2018-12-13 | 2021-08-25 | Advanced New Technologies Co., Ltd. | Achieving consensus among network nodes in a distributed system |
CN111488387B (zh) * | 2019-01-28 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 信息记录和数据查询方法 |
CN111695991B (zh) * | 2019-03-14 | 2024-02-06 | 北京沃东天骏信息技术有限公司 | 基于区块的合约处理方法、装置、区块链节点及存储介质 |
CN110062041B (zh) * | 2019-04-12 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于区块链的iot设备变更的方法及装置 |
CN110569305B (zh) * | 2019-08-27 | 2021-09-03 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110557452B (zh) * | 2019-09-04 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 区块链的节点管理方法、装置、存储介质和计算机设备 |
CN110730204B (zh) * | 2019-09-05 | 2022-09-02 | 创新先进技术有限公司 | 区块链网络中删除节点的方法和区块链系统 |
CN110597541B (zh) * | 2019-09-16 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 基于区块链的接口更新处理方法、装置、设备及存储介质 |
CN110572468B (zh) * | 2019-09-17 | 2022-11-04 | 平安科技(深圳)有限公司 | 服务器集群文件同步方法及装置、电子设备及存储介质 |
JP6852776B1 (ja) * | 2019-11-26 | 2021-03-31 | ダイキン工業株式会社 | ブロックチェーンシステム、プログラム及びネットワーク接続装置 |
CN111046055A (zh) * | 2019-12-11 | 2020-04-21 | 杭州趣链科技有限公司 | 一种区块链全局配置的变更方法、设备和存储介质 |
CN110992035A (zh) * | 2019-12-13 | 2020-04-10 | 中国工商银行股份有限公司 | 区块链节点管理方法、装置及系统 |
CN111711537B (zh) * | 2020-06-07 | 2022-10-25 | 中信银行股份有限公司 | 备用主节点列表更新方法、装置及设备 |
CN112232956B (zh) * | 2020-10-16 | 2024-05-14 | 中国银联股份有限公司 | 一种基于区块链的智慧停车的数据处理方法及装置 |
CN112995340B (zh) * | 2021-04-21 | 2021-08-13 | 湖南天河国云科技有限公司 | 一种基于区块链的去中心化文件系统再平衡方法 |
CN112887436B (zh) * | 2021-04-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、共识节点和流水线方式的区块链系统 |
CN114584326B (zh) * | 2022-05-07 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9953281B2 (en) * | 2012-09-28 | 2018-04-24 | Rex Wiig | System and method of a requirement, compliance and resource management |
CN108431845A (zh) * | 2015-10-13 | 2018-08-21 | 交互网格公司 | 基于区块链的分布式一致性控制的使用 |
CN105404701B (zh) * | 2015-12-31 | 2018-11-13 | 浙江图讯科技股份有限公司 | 一种基于对等网络的异构数据库同步方法 |
CN107332701A (zh) * | 2017-06-26 | 2017-11-07 | 中国人民银行数字货币研究所 | 管理节点的方法和系统 |
-
2018
- 2018-03-09 CN CN201810199551.3A patent/CN108365993B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及系统 |
CN107171829A (zh) * | 2017-04-24 | 2017-09-15 | 杭州趣链科技有限公司 | 一种基于bft共识算法实现的动态节点管理方法 |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
Non-Patent Citations (1)
Title |
---|
Proof of Vote: A High-Performance Consensus Protocol Based on Vote Mechanism & Consortium Blockchain;Kejiao Li等;《 2017 IEEE 19th International Conference on High Performance Computing and Communications》;20180215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108365993A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108365993B (zh) | 区块链节点动态变更方法、系统和计算机可读存储介质 | |
CN108418862B (zh) | 基于人工智能服务云平台的微服务管理方法和系统 | |
CN108074177B (zh) | 数据对账方法、系统和计算机可读存储介质 | |
CN110493067B (zh) | 一种api网关服务更新的方法及装置 | |
CN110677462B (zh) | 多区块链网络的访问处理方法、系统、装置及存储介质 | |
CN112054998A (zh) | 代理服务方法、装置、设备和计算机可读存储介质 | |
CN109614164B (zh) | 实现插件可配置的方法、装置、设备及可读存储介质 | |
WO2016127612A1 (zh) | 监控处理方法及装置 | |
CN110851248A (zh) | 异步任务数据处理方法、装置及计算机可读存储介质 | |
US10715628B2 (en) | Attribute operating method and device | |
CN111083219A (zh) | 请求处理方法、装置、设备与计算机可读存储介质 | |
CN104572054A (zh) | 一种能力调用方法和设备 | |
CN112787999A (zh) | 跨链调用方法、装置、系统与计算机可读存储介质 | |
CN113626225B (zh) | 程序调用方法、终端设备及介质 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
WO2021012506A1 (zh) | 语音识别系统中的负载均衡实现方法、装置以及计算机设备 | |
CN113448650A (zh) | 直播功能插件加载方法、装置、设备及存储介质 | |
CN112130936B (zh) | 基于轮询的数据调用方法、装置、设备及存储介质 | |
CN110730197B (zh) | 一种服务发现方法和系统 | |
CN111131643B (zh) | 一种通话控制方法及装置 | |
CN112685102B (zh) | 一种网关插件热加载方法、装置、设备及介质 | |
CN112367205B (zh) | 一种对http调度请求的处理方法及调度系统 | |
CN114449030A (zh) | 一种互联网服务系统、方法、电子设备及存储介质 | |
CN110336693B (zh) | 网络块设备的管理方法、装置、设备和存储介质 | |
CN115437627A (zh) | 学件开发方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |