CN110210845B - 用于区块链数据迁移的方法、装置、介质和计算设备 - Google Patents

用于区块链数据迁移的方法、装置、介质和计算设备 Download PDF

Info

Publication number
CN110210845B
CN110210845B CN201910503915.7A CN201910503915A CN110210845B CN 110210845 B CN110210845 B CN 110210845B CN 201910503915 A CN201910503915 A CN 201910503915A CN 110210845 B CN110210845 B CN 110210845B
Authority
CN
China
Prior art keywords
blockchain system
transaction
intelligent contract
user state
transaction information
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.)
Active
Application number
CN201910503915.7A
Other languages
English (en)
Other versions
CN110210845A (zh
Inventor
王挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910503915.7A priority Critical patent/CN110210845B/zh
Publication of CN110210845A publication Critical patent/CN110210845A/zh
Application granted granted Critical
Publication of CN110210845B publication Critical patent/CN110210845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明的实施方式提供了一种用于区块链数据迁移的方法,包括:基于第一交易信息终止所述第一区块链***中的至少一个智能合约对应的交易,并导出所述第一区块链***中所述至少一个智能合约对应的用户状态数据;基于第二交易信息在所述第二区块链***中部署所述至少一个智能合约,并向所述第二区块链***导入所述用户状态数据;以及基于第三交易信息,开启所述第二区块链***中的所述至少一个智能合约对应的交易。其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息。本发明的实施方式还提供了一种用于区块链数据迁移的装置、介质和计算设备。

Description

用于区块链数据迁移的方法、装置、介质和计算设备
技术领域
本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及一种用于区块链数据迁移的方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有的区块链技术中,无论是公有链还是联盟链,所有的交易都是落在每一个区块链节点上。区块链节点通常采用MPT(Merkle Patricia Tree)数据结构进行数据存储。其中,MPT数据结构用于存储区块链***中所有的交易、所有的账户数据以及所有的收据。在MPT数据结构中,一个存储节点的数据存取需要多次磁盘读写操作,而每一次每一个存储节点的变更都会导致MPT数据结构的一个存储节点裂变为多个存储节点。因此,随着区块链***的交易量不断增大(例如,交易量达到上亿以后),每个区块链节点的MPT数据结构的数据存储量不断增大,而且MPT数据结构的存储节点也大幅增加,这样导致执行每一个交易所需的数据读写操作变得复杂繁琐,使得区块链***执行速度大幅下降,区块链***中的交易的错误率高频地出现。
发明内容
在本上下文中,本发明的实施例提供了一种用于区块链数据迁移的方法、装置、介质及***,通过在两个区块链***之间进行数据迁移的方式,在一定程度上解决区块链***中交易量增大后区块链***性能急剧下降和错误率不断增大的问题。
本发明的实施方式的第一方面,提供了一种用于区块链数据迁移的方法,应用于管理平台。所述方法包括:向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易;将所述第一区块链***中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约;从所述数据库向所述第二区块链***导入所述用户状态数据;以及向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易,包括根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。在本发明的一个实施例中,在所述向第一区块链***发送第一交易信息之前,所述方法还包括在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述第一区块链***和所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链。
在本发明的一个实施例中,在所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链时,在所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,所述方法还包括:向所述第二区块链***发送所述第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易;将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;从所述数据库向所述第一区块链***中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***中的所述用户状态数据;以及向所述第一区块链***发送所述第三交易信息,以使所述第一区块链***基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述向第一区块链***发送第一交易信息,包括通过预定的区块链地址向所述第一区块链***发送所述第一交易信息。
在本发明的一个实施例中,在所述向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,所述方法还包括对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
在本发明的一个实施例中,所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易,包括根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,在所述向第二区块链***发送第二交易信息之前,所述方法还包括核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果。其中,在所述第一核对结果为正确的情况下,向所述第二区块链***发送所述第二交易信息。
在本发明的一个实施例中,在所述向所述第二区块链***发送第三交易信息之前,所述方法还包括核对导入到所述第二区块链***的所述用户状态数据是否正确,得到第二核对结果。其中,在所述第二核对结果为正确的情况下,向所述第二区块链***发送所述第三交易信息。
本发明实施方式的第二方面,提供了一种用于区块链数据迁移的方法,应用于第一区块链***。所述方法包括:接收第一交易信息,以终止所述至少一个智能合约对应的交易;以及将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***中根据第二交易信息进行部署;所述用户状态数据还被导入至所述第二区块链***中,以使得所述第二区块链***在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。其中,所述第一区块链***与所述第二区块链***不同。
在本发明的一个实施例中,所述接收第一交易信息,以终止所述至少一个智能合约对应的交易,包括根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法;以及根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。
在本发明的一个实施例中,在所述接收第一交易信息之前,所述方法还包括在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述第一区块链***为主链,所述第二区块链***为所述主链对应的侧链,在所述将所述至少一个智能合约对应的用户状态数据导出至数据库之后,所述方法还包括导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;以及接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
本发明实施方式的第三方面,提供了一种用于区块链数据迁移的方法,应用于第二区块链***。所述方法包括:接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***中;从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***基于第一交易信息终止所述第一区块链***中的所述至少一个智能合约对应的交易时,所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***中导入所述用户状态数据;其中,所述第一区块链***与所述第二区块链***不同;以及接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,在所述接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,所述方法还包括对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
在本发明的一个实施例中,所述接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易,包括根据所述第三交易信息调用所述开启交易方法,以及根据所述开启交易方法开启所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述第一区块链***与所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链。
在本发明的一个实施例中,在所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链时,在所述接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,所述方法还包括接收第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易,以及将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息。其中,所述第二用户状态数据用于更新所述第一区块链***中的所述用户状态数据。
本发明实施方式的第四方面,提供了一种用于区块链数据迁移的装置,设置于管理平台。所述装置包括第一发送模块、第一数据迁移模块、第二发送模块、第二数据迁移模块以及第三发送模块。所述第一发送模块用于向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易。所述第一数据迁移模块用于将所述第一区块链***中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息。所述第二发送模块,用于向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约。所述第二数据迁移模块用于从所述数据库向所述第二区块链***导入所述用户状态数据。所述第三发送模块用于向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述第一发送模块具体用于根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。
在本发明的一个实施例中,所述装置还包括停止交易方法设置模块。所述停止交易方法设置模块用于在所述向第一区块链***发送第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述第一区块链***和所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链。
在本发明的一个实施例中,所述第一发送模块还用于在所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链时,在所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,向所述第二区块链***发送所述第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易。所述第一数据迁移模块还用于将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息。所述第二数据迁移模块还用于从所述数据库向所述第一区块链***中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***中的所述用户状态数据。所述第三发送模块还用于向所述第一区块链***发送所述第三交易信息,以使所述第一区块链***基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述向第一区块链***发送第一交易信息,包括通过预定的区块链地址向所述第一区块链***发送所述第一交易信息。
在本发明的一个实施例中,所述装置还包括开启交易方法设置模块。所述开启交易方法设置模块用于在所述向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
在本发明的一个实施例中,所述第三发送模块具体用于根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述装置还包括第一核对模块。所述第一核对模块用于在所述向第二区块链***发送第二交易信息之前,核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果;其中,所述第二发送模块具体用于在所述第一核对结果为正确的情况下,向所述第二区块链***发送所述第二交易信息。
在本发明的一个实施例中,所述装置还包括第二核对模块。所述第二核对模块用于在所述向所述第二区块链***发送第三交易信息之前,核对导入到所述第二区块链***的所述用户状态数据是否正确,得到第二核对结果。其中,所述第三发送模块具体用于在所述第二核对结果为正确的情况下,向所述第二区块链***发送所述第三交易信息。
在本发明实施方式的第五方面,提供了一种用于区块链数据迁移的装置,设置于第一区块链***。所述装置包括第一接收模块、以及第一数据导出模块。所述第一接收模块用于接收第一交易信息,以终止所述至少一个智能合约对应的交易。所述第一数据导出模块用于将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***中根据第二交易信息进行部署;所述用户状态数据还被从所述数据库导入至所述第二区块链***中,以使得所述第二区块链***在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。其中,所述第一区块链***与所述第二区块链***不同。
在本发明的一个实施例中,所述第一接收模块具体用于根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以及根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。
在本发明的一个实施例中,所述装置还包括停止交易方法设置模块。所述停止交易方法设置模块用于在所述接收第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述装置还包括第一数据导入模块。所述第一数据导入模块用于在所述第一区块链***为主链,所述第二区块链***为所述主链对应的侧链时,在将所述至少一个智能合约对应的用户状态数据导出至数据库之后,导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息。所述第一接收模块还用于接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
本发明实施方式的第六方面,提供了一种用于区块链数据迁移的装置,设置于第二区块链***。所述装置包括第二接收模块、以及第二数据导入模块。所述第二接收模块用于接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***中。所述第二数据导入模块,用于从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***基于第一交易信息终止所述第一区块链***中的所述至少一个智能合约对应的交易时,所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***中导入所述用户状态数据;其中,所述第一区块链***与所述第二区块链***不同。所述第二接收模块还用于接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述装置还包括开启交易方法设置模块。所述开启交易方法设置模块,用于在所述接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
在本发明的一个实施例中,所述接收第三交易信息,以开启所述第二区块链***中的所述至少一个智能合约对应的交易,包括根据所述第三交易信息调用所述开启交易方法,以及根据所述开启交易方法开启所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述第一区块链***与所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链。
在本发明的一个实施例中,所述装置还包括第二数据导出模块。所述第二接收模块还用于在所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链时,在接收所述第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,接收第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易。所述第二数据导出模块用于将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述第二用户状态数据用于更新所述第一区块链***中的所述用户状态数据。
本发明实施方式的第七方面,提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行根据本发明实施方式的第一方面、第二方面或第三方面所提供的用于区块链数据迁移的方法。
本发明实施方式的第七方面,提供了一种计算设备。所述计算设备包括一个或多个存储器、以及一个或多个处理器。所述一个或多个存储器存储有可执行指令。所述一个或多个处理器执行所述可执行指令,用以实现根据本发明实施方式的第一方面、第二方面或第三方面所提供的用于区块链数据迁移的方法。
根据本发明实施方式的用于区块链数据迁移的方法、装置、***及介质,在两个区块链***之间进行数据迁移时,可以仅将第一区块链***中至少一个智能合约对应的用户状态数据迁移到第二区块链***中,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息,从而可以不用将第一区块链***的全部交易数据都进行迁移。这样,一方面第二区块链***可以基于用户状态数据继续开启新的交易,使得第二区块链***不再有历史交易记录的负担,交易速度可以大幅提高,从而一定程度上避免了交易量增大后第一区块链***的性能急剧下降和错误率不断增大对交易带来的负面影响。另一方面当需要查询历史交易数据时也可以在第一区块链***中进行查询,保存了交易数据的完整性,不失区块链的公正透明的特点。
根据本发明的一些实施例,该用于区块链数据迁移的方法、装置、介质及计算设备可以应用于一个区块链***的主链和侧链之间。其中,可以将主链中的至少一个智能合约停止交易时对应的用户状态信息迁移到侧链。然后侧链继续执行交易,并在某个时刻当侧链的该至少一个智能合约不再作为热点的智能合约的时候,停止侧链中的该至少一个智能合约交易,以及将停止交易时侧链中的至少一个智能合约对应的用户状态信息迁移到主链以更新主链中该至少一个智能合约对应的用户状态信息,并使主链在迁移完成后继续执行交易。以此方式,解决了区块链***在业务高峰期计算压力增大的问题,也减少了单链(主链或侧链)的交易总量从而避免该单链的计算性能过快下降。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的用于区块链数据迁移的方法、装置、介质及计算设备的应用场景;
图2示意性地示出了根据本发明实施例的应用于管理平台的用于区块链数据迁移的方法的流程图;
图3示意性地示出了根据本发明实施例的应用于第一区块链***的用于区块链数据迁移的方法的流程图;
图4示意性地示出了根据本发明实施例的应用于第二区块链***的用于区块链数据迁移的方法的流程图;
图5示意性示出了根据本发明实施例的用于区块链***数据迁移的构思示意;
图6示意性示出了根据本发明另一实施例的应用于管理平台的用于区块链数据迁移的方法的流程图;
图7示意性示出了根据本发明实施例的用于主链和侧链之间数据迁移的构思示意;
图8示意性示出了根据本发明实施例的设置于管理平台的用于区块链数据迁移的装置的框图;
图9示意性示出了根据本发明实施例的设置于第一区块链***的用于区块链数据迁移的装置的框图;
图10示意性示出了根据本发明实施例的设置于第二区块链***的用于区块链数据迁移的装置的框图;
图11示意性示出了适于实现根据本发明实施例的用于区块链数据迁移的方法的程序产品的示意图;以及
图12示意性示出了适于实现根据本发明实施例的用于区块链数据迁移的方法的计算设备的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种用于区块链数据迁移的方法、装置、介质和计算设备。
在本文中,需要理解的是,说明书和附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,若原始区块链***包含停止交易和数据导出的功能,新的区块链***包含数据导入和开启交易的功能,就可以终止原始区块链***中的交易,然后可以将原始区块链***中在终止交易时刻的用户状态信息导出,接着将该用户状态信息导入到新的区块链***,最后再开启新的区块链***的交易。这样,新的区块链***就可以丢下历史交易的包袱,在一定程度上解决区块链***中交易量增大后,区块链***性能急剧下降和错误率不断增大的问题。而且原始区块链***可以用于用户查询历史交易,不失区块链***的公正透明的特点。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1。
图1示意性地示出了根据本发明实施方式的用于区块链数据迁移的方法、装置、介质及计算设备的应用场景。
如图1所示,该应用场景包括管理平台10、第一区块链***11以及第二区块链***12。管理平台10可以与第一区块链***11和第二区块链12进行通信。
根据本发明的实施例,管理平台10的任务包括关闭原始的区块链***(例如,第一区块链***11)的交易、导出用户状态数据、迁移用户状态数据、以及开启新的区块链***(例如,第二区块链***12)的交易等。
根据本发明的实施例,第一区块链***11可以作为原始的区块链***。第一区块链***11的主要任务包括停止交易、以及导出用户状态数据。
根据本发明的一个实施例,第二区块链***12可以作为与原始的区块链***对应的新的区块链***。第二区块链***12的任务可以包括部署智能合约、导入来自第一区块链***11的用户状态数据、以及关闭和开启交易等。
第一区块链***11和第二区块链***12各自可以包括多个节点。该多个节点可以相互通信。每个节点可以对应至少一个数据库(例如,LevelDB数据库)。该多个节点可以形成一个分布在全球各地、能够协同运转的数据库存储***。该多个节点可以分别部署于全球各地的服务器,每个节点可以是服务器或服务器集群,服务器/服务器集群可以是提供各种服务的服务器/服务器集群。
根据本发明的一些实施例,第一区块链***11可以是主链,第二区块链***12可以还与主链对应的侧链。根据本发明的实施例,在将主链的数据迁移到侧链之后,还可以将侧链的数据回迁至主链。
应该理解,图1仅是示意性的,其中的管理平台、区块链***中的节点的数目等仅仅是示意性的。
示例性方法
下面结合图1的应用场景,参考图2~图7来描述根据本发明示例性实施方式的用于区块链数据迁移的方法。
图2示意性地示出了根据本发明实施例的应用于管理平台10的用于区块链数据迁移的方法的流程图;
如图2所示,该应用于管理平台10的用于区块链数据迁移的方法可以包括操作S201~操作S205。
在操作S201,向第一区块链***11发送第一交易信息,以终止所述第一区块链***11中的至少一个智能合约对应的交易。例如,可以是通过预定的区块链地址(例如,指定的区块链账号)向所述第一区块链***11发送所述第一交易信息。第一区块链***11上可能部署有多个智能合约。其中智能合约为一种交易规则。
根据本发明的一个实施例,该第一交易信息可以是停止交易类型的交易。当第一区块链***11接收到管理平台10发送第一交易信息后,第一区块链***11验证该第一交易信息,并在验证通过后执行该第一交易信息,使得第一区块链***停止接收任何交易,并抛弃交易池内的所有交易,从而停止所有交易。根据本发明的一个实施例,验证该第一交易信息包括验证发起该第一交易信息的账户是否是管理平台10预先指定的区块链地址;如果验证确定发起该第一交易信息的账户不是管理平台10预先指定的区块链地址,则该第一交易信息验证不通过,此时第一区块链***11可以向管理平台10反馈发起该第一交易信息的账户不是管理平台10预先指定的区块链地址,以帮助管理平台10进行管理分析;如果验证后确定发起该第一交易信息的账户是管理平台10预先指定的区块链地址,此时如果需要对第一交易信息进行其他验证则继续执行该其他验证,或者,如果没有其他验证则确定该第一交易信息验证通过。这种情况下,当第一交易信息验证通过后,在操作S201中可以通过第一交易信息可以终止第一区块链***11中的全部智能合约对应的交易。
本发明实施例中的管理平台10在向第一区块链***11发送第一交易信息之前可以先获取第一区块链***11的性能数据,并判断该性能数据是否超过了预设阈值。其中,管理平台10可以在判断到该性能数据超过预设阈值时,向第一区块链***11发送所述第一交易信息(操作S201)。当然根据本公开的另一实施例,第一区块链***11的性能数据的获取以及对该性能数据的判断也可以由运维人员人工进行,从而管理平台10在发送第一交易信息之前,也可以不获取并判断第一区块链***11的性能数据。
根据本发明的另一实施例,所述至少一个智能合约中的每个智能合约设置有对应的停止交易方法。在操作S201中可以根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。在这种情况下,在操作S201中可以根据要终止的智能合约的交易,通过第一交易信息有针对性地终止相应的智能合约对应的交易。
在操作S202,将所述第一区块链***11中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息。
将所述用户状态数据导出至数据库,可以是管理平台调用第一区块链***11的至少一个智能合约对应的用户状态数据的导出方法,并将导出的所述用户状态数据保持到数据库。表1示意性示出了数据库中某个智能合约对应的用户状态数据的结构,包括在该智能合约的交易终止时的用户的token数量、token状态、以及token是否已经转移的字段。其中token是区块链中流通的数字货币或者区块链数字物品,比如以太币,ERC20代币。
表1
Figure GDA0003044477560000161
在操作S203,向第二区块链***12发送第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约。例如,管理平台10通过预定的区块链地址向第二区块链***12发送该第二交易信息。第二区块链***12接收并执行第二交易信息后,在第二区块链***12中部署所述至少一个智能合约。
根据本发明的一个实施例,在操作S203之前可以先核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果。其中,在所述第一核对结果为正确的情况下,再执行操作S203。例如,在所述至少一个智能合约对应的用户状态数据全部导出之后,管理平台10可以调用第一区块链***11中所述至少一个智能合约中的每一个智能合约提供的数据查询核对的方法对导出的数据进行核对,其中,在导出的数据全部核对成功后,确定该第一核对结果为正确。
在操作S204,从所述数据库向所述第二区块链***12导入所述用户状态数据。在第二区块链***12部署完成该至少一个智能合约后,管理平台10可以开始将数据库中的所述用户状态数据迁移到第二区块链***12。例如,管理平台10调用第二区块链***12中该至少一个智能合约对应的所述用户状态数据的导入方法,以向所述第二区块链***导入所述用户状态数据。当接收到第二区块链***12返回的某一数据导入成功的反馈信息后,管理平台10可以对该数据标记转移成功。
在操作S205,向所述第二区块链***12发送第三交易信息,以使所述第二区块链***12基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
根据本发明的一些实施例,在操作S204之后,管理平台10还可以对所述第二区块链***12设置用于开启所述至少一个智能合约对应的交易的开启交易方法。在此情形下根据本发明的一些实施例,在操作S205中可以是根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
根据本发明的一些实施例,在操作S205之前管理平台10可以先核对导入到所述第二区块链***12的所述用户状态数据是否正确,得到第二核对结果。其中,在所述第二核对结果为正确的情况下,在执行操作S205。例如,管理平台10可以通过调用第二区块链***12的状态查询接口,核对导入第二区块链***12的所述用户状态数据和数据库中的所述用户状态数据的一致性。待全部核对成功后,确定第二核对结果为正确。
根据本发明实施例的用于区块链数据迁移的方法,可以仅将第一区块链***11中至少一个智能合约对应的用户状态数据迁移到第二区块链***12中,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息,从而可以不用将第一区块链***11的全部交易数据都进行迁移。这样,一方面第二区块链***12可以基于用户状态数据继续开启新的交易,使得第二区块链***12不再有历史交易记录的负担,交易速度可以大幅提高。另一方面当需要查询历史交易数据时也可以在第一区块链***11中进行查询,保存了交易数据的完整性,不失区块链的公正透明的特点。
根据本发明的一些实施例,所述第一区块链***11和所述第二区块链***12相互独立。
根据本发明的另一些实施例,所述第一区块链***11为主链,所述第二区块链***12为与所述主链对应的侧链。即,本发明实施例的用于区块链数据迁移的方法,可以应用于主链和侧链之间的数据迁移中,对此更详细的实施例可以参考下文关于图6和图7的描述。
图3示意性地示出了根据本发明实施例的应用于第一区块链***11的用于区块链数据迁移的方法的流程图。
如图3所示,根据本发明的实施例,应用于第一区块链***11的用于区块链数据迁移的方法包括操作S301和操作S302
在操作S301,接收第一交易信息,以终止所述至少一个智能合约对应的交易。
根据本发明的一些实施例,该第一交易信息可以是停止交易类型的交易。第一区块链***11接收到该第一交易信息后,对该第一交易信息进行验证并在验证通过后允许该第一交易信息进入交易池进行交易执行。第一交易信息被执行后,交易池会停止接收任何交易,并抛弃交易池内的所有交易,从而停止所有交易。交易池停止所有交易的代码可以参考如下表2中的示意:
表2
Figure GDA0003044477560000181
Figure GDA0003044477560000191
根据本发明的另一些实施例,可以在操作S301之前在所述第一区块链***11中的所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。然后,根据本发明的实施例在操作S301中可以根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。以此方式,可以有针对性调用要终止的智能合约对应的停止交易方法,从而有针对性地终止相应的智能合约对应的交易。
例如,可以对第一区块链***11中每一个智能合约设置对应的停止交易方法。每个停止交易方法通过标记位stopAll从false转为true后,终止相应的智能合约对应的交易。该停止交易方法的具体代码实现可以参考如下表3的示例。
表3
Figure GDA0003044477560000192
在操作S302,将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***12中根据第二交易信息进行部署;所述用户状态数据还被导入至所述第二区块链***12中,以使得所述第二区块链***12在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易;其中,所述第一区块链***11与所述第二区块链***12不同。
图4示意性地示出了根据本发明实施例的应用于第二区块链***12的用于区块链数据迁移的方法的流程图。
如图4所示,该应用于第二区块链***12的用于区块链数据迁移的方法包括操作S401~操作S403。
在操作S401,接收第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***11中。
在第二区块链***12中部署所有需要迁移的所述至少一个智能合约。针对所述至少一个智能合约中每个智能合约,发布与第一区块链***11中的该智能合约总额一致的token数量,设置导入用户状态数据的接口以及查询所述用户状态数据的接口。
首先,针对所述至少一个智能合约中每个智能合约发布token。第二区块链***12中该至少一个智能合约中的每个智能合约发布与第一区块链***11同等数量的token以及同等状态的token。同等数量指对于相同的智能合约,第二区块链***12和第一区块链***11的token数量保持一致,同等状态的token是指对于相同的智能合约,第二区块链***12和第一区块链***11中挖矿、锁定状态等状态下的token数量分别保持一致。
然后,对所述至少一个智能合约中每个智能合约设置导入用户状态数据的接口。本实施例中该导入用户状态数据的接口的调用方是管理平台10中预定的区块链地址(例如,指定的区块链账号),以防止数据迁移被其他账号滥用。导入用户状态数据的接口的实现代码可以参考表4的示例。
表4
Figure GDA0003044477560000211
在操作S402,从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***11基于第一交易信息终止所述第一区块链***11中的所述至少一个智能合约对应的交易时,所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***11中导入所述用户状态数据;其中,所述第一区块链***11与所述第二区块链***12不同。
在操作S403,接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
根据本发明的一个实施例,在操作S402之后还可以对所述第二区块链***12设置用于开启所述至少一个智能合约对应的交易的开启交易方法。这样根据本发明的实施例,在操作S403中可以根据所述第三交易信息调用所述开启交易方法,以及根据所述开启交易方法开启所述至少一个智能合约对应的交易。该开启交易方法的实现代码可以参考如下表5的示例。
表5
Figure GDA0003044477560000212
图5示意性示出了根据本发明实施例的用于区块链***数据迁移的构思示意。
如图5所示,图2~图4所描述的根据本发明实施例的用于区块链***数据迁移的方法的整体迁移过程大致如下:
1)管理平台10通过预定的区块链地址发送第一交易信息给第一区块链***11,以使第一区块链***11终止至少一个智能合约对应的交易。
2)管理平台10调用第一区块链***11的用户状态数据导出接口,通过该用户状态数据导出接口导出所述至少一个智能合约对应的用户状态数据到数据库。导出完成并核对导出无误后,导出结束。
3)创建第二区块链***12。在第二区块链***创建完成后,管理平台10向第二区块链***发送第二交易信息,以在第二区块链***12中部署所述至少一个智能合约。在第二区块链***12中部署的所述至少一个智能合约中的每个智能合约可以包括用户状态数据导入接口、关闭/开启交易方法。
4)管理平台10迁移数据库中的所述用户状态数据到第二区块链***12。例如,管理平台10可以通过预定的区块链地址调用每个智能合约对应的用户状态数据导入接口来导入数据。待数据库中的所述用户状态数据进入第二区块链***12,并核对无误后导入结束。
5)管理平台10通过预定的区块链地址向第二区块链***12发送第三交易信息,以调用第二区块链***12中所述至少一个智能合约中每个智能合约对应的开启交易方法。当第三交易信息上链执行后,第二区块链***12开始接收用户新的交易。此后,用户可以在第二区块链***中执行新的交易以及查询相应的交易记录,并可以在第一区块链***11中查询历史交易记录。
图6示意性示出了根据本发明另一实施例的应用于管理平台10的用于区块链数据迁移的方法的流程图。
如前所述,本发明实施例的用于区块链数据迁移的方法,可以应用于主链和侧链之间的数据迁移中。所述第一区块链***11为主链,所述第二区块链***12为与所述主链对应的侧链。根据发明的实施例,应用于管理平台10的用于区块链数据迁移的方法在图2所示的操作S201~操作S205之后,还可以包括图6所示的操作S606~操作S609。
在操作S606,向所述第二区块链***12发送所述第一交易信息,以终止所述第二区块链***12中所述至少一个智能合约对应的交易。
在操作S607,将所述第二区块链***12中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息。
在操作S608,从所述数据库向所述第一区块链***中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***11中的所述用户状态数据。
在操作S609,向所述第一区块链***11发送所述第三交易信息,以使所述第一区块链***11基于所述第二用户状态数据开启所述第一区块链***11中的所述至少一个智能合约对应的交易。
根据本发明的实施例,当一个区块链***的主链在某些高峰时期交易量大幅增加时,可以根据本发明的实施例将主链上部分交易迁移至侧链进行处理,在主链业务压力降低后再将侧链上处理的交易结果回迁到主链,由主链在上述交易结果的基础上继续执行后续交易。即,在将主链中的至少一个智能合约终止交易时对应的用户状态信息迁移到侧链并在侧链中继续执行新的交易之后,还可以在某个时刻当主链的业务压力降低后,停止侧链中的该至少一个智能合约交易,以及将停止交易时侧链中的至少一个智能合约对应的用户状态信息迁移到主链以更新主链中该至少一个智能合约对应的用户状态信息,并使主链在迁移完成后继续执行交易。
根据本发明的实施例,在所述第一区块链***11为主链,所述第二区块链***12为所述第一区块链***11对应的侧链的情况下,数据从侧链回迁至主链时第二区块链***12可以接收第一交易信息,以终止所述第二区块链***12中所述至少一个智能合约对应的交易,以及将所述第二区块链***12中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息;其中,所述第二用户状态数据用于更新所述第一区块链***11中的所述用户状态数据。
根据本发明的实施例,在所述第一区块链***11为主链,所述第二区块链***12为所述主链对应的侧链的情况下,数据从侧链回迁至主链时第一区块链***11可以导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息,以及接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***11中的所述至少一个智能合约对应的交易。
根据本发明的实施例,可以将主链中的至少一个智能合约对应的用户状态数据迁移到侧链。然后侧链继续执行交易,并在某个时刻当侧链的该至少一个智能合约不再作为热点的智能合约的时候,停止侧链中的该至少一个智能合约交易,以及将侧链中的至少一个智能合约对应的第二用户状态数据迁移到主链以更新主链中该至少一个智能合约对应的用户状态数据,并使主链在迁移完成后继续执行交易。以此方式,可以满足不同业务的频繁交易,减少单个区块链***的交易总量,提高单个区块链***的性能。
图7示意性示出了根据本发明实施例的用于主链和侧链之间数据迁移的构思示意。
以下结合图7概括描述根据本发明实施例的用于主链和侧链之间数据迁移的过程。其中,一个主链可以对应有多个侧链,每个侧链中部署有主链中的至少一个智能合约。例如图7中可以将主链中智能合约A对应的交易的某个阶段转移到侧链1中执行,并在侧链1执行完该阶段的交易后又将智能合约A对应的交易再回迁至主链中继续执行。
1)、管理平台10通过预定的区块链地址调用主链中至少一个智能合约的停止交易方法。待该停止交易方法被执行后,主链中所述至少一个智能合约对应的交易将被终止。
2)、管理平台10调用主链的用户状态数据导出接口,导出所述至少一个智能合约对应的用户状态数据。数据导出完成并核对导出无误后,数据导出结束。
3)、在侧链部署所述至少一个智能合约。在所述至少一个智能合约中设置与主链中的该至少一个智能合约相同数量的token和相同状态的token。
4)、管理平台10迁移数据库中的所述用户状态数据到侧链。管理平台10通过预定的区块链地址调用每个智能合约对应的用户状态数据导入接口。待用户状态数据导入侧链中并核对状态数据无误后,导入结束。
5)、管理平台10通过预定的区块链地址调用侧链的所述至少一个智能合约对应的开启交易方法,以开启侧链的交易。
6)、某个时刻,当确定将侧链数据需要迁回主链后,管理平台10向侧链发送第一交易信息,以通过第一交易信息终止侧链中至少一个智能合约的交易。
7)、管理平台10导出侧链中所述至少一个智能合约对应的第二用户状态数据到数据库并做核对。
8)、关闭主链中所述至少一个智能合约对应的交易,并确保主链和侧链中所述至少一个智能合约中的token总数量以及总状态保持一致。
9)、管理平台10迁移数据库中所述第二用户状态数据至主链并做核对。
10)、以所述第二用户状态数据更新主链中的所述用户状态数据。然后主链重新开启交易,重新开始接收用户新的交易。
至此主链和侧链的所述至少一个智能合约对应的所有用户的交易记录均存在,可以供用户查询。同时主链和侧链的来回切换交易,解决了区块链***在业务高峰期计算压力增大的问题,也减少了单链(主链或侧链)的交易总量从而避免该单链的计算性能过快下降。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图8、9、10对本发明示例性实施方式的用于区块链数据迁移的方法进行说明。
图8示意性示出了根据本发明实施例的设置于管理平台10的用于区块链数据迁移的装置的框图。
如图8所示,所述装置800可以包括第一发送模块810、第一数据迁移模块820、第二发送模块830、第二数据迁移模块840以及第三发送模块850。所述第一发送模块810用于向第一区块链***11发送第一交易信息,以终止所述第一区块链***11中的至少一个智能合约对应的交易。所述第一数据迁移模块820用于将所述第一区块链***11中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息。所述第二发送模块830用于向第二区块链***12发送第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约。所述第二数据迁移模块840用于从所述数据库向所述第二区块链***12导入所述用户状态数据。所述第三发送模块850用于向所述第二区块链***12发送第三交易信息,以使所述第二区块链***12基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述第一发送模块810具体用于根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。
在本发明的一个实施例中,所述装置800还包括停止交易方法设置模块860。所述停止交易方法设置模块860用于在所述向第一区块链***11发送第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述第一区块链***11和所述第二区块链***12相互独立;或者,所述第一区块链***11为主链,所述第二区块链***12为与所述主链对应的侧链。
在本发明的一个实施例中,所述第一发送模块810还用于在所述第一区块链***11为主链,所述第二区块链***12为与所述主链对应的侧链时,在所述向所述第二区块链***12发送第三交易信息,以使所述第二区块链***12基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易之后,向所述第二区块链***12发送所述第一交易信息,以终止所述第二区块链***12中所述至少一个智能合约对应的交易。所述第一数据迁移模块820还用于将所述第二区块链***12中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息。所述第二数据迁移模块840还用于从所述数据库向所述第一区块链***11中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***11中的所述用户状态数据。所述第三发送模块850还用于向所述第一区块链***11发送所述第三交易信息,以使所述第一区块链***11基于所述第二用户状态数据开启所述第一区块链***11中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述向第一区块链***11发送第一交易信息,包括通过预定的区块链地址向所述第一区块链***11发送所述第一交易信息。
在本发明的一个实施例中,所述装置800还包括开启交易方法设置模块870。所述开启交易方法设置模块870用于在所述向第二区块链***12发送第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约之后,对所述第二区块链***12设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
在本发明的一个实施例中,所述第三发送模块850具体用于根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述装置800还包括第一核对模块880。所述第一核对模块用于在所述向第二区块链***12发送第二交易信息之前,核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果;其中,所述第二发送模块具体用于在所述第一核对结果为正确的情况下,向所述第二区块链***12发送所述第二交易信息。
在本发明的一个实施例中,所述装置800还包括第二核对模块890。所述第二核对模块用于在所述向所述第二区块链***12发送第三交易信息之前,核对导入到所述第二区块链***12的所述用户状态数据是否正确,得到第二核对结果。其中,所述第三发送模块具体用于在所述第二核对结果为正确的情况下,向所述第二区块链***12发送所述第三交易信息。
根据本发明的实施例,所述装置800可以用于执行参考图2和/或图6所描述的用于区块链数据迁移的方法。
图9示意性示出了根据本发明实施例的设置于第一区块链***11的用于区块链数据迁移的装置900的框图。
如图9所示,装置900包括第一接收模块910、以及第一数据导出模块920。所述第一接收模块910用于接收第一交易信息,以终止所述至少一个智能合约对应的交易。所述第一数据导出模块920用于将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***12中根据第二交易信息进行部署;所述用户状态数据还被从所述数据库导入至所述第二区块链***12中,以使得所述第二区块链***12在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。其中,所述第一区块链***11与所述第二区块链***12不同。
在本发明的一个实施例中,所述第一接收模块910具体用于根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以及根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。
在本发明的一个实施例中,所述装置900还包括停止交易方法设置模块930。所述停止交易方法设置模块930用于在所述接收第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
在本发明的一个实施例中,所述装置900还包括第一数据导入模块940。所述第一数据导入模块940用于在所述第一区块链***11为主链,所述第二区块链***12为所述主链对应的侧链时,在将所述至少一个智能合约对应的用户状态数据导出至数据库之后,导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息。所述第一接收模块910还用于接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***11中的所述至少一个智能合约对应的交易。
根据本发明的实施例,所述装置900可以用于执行参考图3所描述的用于区块链数据迁移的方法。
图10示意性示出了根据本发明实施例的设置于第二区块链***12的用于区块链数据迁移的装置的框图。
如图10所示,装置1000包括第二接收模块1010、以及第二数据导入模块1020。所述第二接收模块1010用于接收第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***11中。所述第二数据导入模块1020用于从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***11基于第一交易信息终止所述第一区块链***11中的所述至少一个智能合约对应的交易时,所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***11中导入所述用户状态数据;其中,所述第一区块链***11与所述第二区块链***12不同。所述第二接收模块1020还用于接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述装置1000还包括开启交易方法设置模块1030。所述开启交易方法设置模块1030用于在所述接收第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约之后,对所述第二区块链***12设置用于开启所述至少一个智能合约对应的交易的开启交易方法。在本发明的一个实施例中,所述接收第三交易信息,以开启所述第二区块链***12中的所述至少一个智能合约对应的交易,包括根据所述第三交易信息调用所述开启交易方法,以及根据所述开启交易方法开启所述至少一个智能合约对应的交易。
在本发明的一个实施例中,所述第一区块链***11与所述第二区块链***12相互独立;或者,所述第一区块链***11为主链,所述第二区块链***12为所述第一区块链***11对应的侧链。
在本发明的一个实施例中,所述装置1000还包括第二数据导出模块1040。所述第二接收模块1010还用于在所述第一区块链***11为主链,所述第二区块链***12为所述第一区块链***11对应的侧链时,在接收所述第三交易信息,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易之后,接收第一交易信息,以终止所述第二区块链***12中所述至少一个智能合约对应的交易。所述第二数据导出模块1040用于将所述第二区块链***12中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***12中所述至少一个智能合约对应的交易时所述第二区块链***12中的所述至少一个智能合约对应的用户状态信息;其中,所述第二用户状态数据用于更新所述第一区块链***11中的所述用户状态数据。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图11对适于实现根据本发明实施例的用于区块链数据迁移的方法的程序产品进行说明。
本发明的实施例提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行根据本发明实施方式的用于区块链数据迁移的方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于区块链数据迁移方法中的操作。
例如,所述计算设备可以执行如图2中所示的操作S201,向第一区块链***11发送第一交易信息,以终止所述第一区块链***11中的至少一个智能合约对应的交易;操作S202,将所述第一区块链***11中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;操作S203,向第二区块链***12发送第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约;操作S204,从所述数据库向所述第二区块链***12导入所述用户状态数据;以及操作S205,向所述第二区块链***12发送第三交易信息,以使所述第二区块链***12基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
或者例如,所述计算设备可以执行如图3所示的操作S301,接收第一交易信息,以终止所述至少一个智能合约对应的交易;以及操作S302,将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***12中根据第二交易信息进行部署;所述用户状态数据还被导入至所述第二区块链***12中,以使得所述第二区块链***12在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易;其中,所述第一区块链***11与所述第二区块链***12不同。
或者例如,所述计算设备可以执行如图4所示的操作S401,接收第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***11中;操作S402,从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***11基于第一交易信息终止所述第一区块链***11中的所述至少一个智能合约对应的交易时,所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***11中导入所述用户状态数据;其中,所述第一区块链***11与所述第二区块链***12不同;操作S403,接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图11所示,描述了根据本发明的实施方式的区块链数据迁移的程序产品1100,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、装置和介质之后,接下来,参考图12对适于实现根据本发明实施例的用于区块链数据迁移的方法的计算设备进行说明。
本发明实施例还提供了一种计算设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本发明的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于区块链数据迁移的方法中的操作。
例如,所述处理单元可以执行如图2中所示的操作S201,向第一区块链***11发送第一交易信息,以终止所述第一区块链***11中的至少一个智能合约对应的交易;操作S202,将所述第一区块链***11中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;操作S203,向第二区块链***12发送第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约;操作S204,从所述数据库向所述第二区块链***12导入所述用户状态数据;以及操作S205,向所述第二区块链***12发送第三交易信息,以使所述第二区块链***12基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
或者例如,所述处理单元可以执行如图3所示的操作S301,接收第一交易信息,以终止所述至少一个智能合约对应的交易;以及操作S302,将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***11中的所述至少一个智能合约对应的交易时所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***12中根据第二交易信息进行部署;所述用户状态数据还被导入至所述第二区块链***12中,以使得所述第二区块链***12在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易;其中,所述第一区块链***11与所述第二区块链***12不同。
或者例如,所述处理单元可以执行如图4所示的操作S401,接收第二交易信息,以在所述第二区块链***12中部署所述至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***11中;操作S402,从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***11基于第一交易信息终止所述第一区块链***11中的所述至少一个智能合约对应的交易时,所述第一区块链***11中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***11中导入所述用户状态数据;其中,所述第一区块链***11与所述第二区块链***12不同;操作S403,接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***12中的所述至少一个智能合约对应的交易。
下面参照图12来描述适于实现根据本发明实施例的用于区块链数据迁移的方法的计算设备1200。如图12所示的计算设备1200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算设备1200以通用计算设备的形式表现。计算设备1200的组件可以包括但不限于:上述至少一个处理器1210、上述至少一个存储单元1220、连接不同***组件(包括存储单元1220和处理器1210)的总线1230。
总线1230包括数据总线、控制总线和地址总线。
存储单元1220可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1221和/或高速缓存存储器1222,还可以进一步包括只读存储器(ROM)1223。
存储单元1220还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1200也可以与一个或多个外部设备1240(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备1200交互的设备通信,和/或与使得计算设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/0)接口1250进行。并且,计算设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与计算设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (40)

1.一种用于区块链数据迁移的方法,应用于管理平台,所述方法包括:
向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易;
将所述第一区块链***中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;
向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约;
从所述数据库向所述第二区块链***导入所述用户状态数据;以及
向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
2.根据权利要求1所述的方法,其中,所述向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易包括:
根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。
3.根据权利要求2所述的方法,其中,在所述向第一区块链***发送第一交易信息之前,所述方法还包括:
在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
4.根据权利要求1所述的方法,其中,所述第一区块链***和所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链。
5.根据权利要求4所述的方法,其中,在所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链时,在所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,所述方法还包括:
向所述第二区块链***发送所述第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易;
将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;
从所述数据库向所述第一区块链***中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***中的所述用户状态数据;以及
向所述第一区块链***发送所述第三交易信息,以使所述第一区块链***基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
6.根据权利要求1所述的方法,其中,所述向第一区块链***发送第一交易信息包括:
通过预定的区块链地址向所述第一区块链***发送所述第一交易信息。
7.根据权利要求1所述的方法,其中,在所述向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,所述方法还包括:
对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
8.根据权利要求7所述的方法,其中,所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易,包括:
根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
9.根据权利要求1所述的方法,其中,在所述向第二区块链***发送第二交易信息之前,所述方法还包括:
核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果;
其中,在所述第一核对结果为正确的情况下,向所述第二区块链***发送所述第二交易信息。
10.根据权利要求1所述的方法,其中,在所述向所述第二区块链***发送第三交易信息之前,所述方法还包括:
核对导入到所述第二区块链***的所述用户状态数据是否正确,得到第二核对结果;
其中,在所述第二核对结果为正确的情况下,向所述第二区块链***发送所述第三交易信息。
11.一种用于区块链数据迁移的方法,应用于第一区块链***,所述方法包括:
接收第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易;以及
将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***中根据第二交易信息进行部署;所述用户状态数据还被导入至所述第二区块链***中,以使得所述第二区块链***在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易;
其中,所述第一区块链***与所述第二区块链***不同。
12.根据权利要求11所述的方法,其中,所述接收第一交易信息,以终止所述至少一个智能合约对应的交易包括:
根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法;以及
根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。
13.根据权利要求12所述的方法,其中,在所述接收第一交易信息之前,所述方法还包括:
在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
14.根据权利要求11所述的方法,其中,所述第一区块链***为主链,所述第二区块链***为所述主链对应的侧链,在所述将所述至少一个智能合约对应的用户状态数据导出至数据库之后,所述方法还包括:
导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;以及
接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
15.一种用于区块链数据迁移的方法,应用于第二区块链***,所述方法包括:
接收第二交易信息,以在所述第二区块链***中部署至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***中;
从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***基于第一交易信息终止所述第一区块链***中的所述至少一个智能合约对应的交易时,所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***中导入所述用户状态数据;其中,所述第一区块链***与所述第二区块链***不同;以及
接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
16.根据权利要求15所述的方法,其中,在所述接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,所述方法还包括:
对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
17.根据权利要求16所述的方法,其中,所述接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易包括:
根据所述第三交易信息调用所述开启交易方法;以及
根据所述开启交易方法开启所述至少一个智能合约对应的交易。
18.根据权利要求15所述的方法,其中,所述第一区块链***与所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链。
19.根据权利要求18所述的方法,其中,在所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链时,在所述接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,所述方法还包括:
接收第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易;以及
将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述第二用户状态数据用于更新所述第一区块链***中的所述用户状态数据。
20.一种用于区块链数据迁移的装置,设置于管理平台,所述装置包括:
第一发送模块,用于向第一区块链***发送第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易;
第一数据迁移模块,用于将所述第一区块链***中所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;
第二发送模块,用于向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约;
第二数据迁移模块,用于从所述数据库向所述第二区块链***导入所述用户状态数据;以及
第三发送模块,用于向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
21.根据权利要求20所述的装置,其中,所述第一发送模块具体用于:
根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法,以通过所述停止交易方法来终止所述停止交易方法对应的智能合约所对应的交易。
22.根据权利要求21所述的装置,其中,所述装置还包括:
停止交易方法设置模块,用于在所述向第一区块链***发送第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
23.根据权利要求20所述的装置,其中,所述第一区块链***和所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链。
24.根据权利要求23所述的装置,其中:
所述第一发送模块还用于在所述第一区块链***为主链,所述第二区块链***为与所述主链对应的侧链时,在所述向所述第二区块链***发送第三交易信息,以使所述第二区块链***基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,向所述第二区块链***发送所述第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易;
所述第一数据迁移模块还用于将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至所述数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;
所述第二数据迁移模块还用于从所述数据库向所述第一区块链***中导入所述第二用户状态数据,以通过所述第二用户状态数据更新所述第一区块链***中的所述用户状态数据;以及
所述第三发送模块还用于向所述第一区块链***发送所述第三交易信息,以使所述第一区块链***基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
25.根据权利要求20所述的装置,其中,所述向第一区块链***发送第一交易信息包括:
通过预定的区块链地址向所述第一区块链***发送所述第一交易信息。
26.根据权利要求20所述的装置,其中,所述装置还包括:
开启交易方法设置模块,用于在所述向第二区块链***发送第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
27.根据权利要求26所述的装置,其中,所述第三发送模块具体用于:
根据所述第三交易信息调用所述开启交易方法,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
28.根据权利要求20所述的装置,其中,所述装置还包括:
第一核对模块,用于在所述向第二区块链***发送第二交易信息之前,核对导出到所述数据库的所述用户状态数据是否正确,得到第一核对结果;其中,所述第二发送模块具体用于在所述第一核对结果为正确的情况下,向所述第二区块链***发送所述第二交易信息。
29.根据权利要求20所述的装置,其中,所述装置还包括:
第二核对模块,用于在所述向所述第二区块链***发送第三交易信息之前,核对导入到所述第二区块链***的所述用户状态数据是否正确,得到第二核对结果;
其中,所述第三发送模块具体用于在所述第二核对结果为正确的情况下,向所述第二区块链***发送所述第三交易信息。
30.一种用于区块链数据迁移的装置,设置于第一区块链***,所述装置包括:
第一接收模块,用于接收第一交易信息,以终止所述第一区块链***中的至少一个智能合约对应的交易;以及
第一数据导出模块,用于将所述至少一个智能合约对应的用户状态数据导出至数据库,其中所述用户状态数据为在终止所述第一区块链***中的所述至少一个智能合约对应的交易时所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述至少一个智能合约还在第二区块链***中根据第二交易信息进行部署;所述用户状态数据还被从所述数据库导入至所述第二区块链***中,以使得所述第二区块链***在接收到第三交易信息时基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易;
其中,所述第一区块链***与所述第二区块链***不同。
31.根据权利要求30所述的装置,其中,所述第一接收模块具体用于:
根据所述第一交易信息调用所述至少一个智能合约中每个智能合约对应的停止交易方法;以及
根据所述停止交易方法终止所述停止交易方法对应的智能合约所对应的交易。
32.根据权利要求31所述的装置,其中,所述装置还包括:
停止交易方法设置模块,用于在所述接收第一交易信息之前,在所述至少一个智能合约中的每个智能合约中设置所述停止交易方法。
33.根据权利要求30所述的装置,其中,所述装置还包括:
第一数据导入模块,用于在所述第一区块链***为主链,所述第二区块链***为所述主链对应的侧链时,在将所述至少一个智能合约对应的用户状态数据导出至数据库之后,导入所述至少一个智能合约对应的第二用户状态数据,以通过所述第二用户状态数据更新所述用户状态数据,其中,所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;以及
所述第一接收模块还用于接收第三交易信息,以基于所述第二用户状态数据开启所述第一区块链***中的所述至少一个智能合约对应的交易。
34.一种用于区块链数据迁移的装置,设置于第二区块链***,所述装置包括:
第二接收模块,用于接收第二交易信息,以在所述第二区块链***中部署至少一个智能合约,其中所述至少一个智能合约还部署于第一区块链***中;
第二数据导入模块,用于从数据库导入所述至少一个智能合约对应的用户状态数据,其中所述用户状态数据为在第一区块链***基于第一交易信息终止所述第一区块链***中的所述至少一个智能合约对应的交易时,所述第一区块链***中的所述至少一个智能合约对应的用户状态信息;所述数据库还用于从所述第一区块链***中导入所述用户状态数据;其中,所述第一区块链***与所述第二区块链***不同;以及
所述第二接收模块还用于接收第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易。
35.根据权利要求34所述的装置,其中,所述装置还包括:
开启交易方法设置模块,用于在所述接收第二交易信息,以在所述第二区块链***中部署所述至少一个智能合约之后,对所述第二区块链***设置用于开启所述至少一个智能合约对应的交易的开启交易方法。
36.根据权利要求35所述的装置,其中,所述接收第三交易信息,以开启所述第二区块链***中的所述至少一个智能合约对应的交易,包括:
根据所述第三交易信息调用所述开启交易方法;以及
根据所述开启交易方法开启所述至少一个智能合约对应的交易。
37.根据权利要求34所述的装置,其中,所述第一区块链***与所述第二区块链***相互独立;或者,所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链。
38.根据权利要求37所述的装置,其中,所述装置还包括第二数据导出模块,其中:
所述第二接收模块还用于在所述第一区块链***为主链,所述第二区块链***为所述第一区块链***对应的侧链时,在接收所述第三交易信息,以基于所述用户状态数据开启所述第二区块链***中的所述至少一个智能合约对应的交易之后,接收第一交易信息,以终止所述第二区块链***中所述至少一个智能合约对应的交易;
所述第二数据导出模块用于将所述第二区块链***中所述至少一个智能合约对应的第二用户状态数据导出至数据库,其中所述第二用户状态数据为在终止所述第二区块链***中所述至少一个智能合约对应的交易时所述第二区块链***中的所述至少一个智能合约对应的用户状态信息;其中,所述第二用户状态数据用于更新所述第一区块链***中的所述用户状态数据。
39.一种计算机可读存储介质,其上存储有可执行指令,所述指令在被处理器执行时使处理器执行:
根据权利要求1~10任意一项所述的方法;或者
根据权利要求11~14任意一项所述的方法;或者
根据权利要求15~19任意一项所述的方法。
40.一种计算设备,包括:
一个或多个存储器,存储有可执行指令;
一个或多个处理器,执行所述可执行指令,用以实现:
根据权利要求1~10任意一项所述的方法;或者
根据权利要求11~14任意一项所述的方法;或者
根据权利要求15~19任意一项所述的方法。
CN201910503915.7A 2019-06-11 2019-06-11 用于区块链数据迁移的方法、装置、介质和计算设备 Active CN110210845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910503915.7A CN110210845B (zh) 2019-06-11 2019-06-11 用于区块链数据迁移的方法、装置、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910503915.7A CN110210845B (zh) 2019-06-11 2019-06-11 用于区块链数据迁移的方法、装置、介质和计算设备

Publications (2)

Publication Number Publication Date
CN110210845A CN110210845A (zh) 2019-09-06
CN110210845B true CN110210845B (zh) 2021-06-18

Family

ID=67792059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910503915.7A Active CN110210845B (zh) 2019-06-11 2019-06-11 用于区块链数据迁移的方法、装置、介质和计算设备

Country Status (1)

Country Link
CN (1) CN110210845B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113205424B (zh) * 2020-10-28 2023-08-25 支付宝(杭州)信息技术有限公司 在区块链中部署和调用合约的方法和装置
CN112650733A (zh) * 2020-12-28 2021-04-13 杭州趣链科技有限公司 一种智能合约状态数据的处理方法、***与装置
CN113691633A (zh) * 2021-03-30 2021-11-23 支付宝(杭州)信息技术有限公司 一种用于区块链与链下设备之间的通信方法和装置
CN113342776B (zh) * 2021-05-18 2022-11-15 网易(杭州)网络有限公司 基于智能合约的交易信息迁移方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
CN108492183A (zh) * 2018-03-29 2018-09-04 深圳前海微众银行股份有限公司 区块链的账户交易方法、***和计算机可读存储介质
CN109471744A (zh) * 2018-11-21 2019-03-15 北京蓝石环球区块链科技有限公司 基于区块链的主链加并行多子链***架构
CN109669940A (zh) * 2018-11-12 2019-04-23 深圳市步云科技有限公司 一种基于区块链的主侧链分布式存储方式
CN109829718A (zh) * 2019-01-30 2019-05-31 缀初网络技术(上海)有限公司 一种基于存储应用场景的区块链多层级构架及其运行方法
CN109857580A (zh) * 2019-03-12 2019-06-07 深圳市网心科技有限公司 区块链跨链合约调用方法、装置及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498541B2 (en) * 2017-02-06 2019-12-03 ShocCard, Inc. Electronic identification verification methods and systems
US10958418B2 (en) * 2017-10-10 2021-03-23 Chromata Corporation System and method for a blockchain network with heterogeneous privacy
CN109522362B (zh) * 2018-10-17 2020-09-15 北京瑞卓喜投科技发展有限公司 基于区块链数据的非完全数据同步方法、***及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
CN108492183A (zh) * 2018-03-29 2018-09-04 深圳前海微众银行股份有限公司 区块链的账户交易方法、***和计算机可读存储介质
CN109669940A (zh) * 2018-11-12 2019-04-23 深圳市步云科技有限公司 一种基于区块链的主侧链分布式存储方式
CN109471744A (zh) * 2018-11-21 2019-03-15 北京蓝石环球区块链科技有限公司 基于区块链的主链加并行多子链***架构
CN109829718A (zh) * 2019-01-30 2019-05-31 缀初网络技术(上海)有限公司 一种基于存储应用场景的区块链多层级构架及其运行方法
CN109857580A (zh) * 2019-03-12 2019-06-07 深圳市网心科技有限公司 区块链跨链合约调用方法、装置及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Research on Cross-Chain Technology Based on Sidechain and Hash-Locking;Liping Deng等;《International Conference on Edge Computing》;20180616;第144-151页 *
Sidechains: Decoupled Consensus Between Chains;Alberto Garoffolo等;《https://arxiv.org/abs/1812.05441》;20181017;第1-20页 *
以太坊上的侧链技术Loom(一);赵小峰的思想迭代器;《https://www.jianshu.com/p/35039dc96bbb?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation》;20180513;全文 *
发布区块链标准应用模型及应用部署技术研究;白杰等;《信息技术与网络安全》;20180914;第13-18页 *

Also Published As

Publication number Publication date
CN110210845A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN110210845B (zh) 用于区块链数据迁移的方法、装置、介质和计算设备
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
CN112650576B (zh) 资源调度方法、装置、设备、存储介质及计算机程序产品
CN105988862B (zh) 分布式事务处理方法及装置
CN109995523B (zh) 激活码管理方法及装置、激活码生成方法及装置
CN111277639A (zh) 一种保持数据一致性的方法和装置
CN112306645B (zh) 以太坊虚拟机的事务处理方法、装置、设备和介质
CN109951546A (zh) 基于智能合约的事务请求处理方法、装置、设备和介质
WO2022095518A1 (zh) 接口自动化测试方法、装置、计算机设备及存储介质
WO2020224100A1 (zh) 区块链配置文件的处理装置、***、方法及存储介质
CN114327803A (zh) 区块链访问机器学习模型的方法、装置、设备和介质
CN111598575A (zh) 业务流程控制方法、装置、电子设备和可读存储介质
CN114328132A (zh) 外部数据源的状态监控方法、装置、设备和介质
CN114138549A (zh) 基于kubernetes***的数据备份和恢复方法
CN111813418A (zh) 分布式链路跟踪方法、装置、计算机设备及存储介质
CN110737425B (zh) 一种计费平台***的应用程序的建立方法及装置
CN113191889A (zh) 风控配置方法、配置***、电子设备及可读存储介质
US20190332484A1 (en) Method, device and program product for reducing data recovery time of storage system
KR102637173B1 (ko) 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법
CN113360172B (zh) 应用部署方法、装置、计算机设备及存储介质
CN115827265A (zh) 事务处理方法、装置、设备和存储介质
JP7273241B2 (ja) インテリジェント契約実行方法および装置
CN112988738B (zh) 用于区块链的数据分片方法和装置
CN114416357A (zh) 容器组的创建方法、装置、电子设备和介质
CN113791792A (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