CN113485731A - 一种用于区块链的智能合约升级方法和系统 - Google Patents
一种用于区块链的智能合约升级方法和系统 Download PDFInfo
- Publication number
- CN113485731A CN113485731A CN202110753610.9A CN202110753610A CN113485731A CN 113485731 A CN113485731 A CN 113485731A CN 202110753610 A CN202110753610 A CN 202110753610A CN 113485731 A CN113485731 A CN 113485731A
- Authority
- CN
- China
- Prior art keywords
- voting
- intelligent contract
- proposal
- alliance
- upgrade
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于区块链的智能合约升级方法和系统,涉及区块链技术领域。该方法的一具体实施方式包括:接收联盟中的第一成员通过调用联盟中的第一节点发起的针对联盟的智能合约进行升级的升级提议;智能合约将升级提议广播至联盟中的各个节点,接收联盟中的各个节点对升级提议进行表决的表决意见,根据表决意见生成表决结果;当表决结果为通过时,智能合约执行升级提议,以对联盟的智能合约进行升级。通过设计联盟成员投票环节,将是否进行智能合约升级以及自动化升级的实现过程等权利分散给了联盟委员会的每个节点,削弱了联盟准入过程的中心化。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种用于区块链的智能合约升级方法和系统。
背景技术
智能合约是“执行合约条款的计算机交易协议”,智能合约通过高级语言编写,经过对应编译器变异之后,生成区块链能够识别并执行的编码,部署在区块链之中,提供相应的功能。区块链上的所有用户都可以看到基于区块链的智能合约,但是,这会导致包括安全漏洞在内的所有漏洞都可见,并且可能无法迅速修复。
目前联盟区块链平台往往只提供智能合约的升级接口,智能合约升级机制是被联盟一个特殊成员掌握的,在智能合约需要升级的环节,有着绝对的中心化特征,合约初始化部署的成员可以决定智能合约的修改及维护,这是不符合区块链去中心化原则的。而且需要联盟内经过所有联盟成员商议协定后通过联盟管理员权限手动调用智能合约的升级接口,定期按要求对智能合约进行升级。此过程存在着效率低下的痛点,无法实现灵活的智能合约自动升级。
发明内容
有鉴于此,本发明实施例提供一种用于区块链的智能合约升级方法和系统,针对性地基于联盟共识机制,可以由联盟链中任一成员发起联盟提议,提议内容为针对目前智能合约的版本进行升级优化,提出修改点,然后此提议自动通知到所有成员,通过设计联盟成员投票环节,将是否进行智能合约升级以及自动化升级的实现过程等权利分散给了联盟委员会的每个节点,削弱了联盟准入过程的中心化。
为实现上述目的,根据本发明实施例的第一方面,提供了一种用于区块链的智能合约升级方法。
本发明实施例的用于区块链的智能合约升级方法包括:
接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议;所述智能合约将所述升级提议广播至所述联盟中的各个节点,监听所述联盟中的各个节点对所述升级提议进行表决的表决意见,根据所述表决意见生成表决结果;当所述表决结果为通过时,所述智能合约执行所述升级提议,以对所述联盟的智能合约进行升级。
可选地,在将所述升级提议广播至所述联盟中的其它节点之前,还包括:所述智能合约确定所述升级提议的提议类型,获取与所述提议类型对应的合法性规则,确认所述升级提议符合所述合法性规则;若所述升级提议不符合所述合法性规则,则将所述升级提议回退至第一节点。
可选地,所述方法还包括:若所述升级提议不符合所述合法性规则,则所述智能合约向第一节点发出针对所述升级提议的修改提议。
可选地,所述智能合约将所述升级提议广播至所述联盟中的各个节点,包括:将所述升级提议的提议内容登记至联盟提议表,将所述联盟提议表广播至所述联盟中的各个节点。
可选地,监听所述联盟中的各个节点对所述升级提议进行表决的表决意见,包括:每接收到一条表决意见,判断是否触发表决结束条件;若是,则表决结束,不继续接收所述联盟中的节点对所述升级提议进行表决的表决意见;否则,继续接收所述联盟中的节点对所述升级提议进行表决的表决意见,直至触发所述表决结束条件;
所述表决结束条件包括:已接收的用于表明表决通过的表决意见的数量或比例大于等于第一阈值;或者,已接收的表决意见的数量或比例等于第二阈值;或者,已接收的用于表明表决不通过的表决意见的数量或比例大于等于第三阈值。
可选地,在每接收到一条表决意见,判断是否触发表决结束条件之前,还包括:确定已发起表决时长未达到预设接收时长,否则,不接收所述联盟中的节点对所述升级提议进行表决的表决意见,将所述升级提议设置为过期并归档。
可选地,根据所述表决意见生成表决结果,包括:判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值;若是,则生成表示通过的表决结果;否则,判断已接收的表决意见的数量或比例是否大于等于第二阈值;在已接收的表决意见的数量或比例大于等于第二阈值时,生成表示不通过的表决结果;否则,继续接收所述联盟中的节点对所述升级提议进行表决的表决意见。
可选地,在判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值之前,还包括:确定已接收的用于表明表决不通过的表决意见的数量或比例小于第三阈值;否则,生成表示不通过的表决结果。
可选地,在将所述升级提议广播至所述联盟中的各个节点之前,或者,在根据所述表决意见生成表决结果之前,还包括:所述智能合约确认不存在与所述升级提议的提议内容对应的历史表决结果;若存在与所述升级提议的提议内容对应的历史表决结果,则将所述升级提议设置为过期并归档。
可选地,所述历史表决结果是指:在接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议之时、或者在接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议之前或之后,由第一节点或者其他节点发起的与所述升级提议具有相同提议类型的升级提议的表决结果。
可选地,在所述智能合约将所述升级提议广播至所述联盟中的各个节点之前,还包括:所述智能合约对所述升级提议的提议内容进行加密,将所述升级提议中的节点信息设置为匿名。
可选地,对所述升级提议的提议内容进行加密,包括:通过门限加密、对称加密和非对称加密中的一种或多种,对所述提议内容进行加密。
根据本发明实施例的第二方面,提供了一种用于区块链的智能合约升级系统,包括多个节点,该智能合约升级系统采用本发明实施例第一方面提供的智能合约升级方法升级智能合约。
根据本发明实施例的第三方面,提供了一种用于区块链的智能合约升级管理设备,包括:一个或多个处理器;
存储系统,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的智能合约升级方法。
根据本发明实施例的第四方面,提供了一种计算机可读介质。
本发明实施例的计算机可读介质上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的智能合约升级方法。
上述发明中的一个实施例具有如下优点或有益效果:在本发明实施例中,通过设计联盟成员投票环节,将是否进行智能合约升级以及自动化升级的实现过程等权利分散给了联盟委员会的每个节点,增加了联盟治理的透明度,可以更好的获取联盟成员对联盟的信任,同时带来了联盟平台业务应用升级与维护的自动化机制。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例的用于区块链的智能合约升级方法的主要流程的示意图;
图2是本发明实施例的接收联盟中各个节点对所述升级提议进行表决的表决意见的主要流程的示意图;
图3是本发明实施例的根据所述表决意见生成表决结果的主要流程的示意图;
图4是本发明实施例的联盟治理的主要流程的示意图;
图5是本发明实施例的用于区块链的智能合约升级系统的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
根据本发明实施例的第一方面,提供一种用于区块链的智能合约升级方法。
图1是本发明实施例的一种智能合约升级方法的主要流程的示意图。如图1所示,该方法主要包括:
步骤S101:接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议;步骤S102:所述智能合约将所述升级提议广播至所述联盟中的各个节点,接收所述联盟中的各个节点对所述升级提议进行表决的表决意见,根据所述表决意见生成表决结果;步骤S103:当所述表决结果为通过时,所述智能合约执行所述升级提议,以对所述联盟的智能合约进行升级。
在一种可选的实施例中,第一成员可以是联盟中的任意成员,发起提议升级的第一节点也可以是联盟中任意节点,而无需由原始智能合约的创建者发起,也无需从联盟调用入口处或某些授权节点才能发起升级提议,可以最大程度上满足区块链去中心化的原则。
智能合约进行升级的升级提议通常是根据现有的标准交易格式被打包成标准格式交易,保证兼容性,并避免因定制专门的保留方法而牺牲智能合约的灵活性。标准格式的升级交易通常包括作为升级交易识别标志的一个预编译合约地址、原始智能合约的地址、原始智能合约的创建者在创建智能合约时的账户nonce值,其中,预编译合约地址是联盟链中为实现特殊功能而保留的若干地址,nonce值是指账户含有的一个连续递增的数值。
进一步地,在智能合约升级方法中,将原始智能合约的地址和原始智能合约的创建者在创建原始智能合约时的账户nonce值作为升级参数,原始智能合约的创建者在创建原始智能合约时的账户nonce值由原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值计算得到。
在一种可选的实施例中,智能合约还用于:在将所述升级提议广播至所述联盟中的其它节点之前,确定所述升级提议的提议类型,获取与所述提议类型对应的合法性规则,确认所述升级提议符合所述合法性规则;若所述升级提议不符合所述合法性规则,则将所述升级提议回退至第一节点。
提议类型可以根据升级的实际需要进行预设,例如,表决参数变更、新增联盟成员、退出联盟委员会、成员信息或权限变更等,当提议内容为“提议新增张三为联盟成员”时,对应的提议类型即为新增联盟成员。
与提议类型对应的合法性规则根据提议类型的不同,可以设置为相同或不同,在一种可选的实施例中,提议不合法有很多维度,例如:提议类型不在已有的范围内、提议参数修改但校验原参数时不存在、提议内容长度超过最大限制、有非法字符等。
提议内容通常可以分为三部分,提议类型、提议标题和提议内容,其中,提议类型以代码值形式出现,提议标题以文字形式,提议内容以字符串形式,例如jason串,根据类型的不同可以有不同的字符串结构。
进一步地,若所述升级提议不符合所述合法性规则,则智能合约向第一节点发出针对所述升级提议的修改提议。
对于将所述升级提议回退至第一节点,在一种可选的实施例中,为了保证资源的合理利用,可以设置预设的修改次数阈值。例如,设置修改次数阈值为3,那么在第一节点发起针对联盟的智能合约进行升级的升级提议后,若提议不符合合法性规则,可以对该提议修改3次,而不是无限次的修改。当修改3次仍不符合合法性规则时,将该提议设置为过期并归档,第一成员仍想就相同提议内容发起升级提议的话,只能重新发起新的提议,而不能在当前升级提议的基础上再做修改。
对于将所述升级提议回退至第一节点,在另一种可选的实施例中,对回退至第一节点的升级提议进行时间监控,对即将超时的提议进行警报,当超过预设修改时间时,将回退至第一节点的升级提议设置为过期并归档。例如,预设修改时间为7天,当升级提议被回退至第一节点后7天内,可以对该回退提议进行修改并再次提交。在第7天,每隔6小时发起一次警报提示,以提示发起人仍有被回退提议还未修改。若超过7天仍未操作,则自动将该回退提议设置为过期并归档。如此可以有效避免在提议被回退后,发起人不及时修改或将回退提议遗忘,造成无效提议过多,占用内存空间。
将所述升级提议广播至所述联盟中的各个节点,在一种可选的实施例中,包括:智能合约将所述升级提议的提议内容登记至联盟提议表,智能合约将所述联盟提议表广播至所述联盟中的其它节点。
联盟提议表中可以将提议的内容以及其他信息进行整理并直观地展现给其他节点,例如,联盟提议表中可以包含提议时间、提议内容、历史提议发起次数、提议重要级别等。其他节点在同时收到多个提议时,可以根据联盟提议表中的提议重要级别进行排序,对多个提议按先后顺序进行表决。
监听联盟中的各个节点对升级提议进行表决的表决意见,在一种可选的实施方式中,如图2所示,包括:
步骤S201:每接收到一条表决意见;步骤S202:判断是否触发表决结束条件;若是,则执行步骤S203:表决结束,不继续接收联盟中的节点对升级提议进行表决的表决意见;否则,执行步骤S204:继续接收联盟中的节点对升级提议进行表决的表决意见,直至触发表决结束条件。
其中,表决结束条件包括:已接收的用于表明表决通过的表决意见的数量或比例大于等于第一阈值;或者,已接收的表决意见的数量或比例等于第二阈值;或者,已接收的用于表明表决不通过的表决意见的数量或比例大于等于第三阈值。
每接收到一条表决意见,都对是否触发表决结束条件进行判断,可以无需等待所有节点表决完成。因为在实际表决环节,不是所有的表决都对表决结果产生决定性影响,通常只有在阈值处的关键表决会决定最终的表决结果,后续的表决也就失去了意义。因此每接收到一条表决意见进行表决结束的判断,既可以节省不必要的时间,也可以降低资源消耗。
在一种可选的实施例中,在每接收到一条表决意见,判断是否触发表决结束条件之前,还包括:确定已发起表决时长未达到预设接收时长,否则,不接收所述联盟中的节点对所述升级提议进行表决的表决意见,将所述升级提议设置为过期并归档。
由于在实际应用过程中,可能由于网络故障等原因,造成个别节点不能及时收到第一节点发出的提议广播,也无法在预设接收时长内返回表决意见,在这种情况下,可以设置特殊机制,以保证在其他节点无法正常接收到第一节点发出的提议广播时,可以正常参与表决。
根据所述表决意见生成表决结果,在一种可选的实施例中,如图3所示,包括:
步骤S301:判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值;若是,则执行步骤S302:生成表示通过的表决结果;否则,跳转执行步骤S303:判断已接收的表决意见的数量或比例是否大于等于第二阈值;在已接收的表决意见的数量或比例大于等于第二阈值时,执行步骤S304:生成表示不通过的表决结果;否则,执行步骤S305:继续接收联盟中的节点对升级提议进行表决的表决意见。
在一种可选的实施例中,根据数量来设定阈值。例如,当联盟中共有10个节点时,设置第一阈值为6,当已接收的前6个节点均为表明表决通过的表决意见,那么认为当前表决通过,并结束表决,不需要其他节点再进行表决;当已接收的前6个节点中,有5个节点为表明表决通过的表决意见,另外1个节点为表明表决不通过的表决意见,没有达到第一阈值,此时判断已接收的表决意见的数量是否达到第二阈值,设第二阈值为10,此时已接收的表决意见数量为6,未达到第二阈值,则继续接收联盟中的节点对升级提议进行表决的表决意见。当第7、8、9、10个节点均为表明表决不通过的表决意见时,此时已接收的表决意见数量为10,到达第二阈值,说明所有节点均以完成表决,但表决仍未通过,即生成表示不通过的表决结果。
在另一种可选的实施例中,也可以根据比例来设定阈值。例如,将第一阈值设置为1/2,即当有半数节点的成员返回表明表决通过的表决意见,那么认为当前表决通过。
在判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值之前,一种可选的实施例中,还包括:确定已接收的用于表明表决不通过的表决意见的数量或比例小于第三阈值;否则,生成表示不通过的表决结果。
例如,联盟中共有10个节点,第三阈值设置为5,即当有半数成员返回表明表决不通过的表决意见后,及时后面的全部成员表明表决通过的表决意见,表决的最终结果还是不通过。因此,当第1、2、3、4、5个节点返回的均为表明表决不通过的表决意见后,直接生成表示不通过的表决结果,结束表决过程。
与第一阈值和第二阈值类似,第三阈值也可以是根据数量或比例来设定,当联盟中成员总数为奇数时,通过比例必然过半,此种情况下可以优先选取比例的方式进行设定。
在一种可选的实施例中,在智能合约将升级提议广播至联盟中的其它节点之前,或者,在根据表决意见生成表决结果之前,还包括:智能合约确认不存在与升级提议的提议内容对应的历史表决结果;若存在与升级提议的提议内容对应的历史表决结果,则智能合约将升级提议设置为过期并归档。
历史表决结果是指:在接收联盟中的第一成员通过调用联盟中的第一节点发起的针对联盟的智能合约进行升级的升级提议之时、或者在接收联盟中的第一成员通过调用联盟中的第一节点发起的针对联盟的智能合约进行升级的升级提议之前或之后,由第一节点或者其他节点发起的与升级提议具有相同提议类型的升级提议的表决结果。
对于两个提议中提议类型和相同提议内容的确定,可以通过多种方式,在一种可选的实施例中,系统通过提议类型的代码值判断提议类型是否相同,代码值相同则认为提议类型相同;通过提议内容中字符串的取值判断提议内容是否相同,需生效的取值相同即认为提议内容相同。例如,提议某个新成员加入,则加入成员名称的取值相同即表示相同的提议内容。
在另一种可选的实施例中,系统可以通过语义识别的方式,对提议内容的语义进行识别,进而判断两个提议的提议内容是否相同。
进一步可选的实施例中,在系统判断后,若出现两个提议内容相同的提议,可以分别发送提示信息至两个相同提议的提议人,由提议人对提议内容进行确认,若是系统识别错误,则选择忽略提示信息;若提议内容确实相同,则可以选择是否主动撤销提议,并将撤销提议的申请广播至联盟中的各个节点。
在实际应用过程中,可能存在针对同一提议内容由不同的节点在同一时间段内均发起提议,意味着其他成员需要对同一提议内容的两个提议均进行表决,增加了资源消耗,因此若针对同一提议内容的两个提议,有其中任意一个先得到表决结果后,另一个自动设置为过期并归档。这样可以避免出现针对两个相同的提议,在同一时间段内出现一个通过一个不通过的情况,也不会出现两个一模一样的提议造成无意义的资源消耗。
在一种可选的实施例中,在智能合约将升级提议广播至联盟中的其它节点之前,智能合约对升级提议的提议内容进行加密,将升级提议中的节点信息设置为匿名。
对所述升级提议的提议内容进行加密,在一种可选的实施例中,包括:通过门限加密、对称加密和非对称加密中的一种或多种,对所述提议内容进行加密。
三种加密方式均是为了对成员身份进行匿名,其中,门限加密是在上传数据时对于发起提议节点处的成员身份进行匿名;对称加密是在匿名情况下,为了便于系统记录已匿名成员的个人操作,保证在匿名情况下,也可以对成员的操作进行监控;而非对称加密,是便于在其他成员想要了解发起提议节点处的成员的个人操作时,可以通过此种方式进行查看。
图4是本发明实施例的一种联盟治理的主要流程的示意图。如图4所示,先由联盟成员发起提议,联盟合约对发起的提议进行合法性校验,当校验通过后,登记联盟提议表,并将联盟提议表通过消息广播发送给其他联盟成员。其他联盟成员在接收到联盟提议通知后,对提议进行表决,并将表决结果发送至联盟合约,由联盟合约依次判断表决是否过期、表决是否通过和表决是否完成,最后执行表决通过的提议内容,并将表决结果进行广播。
在一种可选的实施例中,在判断表决是否过期后,还可以再对联盟表决表进行一次登记,以标注出表决过期的提议。
对于表决结果的广播,也可以根据实际情况进行判定,对于某些不需要将表决结果广播至所有联盟成员节点的提议内容,可以不进行广播直接结束并返回。
本发明实施例的用于区块链的智能合约设计方法,针对性地基于联盟共识机制,可以由联盟链中任一成员发起联盟提议,提议内容为针对目前智能合约的版本进行升级优化,提出修改点,然后此提议自动通知到所有成员,通过设计联盟成员投票环节,将是否进行智能合约升级以及自动化升级的实现过程等权利分散给了联盟委员会的每个节点,削弱了联盟准入过程的中心化。
本发明实施例的用于区块链的智能合约升级方法,将是否进行智能合约升级以及自动化升级的实现过程等权利分散给了联盟委员会,削弱了联盟准入过程的中心化,增加了联盟治理的透明度,可以更好的获取联盟成员对联盟的信任,同时带来了联盟平台业务应用升级与维护的自动化机制。
根据本发明实施例的第二方面,提供了一种用于区块链的智能合约升级系统,包括多个节点,该智能合约升级系统采用本发明实施例第一方面提供的智能合约升级方法升级智能合约。
图5出了本发明实施例的用于区块链的智能合约升级系统的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501和网络。网络用以在多个终端设备501之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501通过网络与其他终端设备501交互,以接收或发送消息等。终端设备501上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
需要说明的是,本发明实施例第一方面所提供的用于区块链的智能合约升级方法一般由终端设备501执行,相应地,本发明实施例第二方面所提供的用于区块链的智能合约升级系统一般设置于终端设备501中。
应该理解,图5中的终端设备和网络数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备和网络。
根据本发明实施例的第三方面,提供了一种用于区块链的智能合约升级的管理设备,包括:一个或多个处理器;
存储系统,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的用于区块链的智能合约升级方法。
根据本发明实施例的第四方面,提供了一种计算机可读介质。该计算机可读介质上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的用于区块链的智能合约升级方法。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分605;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器607也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器607上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (16)
1.一种用于区块链的智能合约升级方法,其特征在于,包括:
接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议;
所述智能合约将所述升级提议广播至所述联盟中的各个节点,监听所述联盟中的各个节点对所述升级提议进行表决的表决意见,根据所述表决意见生成表决结果;
当所述表决结果为通过时,所述智能合约执行所述升级提议,以对所述联盟的智能合约进行升级。
2.根据权利要求1所述的智能合约升级方法,其特征在于,在将所述升级提议广播至所述联盟中的各个节点之前,还包括:
所述智能合约确定所述升级提议的提议类型,获取与所述提议类型对应的合法性规则,确认所述升级提议符合所述合法性规则;若所述升级提议不符合所述合法性规则,则将所述升级提议回退至第一节点。
3.根据权利要求2所述的智能合约升级方法,其特征在于,还包括:若所述升级提议不符合所述合法性规则,则向第一节点发出针对所述升级提议的修改提议。
4.根据权利要求1所述的智能合约升级方法,其特征在于,所述智能合约将所述升级提议广播至所述联盟中的各个节点,包括:
所述智能合约将所述升级提议的提议内容登记至联盟提议表,将所述联盟提议表广播至所述联盟中的各个节点。
5.根据权利要求1所述的智能合约升级方法,其特征在于,监听所述联盟中的各个节点对所述升级提议进行表决的表决意见,包括:
每接收到一条表决意见,判断是否触发表决结束条件;若是,则表决结束,不继续接收所述联盟中的节点对所述升级提议进行表决的表决意见;否则,继续接收所述联盟中的节点对所述升级提议进行表决的表决意见,直至触发所述表决结束条件;
所述表决结束条件包括:已接收的用于表明表决通过的表决意见的数量或比例大于等于第一阈值;或者,已接收的表决意见的数量或比例等于第二阈值;或者,已接收的用于表明表决不通过的表决意见的数量或比例大于等于第三阈值。
6.根据权利要求5所述的智能合约升级方法,其特征在于,在每接收到一条表决意见,判断是否触发表决结束条件之前,还包括:
确定已发起表决时长未达到预设接收时长,否则,不接收所述联盟中的节点对所述升级提议进行表决的表决意见,将所述升级提议设置为过期并归档。
7.根据权利要求1或5所述的智能合约升级方法,其特征在于,根据所述表决意见生成表决结果,包括:
判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值;若是,则生成表示通过的表决结果;否则,判断已接收的表决意见的数量或比例是否大于等于第二阈值;在已接收的表决意见的数量或比例大于等于第二阈值时,生成表示不通过的表决结果;否则,继续接收所述联盟中的节点对所述升级提议进行表决的表决意见。
8.根据权利要求7所述的智能合约升级方法,其特征在于,在判断已接收的用于表明表决通过的表决意见的数量或比例是否大于等于第一阈值之前,还包括:确定已接收的用于表明表决不通过的表决意见的数量或比例小于第三阈值;否则,生成表示不通过的表决结果。
9.根据权利要求1所述的智能合约升级方法,其特征在于,在将所述升级提议广播至所述联盟中的各个节点之前,或者,在根据所述表决意见生成表决结果之前,还包括:确认不存在与所述升级提议的提议内容对应的历史表决结果;
若存在与所述升级提议的提议内容对应的历史表决结果,则将所述升级提议设置为过期并归档。
10.根据权利要求9所述的智能合约升级方法,其特征在于,所述历史表决结果是指:在接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议之时、或者在接收联盟中的第一成员通过调用所述联盟中的第一节点发起的针对所述联盟的智能合约进行升级的升级提议之前或之后,由第一节点或者其他节点发起的与所述升级提议具有相同提议类型的升级提议的表决结果。
11.根据权利要求1或4所述的智能合约升级方法,其特征在于,在将所述升级提议广播至所述联盟中的其它节点之前,还包括:
对所述升级提议的提议内容进行加密,将所述升级提议中的节点信息设置为匿名。
12.根据权利要求11所述的智能合约升级方法,其特征在于,对所述升级提议的提议内容进行加密,包括:
通过门限加密、对称加密和非对称加密中的一种或多种,对所述提议内容进行加密。
13.根据权利要求1所述的智能合约升级方法,其特征在于,在所述智能合约执行所述升级提议之后,所述智能合约将所述表决结果广播至所述联盟的部分或所有节点。
14.一种用于区块链的智能合约升级系统,包括多个节点,其特征在于,采用权利要求1-13任一所述的智能合约升级方法升级智能合约。
15.一种用于区块链的智能合约升级的管理设备,其特征在于,包括:一个或多个处理器;
存储系统,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-13中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753610.9A CN113485731A (zh) | 2021-07-02 | 2021-07-02 | 一种用于区块链的智能合约升级方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753610.9A CN113485731A (zh) | 2021-07-02 | 2021-07-02 | 一种用于区块链的智能合约升级方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113485731A true CN113485731A (zh) | 2021-10-08 |
Family
ID=77940717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110753610.9A Pending CN113485731A (zh) | 2021-07-02 | 2021-07-02 | 一种用于区块链的智能合约升级方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485731A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115996130A (zh) * | 2023-03-23 | 2023-04-21 | 安徽中科晶格技术有限公司 | 基于预置合约的dao治理方法、装置、设备及存储介质 |
-
2021
- 2021-07-02 CN CN202110753610.9A patent/CN113485731A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115996130A (zh) * | 2023-03-23 | 2023-04-21 | 安徽中科晶格技术有限公司 | 基于预置合约的dao治理方法、装置、设备及存储介质 |
CN115996130B (zh) * | 2023-03-23 | 2023-06-30 | 安徽中科晶格技术有限公司 | 基于预置合约的dao治理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7405995B2 (ja) | ユーザ同意フレームワーク | |
CN111355726B (zh) | 一种身份授权登录方法、装置及电子设备和存储介质 | |
CN1973255A (zh) | 管理和传递软件更新的系统和方法 | |
CN109711122B (zh) | 一种权限管理方法、装置、系统、设备及可读存储介质 | |
CN106254528B (zh) | 一种资源下载方法和缓存设备 | |
US10218817B2 (en) | Digital rights list for device groups | |
JP2017045462A (ja) | コンタクトリストを利用してユーザを認証するシステムおよび方法 | |
CN111427701A (zh) | 一种工作流引擎系统和业务处理方法 | |
CN109472540A (zh) | 业务处理方法和装置 | |
CN109657485B (zh) | 权限处理方法、装置、终端设备和存储介质 | |
CN113312669B (zh) | 密码同步方法、设备及存储介质 | |
CN113485731A (zh) | 一种用于区块链的智能合约升级方法和系统 | |
US8762483B2 (en) | System for and method of verifying packages | |
CN107203724B (zh) | 文件提交方法和装置 | |
CN113010238A (zh) | 一种微应用调用接口的权限确定方法、装置和系统 | |
CN112115500A (zh) | 一种访问文件的方法、装置及系统 | |
CN109683942B (zh) | 脚本管理方法、装置、介质及电子设备 | |
US20230388120A1 (en) | Client-Side Device Bloom Filter Mapping | |
CN114417318A (zh) | 第三方页面的跳转方法、装置和电子设备 | |
CN115018509A (zh) | 一种对象的处理方法、装置、电子设备及存储介质 | |
CN111885006A (zh) | 页面访问、授权访问方法和装置 | |
CN111429326A (zh) | 一种利用区块链网络进行互助的方法及装置 | |
CN113452771B (zh) | 一种接口调用方法、装置和系统 | |
CN113342357B (zh) | 一种软件系统的部署方法和装置 | |
CN115987683B (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 |