【技术实现步骤摘要】
一种区块链智能合约版本控制方法及区块链系统
[0001]本专利技术属于计算机系统领域,尤其涉及一种区块链智能合约版本控制方法及区块链系统。
技术介绍
[0002]近年来,由于区块链具有难以窜改、交易透明等特性,各种基于区块链的应用便如雨后春笋般出现。其中,区块链应用于智能合约的相关技术成为备受关注的议题之一。
[0003]当区块链应用于智能合约时,实际上就是将智能合约的程序代码作为交易内容并发送到区块链网络,通过区块链网络中的节点将包含智能合约的程序代码制作成区块并广播该区块,其他节点验证通过后即相当于该智能合约部署在区块链上。
[0004]举例而言,在以太坊所发布的协议版本中,只要该交易没有设定接收方地址,区块链网络即视此交易为发布智能合约交易,经过验证后产生对应的合约地址,该合约地址即智能合约的参照地址,使用节点的应用程序即可通过该合约地址取得该智能合约实体,并执行该智能合约。
[0005]然而,由于区块链数据具有不可窜改的特性,已发布到区块链上的智能合约无法更改,如果合约逻辑出现问题将难以修复, ...
【技术保护点】
【技术特征摘要】
1.一种区块链智能合约版本控制方法,其特征在于,该方法包括:使用节点构造智能合约版本控制交易,所述交易的类型包括:升级合约、切换合约版本、灰度控制、合约冻结、合约解冻和快速回滚;交易类型为升级合约时,交易中包含新版本智能合约;交易类型为切换合约版本时,交易中包含待切换智能合约版本标签;交易类型为灰度控制时,交易中的目标智能合约需要提前部署对应的版本控制策略合约,所述版本控制策略合约用于控制灰度升级的具体策略;验证节点为每个智能合约维护一个当前生效版本指针、一个历史版本指针列表、一个合约状态标识、一个版本控制策略合约指针和一个版本计数器;所述当前生效版本指针指向最新生效版本的智能合约的地址;所述历史版本指针列表中的指针分别指向旧版本的智能合约的地址;所述合约状态标识包括正常和冻结状态;所述版本控制策略合约指针指向该智能合约的版本控制策略合约;所述版本计数器用于记录智能合约版本变更次数;使用节点将智能合约版本控制交易发送给区块链网络中的主验证节点,主验证节点校验交易的合法性,验证通过后将交易排序后打包并广播至区块链网络中的其他验证节点;收到智能合约版本控制交易的其他验证节点将再次验证交易合法性,验证通过后将交易写入区块中,相互对区块进行共识,共识通过后所有验证节点执行区块中的智能合约版本控制交易,根据交易的类型,对交易中目标合约地址对应的合约内容进行相应操作,具体为:(1)合约升级操作,验证节点验证新版本智能合约并存储,将当前生效版本指针添加至历史版本指针列表,并将当前生效版本指针指向存储的新版本智能合约,然后将当前的版本计数器加一;(2)版本切换操作,通过交易中的版本标签信息检索历史版本指针列表,检索到待切换智能合约后将当前生效版本指针添加至历史版本指针列表,并将当前生效版本指针替换为检索到的历史版本指针,并将该历史版本指针从历史版本指针列表删除,版本计数器不进行调整;(3)合约冻结操作,将当前生效版本指针添加至历史版本指针列表,并将当前生效版本指针指向一个空值,并将合约状态标识置为冻结状态,冻结智能合约后,用户将无法调用;(4)合约解冻操作,将当前生效版本指针替换为历史版本指针列表中最新加入的历史版本指针,并将该历史版本指针从历史版本指针列表删除,智能合约解冻后用户可正常调用;(5)快速回滚操作,从历史版本指针列表中获取最新加入的历史版本指针,并将该历史版本指针从历史版本指针列表删除,然后将当前生效版本指针替换为获取到的最新历史版本指针,并将版本计数器减一;(6)灰度控制操作,根据版本控制策略合约指针指向的版本控制策略合约进行策略选择,根据返回结果执行当前生...
【专利技术属性】
技术研发人员:陈权,臧铖,陈嘉俊,尤士豪,
申请(专利权)人:浙商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。