一种数据更新的方法及节点设备技术

技术编号:19023409 阅读:26 留言:0更新日期:2018-09-26 19:04
本申请实施例公开了一种数据更新的方法,包括:接收客户端发送的智能合约部署请求,智能合约部署请求中携带数据快照映射关系所包含的第一智能合约的数据快照标识;根据智能合约部署请求获取第二智能合约和目标数据,目标数据为根据数据快照映射关系和第一智能合约的数据快照标识确定的;将第二智能合约和目标数据发送至客户端,以使客户端对第一智能合约和第一智能合约对应的待更新数据进行更新。本申请还提供一种节点设备。本申请在对智能合约进行更新时,可以直接从快照中提取已经存储过的目标数据,目标数据是智能合约历史版本中无缺陷的数据,因此也就不需要消耗较多的资源来推导这些无缺陷的数据,从而降低了数据更新的难度和复杂度。

【技术实现步骤摘要】
一种数据更新的方法及节点设备
本申请涉及互联网
,尤其涉及一种数据更新的方法及节点设备。
技术介绍
目前,互联网上的比特币交易主要采用区块链技术,该技术基于密码学原理,对达成一致的双方直接进支付,从而不需要第三方中介的参与。区块链是一个分布式的账本,可采用智能合约对该账本进行管理。其中,每个区块内记录了若干条交易记录,同时包含了前一个区块的哈希值,所有的区块按顺序相连后就组成了区块链。目前,关于能合约的部署过程如图1所示,背书节点包括背书模块(endorser)、生命周期智能合约模块以及背书系统智能合约模块,客户端向背书节点发送部署提案,由背书节点中的生命周期智能合约模块对该提案对应的智能合约进行模拟并产生数据,背书系统智能合约模块根据所产生的数据执行背书过程,最后将背书结果通过背书模块返回给客户端。客户端收到足够多满足策略的背书结果后,会将背书结果和数据发送给区块链中所有的节点设备,以此完成智能合约的升级。当前版本所采用的数据是从上一版本智能合约中继承的。如果发现智能合约的上一版本有缺陷,则要对该智能合约进行更新以修复缺陷,而有缺陷的智能合约所模拟出的数据也是有问题的,因此还需要对该智能合约版本所产生的数据进行更新。然而,推导出智能合约历史版本中没有缺陷的数据往往需要较多的时间和复杂的计算,从而导致数据更新的难度增加。
技术实现思路
本申请实施例提供了一种数据更新的方法及节点设备,在对智能合约进行更新时,可以直接从快照中提取已经存储过的目标数据,目标数据是智能合约历史版本中无缺陷的数据,因此也就不需要消耗较多的资源来推导这些无缺陷的数据,从而降低了数据更新的难度和复杂度。有鉴于此,本申请第一方面提供一种数据更新的方法,下面从节点设备的角度来描述,节点设备执行了以下的步骤:首先,客户端需要部署一个新版本的智能合约,于是向节点设备发送智能合约部署请求,节点设备接收该智能合约部署请求,其中,智能合约部署请求中携带了数据快照映射关系所包含的第一智能合约的数据快照标识,第一智能合约是历史版本的智能合约,数据快照标识可以是第一智能合约对应的快照名称,在实际应用中,还可以是第一智能合约的其他信息,而数据快照映射关系具体可以是一个快照映射表。快照映射表中包含但并不仅限于智能合约名称、快照名称、快照数据以及时间戳;接下来,节点设备根据收到的智能合约部署请求,可以获取待被部署的第二智能合约,第二智能合约的版本通常会比第一智能合约的版本更高。节点设备采用第一智能合约的数据快照标识,从数据快照映射关系中查找并确认对应的目标数据,那么目标数据也就可以认为是第一智能合约的数据快照标识对应的历史数据。通常情况下,目标数据是没有缺陷的数据;最后,节点设备还可以将第二智能合约以及目标数据一起发送给客户端,客户端根据所接收的第二智能合约对第一智能合约进行更新,并且使用目标数据对第一智能合约对应的待更新数据进行更新。这样也就完成了将待更新数据回滚到目标数据的操作。本申请实施例中,提供了一种用于数据更新的方法,节点设备接收客户端发送的智能合约部署请求,其中,智能合约部署请求中携带数据快照映射关系所包含的第一智能合约的数据快照标识,然后根据智能合约部署请求获取第二智能合约以及目标数据,其中,第二智能合约为根据第一智能合约更新后得到的,目标数据为根据数据快照映射关系以及第一智能合约的数据快照标识确定的,最后将第二智能合约以及目标数据发送至客户端,以使客户端根据第二智能合约以及目标数据对第一智能合约以及第一智能合约对应的待更新数据进行更新。采用上述方式,在对智能合约进行更新时,可以直接从快照中提取已经存储过的目标数据,目标数据是智能合约历史版本中无缺陷的数据,因此也就不需要消耗较多的资源来推导这些无缺陷的数据,从而降低了数据更新的难度和复杂度。在一种可能的设计中,在本申请实施例的第一方面的第一种实现方式中,节点设备在接收客户端发送的智能合约部署请求之前,还可以包括如下的步骤:首先,节点设备接收客户端发送的数据快照创建请求,其中,数据快照创建请求中携带第一智能合约的数据快照标识,通过这个数据快照标识就能够让节点设备知道需要进行快照的是第一智能合约。接着,节点设备会根据数据快照创建请求检测当前是否存在数据快照映射关系,如果存在,则再根据数据快照创建请求中携带的数据快照标识来获取第一智能合约所对应的目标数据。然后,节点设备可以在数据快照映射关系中添加关于目标数据以及第一智能合约的数据快照标识之间的对应关系,也就是能够在数据快照映射关系中找到关于第一智能合约的数据快照标识以及相应的目标数据。最后,节点设备应该向客户端发送已经添加了目标数据以及第一智能合约的数据快照标识的数据快照映射关系,以此实现了节点设备与客户端同步维护该数据快照映射关系的目的。其次,本申请实施例中,节点设备在接收客户端发送的智能合约部署请求之前,还可以接收客户端发送的数据快照创建请求,并由此建立起数据快照映射关系,该数据快照映射关系中包含了目标数据以及对应的数据快照标识,最后将数据快照映射关系同步到客户端。通过上述方式,客户端可以主动创建快照请求,由节点设备响应快照请求并且进行相应的操作,从而完成对第一智能合约的快照,以此能够在后续进行数据回滚时可调用相应的目标数据。在一种可能的设计中,在本申请实施例的第一方面的第二种实现方式中,节点设备接收客户端发送的数据快照创建请求之后,还可以包括如下的步骤:对于节点设备而言,还需要根据数据快照创建请求检测当前是否存在数据快照映射关系,更具体地,检测当前是否存在快照映射表,如果存在快照映射表,则如上述方面所提到的内容,可以根据数据快照创建请求中携带的数据快照标识来获取第一智能合约所对应的目标数据。反之,如果不存在快照映射表,那么节点设备将会创建一个快照映射表,当然,这个时候的快照映射表可以是一个空表格,使得节点设备能够往表格中填写信息。再次,本申请实施例中,节点设备在接收客户端发送的数据快照创建请求之后,需要检测当前是否存在数据快照映射关系,如果没有,则会创建数据快照映射关系。通过上述方式,节点设备只需要创建或者维护一个数据快照映射关系即可,不会重复创建多个数据快照映射关系,从而节省了维护和创建数据快照映射关系的资源,有利于提升方案的效率。在一种可能的设计中,在本申请实施例的第一方面的第三种实现方式中,节点设备根据目标数据以及第一智能合约的数据快照标识确定数据快照映射关系,可以包括如下步骤:如果节点设备检测到数据快照映射关系(即快照映射表)中不包含第一智能合约的数据快照标识,说明在数据快照映射关系中还没有记录与第一智能合约相关的信息,于是需要在该数据快照映射关系中添加第一智能合约的数据快照标识与目标数据之间的关联关系。进一步地,本申请实施例中,在建立了数据快照映射关系的前提下,如果不包含第一智能合约的数据快照标识,则需要在该数据快照映射关系中添加第一智能合约的数据快照标识与目标数据的关联关系。通过上述方式,可以有效地在数据快照映射关系中增加关于第一智能合约的快照记录,便于节点设备直接从快照记录中提取已经存储过的目标数据,从而提升了方案使用的可行性,并且增强了方案的可操作性。在一种可能的设计中,在本申请实施例的第一方面的第四种实现方本文档来自技高网...

【技术保护点】
1.一种数据更新的方法,其特征在于,包括:接收客户端发送的智能合约部署请求,其中,所述智能合约部署请求中携带数据快照映射关系所包含的第一智能合约的数据快照标识;根据所述智能合约部署请求获取第二智能合约以及目标数据,其中,所述目标数据为根据所述数据快照映射关系以及所述第一智能合约的数据快照标识确定的;将所述第二智能合约以及所述目标数据发送至所述客户端,以使所述客户端根据所述第二智能合约以及所述目标数据对所述第一智能合约以及所述第一智能合约对应的待更新数据进行更新。

【技术特征摘要】
1.一种数据更新的方法,其特征在于,包括:接收客户端发送的智能合约部署请求,其中,所述智能合约部署请求中携带数据快照映射关系所包含的第一智能合约的数据快照标识;根据所述智能合约部署请求获取第二智能合约以及目标数据,其中,所述目标数据为根据所述数据快照映射关系以及所述第一智能合约的数据快照标识确定的;将所述第二智能合约以及所述目标数据发送至所述客户端,以使所述客户端根据所述第二智能合约以及所述目标数据对所述第一智能合约以及所述第一智能合约对应的待更新数据进行更新。2.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的智能合约部署请求之前,所述方法还包括:接收所述客户端发送的数据快照创建请求,其中,所述数据快照创建请求中携带所述第一智能合约的数据快照标识;根据所述数据快照创建请求获取所述第一智能合约所对应的所述目标数据;根据所述目标数据以及所述第一智能合约的数据快照标识确定所述数据快照映射关系;将所述数据快照映射关系发送至所述客户端。3.根据权利要求2所述的方法,其特征在于,所述接收所述客户端发送的数据快照创建请求之后,所述方法还包括:根据所述数据快照创建请求检测是否存在所述数据快照映射关系;若不存在所述数据快照映射关系,则创建所述数据快照映射关系。4.根据权利要求2或3所述的方法,其特征在于,所述根据所述目标数据以及所述第一智能合约的数据快照标识确定所述数据快照映射关系,包括:若所述数据快照映射关系中不包含所述第一智能合约的所述数据快照标识,则在所述数据快照映射关系中添加所述第一智能合约的所述数据快照标识与所述目标数据之间的关联关系。5.根据权利要求2所述的方法,其特征在于,所述根据所述数据快照创建请求获取所述第一智能合约所对应的所述目标数据之后,所述方法还包括:若所述数据快照映射关系中包含所述第一智能合约的所述数据快照标识,则拒绝更新所述数据快照映射关系。6.根据权利要求2所述的方法,其特征在于,所述根据所述数据快照创建请求获取所述第一智能合约所对应的所述目标数据,包括:根据所述数据快照创建请求获取所述第一智能合约中关键字以及数值,其中,所述关键字与所述数值一一对应;根据所述第一智能合约的所述关键字以及所述数值,对所述第一智能合约进行合并处理,并得到处理结果;根据所述处理结果确定所述目标数据。7.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的智能合约部署请求之后,所述方法还包括:若所述接收客户端发送的智能合约部署请求中包含快照创建标识,则根据所述智能合约部署请求获取所述第一智能合约对应的所述待更新数据;在所述数据快照映射关系中,确定所述快照创建标识与所述待更新数据之间的关联关系;所述将所述第二智能合约以及所述目标数据发送至所述客户端,包括:将所述第二智能合约、所述目标数据以及所述数据快照映射关系发送至所述客户端。8.根据权利要求7所述的方法,其特征在于,所述若所述接收客户端发送的智能合约部署请求中包含快照创建标识,则根据所述智能合约部署请求获取所述第一智能合约对应的所述待更新数据之前,所述方法还包括:根据所述智能合约部署请求检测是否存在所述数据快照映射关系;若不存在所述数据快照映射关系,则创建所述数据快照映射关系。9.根据权利要求7或8所述的方法,其特征在于,所述在所述数据快照映射关系中,确定所述快照创建标识与所述待更新数据之间的关联关系,包括:若所述数据快照映射关系中不包含所述第一智能合约的所述快照创建标识,则在所述数据快照映射关系中添加所述第一智能合约的所述快照创建标识与所述待更新数据之间的关联关系。10.根据权利要求7所述的方法,其特征在于,所述根据所述智能合约部署请求获取所述第一智能合约对应的所述待更新数据之后,所述方法还包括:若所述数据快照映射关系中包含所述第一智能合约的所述快照创建标识,则拒绝更新所述数据快照映射关系。11.根据权利要求7所述的方法,其特征在于,所述根据所述智能合约部署请求获取所述第一智能合约对应的所述待更新数据,包括:根据所述智能合约部署请求获取所述第一智能合约中关键字以及数值,其中,所述关键字与所述数值一一对应;根据所述第一智能合约的所述关键字以及所述数值,对所述第一智能合约进行合并处理,并得到处理结果;根据所述处理结果确定所述待更新数据。12.一种节点设备,其特征在于,包括:第一接收模块,用于接收客户端发送的智能合约部署请求,其中,所述智能合约部署请求中携带数据快照映射关系所包含的第一智能合约的数据快照标识;第一获取模块,用于根据所述第一接收模块接收的所述智能合约部署请求获取第二智能合约以及目标数据,其中,所述目标数据为根据所述数据快照映射关系以及所述第一智能合约的数据快照标识确定的;第一发送模块,用于将所述第一获取模块获取的所述第二智能合约以及所述目标数据发送至所述客户端,以使所述客户端根据所述第二智能合约以及所述目标数据对所述第一智能合约以及所述第一智能合约对应的...

【专利技术属性】
技术研发人员:谢军安胡瑞丰姜耀国丁海洋蒋飞虎
申请(专利权)人:华为软件技术有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1