数据迁移方法、系统和计算机可读存储介质技术方案

技术编号:18237778 阅读:152 留言:0更新日期:2018-06-17 01:01
本发明专利技术公开了一种数据迁移方法、系统和计算机可读存储介质,所述数据迁移系统设有客户端和区块链节点,所述方法包括以下步骤:由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点;读取所述区块链交易信息中的旧合约地址,以在所述旧合约地址中提取存储空间的存储根值;将提取的存储根植赋值到所述新智能合约节点对应的存储根值中,以便后续根据新合约的地址实现数据的迁移。本发明专利技术基于存储空间实现区块链智能合约的整合,使得新合约和旧合约可以同时并存互不影响,不会增加区块链存储压力,具备较强的升级容错能力,降低了维护成本,大幅度提高了安全性、可靠性和可实操性。 1

Data migration method, system and computer readable storage medium

The invention discloses a data migration method, a system and a computer readable storage medium. The data migration system has a client and block chain node. The method includes the following steps: block chain nodes receive block chain transaction information sent by the block chain nodes, and create new intelligence based on the block chain transaction information received. An energy contract node; read the old contract address in the transaction information of the block chain to extract the storage root value of the storage space in the old contract address; the extracted storage root is assigned to the storage root corresponding to the new intelligent contract node, so as to follow the migration of the data according to the address of the new contract. The invention is based on storage space to realize the integration of block chain intelligent contract. The new contract and the old contract can not affect each other simultaneously. It will not increase the storage pressure of block chain, have strong fault tolerance ability, reduce the maintenance cost, and greatly improve the security, reliability and practicality. One

【技术实现步骤摘要】
数据迁移方法、系统和计算机可读存储介质
本专利技术涉及区块链
,尤其涉及一种数据迁移方法、系统和计算机可读存储介质。
技术介绍
区块链应用在业务逻辑变化或故障的情况下,需要对智能合约数据进行迁移以达到升级的目的。目前的智能合约数据迁移方案主要有以下两种:1)硬编码迁移法,该方法是在新版本的智能合约中保存一个指向旧版本智能合约的合约地址,旧版本智能合约中保存的数据不移动,而新版本智能合约用来保存增量的数据内容,使得新旧版本的智能合约通过合约地址关联起来,保留了逻辑上的关联。该方法等同于新版本智能合约保留了一份旧版本智能合约数据的指针,其缺点是:持续不断的版本升级会导致形成较长链式的逻辑关联,使得维护成本较高。2)硬拷贝迁移法,该方法是利用外部迁移工具,将旧版本智能合约数据全部拷贝到区块链以外的区域,然后再异步地从区块链以外的区域重新存储到新版本智能合约中,使得新旧版本智能合约之间从逻辑上不再保留任何关联。该方法等同于合约数据的完全拷贝,其缺点是:区块链存储压力的大幅度增加;在实际应用中数据迁移工具需要适配不同的智能合约,开发成本较高;在迁移过程需要停止服务,否则容易出现脏数据,并且数据量较大的情况下,耗时长,操作复杂,数据容易出错。
技术实现思路
本专利技术的主要目的在于提供一种数据迁移方法、系统和计算机可读存储介质,旨在解决现有的数据迁移方式,维护和开发成本较高、耗时长、操作繁琐及数据容易出错的技术问题。为实现上述目的,本专利技术提供一种数据迁移方法,应用于数据迁移系统,所述数据迁移系统设有客户端和区块链节点,所述数据迁移方法包括:由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点;读取所述区块链交易信息中的旧合约地址,以在所述旧合约地址中提取存储空间的存储根值;将提取的存储根植赋值到所述新智能合约节点对应的存储根值中,以便后续根据新合约的地址实现数据的迁移。可选地,所述由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点的步骤之前,所述方法还包括:在接收到发送方发起的数据迁移请求时,由客户端根据旧合约的存储结构建立新合约对应的数据迁移交易结构,其中,所述新合约的数据迁移交易结构兼容旧合约的存储结构;由所述客户端获取发送方的外部账户地址、旧合约地址、交易数据及交易签名数据,并结合所述数据迁移交易结构组装成区块链交易信息;由所述客户端将组装成的区块链交易信息发送至区块链节点。可选地,所述区块链节点包括远程调用模块、点对点模块和块链框架模块,所述由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点的步骤包括:由区块链节点的远程调用模块或点对点模块接收客户端发送的区块链交易信息,并由所述远程调用模块或点对点模块对区块链交易信息进行解码;对解码后的区块链交易中包含的各个字段进行检查,以确定各个字段是否满足各个字段对应的预设条件;在区块链交易信息对应的各个字段满足各个字段对应的预设条件时,将区块链交易信息放入交易池队列;由块链框架模块从交易池队列中提取出区块链交易信息,并对提取的区块链交易信息进行打包处理以创建新智能合约节点。可选地,所述对解码后的区块链交易中包含的各个字段进行检查,以确定各个字段是否满足各个字段对应的预设条件的步骤包括:检查交易签名数据是否符合签名算法;检查交易数据是否未在当前区块链中出现过;检查发送方的外部账户地址是否与预存账户地址匹配;检查旧合约地址是否为当前区块链上的智能合约账户地址;检查交易数据中的数据字段容量是否大于旧合约地址对应的智能合约的数据字段容量。可选地,所述由块链框架模块从交易池队列中提取出区块链交易信息,并对提取的区块链交易信息进行打包处理以创建新智能合约节点的步骤包括:由块链框架模块从交易池队列中提取出区块链交易信息,并将提取的区块链交易信息添加到新区块的交易列表中;获取发起方的账户地址以及该账户地址已建立的合约账户总个数,并根据所述账户地址以及总合约账户个数,计算新智能合约的地址;根据新合约的地址建立新智能合约节点,并获取交易数据中的旧合约地址对应的旧智能合约节点的存储根值,并将其值赋值到新智能合约节点对应的存储根值中。可选地,所述区块链节点还包括计算模块,所述将提取的存储根植赋值到所述新智能合约节点对应的存储根植中的步骤之后,所述方法还包括:调用计算模块在区块链交易信息的交易数据中提取出构造参数;以所述构造参数为输入在新智能合约节点对应的存储根植中执行新合约的构造函数,以实现智能合约节点的存储根植的更新。可选地,所述以所述构造参数为输入在新智能合约节点对应的存储根植中执行新合约的构造函数,以实现智能合约节点的存储根植的更新的步骤之后,所述方法还包括:将新智能合约节点存储到区块链中,并反馈区块链最新状态;根据迁移交易的执行结果组装成数据迁移交易回执结构,并将数据迁移交易回执结构添加到新区块的回执列表中,以反馈至客户端。可选地,所述区块链节点还包括共识模块和存储模块,所述将数据迁移交易回执结构添加到新区块的回执列表中,以反馈至客户端的步骤之后,所述方法还包括:由块链框架模块将新区块提供给共识模块,以供共识模块对新区块进行签名,并将签名后的新区块广播至全网的各个节点,以实现全网共识;在新区块共识完成后,由共识模块通知所述块链框架模块,以供所述块链框架模块调用存储模块将新区块及新区块所产生的合约数据存储到存储介质中,以完成区块链的更新。此外,为实现上述目的,本专利技术还提供一种数据迁移系统,所述数据迁移系统包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如上文所述的数据迁移方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据迁移程序,所述数据迁移程序应用于数据迁移系统,所述数据迁移程序被处理器执行时实现如上文所述的数据迁移方法的步骤。本专利技术提出的数据迁移方法,先由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点,然后读取所述区块链交易信息中的旧合约地址,以在所述旧合约地址中提取存储空间的存储根值,最终将提取的存储根植赋值到所述新智能合约节点对应的存储根值中,以便后续根据新合约的地址实现数据的迁移。本专利技术基于存储空间实现区块链智能合约的整合,使得新合约和旧合约可以同时并存互不影响,不会增加区块链存储压力,具备较强的升级容错能力,降低了维护成本,大幅度提高了安全性、可靠性和可实操性。附图说明图1是本专利技术实施例方案涉及的硬件运行环境的系统结构示意图;图2为本专利技术数据迁移方法第一实施例的流程示意图;图3为图2中步骤S10的细化流程示意图;图4为图3中步骤S14的细化流程示意图;图5为本专利技术数据迁移方法第二实施例的流程示意图;图6为本专利技术数据迁移方法第三实施例的流程示意图;图7为本专利技术数据迁移方法第四实施例的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的解决方案主要是:先由区块链节点接本文档来自技高网...
数据迁移方法、系统和计算机可读存储介质

【技术保护点】
1.一种数据迁移方法,其特征在于,应用于数据迁移系统,所述数据迁移系统设有客户

【技术特征摘要】
1.一种数据迁移方法,其特征在于,应用于数据迁移系统,所述数据迁移系统设有客户端和区块链节点,所述数据迁移方法包括:由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点;读取所述区块链交易信息中的旧合约地址,以在所述旧合约地址中提取存储空间的存储根值;将提取的存储根植赋值到所述新智能合约节点对应的存储根值中,以便后续根据新合约的地址实现数据的迁移。2.如权利要求1所述的数据迁移方法,其特征在于,所述由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点的步骤之前,所述方法还包括:在接收到发送方发起的数据迁移请求时,由客户端根据旧合约的存储结构建立新合约对应的数据迁移交易结构,其中,所述新合约的数据迁移交易结构兼容旧合约的存储结构;由所述客户端获取发送方的外部账户地址、旧合约地址、交易数据及交易签名数据,并结合所述数据迁移交易结构组装成区块链交易信息;由所述客户端将组装成的区块链交易信息发送至区块链节点。3.如权利要求1所述的数据迁移方法,其特征在于,所述区块链节点包括远程调用模块、点对点模块和块链框架模块,所述由区块链节点接收客户端发送的区块链交易信息,并基于接收到的区块链交易信息创建新智能合约节点的步骤包括:由区块链节点的远程调用模块或点对点模块接收客户端发送的区块链交易信息,并由所述远程调用模块或点对点模块对区块链交易信息进行解码;对解码后的区块链交易中包含的各个字段进行检查,以确定各个字段是否满足各个字段对应的预设条件;在区块链交易信息对应的各个字段满足各个字段对应的预设条件时,将区块链交易信息放入交易池队列;由块链框架模块从交易池队列中提取出区块链交易信息,并对提取的区块链交易信息进行打包处理以创建新智能合约节点。4.如权利要求3所述的数据迁移方法,其特征在于,所述对解码后的区块链交易中包含的各个字段进行检查,以确定各个字段是否满足各个字段对应的预设条件的步骤包括:检查交易签名数据是否符合签名算法;检查交易数据是否未在当前区块链中出现过;检查发送方的外部账户地址是否与预存账户地址匹配;检查旧合约地址是否为当前区块链上的智能合约账户地址;检查交易数据中的数据字段容量是否大于旧合约地址对应的智能合约的数据字段容量。5.如权利要求3所述的数据迁移方法,其特征在于,所述由块链框架模块从交易池...

【专利技术属性】
技术研发人员:郭世清张开翔范瑞彬
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

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

1