CN112114872B - 控制区块链运行的方法、设备以及存储介质 - Google Patents
控制区块链运行的方法、设备以及存储介质 Download PDFInfo
- Publication number
- CN112114872B CN112114872B CN202011098194.5A CN202011098194A CN112114872B CN 112114872 B CN112114872 B CN 112114872B CN 202011098194 A CN202011098194 A CN 202011098194A CN 112114872 B CN112114872 B CN 112114872B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- protocol
- new
- participant
- current
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了控制区块链运行的方法、设备以及存储介质,该方法包括:判断区块链是否满足全局统一更新条件;若区块链未满足全局统一更新条件,则继续以当前区块链协议运行区块链;若区块链满足全局统一更新条件,则更新当前区块链协议为新的区块链协议,并以新的区块链协议运行。解决了现有技术中区块链升级中分叉所带来的协议版本不一致的技术问题,达到了协议版本一致的技术效果。
Description
技术领域
本发明涉及区块链,尤其涉及控制区块链运行的方法、设备以及存储介质。
背景技术
大多数区块链协议被设计成长期运行的,甚至是永久运行的。这种长期运行不仅仅是因为设计者希望协议中的日志(或称共识数据)保持增长,还往往是因为协议的安全性很可能依赖于这种长期的运行。但是,这就带来一个问题。在这种长时间的运行情况下,如果协议中的密码组件被发现了安全漏洞,或者协议的本身已经不再满足场景的需要,那么协议就需要一种在运行中升级的办法。
对于一个运行中的区块链协议,如果存在两个诚实的参与者,在他们眼中系统中当前日志有区别,那么我们就称之为分叉。
现有的区块链升级技术主要有两种:硬分叉升级和软分叉升级。如果一个升级必然会导致分叉,我们称之为硬分叉升级。如果一个可能会导致分叉,我们称之为软分叉升级。
软分叉升级不易导致系统分裂,但是使用范围有限,很多功能的升级无法使用软分叉升级完成。硬分叉升级可以完成绝大部分功能的升级要求。但是硬分叉升级很容易导致系统分裂。
发明内容
本申请实施例通过提供一种控制区块链运行的方法、设备以及存储介质,解决了现有技术中区块链升级中分叉所带来的协议版本不一致的问题,实现了协议版本一致。
本申请实施例提供了一种控制区块链运行的方法,包括:
判断区块链是否满足全局统一更新条件;
若区块链未满足全局统一更新条件,则继续以当前区块链协议运行区块链;
若区块链满足全局统一更新条件,则更新当前区块链协议为新的区块链协议,并以新的区块链协议运行。
在其中一个实施例中,所述判断区块链是否满足全局统一更新条件,包括:
判断当前区块链协议是否到期。
在其中一个实施例中,还包括:
为区块链设置理想闹钟功能;
当任意参与方初始化时,调用所述理想闹钟功能,为所述参与方的区块链协议的实例设置基于当前区块链协议的统一到期时间。
在其中一个实施例中,所述理想闹钟功能通过卫星导航系统或安全网络授时协议获得全局同步时间。
在其中一个实施例中,所述继续以当前协议运行区块链,或以新的区块链协议运行,包括:
当新的参与方初始化时,考察所述新的参与方的区块链协议;
若所述新的参与方的区块链协议与当前区块链协议相同,则将新的参与方加入参与方集合。
在其中一个实施例中,所述继续以当前协议运行区块链,或以新的区块链协议运行,包括:
当接收到任意参与方的扩展请求时,获取所述扩展请求中携带的区块;
若发送扩展请求的参与方来自于已有的参与方集合,且请求合法,则将所述区块加入区块链。
在其中一个实施例中,所述继续以当前协议运行区块链,或以新的区块链协议运行,包括:
当接收到任意参与方的读取日志请求时,判断发送读取日志请求的参与方是否来自于已有的参与方集合;
若是,则根据当前时间获取最新的日志并发送给所述发送读取日志请求的参与方。
在其中一个实施例中,所述更新当前区块链协议为新的区块链协议,包括:
读取当前的共识链;
调用当前区块链协议中包含的新协议生成方法,以所述当前的共识链为参数,生成新的区块链协议代码;
将当前区块链协议实例替换为所述新的区块链协议实例;
其中,所述新的区块链协议实例中包括为新的区块链协议实例设置的新的到期时间和新的新协议生产方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有控制区块链运行的程序,所述控制区块链运行的程序被处理器执行时实现如上述的控制区块链运行的方法的步骤。
本申请实施例还提供一种设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的控制区块链运行的程序,所述处理器执行所述控制区块链运行的程序时实现如上述的控制区块链运行的方法的步骤。
本申请实施例中提供的一种控制区块链运行的方法、设备以及存储介质的技术方案,至少具有如下技术效果:
由于设置了区块链协议的全局统一更新条件,在满足条件后强制更新区块链协议版本,旧有版本失效。进而实现了协议版本一致。未更新协议的参与者其自身的安全性得不到任何保障,也增加了参与者更新协议的动力。
附图说明
图1为本申请第一实施例的控制区块链运行的方法流程图;
图2为本申请第二实施例的控制区块链运行的方法流程图;
图3为本申请控制区块链运行的方法中用于更新区块链协议的流程图;
图4为本申请一实施例的运行控制区块链运行方法的设备结构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
传统的区块链协议的升级方法分为硬分叉升级和软分叉升级。
在硬分叉升级中,部分新版本协议生成的区块在使用旧版本的参与方看来是不合法的。如果存在参与方拒绝升级他们的协议,那么参与方群体就会分裂。在使用新版本的参与方和使用旧版本的参与方眼中,系统维护的日志是不同的。最典型的硬分叉就是以太坊的ETH和ETC。
在软分叉升级中,老版本的软件会认可新版本的区块,但新版本不会认可所有的老版本区块。因此,如果大多数参与方同时采用了新版本的,那么升级是不会出现分叉的。因为,这种情况下,系统中只有一个合法链,即新版本生成的链。在旧版本参与方看来,这条链也是合法的。但是,如果大多数人拒绝使用新版软件的话,那么这种升级方法依然会导致分叉出现。因为,这时系统中大多数人认可的合法链是旧版本的,而在新版本看来,这大概率是不合法的。
硬分叉和软分叉的本质区别在于,硬分叉升级中,新旧版本的协议为双向不认可。在软分叉升级中,这种不认可是单向的。软分叉升级虽然降低了系统分裂的概率,只要在分叉前说服大多数参与方一起升级即可,但是,这种升级技术,并不能解决所有的升级问题。比如著名的比特币扩容问题。比特币规定一个区块最大为1MB。如果要修改这一限制,增加区块的大小,软分叉就无法实现。再比如,如果我们发现SHA-256(比特币使用的一种哈希函数)存在安全问题,需要修改比特币协议中使用的哈希函数,那么这种升级也无法依靠软分叉实现。因为这些升级后的新版本产生的区块,在老版本看起来,肯定是不合法的。
本申请为了解决现有技术中区块链协议升级中分叉所带来的协议版本不一致的问题,采用了判断区块链是否满足全局统一更新条件;若区块链未满足全局统一更新条件,则继续以当前区块链协议运行区块链;若区块链满足全局统一更新条件,则更新当前区块链协议为新的区块链协议,并以新的区块链协议运行。由于设置了区块链协议的全局统一更新条件,在满足条件后强制更新区块链协议版本,旧有版本失效。进而实现了协议版本一致。未更新协议的参与者其自身的安全性得不到任何保障,也增加了参与者更新协议的动力。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
如图1所示,在本申请的第一实施例中,本申请的控制区块链运行的方法具体包括以下步骤:
步骤S110,判断当前区块链协议是否满足全局统一更新条件。若未满足全局统一更新条件,则执行步骤S120:继续以当前区块链协议运行区块链,否则执行步骤S130:更新当前区块链协议为新的区块链协议,并以新的区块链协议运行。
本实施例在传统区块链的运行方式中增加判断是否满足全局统一更新条件,作为更新区块链协议的标准。其中,全局统一更新条件是指对于任意参与方来说都采用全局统一参数来判断是否符合相同的条件,该全局统一参数不因参与方的特性改变。在其中一个实施例中,该全局统一参数为全局时间。即可以通过判断全局时间是否到达某个期限,来决定是否更新区块链协议。在其他实施例中,也可以考虑其他全局统一参数,例如区块链的长度。只要该全局统一参数能够保持全局统一性。
由于区块链协议不要求必须保护数据的隐私性,本实施例安全性分析中可以假设,将所有的输入输出均转发给攻击者。即任意参与方的操作消息均被转发给攻击者。当满足更新条件后,原有的区块链协议将失效,未更新区块链协议的参与方的区块链操作极易被攻击者操控。
因此,本实施例的方法首先通过设置全局统一更新条件来使所有参与方的区块链协议在全局统一参数满足条件时进行统一更新,这样就不会出现区块链协议分叉的情况。其次是保证原有协议在升级后失效,使用原有协议将承担被攻击的风险,也增加了参与方更新区块链协议的动力。
如图2所示,在一个实施例中,采用全局时间来确定是否更新区块链协议。具体可以包括以下步骤S210~S250:
步骤S210,为区块链设置理想闹钟功能。
理想闹钟功能可以是区块链协议中的一个函数。其功能是接受一个将来时间作为输入,在所述将来时间到来时发出提醒。具体的方式可以是在接受到所述将来时间时,设置一个可以发出提醒的计划任务。该理想闹钟功能可以添加在所使用的区块链协议中。
为了保证全局时间的统一性,所述理想闹钟功能可以通过卫星导航系统(例如GPS系统)或安全网络授时协议获得全局同步时间,或其他能够给出全局同步时间的方式。
可以理解的是,在区块链的协议中,可以预先设定一个用来约定升级的时间。当参与方使用区块链协议进行初始化时,即可通过所述理想闹钟功能设置到期时间。设定的方式可以是指定具体的日期时间,或者时间间隔等。
步骤S220,当任意参与方初始化时,调用所述理想闹钟功能,为所述参与方的区块链协议的实例设置基于当前区块链协议的统一到期时间。
对于任意参与方,在本地都会保存一个编码好的当前阶段的协议和当前协议的实例。当进行初始化时,可以调用该理想闹钟功能初始化基于当前区块链协议的统一到期时间。
步骤S230,判断当前区块链协议是否到期。若未到期,则执行步骤S240:继续以当前区块链协议运行区块链,否则执行步骤S250:更新当前区块链协议为新的区块链协议,并以新的区块链协议运行。
本实施例中,采用理想闹钟功能为区块链设置全局时间,并以全局时间是否到期作为更新区块链协议的条件,其可以通过调用系统的计划任务来简单地实现系统提醒功能。
上述实施例中,如图3所示,可以采用以下步骤S310~S340更新当前区块链协议为新的区块链协议。
步骤S310:读取当前的共识链。
区块链采用共识机制来保证所有的参与方都能够获得相同合法数据,任何对区块链的篡改将会不符合该共识机制,从而不被认可。共识链即当前时刻,也就是需要进行区块链协议更新的时刻,所有参与方都取得共识的共享数据。
步骤S320:调用当前区块链协议中包含的新协议生成方法,以所述当前的共识链为参数,生成新的区块链协议代码。本申请各实施例中,在区块链协议中提供新的区块链协议的生成方法,该生成方法以共识链为参数,可以生成新的区块链协议。可以理解,在新的区块链协议中,同样包含该生成方法。
步骤S330:将当前区块链协议实例替换为所述新的区块链协议实例。在新的区块链协议生成后,当前区块链协议即被替换,并失效。其中,新的区块链协议实例中包括为新的区块链协议实例设置的新的到期时间和新的新协议生产方法。
可以调用上述的理想闹钟功能为新的区块链协议设置新的到期时间。
上述更新区块链协议的方法,包含在区块链协议中,因此能够保持协议更新的有效延续。且其以共识链为参数,能够保证执行结果的一致性。
上述实施例中,不管是以当前区块链协议运行,还是以新的区块链协议运行,都可以包含区块链的下述常用操作:初始化、扩展区块链以及读取日志。
初始化:
当新的参与方初始化时,考察所述新的参与方的区块链协议。新的参与方可以是网络上的任意节点,其具备运行区块链服务的条件。当其想成为区块链上的节点时,可以通过运行对应区块链的程序来创建节点,并接入区块链网络。该区块链程序即带有相应的区块链协议。
若所述新的参与方的区块链协议与当前区块链协议相同,则将新的参与方加入参与方集合。即区块链网络判断新节点的协议是否与区块链网络的协议一致,如果一致,新节点就能够加入区块链网络。
扩展区块链:
当接收到任意参与方的扩展请求时,获取所述扩展请求中携带的区块。当成为区块链网络上的节点后,参与方将能够向区块链中的区块的集合中添加新的区块。
若发送扩展请求的参与方来自参与方集合,且请求合法,即符合协议规则,则将所述区块加入区块链。即处于区块链网络中的节点才能扩展区块链中的区块集合。
读取日志:
当接收到任意参与方的读取日志请求时,判断发送读取日志请求的参与方是否来自于参与方集合。若是,则根据当前时间获取最新的日志并发送给所述发送读取日志请求的参与方。
因此上述实施例均满足区块链的必备功能,且具备以下性质。
无认证性:无论用户是谁,都可以在任何时刻开始参与协议。只要他拥有和其他用户相同的协议代码π。当然,如果他拥有的协议代码和别的用户不一样,那么系统不保证他的任何安全性,即这时,他的所有输出可能均由攻击者控制。
一致性:在相同的时刻t,系统中不同的参与方读取日志,得到的输出L是一样的。
不可篡改性:一旦系统中有参与方读取到了日志L,那么以后所有参与方通过读到的日志L'的头部必然和L相同。
可增长性:任何参与方都可以通过扩展消息向区块集合内添加新区块,来达到扩展区块链的目的。
为进一步说明上述运行区块链的方法,提出以下关于区块链的理想功能定义,用于证明区块链在协议的安全性:
定义1:有失效时间的区块链的功能。
初始化时设置最新读取的日志L,该读取操作的时间T,区块的集合B,编码后的协议π,初始的参与方集合P,协议实例的标识码sid。
一、当前时刻t≤E时:
1)当收到来自新参与方P的 (init, sid, π')时,将这条消息转发给攻击者,如果π=π'将P加入P。即参与方P进行协议实例(实例标识码为sid)初始化(init),其具有协议π'。
2)当收到来自于任意参与方P的消息 (expand, sid, b)时,将这条消息转发给攻击者,并将区块b加入区块的集合B。即参与方P以协议实例(实例标识码为sid)进行扩展(expand),其携带区块b。
3)当收到来自于任意参与方P的消息 (read, sid)时,将这条消息转发给攻击者,如果P ∉P,由攻击者决定输出;否则,令t为当前时间:
a)如果t = T,输出(readed,sid,L)给参与方P。即参与方P以协议实例(实例标识码为sid)读日志,当前时间t为读取操作时间T,日志为T时刻的日志。
b)如果t > T,计算L'=π.ext(L,B,t)设置L = L||L',T = t,并输出(readed,sid, L)给P。即参与方P以协议实例(实例标识码为sid)读日志,当前时间t在读取操作时间T之后,需要获取新的日志并替换。并将读取操作时间T设置为当前时间t。
二、当前时刻t > E时,按照攻击者的指示工作。
其中,ext是编码后的区块链协议中所包含的日志提取函数。它是一个确定性函数(非随机函数),在不同的区块链系统下的定义各有不同。它决定了这个区块链系统的具体用途。
定义2:理想闹钟F AL:
当收到来自参与方P的消息(alarm, sid, T)时,设置一个计划任务:在时刻T时向P输出 (alarm,sid)。
定义3:常数π.U:
区块链协议π中所包含的此协议的约定升级时间。
定义4:函数π.new:
区块链协议π中包含的新协议提取函数。输入共识区块L,此函数输出新协议π'。该新协议提取方法可以采用共识区块链中包含的第一个合法的区块链协议代码,也可以采用其他合适的方法。需要在协议运行中,根据实际需要制定。
定义5:可升级的区块链协议πU:
参与方P本地保存一个编码好的当前协议π和当前协议的实例I。
当收到输入(init, sid, π)时,设置I为π的实例并输入(init, sid, π)给I,输入(alarm, sid, π.U)给F AL。即实例I在初始化时调用理想闹钟功能F AL。
当收到输入(expand, sid, b)时,将其输入给I。
当收到输入(read, sid)时,将其输入给I,并输出I的输出。
当收到F AL返回的(alarm, sid)时,输入(read, sid)给I得到当前的共识链L,获取新的协议π'=π.new(L),然后设置π=π',将I设置为π'的实例,并向I输入 (init,sid,π')。
定义6:可升级区块链的功能。
初始化时设置:最后一次读取的日志L,该读取操作的时间T,区块的集合B,编码后的当前协议π,初始的参与方集合P,以及下一次更新的时间U=π.U。
一、当收到来自新参与方P的(init,sid,π')时,将这条消息转发给攻击者,如果π=π',将P加入P。
二、当收到来自于任意参与方P的消息 (expand, sid, b)时,将这条消息转发给攻击者,并将区块b加入区块的集合B。
三、当收到来自于P的消息 (read,sid)时,将这条消息转发给攻击者,如果P ∉P,由攻击者决定输出;否则,令t为当前时间:
1)如果t=T,输出(readed,sid,L)给P。
2)如果t>T,计算L'=π.ext(L,B,t),设置L=L||L',T=t,并输出(readed,sid,L)给P。
四、在时间U,
1)如果U≠T,计算L'=π.ext(L,B,U)设置L=L||L',T=U。
2)计算π'=π.new(L),设置π=π',U=π'.U。
上述定义中,在协议升级时间后,如果当前协议版本未升级到新的版本,则所有的操作都会由攻击者决定。在协议升级时间前,协议版本为正确的,即使转发给攻击者,区块链仍然实现其既有功能(包括初始化、扩展、读取日志等)。因此,上述实施例通过全局统一更新条件,保证协议版本统一升级,就能够保证区块链的安全性。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,其上存储有控制区块链运行的程序,所述控制区块链运行的程序被处理器执行时实现如上述的控制区块链运行的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
由于本申请实施例提供的计算机可读存储介质,为实施本申请实施例的方法所采用的计算机可读存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的计算机可读存储介质都属于本申请所欲保护的范围。
基于同一发明构思,本申请实施例还提供一种设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的控制区块链运行的程序,所述处理器执行所述控制区块链运行的程序时实现如上述的控制区块链运行的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
如图4所示,该设备可以包括:
输入装置410,向智能设备输入数据和信息的设备。是智能设备与用户或其他设备通信的桥梁。输入装置410是用户和智能系统之间进行信息交换的主要装置之一。键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、游戏杆、语音输入装置等都属于输入设备。输入装置410是人或外部与设备400进行交互的一种装置,用于把原始数据和处理这些数据的程序输入到设备400中。智能设备能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到智能设备中,进行存储、处理和输出。
输出装置420是智能硬件系统能够的终端设备,用于接收智能设备数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。
该设备400还包括如图4所示:至少一个处理器440、存储器430。
处理器440可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器440中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器440可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器430,处理器440读取存储器430中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器430可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ReadOnly Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的 RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器 (Synch link DRAM,SLDRAM) 和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本发明实施例描述的系统和方法的存储器430旨在包括但不限于这些和任意其它适合类型的存储器。
由于本申请实施例提供的设备,为实施本申请实施例的方法所采用的设备,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该设备的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的设备都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种控制区块链运行的方法,其特征在于,所述方法包括:
判断区块链是否满足全局统一更新条件,所述全局统一更新条件是指对于任意参与方,采用全局统一参数判断是否符合相同的条件,所述全局统一参数不因参与方的特性改变,所述全局统一参数包括全局时间或区块链的长度;
若区块链未满足全局统一更新条件,则继续以当前区块链协议运行区块链;
若区块链满足全局统一更新条件,则更新当前区块链协议为新的区块链协议,并以新的区块链协议运行;
所述判断区块链是否满足全局统一更新条件,包括:
为区块链设置理想闹钟功能;
当任意参与方初始化时,调用所述理想闹钟功能,为所述参与方的区块链协议的实例设置基于当前区块链协议的统一到期时间;
判断所述当前区块链协议是否到期;
若未到期,则判定为区块链未满足全局统一更新条件;
若到期,则判定为区块链满足全局统一更新条件;
所述更新当前区块链协议为新的区块链协议,包括:
读取当前的共识链;
调用当前区块链协议中包含的新协议生成方法,以所述当前的共识链为参数,生成新的区块链协议代码;
将当前区块链协议实例替换为所述新的区块链协议实例;
其中,所述新的区块链协议实例中包括为新的区块链协议实例设置的新的到期时间和新的新协议生产方法;
所述以新的区块链协议运行,包括:
当新的参与方初始化时,考察所述新的参与方的区块链协议;若所述新的参与方的区块链协议与当前区块链协议相同,则将新的参与方加入参与方集合;
当接收到任意参与方的扩展请求时,获取所述扩展请求中携带的区块;若发送扩展请求的参与方来自于已有的参与方集合,且请求合法,则将所述区块加入所述区块链;
当接收到任意参与方的读取日志请求时,判断发送读取日志请求的参与方是否来自于已有的参与方集合;若是,则根据当前时间获取最新的日志并发送给所述发送读取日志请求的参与方。
2.根据权利要求1所述的控制区块链运行的方法,其特征在于,所述理想闹钟功能通过卫星导航系统或安全网络授时协议获得全局同步时间。
3.根据权利要求1所述的控制区块链运行的方法,其特征在于,所述继续以当前区块链协议运行区块链,包括:
当新的参与方初始化时,考察所述新的参与方的区块链协议;
若所述新的参与方的区块链协议与当前区块链协议相同,则将新的参与方加入参与方集合。
4.根据权利要求1所述的控制区块链运行的方法,其特征在于,所述继续以当前区块链协议运行区块链,包括:
当接收到任意参与方的扩展请求时,获取所述扩展请求中携带的区块;
若发送扩展请求的参与方来自于已有的参与方集合,且请求合法,则将所述区块加入区块链。
5.根据权利要求1所述的控制区块链运行的方法,其特征在于,所述继续以当前区块链协议运行区块链,包括:
当接收到任意参与方的读取日志请求时,判断发送读取日志请求的参与方是否来自于已有的参与方集合;
若是,则根据当前时间获取最新的日志并发送给所述发送读取日志请求的参与方。
6.一种计算机可读存储介质,其特征在于,其上存储有控制区块链运行的程序,该控制区块链运行的程序被处理器执行时实现权利要求1-5任一所述的方法。
7.一种控制区块链运行的设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的控制区块链运行的程序,所述处理器执行所述控制区块链运行的程序时实现权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098194.5A CN112114872B (zh) | 2020-10-14 | 2020-10-14 | 控制区块链运行的方法、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098194.5A CN112114872B (zh) | 2020-10-14 | 2020-10-14 | 控制区块链运行的方法、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114872A CN112114872A (zh) | 2020-12-22 |
CN112114872B true CN112114872B (zh) | 2023-09-26 |
Family
ID=73793917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011098194.5A Active CN112114872B (zh) | 2020-10-14 | 2020-10-14 | 控制区块链运行的方法、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438109B (zh) * | 2021-06-23 | 2022-06-07 | 预言机(重庆)科技有限公司 | 一种基于网络节点的区块链协议升级方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153560A (zh) * | 2017-05-25 | 2017-09-12 | 微梦创科网络科技(中国)有限公司 | 版本升级方法、服务器和系统 |
CN109992285A (zh) * | 2019-04-02 | 2019-07-09 | 杭州秘猿科技有限公司 | 区块链代码块独立升级方法、装置及电子设备 |
CN110268691A (zh) * | 2017-02-07 | 2019-09-20 | 微软技术许可有限责任公司 | 具有经验证的区块链和共识协议的联盟区块链网络 |
CN111367621A (zh) * | 2020-03-06 | 2020-07-03 | 深圳市网心科技有限公司 | 智能合约定时处理方法、区块链节点及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190236606A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a virtual chain model for distributed ledger technologies in a cloud based computing environment |
-
2020
- 2020-10-14 CN CN202011098194.5A patent/CN112114872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110268691A (zh) * | 2017-02-07 | 2019-09-20 | 微软技术许可有限责任公司 | 具有经验证的区块链和共识协议的联盟区块链网络 |
CN107153560A (zh) * | 2017-05-25 | 2017-09-12 | 微梦创科网络科技(中国)有限公司 | 版本升级方法、服务器和系统 |
CN109992285A (zh) * | 2019-04-02 | 2019-07-09 | 杭州秘猿科技有限公司 | 区块链代码块独立升级方法、装置及电子设备 |
CN111367621A (zh) * | 2020-03-06 | 2020-07-03 | 深圳市网心科技有限公司 | 智能合约定时处理方法、区块链节点及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112114872A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6929497B2 (ja) | クロスブロックチェーンインタラクション方法、装置、システム、および電子デバイス | |
JP6878700B2 (ja) | クロスブロックチェーン認証方法、装置、および電子デバイス | |
US10790971B1 (en) | Preventing misrepresentation of input data by participants in a secure multi-party computation | |
WO2019218816A1 (zh) | 基于区块链的业务数据处理方法、装置、电子设备及存储介质 | |
US11734259B2 (en) | Anonymous database rating update | |
KR20200079289A (ko) | 블록체인 기반 트랜잭션 프로세싱 방법 및 장치 | |
US11569996B2 (en) | Anonymous rating structure for database | |
US10754976B2 (en) | Configuring image as private within storage container | |
US8005118B2 (en) | Method and apparatus for implementing secure clock in device having no internal power source | |
CN112114872B (zh) | 控制区块链运行的方法、设备以及存储介质 | |
TWI706362B (zh) | 基於區塊鏈的資料處理方法、裝置和伺服器 | |
CN110704547B (zh) | 基于神经网络的关系抽取数据生成方法、模型及训练方法 | |
JP2018010623A (ja) | プライバシーを強化されたプッシュ通知のための方法、システム、及び非一時的なコンピュータ可読媒体 | |
CN108092947B (zh) | 一种对第三方应用进行身份鉴别的方法及装置 | |
CN117009483A (zh) | 问答服务的生成方法、装置、设备及可读存储介质 | |
CN114254360A (zh) | 模型训练方法、装置、存储介质、系统以及区块链节点 | |
CN114398631A (zh) | 一种业务处理方法及装置、电子设备、存储介质 | |
CN110929230A (zh) | 作品管理方法、装置、设备以及存储介质 | |
JP2001273285A (ja) | 開示情報制御装置及び開示情報制御方法 | |
CN109698974A (zh) | 一种显示进度的方法、装置、电子设备及介质 | |
CN112491839B (zh) | 基于跨系统的登录处理方法、装置、计算机设备及介质 | |
US20230006835A1 (en) | Cross-blockchain identity and key management | |
CN114553786A (zh) | 网络请求熔断方法、装置、计算机设备和存储介质 | |
CN114519191A (zh) | 医疗数据管理方法及装置 | |
CN112818408A (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 |