CN115630046A - 区块链迁移的方法和装置 - Google Patents
区块链迁移的方法和装置 Download PDFInfo
- Publication number
- CN115630046A CN115630046A CN202211654172.1A CN202211654172A CN115630046A CN 115630046 A CN115630046 A CN 115630046A CN 202211654172 A CN202211654172 A CN 202211654172A CN 115630046 A CN115630046 A CN 115630046A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- blocks
- chain
- source
- 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.)
- Granted
Links
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种区块链迁移的方法和装置,方法用于将原链从源区块链系统迁移到目标区块链系统,方法应用于目标区块链系统的共识节点,具体包括,获取原链的区块并按原数据格式在目标区块链系统中保存原链的区块;根据源区块链系统的共识节点对目标区块链系统保存的区块进行一致性验证;通过一致性验证后,生成目标区块链系统的创世区块并对其进行共识,以完成区块链迁移。本方案在迁移时不改变原链中区块的数据格式,维持了区块链不可篡改的特性,并对迁移后的区块进行一致性验证,阻止区块链迁移过程中被篡改的风险,比现有方案具有更高的安全性。
Description
技术领域
本发明涉及数据迁移技术领域,特别涉及一种区块链迁移的方法和装置。
背景技术
在区块链技术领域,有时出于业务迁移的需求,需要将原有区块链从一个旧的区块链系统(称为源区块链系统)转移到另一个新的区块链系统(称为目标区块链系统),现有的一种迁移方法是,从源区块链系统读取原区块链的各区块包含的历史记录,将读取到的历史记录转换成与目标区块链系统匹配的数据格式,再将转换后的历史记录打包为目标区块链系统中的区块。
这种方式的问题在于,为了防止区块中历史记录被篡改,节点在打包区块时会利用自身的秘钥和被打包的历史记录生成对应的签名,并将签名和历史记录一并存在区块中,而历史记录的格式被修改后,原本的签名将无法用于校验对应的历史记录。因此按现有方式迁移区块链时,难以保证迁移过程中原有区块链中的历史记录不被篡改,即现有的迁移方式存在迁移过程中历史记录被篡改的安全隐患。
发明内容
针对上述现有技术的缺点,本发明提供一种区块链迁移的方法和装置,以提供一种更安全的区块链迁移的方案。
本申请第一方面提供一种区块链迁移的方法,用于将原链从源区块链系统迁移到目标区块链系统,所述原链指代所述源区块链系统存储的区块链,所述方法应用于所述目标区块链系统的每一共识节点;
所述方法包括:
获取所述原链的区块,并按原数据格式保存所述原链的区块到所述目标区块链系统的共识节点的区块数据库;其中,所述原数据格式指代所述源区块链系统存储所述原链时所用的数据格式;
根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证;
在所述区块数据库中的区块通过一致性验证后,根据所述原链中最高区块的区块标识和区块高度生成所述目标区块链系统的创世区块;
对所述目标区块链系统的创世区块进行共识,以完成区块链迁移。
本申请第二方面提供一种区块链迁移的装置,用于将原链从源区块链系统迁移到目标区块链系统,所述原链指代所述源区块链系统存储的区块链,所述装置应用于所述目标区块链系统的每一共识节点;
所述装置包括:
获取单元,用于获取所述原链的区块,并按原数据格式保存所述原链的区块到所述目标区块链系统的共识节点的区块数据库;其中,所述原数据格式指代所述源区块链系统存储所述原链时所用的数据格式;
验证单元,用于根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证;
生成单元,用于在所述区块数据库中的区块通过一致性验证后,根据所述原链中最高区块的区块标识和区块高度生成所述目标区块链系统的创世区块;
共识单元,用于对所述目标区块链系统的创世区块进行共识,以完成区块链迁移。
本申请提供一种区块链迁移的方法和装置,方法用于将原链从源区块链系统迁移到目标区块链系统,方法应用于目标区块链系统的共识节点,具体包括,获取原链的区块并按原数据格式在目标区块链系统中保存原链的区块;根据源区块链系统的共识节点对目标区块链系统保存的区块进行一致性验证;通过一致性验证后,生成目标区块链系统的创世区块并对其进行共识,以完成区块链迁移。本方案在迁移时不改变原链中区块的数据格式,维持了区块链不可篡改的特性,并对迁移后的区块进行一致性验证,阻止区块链迁移过程中被篡改的风险,比现有方案具有更高的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种迁移客户端的结构示意图;
图2为本申请实施例提供的一种验证客户端的结构示意图;
图3为本申请实施例提供的一种区块链迁移的方法的流程图;
图4为本申请实施例提供的一种区块链迁移的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本申请的方案,首先对涉及的部分术语进行说明。
创世区块。区块链由多个相连的区块构成,其中每个区块记录了一段时间内网络中的历史记录,例如一段时间内网络上发生的交易的交易记录。而这个由多个区块构成的链条中,第一个被最早构建的区块就称为创世区块,创世区块拥有一个唯一的区块标识。除创世区块外,每个后续建立的区块均包含两个区块标识,一个是该区块自身的区块标识,另一个是该区块的前序区块的区块标识。通过区块标识间的前后指向关系,所有区块按序相连就构成了区块链。某区块的前序区块,是指该区块的前一个区块。例如,在区块链上,区块A连接在区块B之后,则区块B就是区块A的前序区块。
拜占庭将军问题,是指“在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的”。因此在系统中存在除了消息延迟或不可送达的故障以外的错误,包括消息被篡改、节点不按照协议进行处理等,将会潜在地会对系统造成针对性的破坏。
拜占庭容错(Byzantine Fault Tolerance,BFT)共识算法,就是假设区块链网络环境包括运行正常的服务器、故障的服务器和破坏者的服务器情况下,如何在正常的节点间形成对网络状态的共识。
区块链系统,由若干个节点组成,其中部分节点被预先指定为共识节点。在一种典型的应用场景中,节点可以收集一段时间内在区块链系统发生的交易的交易记录,将这些交易记录打包生成一个区块,该区块经过多个共识节点共识后,会由各个节点保存在节点本地,同时该区块可以按前文所述的方式,通过本区块和前序区块的区块标识和之前生成的区块建立连接,多个如此连接的区块所形成的链式结构,就是俗称的区块链。
其中,收集一定时间段内的记录并将收集到的记录打包成区块的过程,称为出块,多个共识节点对新生成的区块进行共识,并保存通过共识的区块的过程,称为上链。
区块链系统中的节点,可以理解为组成区块链系统的计算机设备,例如组成该系统的服务器设备。
区块链中的区块,可以理解为一种特殊的数据结构,具体由区块头和区块体组成,其中区块头可以包括本区块和前序区块的区块标识,本区块的区块高度和其他区块头内容,区块体可以包括记录列表。其中记录列表具体可以包括打包该区块时所用的历史记录,比如在上述区块链系统的应用场景中,节点将一段时间内的交易记录打包成一个区块,这些交易记录就可以作为该区块的记录列表。记录列表中存储的每一条记录,都有一个在整个区块链系统中用于唯一标识该记录的记录标识(即记录ID)。
区块高度,表示区块在区块链中的排序,一般的,默认区块链中首个创建的区块,即创世区块的区块高度为0,在创世区块之后,区块链上第N个创建的区块,其区块高度就是N。
如背景技术所述,现有的区块链迁移方案是,读出原有区块链内的历史记录,将这些历史记录转换符合目标区块链系统的数据格式,然后将转换格式后的历史记录打包为目标区块链系统中新的区块。
下面结合一个示例对这种迁移方式中存在的历史记录被篡改的安全隐患进行说明:
假设源区块链系统中有一个区块A,其中包含若干条原始历史记录,以及根据这若干条原始历史记录和源区块链系统中的多个共识节点的秘钥生成的历史记录签名1,按现有方式迁移时,从源区块链系统读取区块A的原始历史记录并将其转换为符合目标区块链系统格式要求的新历史记录,然后目标区块链系统根据新历史记录以及目标区块链系统中共识节点的秘钥生成新的签名,记为历史记录签名2,进而将新历史记录和历史记录签名2打包成目标区块链系统中的区块。
在上述过程中,如果历史记录从源区块链系统转移到目标区块链系统时受到攻击,导致格式转换后的新历史记录的内容相对于原始历史记录的内容被篡改,例如原始历史记录中某账户的余额200,而格式转换后的新历史记录中该账户的余额被篡改为2000,由于格式转换导致原始历史记录对应的历史记录签名1不可用,因此目标区块链系统无法通过校验签名来发现这一篡改行为,最终被篡改后的新历史记录会被直接打包到新的区块中。
除了上述历史记录被篡改的安全隐患以外,现有的迁移方式还存在如下问题:
将原有的历史记录转换格式并重新打包为新的区块,将导致根据历史记录生成的历史记录标识相对于源区块链系统发生变更,使得基于区块链系统实现的上层业务系统无法根据原本的历史记录标识查找对应的历史记录,必须重新加载目标区块链系统生成的新的历史记录标识,也就是说,现有迁移方式的便捷度较低,按现有迁移方式迁移后需要对原有的系统参数(如上述历史记录标识)进行大幅度的变更。
另外,现有的迁移方式源区块链系统中保存在各区块的历史记录进行的格式转换,违背了区块链不可篡改历史记录的原则,修改了历史的共识记录,破坏了区块链的数据公信力。
针对上述现有技术存在的问题,本申请实施例提供一种区块链迁移的方法。该方法可以通过预先开发的迁移客户端和验证客户端来执行,其中验证客户端分别部署在目标区块链系统的每一共识节点上,也就是说,目标区块链系统的每一共识节点上均部署有一个验证客户端。迁移客户端可以部署在独立于源区块链系统和目标区块链系统的第三方设备上,或者也可以部署在源区块链系统或者目标区块链系统的节点上,本实施例不做限定。
可选的,共识节点上部署的验证客户端,可以由该共识节点的运营方独立开发,这样做的好处在于可以保证验证的正确性。
在开发迁移客户端时,需要实现迁移客户端的同步节点管理模块、异步任务管理模块、数据库模块。迁移客户端用于通过上述模块,实现从源区块链系统选择同步节点,从同步节点查询所有区块和交易数据,并将数据加载到数据库中等功能。
在开发验证客户端时,需要实现共识节点管理模块、异步任务管理模块、创世块编辑模块、数据库。验证客户端用于通过上述模块,实现从原链其他共识节点同步区块和记录,并和数据库中的数据进行对比验证,如果满足原链共识协议的安全阈值条件,更新新链创世区块并进行签名。
除上述用于迁移的客户端之外,为了便于后续从目标区块链系统中查询从原链迁移过来的历史记录,还需要在目标区块链系统的每一节点上增加代理服务,代理服务用于从数据库中查询原链的区块和历史记录。
其中,最重要的开发工作在于,目标区块链系统中每一共识节点的运营方需要各自开发验证客户端,开发好的验证客户端通过异步任务管理的方式,向源区块链系统中的共识节点请求服务后进行一致性验证,确保迁移客户端发送的数据是正确的,避免迁移客户端篡改数据等问题。由于是各共识节点运营方各自开发验证客户端,客户端实现的异构性容易导致功能上出现差异问题,但是由于多方各自开发,同时也保证了共识节点运营方确实对原数据进行了自行验证,而非单纯信任依赖相同的工具。
原链,即原区块链的简称,指代存储在源区块链系统中的区块链。
请参见图1,为迁移客户端的结构示意图。迁移客户端包括同步节点管理模块101,异步任务管理模块102,数据库管理模块103。
同步节点管理模块,用于在源区块链系统的多个共识节点中,选择至少一个共识节点作为同步节点。
异步任务管理模块,用于通过异步任务的方式,从源区块链系统获取原链的数据,并将原链的数据传输给数据库管理模块。
数据库管理模块,用于按照区块头、区块体和记录索引的方式保存异步任务管理模块传输的数据,将保存的数据导出为数据库文件并发送给目标区块链系统的共识节点。
请参见图2,为本申请实施例提供的验证客户端的结构示意图。验证客户端可以包括共识节点管理模块201,数据库模块202,异步任务管理模块203和创世块文件编辑模块204。
共识节点管理模块,用于实现源区块链系统中共识节点信息的管理。
数据库模块,用于从收到的数据库文件中导入原链的数据,并以区块头、区块体、记录索引的格式的导入和保存在本地的数据库中。
异步任务管理模块,通过异步任务,逐一对数据库中各区块的数据和原链中各区块的数据进行一致性验证。
创世块文件编辑模块:当数据库中每一区块和区块内的记录都通过一致性验证后,将原链最高区块的区块标识,也就是原链中最后一个加入的区块写入到目标区块链系统的创世区块中作为创世区块的前序区块标识,并写入创世区块的新高度,同时对创世块文件进行签名并将签名写入到创世区块中。
进一步的,当按照本实施例的方法进行区块链的迁移时,为了能够读取原链的数据,目标区块链系统中的节点需要进行兼容性修改,在现有的区块链系统的节点的基础上新增接口代理模块、原链数据库模块和创世块模块。
接口代理模块,负责本节点数据查询接口的代理,主要用于从目标区块链系统的共识节点的数据库中获取原链的数据。
原链数据库模块,用于存储获取到的原链的数据,方便二次查询。
创世块模块,需要实现创世块中记录原链最后一个加入的区块的标识和高度,以便后续本节点生成新区块时在原链的高度上进行延续。
基于迁移客户端和验证客户端,本申请实施例提供一种区块链迁移的方法,请参见图3,为该方法的流程图,该方法可以包括如下步骤。
在开始迁移之前,需要先暂停源区块链系统的出块和上链功能,此时源区块链系统仅提供查询功能,同时在迁移过程中,需要避免删除或暂停源区块链系统中的共识节点,以免影响数据迁移效率。
S301,迁移客户端选择源区块链系统中至少一个节点作为同步节点。
步骤S301的具体实施方式如下:
迁移客户端从源区块链系统的运营方获得源区块链系统的节点配置文件。
节点配置文件可以有多种格式,示例性的,本实施例中的节点配置文件可以为YAML格式的文件。节点配置文件中记录有用于管理源区块链系统的相关信息,包括源区块链系统的节点列表和共识协议等。其中节点列表包括节点的网络地址(即IP地址)、端口号和节点类型等信息,共识协议包括共识协议的具体协议内容,以及满足共识协议的安全阈值。
本实施例中,为了确保将源区块链系统的区块全部迁移到目标区块链系统,选取的同步节点应当在源区块链系统中同步至原链的最新高度,也就是说,选取的同步节点应当存储有原链的主分支上的所有区块。
根据上述需求,迁移客户端在获得节点配置文件后,可以逐一遍历源区块链系统的每一个节点,每遍历到一个节点,就按判断该节点是否可以满足作为同步节点的条件,如果满足就将该节点确定为同步节点,并在节点配置文件中将该节点标记为同步节点,如果不满足作为同步节点的条件,就遍历下一个节点,直至遍历完源区块链系统的所有节点为止。
每遍历到一个节点后,判断该节点是否满足作为同步节点的条件的过程如下:
通过该节点的接口获取该节点所存储的最新的区块,然后遍历源区块链系统中每一共识节点,比对该节点存储的最新区块,和共识节点所存储的最新区块是否一致,如果该节点存储的最新区块和共识节点所存储的最新区块一致,并且比对一致的共识节点的数量大于或等于共识协议的安全阈值,则认为该节点满足作为同步节点的条件,反之,如果该节点存储的最新区块和共识节点所存储的最新区块均不一致,或者一致的共识节点的数量小于安全阈值,则认为该节点不满足作为同步节点的条件。
安全阈值取决于源区块链系统所用的共识协议的具体内容以及源区块链系统中设置的共识节点的数量,本实施例不做限定。
示例性的,当共识协议使用BFT类共识算法时,共识协议的安全阈值就是2/3N+1,计算结果有小数时向下取整,其中N为共识节点的数量,假设使用BFT类共识算法的源区块链系统有4个共识节点A、B、C、D,可以计算出安全阈值为3,若迁移客户端遍历到节点A,则需要另外至少2个共识节点的最新区块和节点A的最新区块一致,才能确定节点A满足作为同步节点的条件,若迁移客户端遍历到除共识节点A、B、C、D以外的节点,比如遍历到节点E,则需要节点E的最新区块和至少3个共识节点的最新区块一致,才能确定节点E满足作为同步节点的条件。
在一些可选的实施例中,可以限定同步节点数量,例如限定同步节点数量为10,这种情况下执行S301时就可以不遍历完源区块链系统的所有节点,而是在选取出指定的同步节点数量的同步节点后就可以停止执行S301,不再遍历源区块链系统中后续的节点。
在另一些可选的实施例中,迁移客户端也可以不遍历源区块链系统的节点,而是由源区块链系统的运营方在配置文件中指定多个备选同步节点,迁移客户端逐一判断这些备选同步节点是否满足作为同步节点的条件,并将其中满足条件的节点在配置文件中标记为同步节点。
由运营方预先指定备选同步节点的好处在于,可以提高选择同步节点的效率。
在又一些可选的实施例中,迁移客户端也可以只遍历源区块链系统的共识节点,也就是仅在源区块链系统的共识节点中选择同步节点。
步骤S301可以由迁移客户端的同步节点管理模块执行。
综上,步骤S301的具体实施过程可以概括为:
从源区块链系统的运营方获取源区块链系统的节点配置文件;
逐一判断节点配置文件中记录的源区块链系统的每一节点是否满足作为同步节点的条件,并将满足作为同步节点的条件的节点确定为同步节点;
其中,判断节点是否满足作为同步节点的条件的过程包括:
获得节点存储的最新区块;
比对节点存储的最新区块和源区块链系统的共识节点的最新区块是否一致;
若节点存储的最新区块,和源区块链系统大于或等于安全阈值数量的共识节点的最新区块均一致,确定节点满足作为同步节点的条件;其中,安全阈值根据源区块链系统的共识协议确定;
若节点存储的最新区块,和源区块链系统小于安全阈值数量的共识节点的最新区块一致,确定节点不满足作为同步节点的条件。
S302,迁移客户端从同步节点读取原链的区块并将读取的区块按原数据格式存入迁移数据库。
原数据格式,是指区块在源区块链系统中的数据格式。
迁移数据库,指代迁移客户端本地的数据库。
步骤S302可以由迁移客户端的异步任务管理模块和数据库管理模块执行。其中异步任务管理模块负责从同步节点读取原链的区块,数据库管理模块负责将读取的区块写入迁移数据库。
异步任务管理模块可以包括一个异步任务管理器和一个线程池,异步任务管理器可以采用现有成熟的异步任务管理工具实现,例如Sidekiq。
异步任务管理器维护一个待处理任务队列,用户可以向队列中添加任务,异步任务管理器则可以调用线程池中的线程来处理待处理任务队列中的任务,每一个线程处理一个任务,当处理任务失败时,可以放入重试列表中,等待重试;当一个任务处理失败的次数达到预设的最大重试次数时,确定该任务最终重试失败,将其放入失败列表。最终在失败列表中的任务,可以由操作人员去查明失败原因,并进行手动触发重试。
本实施例中,用户在待处理任务队列中添加的迁移任务的内容可以是,从同步节点通过其对外提供的接口读取指定高度区间的区块,将读取的区块的区块头、区块体保存到S302中指定的迁移数据库,并由区块体中的记录列表构造记录索引,将记录索引也保存到迁移数据库。
由此,每处理完一个迁移任务,原链中某一高度区间内的区块就会被读取并存储到迁移数据库中,通过合理地设置每一迁移任务对应的高度区间,在处理完所有迁移任务之后,就可以将同步节点存储的原链的所有区块全部转存到迁移数据库。
示例性的,可以从原链的创世区块开始,将每500个区块高度设定为一个高度区间,针对每一高度区间均创建一个迁移任务并将迁移任务添加到待处理任务队列,这样每处理完一个迁移任务,原链中500个区块就会被转存到迁移数据库中,直至全部转存完为止。
向待处理任务队列添加任务的方式可以是,每隔特定的时间间隔就添加指定数量的任务,比如每隔20秒就添加5个任务;也可以是,设置任务数量阈值,每当待处理任务队列中的任务数量低于任务数量阈值时,就向其中添加任务,直至任务数量达到任务数量阈值为止。
采用上述异步任务管理器执行S302的好处在于,通过线程池中多个线程异步的执行迁移任务,可以提高迁移的效率,更快地将原链的区块转存到迁移数据库中。
数据库管理模块,可以采用现有的数据库软件实现,例如可以使用PostgreSQL数据库,该数据库软件可以高效地实现交易的查询和存储。
在迁移数据库中,每一区块均可以按照区块头,区块体和记录索引的形式存储。
具体的,迁移数据库中可以分别构建一个用于存储区块头的区块头表,一个用于存储区块体的区块体表,和一个用于存储记录索引的索引表。
数据库管理模块每获得一个原链的区块,就根据该区块原本的结构将其分为区块头和区块体,将区块头保存在区块头表中,将区块体保存在区块体表中,接着生成该区块中每一条历史记录的记录索引,将这些记录索引存在记录索引表中,由此完成一个区块的存储。区块头表用于存储一个区块的区块标识、区块高度和区块头;区块体表用于存储一个区块的区块标识、区块高度,交易列表以及区块体中的其他内容;记录索引表可以存储区块中每一条历史记录的记录标识、记录索引和历史记录所属区块的区块标识,其中的记录标识可以直接从区块体的记录列表中读取得到。
如前所述,一个区块的记录列表中可以有多条历史记录,上述记录索引,可以用对应的历史记录在记录列表中的排序表示。
示例性的,一个区块标识为123abc,区块高度为100的区块,其区块头可以存储在表1所示的区块头表中。
区块体可以存储在表2所示的区块体表中。
该区块中一条记录标识为567def的历史记录,在该区块的记录列表中排在第10位,则该条历史记录的记录索引可以存储在如下表3所示的记录索引表中。
按照上述方式存储原链中区块的好处在于:
可以方便地通过区块的区块标识或者区块高度,从区块头表或区块体表中直接查询区块头或区块体,同时也可以比较方便地通过记录标识查询历史记录的具体内容,具体查询方式为,先根据记录标识从记录索引表中查询出特定历史记录所属区块的区块标识,以及历史记录在其所属区块中的记录索引,接着根据所属区块的区块标识在区块体表中找到对应的区块体的记录列表,根据记录索引从记录列表中找到具体的历史记录的内容。
需要说明的是,当数据库管理模块使用PostgreSQL数据库实现时,区块体中的记录列表将以数组的结构存储在迁移数据库中,区块体的交易列表在数据库表中使用数组的结构。当需要从区块体表中查询某一位置的交易时,可以直接使用PostgreSQL的数组查询条件,这样可以提高查询效率,而不需要将区块体表中的交易列表全部取出,再转化为数组结构去查找某一位置交易。例如查找区块标识为abcd的区块中的第50个交易,可以采用如下形式的查询条件直接查询:select tx_list[50] from block_body where block_id=‘abcd’,其中tx_list[50]表示存储记录列表的数组中第50个元素,block_id=‘abcd’表示查找区块标识为abcd的区块,block_id即区块标识,block_body表示区块体。
S303,迁移客户端将迁移数据库导出为数据库文件。
步骤S303可以由迁移客户端的数据库管理模块执行。由于数据库管理模块采用现有成熟的数据库软件,因此步骤S303可以直接利用现有数据库软件,例如PostgreSQL数据库的导出功能实现,其具体导出方式可以参照现有的数据库软件,不再赘述。
S304,迁移客户端向验证客户端发送数据库文件。
迁移客户端和目标区块链系统的共识节点之间预先建立网络连接,迁移客户端导出数据库文件后,就可以通过网络连接将数据库文件发送给目标区块链系统的共识节点,由此,部署在目标区块链系统的共识节点上的验证客户端就可以读取共识节点收到的数据库文件。
S305,验证客户端加载数据库文件并将数据库文件中的区块导入到区块数据库。
区块数据库,是指验证客户端本地的数据库。
步骤S305可以由验证客户端的数据库管理模块执行。
验证客户端和迁移客户端的数据库管理模块可以采用相同的数据库软件实现,从数据库文件中导出的原链的区块在区块数据库中的存储方式,和在迁移数据库中的存储方式一致,不再赘述。
如前文所述,迁移数据库以区块头表、区块体表和记录索引表的方式存储原链的区块,在S305中,验证客户端可以直接加载数据库文件中的区块头表、区块体表和记录索引表,并将这些表存入本地的区块数据库,
加载数据库文件并将文件中的数据存入区块数据库,可以由现有的数据库软件的数据加载和导入功能来实现,其具体实施过程不再赘述。
在一些可选的实施例中,迁移客户端的功能可以并入验证客户端,而不独立设置迁移客户端,也就是说,目标区块链系统的共识节点可以直接从源区块链系统的同步节点读取原链的区块,并在读取完之后执行后续的校验,存储和创建创世区块的步骤。
可以理解的,当不独立设置迁移客户端时,可以不执行前述步骤S303和S304,部署于目标区块链系统的验证客户端,直接通过异步任务的方式获取到原链的区块并存入本地的区块数据库。
通过迁移客户端读取区块而不是由目标区块链系统的共识节点直接读取的好处在于:
可以简化目标区块链系统中共识节点的工作,使得共识节点只需要对导入的原链的区块进行一致性验证,减轻了目标区块链系统中共识节点的负载。
当分别设置迁移客户端和验证客户端时,步骤S301至S305的过程,相当于:目标区块链系统的共识节点通过迁移客户端获取原链的区块,并按原数据格式保存原链的区块到目标区块链系统的共识节点的区块数据库。
当不单独设置迁移客户端,将迁移客户端的功能并入验证客户端时,步骤S301至S305的过程,相当于:目标区块链系统的共识节点获取原链的区块,并按原数据格式保存原链的区块到目标区块链系统的共识节点的区块数据库。
选择源区块链系统中至少一个节点作为同步节点;
获取同步节点存储的原链的区块。
其中,选择源区块链系统中至少一个节点作为同步节点,相当于步骤S301。
获取同步节点存储的原链的区块,相当于步骤S302至S305。
S306,验证客户端根据源区块链系统的共识节点存储的区块,对区块数据库中的区块进行一致性验证。
一致性验证包括,检验区块数据库的区块是否和源区块链系统中安全阈值的共识节点的区块一致。
若区块数据库的区块通过一致性验证,执行步骤S307,若区块数据库的区块未通过一致性验证,本实施例结束。
步骤S306可以由验证客户端的共识节点管理模块和异步任务管理模块执行。
在步骤S305中,验证客户端的共识节点管理模块先从源区块链系统的运营方获得源区块链系统的节点配置文件,以便根据节点配置文件确定出源区块链系统中的共识节点。
确定源区块链系统中的共识节点后,异步任务管理模块就可以根据区块数据库的区块和源区块链系统的共识节点的区块进行一致性验证。和步骤S302的迁移过程类似的,验证客户端的异步任务管理模块,可以调用线程池中的线程并行执行待处理任务队列中的验证任务,当执行完全部验证任务后,就完成一致性验证。
验证任务的任务内容为:调用源区块链系统中指定共识节点的接口,获取该共识节点存储的指定高度区间的区块,将获取到的区块和区块数据库中存储的具有相同区块标识的区块进行比对,以确定两者是否完全一致。
在比对区块数据库中的区块和源区块链系统的共识节点的区块时,可以比对区块数据库中存储的区块头和源区块链系统的共识节点的区块头,比对区块数据库中存储的区块体和源区块链系统的共识节点的区块体,如果两者一致,则确定由区块头和区块体组成的区块一致。
通过执行对应不同共识节点和不同高度区间的验证任务,就可以比对区块数据库中存储的区块和源区块链系统的每一共识节点中存储的区块是否一致。如果经过比对发现区块数据库中存储所有区块和源区块链系统中某共识节点(以前述共识节点A为例)存储的原链的所有区块完全一致,则确定该共识节点A和区块数据库一致,反之,如果两者的区块不完全一致,即区块数据库中有至少一个区块和共识节点A中具有相同区块标识的区块不同,则确定该共识节点A和区块数据库不一致。
如果源区块链系统系统中和区块数据库一致的共识节点的数量大于或等于安全阈值,则确定区块数据库通过一致性验证,反之,则确定区块数据库未通过一致性验证。示例性的,安全阈值等于3时,若源区块链系统中3个及以上的共识节点和区块数据库一致,则区块数据库通过一致性验证,若源区块链系统和区块数据库一致的共识节点不足3个,则区块数据库未通过一致性验证。
下面以一个验证任务为示例说明验证任务的执行过程:
假设某验证任务的内容为,调用源区块链系统中共识节点A的接口,获取共识节点A存储的高度区间1至500的区块,将获取到的区块和区块数据库中存储的具有相同区块标识的区块进行比对,以确定两者是否完全一致;
线程被分配处理该验证任务后,线程遍历共识节点A存储的高度区间1至500的区块(可以按区块高度递增或递减的顺序遍历,不做限定),每遍历到一个区块,识别该区块的区块标识,接着从区块数据库的区块头表(如表1所示)读取该区块标识对应的区块头,比对共识节点A中该区块的区块头和区块数据库中的区块头是否一致,以及从区块数据库的区块体表(如表2所示)读取该区块标识对应的区块体(区块体由表2中的记录列表和其他内容组成),比对共识节点A中该区块的区块体和区块数据库中的区块体是否一致,如果区块头和区块体均一致,则确定当前遍历到的区块和区块数据库中相同区块标识的区块一致,以此类推,在遍历完共识节点A存储的高度区间1至500的区块后,该验证任务结束。
综上所述,步骤S306的具体实施过程可以概括为:
比对区块数据库中的区块和源区块链系统的共识节点存储的区块是否一致;
若区块数据库中的区块,和源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定区块数据库中的区块通过一致性验证;
若区块数据库中的区块,未和源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定区块数据库中的区块未通过一致性验证。
S307,验证客户端根据原链中最高区块的区块标识和区块高度生成目标区块链系统的创世区块。
步骤S307可以由验证客户端的创世块文件编辑模块执行。
创世块文件编辑模块可以读取原链中最高区块的区块高度,将原链中最高区块的区块高度加1作为目标区块链系统的创世区块的区块高度;将原链中最高区块确定为目标区块链系统中创世区块的前序区块,对应的,原链中最高区块的区块标识确定为目标区块链系统中创世区块的前序区块的区块标识;利用源区块链系统的共识协议中指定的加密算法计算原链中最高区块的区块体,形成原链中最高区块的哈希值;最后利用创世区块的区块高度,前序区块的区块标识,原链中最高区块的哈希值,以及预设的创世块基础文件生成目标区块链系统的创世区块。
其中,创世块基础文件由目标区块链系统中各个共识节点的运营方预先协商确定。
具体的,对于目标区块链系统的创世区块,创世区块的区块头包括创世区块的区块高度和区块标识,创世区块的前序区块的区块标识;创世区块的区块体包括创世块基础文件,原链中最高区块的哈希值。
创世区块的区块标识,可以由创世块文件编辑模块根据创世块基础文件和原链中最高区块的哈希值生成。
将原链中最高区块的区块高度加1作为目标区块链系统的创世区块的区块高度的好处在于,使目标区块链系统中新生成的区块在原链的基础上衔接,保证出块的连续性。
S308,目标区块链系统的共识节点对目标区块链系统的创世区块进行共识,以完成区块链迁移。
对创世区块进行共识的过程包括,目标区块链系统中每一共识节点,都根据共识节点自身的信息(秘钥,节点的标识等)和创世区块包含的数据生成该共识节点的签名,将生成的签名添加到创世区块的区块体中,这一过程可以称为共识节点对创世区块签名;每一共识节点对创世区块签名后,都会将签名后的创世区块向目标区块链系统中其他共识节点广播,同时每一共识节点在收到其他共识节点签名的创世区块后,都会将其中携带的其他共识节点的签名合并到自身存储的创世区块中;当每一共识节点所存储的创世区块中,有安全阈值数量的共识节点签名时,就表示目标区块链系统的共识节点对该创世区块达成共识,至此共识过程结束,本次区块链迁移完成。
示例性的,当安全阈值为3时,如果每一共识节点的创世区块中,均有3个及以上的共识节点的签名,则说明目标区块链系统的共识节点对该创世区块达成共识。
区块链迁移完成后,目标区块链系统中各共识节点就可以基于创世区块件同时启动并成功组建目标区块链系统。
在完成区块链迁移后,外部设备(指目标区块链系统外部的设备)可以通过如下方式读取原链的数据:
目标区块链系统的节点收到外部设备读取某区块的请求后,若被请求的目标区块的区块高度小于创世区块的区块高度,则可以确定被请求的目标区块为迁移过来的原链的区块,于是该节点通过接口代理模块将该请求转给目标区块链系统的共识节点,目标区块链系统的共识节点按照请求中携带的目标区块的区块高度,从本地的区块数据库中找到属于原链的目标区块,并将目标区块反馈给外部设备。
也就是说,按照本方案迁移区块链之后,目标区块链系统中的共识节点可以按照如下方式向外部设备提供原链的区块:
接收外部设备读取区块的请求;
当请求携带的区块高度小于目标区块链系统中创世区块的区块高度时,根据请求携带的区块高度,在区块数据库中查找得到区块高度对应的属于原链的目标区块。
对应的,当外部设备所请求的目标区块的区块高度大于创世区块的区块高度时,可以确定被请求的目标区块是迁移后目标区块链系统生成的,属于新链的区块,此时目标区块链系统中的节点按照现有区块链系统查询并反馈对应的目标区块即可,不再赘述。
本实施例的有益效果在于:
不难发现,本方案迁移到目标区块链系统中的区块和源区块链系统中存储的区块的内容和数据格式完全一致,因此各区块中根据存储的历史记录生成的历史记录签名仍然可用,如果在迁移过程中区块内的数据被篡改,则目标区块链系统的共识节点可以通过校验区块中的历史记录签名的方式发现篡改行为,因此,本方案具有较高的安全性,可以避免迁移过程中原链的数据被篡改。
本方案将原链的区块直接按原数据格式读取并存储到目标区块链系统的各共识节点的数据库中,无需改变原链中各区块的数据的格式,保证了区块链中数据的不可篡改特性,使得基于区块链系统的上层应用的无须做额外修改。
在迁移过程中本方案对迁移到数据库中的原链的区块进行一致性验证,保证数据库中存储的区块和源区块链系统中满足安全阈值的共识节点的区块一致,同时目标区块链系统中的共识节点对验证后生成的创世区块再进行签名共识,可以保证迁移数据的一致性,迁移方案安全可靠,避免迁移过程中原链的区块被篡改。
目标区块链系统的创世区块中存储有原链最后区块的哈希,并且创世区块的区块高度在原链最后区块的区块高度之上衔接,保证目标区块链系统新生成的区块在原链基础上的连续性,同时目标区块链系统的共识节点对创世区块签名达成共识,保证原链迁移后的数据不可篡改性,迁移后原链的数据依然可用,同时目标区块链系统的共识节点使用PostgresSQL的存储方案,可以实现区块和交易的高效查询。
根据本申请实施例提供的区块链迁移的方法,本申请实施例还提供一种区块链迁移的装置,请参见图4,为该装置的结构示意图。
本申请实施例提供的区块链迁移的装置,可以包括前述迁移客户端和验证客户端。
该装置用于将原链从源区块链系统迁移到目标区块链系统,原链指代源区块链系统存储的区块链,装置应用于目标区块链系统的每一共识节点;
装置包括:
获取单元401,用于获取原链的区块,并按原数据格式保存原链的区块到目标区块链系统的共识节点的区块数据库;其中,原数据格式指代源区块链系统存储原链时所用的数据格式;
验证单元402,用于根据源区块链系统的共识节点存储的区块,对区块数据库中的区块进行一致性验证;
生成单元403,用于在区块数据库中的区块通过一致性验证后,根据原链中最高区块的区块标识和区块高度生成目标区块链系统的创世区块;
共识单元404,用于对目标区块链系统的创世区块进行共识,以完成区块链迁移。
在一些可选的实施例中,获取单元401可以相当于上述迁移客户端,验证单元,生成单元和共识单元可以相当于前述验证客户端。
可选的,验证单元402根据源区块链系统的共识节点存储的区块,对区块数据库中的区块进行一致性验证时,具体用于:
比对区块数据库中的区块和源区块链系统的共识节点存储的区块是否一致;
若区块数据库中的区块,和源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定区块数据库中的区块通过一致性验证;其中,安全阈值根据源区块链系统的共识协议确定;
若区块数据库中的区块,未和源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定区块数据库中的区块未通过一致性验证。
可选的,获取单元401获取原链的区块时,具体用于:
选择源区块链系统中至少一个节点作为同步节点;
获取同步节点存储的原链的区块。
可选的,获取单元401选择源区块链系统中至少一个节点作为同步节点时,具体用于:
从源区块链系统的运营方获取源区块链系统的节点配置文件;
逐一判断节点配置文件中记录的源区块链系统的每一节点是否满足作为同步节点的条件,并将满足作为同步节点的条件的节点确定为同步节点;
其中,判断节点是否满足作为同步节点的条件的过程包括:
获得节点存储的最新区块;
比对节点存储的最新区块和源区块链系统的共识节点的最新区块是否一致;
若节点存储的最新区块,和源区块链系统大于或等于安全阈值数量的共识节点的最新区块均一致,确定节点满足作为同步节点的条件;其中,安全阈值根据源区块链系统的共识协议确定;
若节点存储的最新区块,和源区块链系统小于安全阈值数量的共识节点的最新区块一致,确定节点不满足作为同步节点的条件。
可选的,该装置还包括查找单元405,用于:
接收外部设备读取区块的请求;
当请求携带的区块高度小于目标区块链系统中创世区块的区块高度时,根据请求携带的区块高度,在区块数据库中查找得到区块高度对应的属于原链的目标区块。
本实施例提供的区块链迁移的装置,其具体工作原理和有益效果可以参见本申请实施例提供的区块链迁移的方法中相关步骤及其有益效果,不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种区块链迁移的方法,其特征在于,用于将原链从源区块链系统迁移到目标区块链系统,所述原链指代所述源区块链系统存储的区块链,所述方法应用于所述目标区块链系统的每一共识节点;
所述方法包括:
获取所述原链的区块,并按原数据格式保存所述原链的区块到所述目标区块链系统的共识节点的区块数据库;其中,所述原数据格式指代所述源区块链系统存储所述原链时所用的数据格式;
根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证;
在所述区块数据库中的区块通过一致性验证后,根据所述原链中最高区块的区块标识和区块高度生成所述目标区块链系统的创世区块;
对所述目标区块链系统的创世区块进行共识,以完成区块链迁移。
2.根据权利要求1所述的方法,其特征在于,所述根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证,包括:
比对所述区块数据库中的区块和所述源区块链系统的共识节点存储的区块是否一致;
若所述区块数据库中的区块,和所述源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定所述区块数据库中的区块通过一致性验证;其中,所述安全阈值根据所述源区块链系统的共识协议确定;
若所述区块数据库中的区块,未和所述源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定所述区块数据库中的区块未通过一致性验证。
3.根据权利要求1所述的方法,其特征在于,所述获取所述原链的区块,包括:
选择所述源区块链系统中至少一个节点作为同步节点;
获取所述同步节点存储的所述原链的区块。
4.根据权利要求3所述的方法,其特征在于,所述选择所述源区块链系统中至少一个节点作为同步节点,包括:
从所述源区块链系统的运营方获取所述源区块链系统的节点配置文件;
逐一判断所述节点配置文件中记录的所述源区块链系统的每一节点是否满足作为同步节点的条件,并将满足所述作为同步节点的条件的节点确定为同步节点;
其中,判断节点是否满足作为同步节点的条件的过程包括:
获得所述节点存储的最新区块;
比对所述节点存储的最新区块和所述源区块链系统的共识节点的最新区块是否一致;
若所述节点存储的最新区块,和所述源区块链系统大于或等于安全阈值数量的共识节点的最新区块均一致,确定所述节点满足作为同步节点的条件;其中,所述安全阈值根据所述源区块链系统的共识协议确定;
若所述节点存储的最新区块,和所述源区块链系统小于安全阈值数量的共识节点的最新区块一致,确定所述节点不满足作为同步节点的条件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收外部设备读取区块的请求;
当所述请求携带的区块高度小于所述目标区块链系统中创世区块的区块高度时,根据所述请求携带的区块高度,在所述区块数据库中查找得到所述区块高度对应的属于所述原链的目标区块。
6.一种区块链迁移的装置,其特征在于,用于将原链从源区块链系统迁移到目标区块链系统,所述原链指代所述源区块链系统存储的区块链,所述装置应用于所述目标区块链系统的每一共识节点;
所述装置包括:
获取单元,用于获取所述原链的区块,并按原数据格式保存所述原链的区块到所述目标区块链系统的共识节点的区块数据库;其中,所述原数据格式指代所述源区块链系统存储所述原链时所用的数据格式;
验证单元,用于根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证;
生成单元,用于在所述区块数据库中的区块通过一致性验证后,根据所述原链中最高区块的区块标识和区块高度生成所述目标区块链系统的创世区块;
共识单元,用于对所述目标区块链系统的创世区块进行共识,以完成区块链迁移。
7.根据权利要求6所述的装置,其特征在于,所述验证单元根据所述源区块链系统的共识节点存储的区块,对所述区块数据库中的区块进行一致性验证时,具体用于:
比对所述区块数据库中的区块和所述源区块链系统的共识节点存储的区块是否一致;
若所述区块数据库中的区块,和所述源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定所述区块数据库中的区块通过一致性验证;其中,所述安全阈值根据所述源区块链系统的共识协议确定;
若所述区块数据库中的区块,未和所述源区块链系统中大于或等于安全阈值数量的共识节点的区块一致,确定所述区块数据库中的区块未通过一致性验证。
8.根据权利要求6所述的装置,其特征在于,所述获取单元获取所述原链的区块时,具体用于:
选择所述源区块链系统中至少一个节点作为同步节点;
获取所述同步节点存储的所述原链的区块。
9.根据权利要求8所述的装置,其特征在于,所述获取单元选择所述源区块链系统中至少一个节点作为同步节点时,具体用于:
从所述源区块链系统的运营方获取所述源区块链系统的节点配置文件;
逐一判断所述节点配置文件中记录的所述源区块链系统的每一节点是否满足作为同步节点的条件,并将满足所述作为同步节点的条件的节点确定为同步节点;
其中,判断节点是否满足作为同步节点的条件的过程包括:
获得所述节点存储的最新区块;
比对所述节点存储的最新区块和所述源区块链系统的共识节点的最新区块是否一致;
若所述节点存储的最新区块,和所述源区块链系统大于或等于安全阈值数量的共识节点的最新区块均一致,确定所述节点满足作为同步节点的条件;其中,所述安全阈值根据所述源区块链系统的共识协议确定;
若所述节点存储的最新区块,和所述源区块链系统小于安全阈值数量的共识节点的最新区块一致,确定所述节点不满足作为同步节点的条件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括查找单元,用于:
接收外部设备读取区块的请求;
当所述请求携带的区块高度小于所述目标区块链系统中创世区块的区块高度时,根据所述请求携带的区块高度,在所述区块数据库中查找得到所述区块高度对应的属于所述原链的目标区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211654172.1A CN115630046B (zh) | 2022-12-22 | 2022-12-22 | 区块链迁移的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211654172.1A CN115630046B (zh) | 2022-12-22 | 2022-12-22 | 区块链迁移的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115630046A true CN115630046A (zh) | 2023-01-20 |
CN115630046B CN115630046B (zh) | 2023-03-21 |
Family
ID=84911151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211654172.1A Active CN115630046B (zh) | 2022-12-22 | 2022-12-22 | 区块链迁移的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630046B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361271A (zh) * | 2023-05-09 | 2023-06-30 | 中航信移动科技有限公司 | 一种区块链数据修改迁移方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577427A (zh) * | 2017-08-31 | 2018-01-12 | 上海保险交易所股份有限公司 | 用于区块链系统的数据迁移方法、设备和存储介质 |
CN111309711A (zh) * | 2020-03-13 | 2020-06-19 | 财付通支付科技有限公司 | 跨区块链的数据迁移方法、装置、设备及存储介质 |
US20200235947A1 (en) * | 2017-02-17 | 2020-07-23 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
CN112270550A (zh) * | 2020-10-21 | 2021-01-26 | 北京电链科技有限公司 | 一种基于区块链的新能源电力溯源方法及系统 |
CN113806335A (zh) * | 2021-09-28 | 2021-12-17 | 杭州溪塔科技有限公司 | 一种应用于区块链的数据迁移方法及装置 |
-
2022
- 2022-12-22 CN CN202211654172.1A patent/CN115630046B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200235947A1 (en) * | 2017-02-17 | 2020-07-23 | Nokia Technologies Oy | Changing smart contracts recorded in block chains |
CN107577427A (zh) * | 2017-08-31 | 2018-01-12 | 上海保险交易所股份有限公司 | 用于区块链系统的数据迁移方法、设备和存储介质 |
CN111309711A (zh) * | 2020-03-13 | 2020-06-19 | 财付通支付科技有限公司 | 跨区块链的数据迁移方法、装置、设备及存储介质 |
CN112270550A (zh) * | 2020-10-21 | 2021-01-26 | 北京电链科技有限公司 | 一种基于区块链的新能源电力溯源方法及系统 |
CN113806335A (zh) * | 2021-09-28 | 2021-12-17 | 杭州溪塔科技有限公司 | 一种应用于区块链的数据迁移方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361271A (zh) * | 2023-05-09 | 2023-06-30 | 中航信移动科技有限公司 | 一种区块链数据修改迁移方法、电子设备及存储介质 |
CN116361271B (zh) * | 2023-05-09 | 2024-01-23 | 中航信移动科技有限公司 | 一种区块链数据修改迁移方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115630046B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108769212B (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
US11128630B2 (en) | User management method and apparatus of hybrid cloud | |
US20130054521A1 (en) | Method and device for automactic migration of system configuration item | |
CN115630046B (zh) | 区块链迁移的方法和装置 | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
CN101771537A (zh) | 分布式认证系统及其认证证书的处理方法、认证方法 | |
CN110990335B (zh) | 日志归档方法、装置、设备及计算机可读存储介质 | |
CN101465765A (zh) | 日志系统及其使用方法 | |
CN110063042B (zh) | 一种数据库故障的响应方法及其终端 | |
CN112036886A (zh) | 一种基于区块链的电力大数据交换方法及系统 | |
WO2023050966A1 (zh) | 验证区块链数据 | |
CN114598749A (zh) | 一种服务访问方法及装置 | |
CN112202879A (zh) | 中间件管理方法、装置、电子设备和存储介质 | |
CN101778131A (zh) | 数据同步系统 | |
CN109947844B (zh) | 一种基于医疗区块链的医疗数据管理系统 | |
CN114625520A (zh) | 一种基于限流的分布式任务调度网关调度方法 | |
CN108833451B (zh) | 基于国产安全管控平台的多级管控系统及管控方法 | |
CN112565368B (zh) | 基于区块链的海上装备自组网系统、方法和介质 | |
CN111935195B (zh) | 分布式系统管理方法、装置、存储介质和分布式管理系统 | |
WO2021121067A1 (zh) | 一种任务执行的方法及装置 | |
CN117633112A (zh) | 一种系统事件的处理方法、设备及存储介质 | |
CN107154982B (zh) | 一种审计日志记录的方法及系统 | |
CN111737351A (zh) | 分布式管理系统事务管理方法及装置 | |
CN114331441A (zh) | 一种基于网络信任的数据追溯流通方法及系统 | |
TWI772721B (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 |