CN116802622A - 数据转移装置、数据转移方法以及数据转移程序 - Google Patents

数据转移装置、数据转移方法以及数据转移程序 Download PDF

Info

Publication number
CN116802622A
CN116802622A CN202180092049.2A CN202180092049A CN116802622A CN 116802622 A CN116802622 A CN 116802622A CN 202180092049 A CN202180092049 A CN 202180092049A CN 116802622 A CN116802622 A CN 116802622A
Authority
CN
China
Prior art keywords
data
transfer
transaction
unit
distributed ledger
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.)
Pending
Application number
CN202180092049.2A
Other languages
English (en)
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN116802622A publication Critical patent/CN116802622A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

数据转移装置(1)具有数据取得部(112)、数据筛选部(113)和转移顺序生成部(12)。数据取得部(112)根据将电子数据从转移源分布式账本转移到转移目的地分布式账本的转移请求,从转移源分布式账本取得包含与转移请求对应并且与各个生成元素对应的数据在内的取得数据,其中,各个生成元素是作为包含1个以上的元素的数据即转移数据的各元素而生成的。数据筛选部(113)从取得数据中筛选并提取与生成元素对应的数据。转移顺序生成部(12)使用与生成元素对应的数据,生成将与各个生成元素对应的数据转移到转移目的地分布式账本的转移顺序。

Description

数据转移装置、数据转移方法以及数据转移程序
技术领域
本发明涉及数据转移装置、数据转移方法以及数据转移程序。
背景技术
活用以区块链为代表的分布式账本的系统正在增加。分布式账本是在利益相关者之间共享账本的操作请求即事务并实现利益相关者之间的共享账本的技术。在一般的分布式账本中,作为各利益相关者持有的分布式账本服务器的节点至少保有该节点和与该节点有关的利益相关者过去的全部事务,因此,能够在利益相关者之间进行包含过去数据在内的共享数据的验证。因此,分布式账本作为确保共享数据的验证可能性的手段是有效的。
在活用分布式账本的系统中,由于系统的更新或转移等理由,在将运用中的分布式账本(转移源分布式账本)置换为新环境的分布式账本(转移目的地分布式账本)时,需要根据需要将已登记于转移源分布式账本中的数据的至少一部分转移到转移目的地分布式账本。
专利文献1公开有如下装置:通过响应于针对账本中记录的资产的事务,将转移源分布式账本记录的数据登记于转移目的地分布式账本,进行数据转移。
现有技术文献
专利文献
专利文献1:日本特开2020-042671号公报
发明内容
发明要解决的课题
专利文献1的方法是仅将账本记录的最新数据值转移到转移目的地分布式账本的方法,位于转移源分布式账本中的事务不被转移。因此,根据专利文献1的方法,存在如下问题:在保持过去事务的情况下,必须持续运用转移源分布式账本。
本发明的目的在于,在将电子数据从转移源分布式账本转移到转移目的地分布式账本的情况下,不仅将转移源分布式账本记录的最新数据值,而且将转移源分布式账本记录的过去事务也转移到转移目的地分布式账本。
用于解决课题的手段
本发明的数据转移装置具有:
数据取得部,其根据将电子数据从转移源分布式账本转移到转移目的地分布式账本的转移请求,从所述转移源分布式账本取得包含与各个生成元素对应的数据的取得数据,其中,所述各个生成元素是作为包含1个以上的元素的数据即转移数据的各元素而生成的;
数据筛选部,其从所述取得数据中筛选并提取与所述生成元素对应的数据;以及
转移顺序生成部,其使用与所述生成元素对应的数据,生成将与各个所述生成元素对应的数据转移到所述转移目的地分布式账本的转移顺序,
所述转移数据是与所述转移请求对应的数据,
各个所述生成元素与所述电子数据的至少一部分对应。
发明效果
数据取得部从转移源分布式账本取得取得数据,数据筛选部从取得数据中提取与生成元素对应的数据,转移顺序生成部确定作为转移数据的各元素而生成的各个生成元素的转移顺序。因此,在与生成元素对应的数据包含转移源分布式账本记录的过去事务的情况下,转移顺序生成部确定转移包含事务的数据的顺序。此外,取得数据也可以包含转移源分布式账本记录的最新数据值。
因此,根据本发明,能够在将电子数据从转移源分布式账本转移到转移目的地分布式账本的情况下,不仅将转移源分布式账本记录的最新数据值,而且将转移源分布式账本记录的过去事务也转移到转移目的地分布式账本。
附图说明
图1是示出实施方式1的数据转移系统90的结构例的图。
图2是示出实施方式1的数据转移系统90具有的各装置的硬件结构例的图。
图3是示出实施方式1的数据转移系统90具有的各装置的软件结构例的图。
图4是示出实施方式1的数据转移系统90的动作的流程图。
图5是示出实施方式1的转移源数据取得请求501的具体例的图。
图6是示出实施方式1的已筛选事务数据502的具体例的图。
图7是示出实施方式1的补充数据503的具体例的图。
图8是示出实施方式1的事务关系图表504、顶点数据505和边数据506的具体例的图。
图9是示出实施方式1的主密钥更新历史表507和智能合约更新历史表508的具体例的图。
图10是示出实施方式1的事务关系数据生成部121的动作的流程图。
图11是示出实施方式1的事务关系数据生成部121的动作的流程图。
图12是示出实施方式1的转移目的地数据登记请求509的具体例的图。
图13是示出实施方式1的转移数据510的具体例的图。
图14是示出实施方式1的数据生成部132的动作的流程图。
图15是示出实施方式1的数据发送部133的动作的流程图。
图16是示出实施方式1的变形例的数据转移装置1的硬件结构例的图。
图17是示出实施方式2的数据转移系统90的结构例的图。
图18是示出实施方式2的数据转移系统90具有的各装置的硬件结构例的图。
图19是示出实施方式2的数据转移系统90具有的各装置的软件结构例的图。
图20是示出实施方式2的数据转移系统90的动作的流程图。
图21是示出实施方式2的转移目的地数据登记请求509b的具体例的图。
图22是示出实施方式2的数据生成部132的动作的流程图。
图23是示出实施方式2的数据生成部132的动作的流程图。
图24是示出实施方式2的数据发送部133的动作的流程图。
图25是示出实施方式3的数据转移系统90的结构例的图。
图26是示出实施方式3的数据转移系统90具有的各装置的软件结构例的图。
图27是示出实施方式3的数据转移系统90的动作的流程图。
图28是示出实施方式3的数据验证请求511的具体例的图。
图29是示出实施方式3的验证部163的动作的流程图。
图30是示出实施方式3的验证部163的动作的流程图。
图31是示出实施方式4的数据转移系统90的结构例的图。
图32是示出实施方式4的数据转移系统90具有的各装置的硬件结构例的图。
图33是示出实施方式4的数据转移系统90具有的各装置的软件结构例的图。
图34是示出实施方式4的数据取得部112的动作的流程图。
图35是示出实施方式4的数据发送部133的动作的流程图。
具体实施方式
在实施方式的说明和附图中,对相同的要素和对应的要素标注相同的标号。适当省略或简化标注有相同标号的要素的说明。图中的箭头主要表示数据流或处理流。此外,也可以将“部”适当替换成“电路”、“工序”、“步骤”、“处理”或“线路”。
实施方式1
以下,参照附图详细说明本实施方式。
***结构的说明***
图1示出本实施方式的数据转移系统90的结构例。如本图所示,数据转移系统90具有数据转移装置1、管理装置2、转移源账本网络3和转移目的地账本网络4。数据转移装置1也被称作数据提取/转移装置。转移源账本网络3也被称作转移源分布式账本网络。转移目的地账本网络4也被称作转移目的地分布式账本网络。
数据转移装置1从管理装置2接收转移请求,根据转移请求,从转移源账本网络3中适当地提取事务和补充数据503,将提取出的事务和补充数据503转移到转移目的地账本网络4。转移请求是将电子数据从转移源分布式账本转移到转移目的地分布式账本的请求。请求这样的用语有时也指包含指示内容的信息。数据转移装置1也可以是应用。应用也被称作应用程序。有时也使用装置这样的用语作为装置和应用的总称。装置不限于物理装置,也可以是通过虚拟化技术生成的虚拟装置。
数据转移装置1能够与管理装置2、转移源账本网络3中的至少1个转移源节点31、转移目的地账本网络4中的至少1个转移目的地节点41相互进行通信。
管理装置2是具有向数据转移装置1发送转移请求和补充数据503的功能的装置或应用。管理装置2也被称作管理应用。补充数据503是在数据转移装置1生成针对转移目的地账本网络4的事务时使用的数据。
转移源账本网络3是记录有转移事务的运转中的分布式账本网络。转移事务是转移对象事务。转移源账本网络3由1个以上的转移源节点31构成。转移源节点31是记录转移源分布式账本的装置或应用。
转移目的地账本网络4是作为转移事务的转移目的地的分布式账本网络。转移目的地账本网络4由1个以上的转移目的地节点41构成。转移目的地节点41是记录转移目的地分布式账本的装置或应用。
图2示出数据转移系统90具有的各装置的硬件结构例。本图示出数据转移装置1、管理装置2、转移源节点31和转移目的地节点41分别在独立的装置中进行动作的情况下的具体例。各装置是具有处理器81、存储器82、辅助存储装置84和通信接口83等硬件的计算机。这些硬件经由信号线而适当地连接。各装置经由1个网络而连接。另外,数据转移系统90具有的网络的数量也可以不是1个,只要能够在数据转移装置1与管理装置2之间、数据转移装置1与转移源账本网络3中的至少1个转移源节点31之间、数据转移装置1与转移目的地账本网络4中的至少1个转移目的地节点41之间分别进行通信,数据转移系统90也可以具有多个网络。此外,数据转移装置1、管理装置2、转移源节点31和转移目的地节点41中的至少一部分也可以由相同的装置构成。数据转移系统90具有的各装置也可以由多个计算机构成。另外,节点也是装置。
处理器81是进行运算处理的IC(Integrated Circuit:集成电路),并且控制计算机具有的硬件。作为具体例,处理器81是CPU(Central Processing Unit:中央处理单元)、DSP(Digital Signal Processor:数字信号处理器)或GPU(Graphics Processing Unit:图形处理单元)。
数据转移系统90具有的各装置也可以具有代替处理器81的多个处理器。多个处理器分担处理器81的作用。
存储器82典型地是易失性存储装置。存储器82也被称作主存储装置或主存储器。作为具体例,存储器82是RAM(Random Access Memory:随机存取存储器)。存储在存储器82中的数据根据需要保存到辅助存储装置84。
通信接口83是接收机和发送机。作为具体例,通信接口83是通信芯片或NIC(Network Interface Card:网络接口卡)。数据转移系统90具有的各装置的各部在与其他装置等通信时,适当地使用通信接口83。
辅助存储装置84典型地是非易失性存储装置。作为具体例,辅助存储装置84是ROM(Read Only Memory:只读存储器)、HDD(Hard Disk Drive:硬盘驱动器)或闪存。存储在辅助存储装置84中的数据根据需要被加载到存储器82。
辅助存储装置84存储有数据转移程序。数据转移程序是使计算机实现数据转移装置1具有的各部的功能的程序。数据转移程序被加载到存储器82,由处理器81执行。数据转移系统具有的各装置的各部的功能通过软件实现。
数据转移系统90具有的各装置的各部适当地利用存储装置。作为具体例,存储装置由存储器82、辅助存储装置84、处理器81内的寄存器和处理器81内的高速缓冲存储器中的至少1个构成。另外,数据和信息有时也具有同等的意思。存储装置也可以与计算机10独立。
存储器82和辅助存储装置84的功能也可以通过其他存储装置实现。
在本说明书中记载的任何装置中进行动作的程序都可以记录于计算机能读取的非易失性记录介质。作为具体例,非易失性记录介质是光盘或闪存。在本说明书中记载的任何装置中进行动作的程序都可以作为程序产品来提供。
图3示出数据转移系统90具有的各装置的软件结构例。在本例子中,假设具有对至少1个转移源节点31和至少1个转移目的地节点41的访问权限的代表者转移全部数据。代表者也可以是计算机等。
数据转移装置1具有数据提取部11、转移顺序生成部12、数据登记部13和补充数据管理部14。
数据提取部11具有取得请求受理部111、数据取得部112和数据筛选部113。
取得请求受理部111从管理装置2接收取得请求,该取得请求请求从转移源分布式账本取得转移源账本网络3的事务和与事务有关的补充数据503。
数据取得部112从转移源账本网络3取得包含事务和与事务有关的补充数据503在内的数据作为取得数据。数据取得部112根据转移请求,从转移源分布式账本取得取得数据。从转移源分布式账本取得数据是通过从记录有该转移源分布式账本的转移源节点31接收该数据而实现的。取得数据包含与作为后述的转移数据510的各元素而生成的各个生成元素对应的数据。另外,生成元素这样的表现是还用于说明尚未作为转移数据510的元素生成的元素的表现。转移数据510是包含1个以上的元素的数据,是与转移请求对应的数据,并且是表示转移源分布式账本记录的电子数据的至少一部分的数据。作为具体例,转移数据510的各元素是表示后述的顶点数据505的数据。作为具体例,与生成元素对应的数据是与顶点数据505表示的事务ID对应的已筛选事务数据502,该顶点数据505与作为生成元素的顶点ID对应。即,各生成元素与从转移源分布式账本转移到转移目的地分布式账本的电子数据的至少一部分对应。补充数据503是和与生成元素对应的数据中的至少1个一对一地对应的至少1个数据,并且是辅助将与各个生成元素对应的数据转移到转移目的地分布式账本的数据。
数据筛选部113通过筛选取得数据,提取与转移数据510应该包含的数据对应的数据,此外,在取得数据包含补充数据503应该包含的数据的情况下,提取补充数据503应该包含的数据。数据筛选部113从取得数据中筛选并提取与生成元素对应的数据。数据筛选部113也可以从取得数据中提取与生成元素对应的数据作为已筛选事务数据502。
数据筛选部113向事务关系数据生成部121发送与转移数据510应该包含的数据对应的数据,向补充数据受理部141发送补充数据503。
转移顺序生成部12具有事务关系数据生成部121和事务关系数据记录部122,也被称作事务顺序整理部。转移顺序生成部12使用生成元素,生成将与各个生成元素对应的数据转移到转移目的地分布式账本的转移顺序。在存在补充数据503的情况下,转移顺序生成部12使用与生成元素对应的数据和补充数据503生成转移顺序。作为具体例,与生成元素对应的数据是已筛选事务数据502、或者已筛选事务数据502和补充数据503的组,该补充数据503与该已筛选事务数据502对应。
事务关系数据生成部121基于数据筛选部113提取出并且转移到转移目的地分布式账本的数据应该包含的数据生成事务关系数据,将已生成的事务关系数据记录于事务关系数据记录部122,该事务关系数据辅助引导向转移目的地账本网络4的高效的事务登记顺序。在没有补充数据503的情况下,事务关系数据生成部121使用已筛选事务数据502,根据已筛选事务数据502之间的关系生成事务关系数据。事务关系数据是规定转移顺序的数据。此外,在存在补充数据503的情况下,事务关系数据生成部121使用已筛选事务数据502和补充数据503生成事务关系数据。事务关系数据生成部121也可以生成事务关系图表504作为事务关系数据。事务关系图表504通过图表构造表示转移顺序和转移条件。转移条件是将已筛选事务数据502转移到转移目的地分布式账本的条件。
数据登记部13具有登记请求受理部131、数据生成部132和数据发送部133。
登记请求受理部131从管理装置2接收登记请求,该登记请求请求将要转移的数据登记于转移目的地分布式账本。
数据生成部132取得事务关系数据记录部122记录的事务关系数据,使用在开始生成事务的时刻能够登记于转移目的地分布式账本中的数据,生成面向转移目的地分布式账本的事务。数据生成部132也可以使用与生成元素对应的数据,根据各个生成元素的形式生成各个生成元素。
数据生成部132在生成数据时需要将从事务关系数据记录部122读出的数据和与该数据对应的补充数据503组合成为1个事务的情况下,从补充数据记录部142参照对应的补充数据503,将从事务关系数据记录部122读出的数据和对应的补充数据503组合生成1个事务。
此外,当在生成数据时从事务关系数据记录部122读出的要转移的数据是需要在将根据要转移的数据生成的事务登记于转移目的地账本网络4时一并使某些数据作用于转移目的地账本网络4的数据的情况下,数据生成部132从补充数据记录部142参照对应的补充数据503,使根据要转移的数据生成的事务和补充数据503通过数据发送部133登记于转移目的地账本网络4并且使其作用于转移目的地账本网络4。
数据生成部132也可以利用事务关系数据,生成包含表示已筛选事务数据502的数据、或者分别表示已筛选事务数据502和补充数据503的数据在内的数据作为各个生成元素,该补充数据503与已筛选事务数据502对应。数据生成部132也可以利用事务关系图表504的图表构造,提取与能够登记于转移目的地分布式账本中的各个生成元素对应的数据作为能登记数据。
数据发送部133向转移目的地账本网络4发送事务。数据发送部133根据转移顺序,向转移目的地分布式账本发送与各个生成元素对应的数据。数据发送部133也可以向转移目的地分布式账本发送包含能登记数据的数据。向转移目的地分布式账本发送数据是通过向记录该转移目的地分布式账本的转移目的地节点41发送该数据而实现的。
补充数据管理部14具有补充数据受理部141和补充数据记录部142。
补充数据受理部141从管理装置2和数据筛选部113中的至少任意一方接收补充数据登记请求,在接收到补充数据登记请求的情况下,将补充数据503记录于补充数据记录部142。
管理装置2具有转移请求部21和补充数据登记请求部22。
转移请求部21具有取得请求部211和登记请求部212。
取得请求部211请求数据转移装置1从转移源账本网络3取得事务和与事务有关的补充数据503并生成事务关系数据。
登记请求部212利用已生成的事务关系数据和补充数据503,请求数据转移装置1将要转移的数据登记于转移目的地账本网络4。
补充数据登记请求部22请求数据转移装置1登记与要转移的数据对应的补充数据503。
转移源节点31具有如下功能:根据来自数据转移装置1的数据取得请求,向数据转移装置1发送包含事务和与事务有关的补充数据503在内的数据。
转移目的地节点41具有如下功能:根据来自数据转移装置1的事务登记请求,将事务数据登记于在转移目的地账本网络4中共享的账本。此外,转移目的地节点41具有根据登记来自数据转移装置1的补充数据503的请求或进行作用的请求将补充数据503登记于转移目的地节点41或转移目的地账本网络4的功能和进行作用的功能中的至少任意一个。
***动作的说明***
数据转移装置1的动作步骤相当于数据转移方法。实现数据转移装置1的动作的程序相当于数据转移程序。管理装置2的动作步骤相当于管理方法。实现管理装置2的动作的程序相当于管理程序。转移源节点31的动作步骤相当于转移源控制方法。实现转移源节点31的动作的程序相当于转移源控制程序。转移目的地节点41的动作步骤相当于转移目的地控制方法。实现转移目的地节点41的动作的程序相当于转移目的地控制程序。
图4是示出数据转移系统90的动作的一例的流程图。参照本图说明数据转移系统90的动作。
(步骤S101:数据取得请求处理)
取得请求部211向数据转移装置1发送转移源数据取得请求501。
图5示出转移源数据取得请求501的一例。
“取得对象账本ID(Identification:标识符)”是唯一地表示作为数据取得对象的账本的标识符。数据取得对象记录有转移源数据。
“取得对象账本名称”是作为数据取得对象的账本中设定的名称。
“连接转移源节点”是表示数据取得部112为了取得数据而连接的转移源节点31的位置的信息。连接转移源节点是记录有要转移的数据的转移源节点31。作为具体例,“连接转移源节点”的值是转移源节点31的IP(Internet Protocol:互联网协议)地址、或者转移源节点31的IP地址与端口号的组合。
“连接转移源节点资格信息”是在与连接转移源节点连接时需要进行认证的情况下利用的信息。也可以不具有“连接转移源节点资格信息”。作为具体例,“连接转移源节点资格信息”的值是用于登录到转移源节点31的ID和密码的组、通过公开密钥和秘密密钥签名的数据的组、或者访问令牌。
(步骤S102:数据请求处理)
取得请求受理部111接收转移源数据取得请求501。数据取得部112利用转移源数据取得请求501,对连接转移源节点请求取得对象账本名称表示的账本中记录的事务和与事务有关的补充数据503。
(步骤S103:要求数据发送处理)
连接转移源节点向数据取得部112发送由数据取得部112请求的事务和补充数据503。
(步骤S104:筛选处理)
数据取得部112取得事务和补充数据503作为取得数据。数据筛选部113从取得数据中仅筛选在转移处理中所需的数据。
作为具体例,在转移源分布式账本为区块链的情况下,通过被称作块的集合在转移源账本网络3中对多个事务进行管理。在该情况下,也可以是,数据取得部112从转移源节点31取得块,数据筛选部113从数据取得部112取得的块中提取各事务。
图6示出已筛选事务数据502的一例。已筛选事务数据502是由数据筛选部113筛选出的事务数据。
“取得对象账本ID”是唯一地表示作为取得数据的对象的账本的标识符。“取得对象账本ID”的值是与转移源数据取得请求501设定的取得对象账本ID相同的值。
“事务ID”是唯一地表示取得对象账本包含的事务的标识符。以下,在本图的说明中,只要没有特别说明,则事务是事务ID表示的事务。
“执行顺序信息”是表示将事务应用于账本的时机的信息。作为具体例,在转移源分布式账本为区块链的情况下,“执行顺序信息”的值是通过组合块编号与表示事务在块中应用于第几个的信息而生成的。此外,执行顺序信息也可以使用在执行某事务之前应该处理的事务的列表来生成。
“类别”表示事务执行的处理的种类。作为具体例,处理的种类是分布式账本组装功能执行、智能合约执行、智能合约部署和智能合约更新中的任意一个。
“执行对象”表示定义有由事务执行的处理的场所。执行对象也可以是指示存储有分布式账本中组装的功能的场所的信息,还可以是指示在区块链中进行动作的逻辑即智能合约的信息。
“执行处理”表示由事务执行的具体处理。作为具体例,“执行处理”的值是组装于分布式账本中的功能、智能合约的部署或更新、智能合约中定义的处理中的任意一个。
“处理自变量列表”是设定有需要进行执行处理表示的处理的数据组的列表。
“执行者信息”是表示事务的执行者的信息。
“执行结果”表示针对执行对象表示的对象使用处理自变量列表表示的自变量执行了执行处理表示的处理时的事务的执行结果。作为具体例,“执行结果”的值由表示在该处理的执行中被参照的数据的参照信息和表示被写入的数据的写入信息这两种构成。另外,典型地,转移源节点31内部的处理执行用的保存区域即状态DB(Database:数据库)存储有参照信息和写入信息。作为具体例,参照信息是在执行处理时被参照的全部状态DB的主密钥。作为具体例,写入信息是在执行处理时被写入的全部状态DB的主密钥。
考虑执行结果利用不包含于事务中的分布式账本的情况。在该情况下,作为具体例,在分布式账本支持将任意的数据存储于能够在执行处理时追踪事务或追踪与事务的相关性的保存区域的功能时,数据筛选部113也可以利用该功能。具体而言,数据筛选部113能够通过将在执行智能合约时参照的数据的主密钥和写入的数据的主密钥记录于能够追踪事务或与事务的相关性的保存区域,在从数据取得部112取得数据时取得执行结果。数据筛选部113也可以将通过该步骤取得的执行结果与事务结合,此外,还可以管理该执行结果作为补充数据503。
此外,数据筛选部113通过不利用上述的功能而利用任意的手段模拟事务的执行,求出执行结果,将求出的执行结果作为补充数据503利用补充数据登记请求部22登记于补充数据管理部14。
图6中例示的已筛选事务数据502是执行分布式账本中部署的智能合约的事务。在此,已筛选事务数据502还能够通过将类别设为智能合约部署或智能合约更新,表现与智能合约的部署或更新相关的事务。此时,假设设定要部署或更新的智能合约名称作为执行对象的值。
图7示出补充数据503的一例。该补充数据503是由数据筛选部113筛选出的。
“补充数据ID”是唯一地表示补充数据503的标识符。
“取得对象账本ID”是唯一地表示作为数据取得对象的账本的标识符。“取得对象账本ID”的值是与转移源数据取得请求501的取得对象账本ID表示的值相同的值。以下,在本图的说明中,只要没有特别说明,则账本是取得对象账本ID表示的账本。
“事务ID”是唯一地表示账本中包含的事务的标识符。“事务ID”的值是与补充数据503相关的事务的标识符。
“数据类别”表示补充数据503的类别。作为具体例,补充数据503的类别是表示补充数据503表示智能合约主体的数据的“智能合约”、表示补充数据503是未直接记录于账本上的秘密数据的“秘密数据”和在利用执行结果不包含于事务中的分布式账本的情况下使用的“执行结果”中的任意一个。
“数据”是补充数据503的主体。作为具体例,在补充数据503是智能合约的情况下,“数据”的值是在对节点部署智能合约时使用的智能合约主体的数据。在补充数据503是秘密数据的情况下,作为具体例,“数据”的值是秘密数据主体的数据。在补充数据503是执行结果的情况下,作为具体例,“数据”的值是与图6的“执行结果”相同的值。
(步骤S105:筛选数据发送处理)
数据筛选部113向转移顺序生成部12发送最终筛选出的数据中的已筛选事务数据502,向补充数据管理部14发送补充数据503。
(步骤S106:补充数据读出处理)
事务关系数据生成部121从补充数据记录部142读出与从数据筛选部113接收到的已筛选事务数据502有关的补充数据503。
(步骤S107:事务关系数据生成处理)
事务关系数据生成部121使用已筛选事务数据502和补充数据503,生成事务关系数据。事务关系数据是辅助引导高效地将事务登记于转移目的地账本网络4中的顺序的数据。
图8示出事务关系图表504的一例、作为事务关系图表504的结构元素的顶点数据505和边数据506各自的一例。事务关系图表504是事务关系数据的一例,利用图表构造的数据形式。事务关系图表504的1个顶点与1个顶点数据505对应。事务关系图表504的1个边与1个边数据506对应。
说明图8所示的事务关系图表504的各项目。
“取得对象账本ID”是唯一地表示作为数据取得对象的账本的标识符。以下,在本图的说明中,只要没有特别说明,则账本是取得对象账本ID表示的账本。
“顶点集合”是构成事务关系图表的顶点数据505的顶点ID的列表。
“边集合”是构成事务关系图表的边数据506的边ID的列表。顶点集合和边集合分别保持构成事务关系图表的顶点和边各自的信息即可。因此,顶点集合也可以是顶点数据505的列表,边集合也可以是边数据506的列表。
说明图8所示的顶点数据505的各项目。
“顶点ID”是唯一地表示顶点的标识符。以下,在顶点数据505的说明中,顶点是指顶点ID表示的顶点。
“事务ID”是唯一地表示账本中包含的事务的标识符。
“补充数据ID”是与事务ID表示的事务相关的补充数据ID的列表。
“参照”是在执行与顶点对应的事务时参照的状态DB的主密钥与主密钥的版本的对的列表。主密钥的版本是表示在状态DB中该主密钥的值被更新的次数或被更新的时刻的信息。作为具体例,能够利用表示更新该主密钥的值而得到的事务的执行顺序的信息或状态DB中内置的版本管理功能管理的版本值。
“写入”是在执行与顶点对应的事务时写入的状态DB的主密钥与主密钥的版本的对的列表。
说明图8所示的边数据506的各项目。
“边ID”是唯一地表示边的标识符。以下,在边数据506的说明中,只要没有特别说明,则边是边ID表示的边。
“输出侧顶点ID”表示输出边的顶点的顶点ID。
“输入侧顶点ID”表示输入边的顶点的顶点ID。
作为具体例,考虑边ID为e1、输出侧顶点ID为v1、输入侧顶点ID为v2的情况。在该情况下,边e1表示如下限制:针对转移目的地分布式账本,在转移数据时,必须在登记与顶点v1对应的事务之后登记与顶点v2对应的事务。
图9示出主密钥更新历史表507的一例和智能合约更新历史表508的一例。
主密钥更新历史表507是在生成事务关系图表504的过程中使用的数据,是在转移源分布式账本的某时刻的状态DB中表示状态DB中记录的各主密钥的最新版本和该最新版本的前1个版本的数据。
在本例子中,利用表示区块链中的事务的执行顺序的信息作为版本。本例子的第1行的数据表示如下情况:通过执行块5的第3个事务,作为主密钥的“用户A的存款数据”最后被更新,此外,通过执行块4的第1个事务,作为主密钥的“用户A的存款数据”倒数第2个被更新。
智能合约更新历史表508是在生成事务关系图表504的过程中使用的数据。在本例子中,智能合约更新历史表508由表示某时刻的作为执行对象的智能合约的名称的“智能合约名称”和表示部署或更新转移源分布式账本中部署的智能合约的最新版而得到的事务的事务ID的“部署/更新最新版而得到的事务的事务ID”构成。
图10和图11是示出事务关系数据生成部121生成事务关系图表的动作的一例的流程图。参照这些图说明事务关系数据生成部121的处理。另外,1个流程图被分割成图10和图11。TX是事务的缩写。SC是智能合约的缩写。
(步骤S121)
事务关系数据生成部121将作为图表化对象的已筛选事务数据502存储于列表。
(步骤S122)
事务关系数据生成部121提取1件列表内的已筛选事务数据502中的、执行顺序信息表示的执行顺序最早的已筛选事务数据502。在本流程图的下述步骤中,已筛选事务数据502是指在本步骤中提取出的已筛选事务数据502。
(步骤S123)
事务关系数据生成部121使用已筛选事务数据502和与已筛选事务数据502相关的补充数据503,生成顶点数据505。以下,在本流程图的说明中,只要没有特别说明,则直到事务关系数据生成部121接着执行本步骤的处理为止,“已生成的顶点数据505”是指在此生成的顶点数据505。即,每当事务关系数据生成部121执行本步骤的处理时,更新“已生成的顶点数据505”表示的顶点数据505。
说明生成顶点数据505的方法的具体例。事务关系数据生成部121以与事务关系数据生成部121开始本流程图所示的处理之后到执行本步骤的处理为止生成的顶点ID不重复的方式新生成值,对“顶点ID”设定已生成的值,对“事务ID”设定已筛选事务数据502的事务ID,对“补充数据ID”设定补充数据503的ID。在不存在与已筛选事务数据502相关的补充数据503的情况下,事务关系数据生成部121对补充数据ID设定空的列表。事务关系数据生成部121利用已筛选事务数据502的执行结果或与已筛选事务数据502相关的补充数据503的执行结果表示的参照数据、和主密钥更新历史表507,对“参照”设定主密钥与主密钥的版本的组。具体而言,针对位于执行结果的参照数据中的各主密钥,从主密钥更新历史表507中读取各自的最新版本,将主密钥与最新版本设定成组。另外,在执行结果的参照数据为0件的情况下,事务关系数据生成部121不设定“参照”。事务关系数据生成部121利用已筛选事务数据502的执行结果或关联的补充数据503的执行结果表示的写入数据、和已筛选事务数据502的执行顺序信息或主密钥更新历史表507等,对“写入”设定主密钥与主密钥的版本的组。事务关系数据生成部121在利用执行顺序信息作为主密钥的版本的情况下,对“参照”和“写入”设定主密钥与已筛选事务数据502的执行顺序信息的组。除此以外,事务关系数据生成部121在能够通过提取出的已筛选事务数据502从主密钥更新历史表507导出状态DB中写入的主密钥的版本的情况下,也可以对“参照”和“写入”设定从主密钥与主密钥更新历史表507导出的版本的组。作为该情况下的具体例,具有利用如下规则的方法:如1、2、3、…那样利用自然数管理版本信息,将新的版本的值设为对主密钥更新历史表507表示的最新版本的值加上1而得到的值。另外,在执行结果的写入数据为0件的情况下,事务关系数据生成部121不设定“写入”。
(步骤S124)
事务关系数据生成部121更新主密钥更新历史表507。作为具体例,针对已生成的顶点数据505的“写入”中设定的各主密钥,设定主密钥更新历史表507中被设定成最新版本的版本,作为前1个版本,然后,设定“写入”中设定的版本,作为最新版本。另外,在未设定有已生成的顶点数据505的“写入”的情况下,事务关系数据生成部121跳过本步骤的处理。
(步骤S125)
事务关系数据生成部121确认是否已生成事务关系图表504。
在已生成事务关系图表504的情况下,事务关系数据生成部121进入步骤S128。在除此以外的情况下,事务关系数据生成部121进入步骤S126。
(步骤S126)
事务关系数据生成部121生成空的事务关系图表504。在本流程图的下述步骤中,事务关系图表504是指在本步骤中生成的事务关系图表504。
作为具体例,在已筛选事务数据502是最初读出的事务数据的情况下,事务关系数据生成部121对“取得对象账本ID”设定已筛选事务数据502的“取得对象账本ID”表示的值,对“顶点集合”和“边集合”分别设定空的列表。
(步骤S127)
事务关系数据生成部121将在步骤S123中生成的顶点数据505追加于事务关系图表504的“顶点集合”。
(步骤S128)
事务关系数据生成部121确认已筛选事务数据502的“类别”是否是智能合约部署。
在“类别”是智能合约部署的情况下,事务关系数据生成部121进入步骤S129。在除此以外的情况下,事务关系数据生成部121进入步骤S132。
(步骤S129)
事务关系数据生成部121针对与事务关系图表504的“顶点集合”表示的全部顶点分别对应的顶点,生成针对顶点的边数据506。
(步骤S130)
事务关系数据生成部121将已部署或更新的智能合约的名称与已筛选事务数据502的事务ID的组记录于智能合约更新历史表508。另外,事务关系数据生成部121将“智能合约名称”设为与已筛选事务数据502的“执行对象”相同。
(步骤S131)
事务关系数据生成部121将已生成的边数据506追加于事务关系图表504的“边集合”。
(步骤S132)
事务关系数据生成部121确认已筛选事务数据502的“类别”是否是智能合约更新。
在“类别”是智能合约更新的情况下,事务关系数据生成部121进入步骤S133。在除此以外的情况下,事务关系数据生成部121进入步骤S134。
(步骤S133)
事务关系数据生成部121分别使用与部署或更新要更新的智能合约的当前的最新版而得到的事务表示的时刻之后登记的事务对应的全部顶点数据505,生成针对已生成的顶点数据505的边数据506。
作为具体例,事务关系数据生成部121取得已筛选事务数据502的“执行对象”中设定的智能合约名称,从智能合约更新历史表508取得部署或更新与已取得的智能合约名称对应的智能合约的最新版而得到的事务的事务ID。并且,事务关系数据生成部121取得与已取得的事务ID对应的已筛选事务数据502,提取已取得的已筛选事务数据502的“执行顺序信息”。事务关系数据生成部121搜索已提取的“执行顺序信息”表示的时刻之后登记的已筛选事务数据502,取得与该时刻之后登记的已筛选事务数据502分别对应的顶点数据505。然后,事务关系数据生成部121生成将已取得的各顶点数据505和已生成的顶点数据505设为两端的各边数据506。另外,假设智能合约名称与已筛选事务数据502的“执行对象”相同。
(步骤S134)
事务关系数据生成部121生成将已生成的顶点数据505和包含已生成的顶点数据505的“参照”中包含的主密钥与主密钥的版本的组作为“写入”的元素的顶点数据505设为两端的边数据506。
(步骤S135)
事务关系数据生成部121生成将已生成的顶点数据505和包含已生成的顶点数据505的“写入”中包含的主密钥的前1个版本的主密钥与前1个版本的主密钥的版本的组作为“参照”或“写入”的元素的顶点数据505设为两端的边数据506。
(步骤S136)
事务关系数据生成部121利用已筛选事务数据502的“执行对象”和智能合约更新历史表508,取得部署或更新已筛选事务数据502的“执行对象”表示的智能合约的最新版而得到的事务的事务ID,生成将已生成的顶点数据505和与已取得的事务ID的事务对应的顶点数据505设为两端的边数据506。
(步骤S137)
事务关系数据生成部121从列表中删除在步骤S122中提取出的事务数据。
(步骤S138)
事务关系数据生成部121确认列表是否为空。
在列表为空的情况下,事务关系数据生成部121结束本流程图的处理。在列表不为空的情况下,事务关系数据生成部121进入步骤S121。
(步骤S139)
本步骤中的处理与步骤S128中的处理相同。
(步骤S140)
本步骤中的处理与步骤S130中的处理相同。
(步骤S108:数据记录处理)
事务关系数据生成部121将已生成的事务关系数据和从数据筛选部113接收到的已筛选事务数据502记录于事务关系数据记录部122。
作为事务关系数据记录部122中记录的事务关系数据,在事务关系数据是事务关系图表504的情况下,可举出事务关系图表504、构成事务关系图表504的顶点数据505和边数据506。
(步骤S109:补充数据发送处理)
在需要位于外部的补充数据503的情况下,补充数据登记请求部22向数据转移装置1发送补充数据503。
发送补充数据503的时机也可以是上述的数据提取部11或转移顺序生成部12的处理之前或中途。数据转移装置1使用补充数据受理部141接收补充数据503,将接收到的补充数据503记录于补充数据记录部142。
(步骤S110:登记请求发送处理)
登记请求部212向数据转移装置1发送转移目的地数据登记请求509。
图12示出转移目的地数据登记请求509的一例。
“转移目的地账本ID”是唯一地表示作为转移目的地的账本的标识符。
“账本名称”是作为转移目的地的账本中设定的名称。
“取得对象账本ID”是唯一地表示作为转移源的账本的标识符。
“连接转移目的地节点”与“连接转移源节点”相同,是表示数据发送部133转移数据的要连接的转移目的地节点41的位置的信息。
“连接转移目的地节点资格信息”与“连接转移源节点资格信息”相同,是在与转移目的地节点41连接时需要进行认证的情况下利用的信息。
(步骤S111:转移数据生成处理)
数据转移装置1使用登记请求受理部131接收转移目的地数据登记请求509,调用数据生成部132。
数据生成部132利用登记请求受理部131接收到的转移目的地数据登记请求509、事务关系数据记录部122记录的事务关系数据和补充数据记录部142记录的补充数据503,生成转移数据510,向数据发送部133适当地发送已生成的转移数据510。
图13示出转移数据510的一例。
“顺序数据”是表示将转移数据510应用于转移目的地账本网络4的顺序的设定值。在存在多个转移数据510的情况下,能够通过对各转移数据510的“顺序数据”设定互不相同的值,唯一地确定转移数据510的应用顺序。
“账本名称”是作为转移目的地的账本中设定的名称。
“连接转移目的地节点”与“连接转移源节点”相同,是表示与数据发送部133连接的转移目的地节点41的位置的信息。
“连接转移目的地节点资格信息”与“连接转移源节点资格信息”相同,是在与转移目的地节点41连接时需要进行认证的情况下利用的信息。
“顶点数据列表”是包含与要转移的顶点数据505对应的元素在内的列表。“顶点数据列表”中包含的各元素相当于生成元素,与从转移源分布式账本转移到转移目的地分布式账本的电子数据的至少一部分对应。与“顶点数据列表”中包含的元素对应的顶点数据505表示能够在生成转移数据510的时机登记的数据,因此,数据转移装置1也可以按照任意顺序将顶点数据505表示的数据登记于转移目的地账本网络4。但是,在存在多个转移数据510的情况下,数据转移装置1需要从“顺序数据”所示的顺序靠前的转移数据510起依次进行顶点数据505的登记。
以下,示出数据转移装置1采用事务关系图表504作为事务关系数据的情况下的转移数据510的生成和发送的具体例。
图14是示出数据生成部132生成转移数据510的处理和向数据发送部133发送已生成的转移数据510的处理的一例的流程图。参照本图说明数据生成部132和数据发送部133的处理。
(步骤S141)
数据生成部132取得转移源分布式账本的事务关系图表504中的、未设定有数据登记条件的顶点数据505,将已取得的顶点数据505登记于列表。数据生成部132利用转移目的地数据登记请求509的“取得对象账本ID”,从事务关系数据记录部122取得与转移源分布式账本对应的事务关系图表504。未设定有数据登记条件的顶点数据505是与事务关系图表504的“顶点集合”中包含的顶点对应的顶点数据505中的、没有被设定成与事务关系图表504的“边集合”中包含的边对应的边数据506的“输入侧顶点ID”的顶点数据505。
(步骤S142)
数据生成部132参照列表内的各顶点数据505,根据转移规则提取顶点数据505,使用提取出的顶点数据505,生成转移数据510。
作为具体例,关于转移规则,可举出将列表中包含的全部顶点数据505包含于转移数据510的规则。作为具体例,说明利用区块链作为分布式账本的情况。在该情况下,如果将列表中包含的多个顶点数据505汇总成1个块数据,则能够削减每一个事务的共识形成时间,因此,能够缩短数据转移所需的时间。作为其他转移规则,也可举出如下规则:更优先使用与构成登记更多个事务的前提条件的事务对应的顶点数据505,生成转移数据510。在利用区块链时应用了该规则的情况下,数据生成部132更优先使用与构成登记更多个事务的前提条件的事务对应的顶点数据505,生成转移数据510,生成的转移数据510登记于转移目的地账本网络4。由此,数据转移装置1能够登记将登记优先的转移数据510设为登记前提条件的多个事务。如果将能够通过登记作为多个事务的前提条件的事务来登记的事务组汇总成1个块数据,则能够削减每一个事务的共识形成所需的时间,因此,能够缩短数据转移所需的时间。在此,假设存在管理商品的可追溯性的分布式账本活用系统,将N设为自然数,在该系统中,管理将装有N个商品的1个瓦楞纸开封的处理即“瓦楞纸的开封”和向使用装在瓦楞纸中的各商品的部门分发各商品的处理即“N个商品的分发”。此时,在记录“瓦楞纸的开封”和“N个商品的分发”作为可追溯性数据的情况下,如果未实施“瓦楞纸的开封”,则无法实施“N个商品的分发”。因此,“瓦楞纸的开封”相当于“作为多个事务的前提条件的事务”,在登记有“瓦楞纸的开封”的情况下,“N个商品的分发”相当于上述的“事务组”。
作为转移规则可考虑各种规则,通过数据生成部132根据事务关系数据适当地切换或者组合转移规则,数据转移装置1能够高效地转移数据。
说明数据生成部132使用提取出的顶点数据505生成转移数据510的具体方法。数据生成部132以转移数据510的“顺序数据”的值在流程图的反复处理中不重复的方式,根据之前生成的转移数据510以应用于转移目的地账本网络4的方式设定“顺序数据”的值。数据生成部132对转移数据510的“账本名称”、“连接转移目的地节点”和“连接转移目的地节点资格信息”设定转移目的地数据登记请求509所示的值。数据生成部132对“顶点数据列表”设定与列表中包含的顶点数据505对应的值。数据生成部132也可以对“顶点数据列表”设定顶点数据505本身,此外,也可以对“顶点数据列表”设定登记顶点数据505的“顶点ID”等用于参照顶点数据505的信息。
(步骤S143)
数据生成部132向数据发送部133发送已生成的转移数据510。
(步骤S144)
数据生成部132提取具有列表内的各顶点数据505的“顶点ID”的值作为“输出侧顶点ID”的值的边数据506。
(步骤S145)
数据生成部132将与提取出的各边数据506的输入侧顶点ID对应的顶点数据505登记于候选列表。另外,数据生成部132不将已登记于候选列表中的顶点数据505重复登记于候选列表。候选列表是在针对候选列表包含的元素的处理的时刻满足数据登记条件的至少一部分的顶点数据505的列表。某顶点数据505的数据登记条件是指通过循环中的步骤S144的处理全部提取出具有该某顶点数据505的“顶点ID”作为“输入侧顶点ID”的边数据506,直到执行本步骤的处理为止。循环是该流程图中的反复处理。
(步骤S146)
数据生成部132针对候选列表包含的各顶点数据505,通过在数据生成部132开始本流程图的处理之后到执行本步骤的处理为止提取出的各边数据506,确认是否满足数据登记条件,将满足登记条件的顶点数据505登记于下一个列表。下一个列表是将在循环处理的过程中全部满足数据登记条件的顶点数据505设为元素的列表。与满足登记条件的顶点数据505对应的数据是能登记数据。
示出步骤S144~步骤S146的处理的具体例。在事务关系图表504中,假设存在边e1(v1,v2)、边e2(v3,v2)和边e3(v4,v2),作为具有“顶点ID”为v2的顶点数据505(以下,称作顶点v2)作为“输入侧顶点ID”的边数据506。在此,边e1(v1,v2)表示“边ID”为e1、“输出侧顶点ID”为v1、“输入侧顶点ID”为v2的边数据506。
假设在某循环的步骤S144中,从该事务关系图表504中提取出边e1(v1,v2)。此时,在该某循环的步骤S145中,在边e1的“输入侧顶点ID”中设定的顶点v2未登记于候选列表的情况下,数据生成部132将顶点v2登记于候选列表。在该某循环的步骤S146中,关于顶点v2,由于已经提取出数据登记条件中的边e1(v1,v2),因此,如果进一步提取边e2(v3,v2)和边e3(v4,v2),则判断为能登记顶点v2。数据生成部132以这样的方式针对各顶点确认是否满足数据登记条件,在步骤S146的处理中,将满足数据登记条件的顶点数据505登记于下一个列表。
(步骤S147)
数据生成部132确认列表和下一个列表是否为空。
在列表和下一个列表为空的情况下,数据生成部132进入步骤S149。在除此以外的情况下,即,在列表和下一个列表中的至少一方不为空的情况下,数据生成部132进入步骤S148。
(步骤S148)
数据生成部132从列表中删除转移数据510中包含的顶点数据505,将下一个列表的顶点数据505追加于列表,使下一个列表为空。
(步骤S149)
数据生成部132向数据发送部133发送表示转移数据510的发送已完成的发送完成通知,结束本流程图的处理。
(步骤S112:转移数据发送处理)
数据发送部133根据从数据生成部132接收到的转移数据510,向转移目的地节点41发送数据。
图15是示出数据发送部133向转移目的地节点41发送数据的处理的一例的流程图。参照本图说明数据发送部133的处理。另外,在本图的说明中,假设对转移数据510的“顺序数据”设定数值,数据发送部133从具有值较小的“顺序数据”的转移数据510起依次进行处理。
(步骤S161)
数据发送部133等待从数据生成部132接收转移数据510或发送完成通知,在接收到数据的情况下,将接收到的数据追加于列表。一次接收的数据不限于1件。此外,数据发送部133也可以在后台执行本步骤的处理。此时,每次都将从数据生成部132接收到的数据追加于列表。
(步骤S162)
数据发送部133从列表中取得1件具有最小的“顺序数据”的数据,从列表中删除已取得的数据。另外,数据发送部133将发送完成通知作为具有最大的“顺序数据”的数据处理。
(步骤S163)
数据发送部133确认已取得的数据是否是发送完成通知。
在已取得的数据是发送完成通知的情况下,数据发送部133结束本流程图的处理。在除此以外的情况下,即,在已取得的数据是转移数据510的情况下,数据发送部133进入步骤S164。
(步骤S164)
数据发送部133根据与已取得的转移数据510的“顶点数据列表”包含的元素对应的顶点数据505,向转移目的地节点41发送数据。
作为具体例,首先,数据发送部133利用转移数据510的“账本名称”、“连接转移目的地节点”和“连接目的地节点资格信息”中的至少任意一个等,与转移目的地节点41连接。接着,数据发送部133通过参照与各顶点数据505对应的已筛选事务数据502和补充数据503中的至少任意一个,结合已参照的数据,向转移目的地节点41发送事务,或者调用转移目的地节点41的功能,由此完成向转移目的地节点41的数据发送,其中,该各顶点数据505与“顶点数据列表”包含的元素对应。
(步骤S165)
数据发送部133确认列表是否为空。
在列表不为空的情况下,数据发送部133进入步骤S162。在列表为空的情况下,数据发送部133进入步骤S161。
在此前的动作的说明中,数据转移对象是转移源账本网络3的转移对象即账本中包含的全部事务。但是,数据转移对象也可以是转移源账本网络3的转移对象即账本中包含的一部分事务。
作为具体例,首先,登记请求部212在向数据转移装置1发送转移目的地数据登记请求509时,将表示作为转移对象事务的信息追加于转移目的地数据登记请求509。接着,数据生成部132在生成转移数据510时,仅将表示作为已指定的转移对象事务的信息转换成转移数据510。由此,数据转移装置1能够仅转移作为转移对象的账本中包含的一部分事务。此时,数据转移装置1也可以确认表示作为已指定的转移对象事务的信息是否必要充分,在信息不充分的情况下,自动地追加不充分的事务。作为具体例,当说明使用了事务关系图表504的情况时,需要为了登记某事务而事先登记的事务被记录成边数据506。因此,数据转移装置1能够通过从该边数据506递归地追踪关联的顶点数据505,在指定时发现不充分的事务。作为具体步骤,首先,数据生成部132取得具有与表示作为已指定的转移对象事务的信息对应的顶点数据505作为“输入侧顶点ID”的边数据506,取得这些边数据506的“输出侧顶点ID”中设定的顶点数据505。并且,数据生成部132取得具有已取得的顶点数据505作为“输入侧顶点ID”的边数据506,递归地反复取得已取得的边数据506的“输出侧顶点ID”中设定的顶点数据505。表示顶点数据505组不充分的事务,该顶点数据505组是从在递归的搜索过程中得到的顶点数据505组中去除与对应于表示作为最初指定的转移对象事务的信息的顶点数据505组的重复而得到的。在递归的搜索过程中得到的顶点数据505组与对应于表示作为最初指定的转移对象事务的信息的顶点数据505组的和集合,是在转移与表示作为已指定的转移对象事务的信息对应的数据时所需的事务。
在此前的动作的说明中,示出了数据转移装置1将1个转移源分布式账本转移到1个转移目的地分布式账本时的动作。但是,数据转移装置1也可以将在多个转移源分布式账本之间不包含相同内容的事务设为条件,将多个转移源分布式账本转移到1个转移目的地分布式账本。因此,数据转移装置1也可以是如下结构:通过整理不重复包含相同内容的事务的多个转移源分布式账本的事务并向多个转移目的地分布式账本分配数据,转移数据。
***实施方式1的效果的说明***
如上所述,根据本实施方式,能够由数据提取部11、转移顺序生成部12和补充数据管理部14使用从转移源账本网络3取得并且加工而得到的已筛选事务数据502和补充数据503、以及从外部输入的补充数据503,生成辅助引导将事务比较高效地登记于转移目的地账本网络4中的顺序的事务关系数据。并且,数据登记部13能够通过利用已生成的事务关系数据,将转移数据510比较高效地登记于转移目的地账本网络4。因此,根据本实施方式,能够比较高效地将事务的数据转移到环境与转移源账本网络3不同的转移目的地账本网络4。
此外,作为实现从转移源分布式账本到转移目的地分布式账本的数据转移的手段,存在从转移源分布式账本中保存的最早的事务起一件一件地将相同内容的事务登记于转移目的地分布式账本的方法(以下,表述为逐次法)。
关于逐次法,将事务一件一件地登记于转移目的地分布式账本,以可靠地使登记于转移目的地分布式账本中的事务的顺序与转移源分布式账本中的事务的登记顺序一致。但是,在分布式账本中,多个节点进行共识形成。因此,存在如下课题:从事务的登记请求到登记完成需要时间,数据转移所需的时间变长。另外,在作为一种分布式账本的区块链中,事务被汇总成多个,以块为单位登记数据。由于以块为单位进行共识形成,因此,能够通过将多个事务包含于1个块,缩短每一个事务的共识形成所需的时间。但是,此时,不存在指定事务的应用顺序的现有技术,转移源分布式账本中的事务的登记顺序与转移目的地分布式账本中的事务的登记顺序有可能不一致。因此,不能够仅利用在块中汇总多个事务的方法。但是,根据本实施方式,能够将能登记于转移目的地分布式账本中的多个事务统一转移到转移目的地分布式账本。因此,根据本实施方式,与采用了逐次法的情况相比,能够高效地将电子数据从转移源分布式账本转移到转移目的地分布式账本。
***其他结构***
<变形例1>
图16示出本变形例的数据转移装置1的硬件结构例。
如该图所示,数据转移装置1具有处理电路88,以代替处理器81、存储器82和辅助存储装置84中的至少1个。
处理电路88是实现数据转移装置1具有的各部中的至少一部分的硬件。
处理电路88可以是专用硬件,此外,也可以是执行存储器82中存储的程序的处理器。
在处理电路88是专用硬件的情况下,作为具体例,处理电路88是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC(ASIC是Application SpecificIntegrated Circuit:专用集成电路)、FPGA(Field Programmable Gate Array:现场可编程门阵列)或者它们的组合。
数据转移装置1也可以具有代替处理电路88的多个处理电路。多个处理电路分担处理电路88的作用。
在数据转移装置1中,也可以是一部分的功能通过专用硬件实现,剩余的功能通过软件或固件实现。
作为具体例,处理电路88通过硬件、软件、固件或它们的组合实现。
将处理器81、存储器82、辅助存储装置84和处理电路88统称作“处理线路”。即,数据转移装置1的各功能结构要素的功能通过处理线路实现。
关于数据转移系统90具有的其他各装置和其他实施方式的数据转移系统90具有的各装置,也可以是与本变形例相同的结构。
实施方式2
以下,参照附图主要对与上述的实施方式不同的方面进行说明。
***结构的说明***
在实施方式1中,说明了如下情形:能够与转移源账本网络3和转移目的地账本网络4连接,并且,能够将转移源账本网络3包含的转移对象即事务登记于转移目的地账本网络4中的代表者利用1个数据转移装置1,转移数据。
在本实施方式中,在设定有转移源账本网络3包含的转移对象即事务的取得权限的情况下或者设定有针对转移目的地账本网络4的事务的登记权限的情况等下,多个参加者一边协作一边通过多个数据转移装置1转移数据。参加者是数据转移装置1的利用者或数据转移装置1。利用者也可以是计算机等。
图17示出本实施方式的数据转移系统90的结构例。本实施方式与实施方式1的主要差异在于数据转移系统90具有多个数据转移装置1,各数据转移装置1具有账本更新监视部15,追加有从各数据转移装置1的数据登记部13到作为协作对象的其他各数据转移装置1的账本更新监视部15的通信路径。在本实施方式中,具有其他数据转移装置1的数据转移系统90具有数据转移装置1,所述其他数据转移装置1具有与数据转移装置1相同的功能。任何数据转移装置1都与转移源账本网络3和转移目的地账本网络4连接。另外,为了区分多个数据转移装置1,使用“-1”等。多个数据转移装置1能够分别通过使数据转移系统90成为这样的结构,一边由账本更新监视部15确认数据转移的进展状况一边在适当的时机转移适当的事务。
在本图中,示出数据转移装置1与其他数据转移装置1进行直接通信的情况。但是,数据转移装置1也可以通过某些装置或单元等与其他数据转移装置1进行通信。作为具体例,作为各数据转移装置1能访问的中介单元,数据转移系统90也可以具备DB或数据层等数据存储器、消息队列等消息分发系统或者分散式账本系统等,双方的数据转移装置1经由中介单元交换数据。此外,在转移目的地节点41能附加与事务相关的任意数据的情况下,多个数据转移装置1之间的通信也可以经由转移目的地节点41而实现。
图18示出数据转移系统90具有的各装置的硬件结构例。本实施方式与实施方式1的主要差异在于是为了使各数据转移装置1与其他数据转移装置1进行通信而双方加入相同的网络的结构。但是,在经由转移目的地节点41实现数据转移装置1之间的通信的情况下,硬件结构也可以是与实施方式1相同的硬件结构。
图19示出数据转移系统90具有的各装置的软件结构例。本实施方式与实施方式1的主要差异在于数据转移装置1具有账本更新监视部15的方面。
账本更新监视部15从登记请求受理部131接收转移目的地节点41、转移目的地分布式账本和转移目的地分布式账本的账本ID中的至少任意一个等,监视作为对象的转移目的地分布式账本中的事务登记的状况。此外,账本更新监视部15从其他数据转移装置1的数据发送部133接收表示事务的转移源中的事务ID与在将该事务登记于转移目的地时新设定的事务ID的对应的信息,将接收到的信息和事务登记的状况适当地通知给数据生成部132。账本更新监视部15取得其他装置登记信息,所述其他装置登记信息表示转移目的地分布式账本从其他数据转移装置1接收并且登记于转移目的地分布式账本中的数据。
数据生成部132也可以在转移所述电子数据的中途,根据转移目的地分布式账本从数据发送部接收并且登记于转移目的地分布式账本中的数据和其他装置登记信息,生成各个生成元素。
数据发送部133也可以根据其他装置登记信息,向转移目的地分布式账本发送与各个生成元素对应的数据。此外,数据发送部133也可以通过数据发送部133向转移目的地分布式账本发送与各个生成元素对应的数据,向其他数据转移装置1发送表示转移目的地分布式账本登记的数据的信息。
***动作的说明***
由于直到生成事务关系数据的步骤为止与实施方式1相同,因此省略。另外,某数据转移装置1的数据取得部112在从转移源节点31取得“取得对象账本名称”中设定的账本中记录的事务和与事务有关的补充数据503时,有时因设定有访问权限等理由而无法取得事务和补充数据503中的至少一部分。在该情况下,该某数据转移装置1也可以使用某些手段,共享具有访问权限的其他参加者取得的事务和补充数据503中的至少一部分,登记已共享的数据作为补充数据503。由此,作为具体例,在数据转移装置1利用事务关系图表504作为事务关系数据时,即使已不能从转移源节点31直接取得与构成某参加者应该登记于转移目的地分布式账本中的事务的能登记条件的事务相关的信息,该某参加者也能够得到和利用能取得该信息的其他参加者取得的信息作为补充数据503。其结果是,该某参加者能够生成有效的事务关系图表504。
以下,说明数据转移装置1利用事务关系数据和补充数据503将数据转移到转移目的地账本网络4的步骤。
另外,将某数据转移装置1简记作数据转移装置1,将除了该某数据转移装置1以外的数据转移装置1记作其他数据转移装置1。其他数据转移装置1不限于1个数据转移装置1。此外,在仅记述有数据转移装置1具有的要素的名称的情况下,是指该某数据转移装置1具有的要素。
图20是示出本实施方式的数据转移系统90的动作的一例的流程图。参照本图说明数据转移系统90的动作。
(步骤S201:登记请求发送处理)
登记请求部212向数据转移装置1发送转移目的地数据登记请求509b。
图21示出本实施方式中的转移目的地数据登记请求509b的一例。转移目的地数据登记请求509b和转移目的地数据登记请求509的主要差异在于添加有“协作数据转移装置信息”。
“协作数据转移装置信息”由具有转移目的地数据登记请求509b的数据转移装置1协作的其他各数据转移装置1的连接信息构成,也被称作协作数据提取/转移装置信息。作为具体例,连接信息是协作的其他各数据转移装置1的IP地址等位置信息、ID和密码、或者加密密钥或令牌等资格信息等与其他数据转移装置1连接所需的信息。“装置2”等是要协作的其他各数据转移装置1的名称。
(步骤S202:登记请求接收处理)
登记请求受理部131接收转移目的地数据登记请求509b,向账本更新监视部15和数据生成部132发送接收到的转移目的地数据登记请求509b。
(步骤S203:连接处理)
账本更新监视部15基于接收到的转移目的地数据登记请求509b表示的信息,与转移目的地节点41连接,监视已连接的转移目的地节点41中的转移目的地分布式账本的事务登记的状况。
此外,账本更新监视部15基于接收到的转移目的地数据登记请求509b表示的信息,与其他数据转移装置1的数据发送部133连接,开始从该其他数据转移装置1的数据发送部133接收表示与该数据发送部133发送的转移源事务对应的事务ID和在将该事务登记于转移目的地分布式账本时新设定的事务ID的对应的信息。
(步骤S204:转移数据生成处理)
数据生成部132利用登记请求受理部131接收到的转移目的地数据登记请求509b、事务关系数据记录部122记录的事务关系数据和补充数据记录部142记录的补充数据503,生成转移数据510,向数据发送部133适当地发送已生成的转移数据510。
以下,对数据转移装置1采用事务关系图表504作为事务关系数据的情况下的转移数据510的生成和发送进行说明。
图22和图23是示出数据生成部132生成转移数据510的处理和向数据发送部133发送已生成的转移数据510的处理的一例的流程图。参照这些图说明数据生成部132的处理。另外,1个流程图被分割成图22和图23。
(步骤S221)
数据生成部132取得与和转移源分布式账本相关的事务关系图表504的“顶点集合”包含的元素对应的顶点数据505中的、数据转移装置1能登记并且未设定有数据登记条件的顶点数据505,将已取得的顶点数据505登记于列表。数据生成部132利用转移目的地数据登记请求509b的“取得对象账本ID”,从事务关系数据记录部122取得与转移源分布式账本对应的事务关系图表504。
作为具体例,数据生成部132根据与某顶点数据505对应的已筛选事务数据502的“执行者信息”是否与数据转移装置1的持有者一致,判定数据转移装置1是否能登记该某顶点数据505。在此,在“执行者信息”与持有者一致的情况下,数据生成部132视为能登记顶点数据505。作为其他判定方法,通过预先设定已筛选事务数据502的“执行者信息”与数据转移装置1的持有者的对应关系作为补充数据503,即使在“执行者信息”与持有者不一致的情况下,数据生成部132也可以判定为数据转移装置1能登记顶点数据505。此外,数据转移装置1也可以设定能够按照每个事务登记的数据转移装置1的持有者作为补充数据503。
未设定有数据登记条件的顶点数据505是与事务关系图表504的“顶点集合”包含的顶点对应的顶点数据505中的、未被设定成与“边集合”包含的边对应的边数据506的“输入侧顶点ID”的顶点数据505。
(步骤S222)
数据生成部132取得与由其他数据转移装置1登记于转移目的地分布式账本中的事务对应的顶点数据505。数据生成部132也可以利用其他装置登记信息,取得该顶点数据505。
作为具体例,数据生成部132通过询问账本更新监视部15,确认是否具有在从上次询问账本更新监视部15时起到本次询问账本更新监视部15为止的期间内登记于转移目的地分布式账本中的事务。在具有该事务的情况下,数据生成部132将与该事务对应的顶点数据505返还到账本更新监视部15。在没有该事务的情况下,数据生成部132也可以等待至具有事务的登记为止,还可以视为已不能取得事务而直接继续进行处理。在直接继续进行处理的情况下,数据生成部132跳过步骤S223~步骤S225的处理,执行步骤S226的处理。
(步骤S223)
数据生成部132提取具有在步骤S222的处理中取得的各顶点数据505的“顶点ID”作为“输出侧顶点ID”的边数据506。
(步骤S224)
数据生成部132将与提取出的各边数据506的“输入侧顶点ID”对应的顶点数据505登记于候选列表。在某顶点数据505已登记于候选列表的情况下,数据生成部132不将该某顶点数据505重复登记于候选列表。候选列表是在针对候选列表包含的元素的处理的时刻满足数据登记条件中的至少一部分的顶点数据505的列表。关于某顶点数据505的数据登记条件,通过循环中的步骤S223和步骤S228的处理全部提取具有该某顶点数据505的“顶点ID”作为“输入侧顶点ID”的边数据506,直到执行本步骤的处理为止。
(步骤S225)
数据生成部132针对候选列表包含的各顶点数据505,通过在数据生成部132开始本流程图所示的处理之后到执行本步骤的处理为止提取出的各边数据506,确认是否满足数据登记条件,将满足数据登记条件的顶点数据505登记于列表。
(步骤S226)
数据生成部132参照列表内的各顶点数据505,根据转移规则提取顶点数据505,使用提取出的顶点数据505,生成转移数据510。转移规则与实施方式1的转移规则相同。转移数据510的生成方法与实施方式1的转移数据510的生成方法相同。
另外,在列表为空的情况下,数据生成部132跳过步骤S226~步骤S230的处理,进行步骤S231的处理。
(步骤S227)
数据生成部132向数据发送部133发送已生成的转移数据510。
(步骤S228)
数据生成部132提取具有列表内的各顶点数据505的“顶点ID”作为“输出侧顶点ID”的边数据506。本步骤的处理与步骤S223的处理相同。
(步骤S229)
数据生成部132将与提取出的各边数据506的“输入侧顶点ID”对应的顶点数据505登记于候选列表。本步骤的处理与步骤S224的处理相同。
(步骤S230)
数据生成部132针对候选列表包含的各顶点数据505,通过在数据生成部132开始本流程图的处理之后到执行本步骤的处理为止提取出的各边数据506,确认是否满足数据登记条件,将满足登记条件的顶点数据505登记于下一个列表。下一个列表与实施方式1的下一个列表相同。
(步骤S231)
数据生成部132确认列表和下一个列表是否为空。
在列表和下一个列表为空的情况下,数据生成部132进入步骤S233。在除此以外的情况下,数据生成部132进入步骤S232。
(步骤S232)
数据生成部132从列表中删除转移数据510中包含的顶点数据505,将下一个列表包含的顶点数据505追加于列表,使下一个列表为空。然后,数据生成部132进入步骤S226。
(步骤S233)
数据生成部132确认是否残留有应该登记的事务。应该登记的事务是指数据转移装置1能登记的全部事务。能登记的事务如在步骤S221中说明的那样。
在残留有应该登记的事务的情况下,数据生成部132实施步骤S222的处理,通过其他数据转移装置1确认是否没有满足数据登记条件的事务。在除此以外的情况下,数据生成部132进入步骤S234。
(步骤S234)
数据生成部132向数据发送部133发送发送完成通知,结束本流程图的处理。
(步骤S205:数据发送处理)
数据发送部133根据从数据生成部132接收到的转移数据510,向转移目的地节点41发送数据。此外,数据发送部133向其他数据转移装置1的账本更新监视部15发送将数据登记于转移目的地节点41中的结果。
图24是示出数据发送部133向转移目的地节点41和其他数据转移装置1的账本更新监视部15发送数据的动作的一例的流程图。参照本图说明数据发送部133的动作。在本例子中,设为设定有数值作为转移数据510的“顺序数据”,数据发送部133从具有值较小的“顺序数据”的转移数据510起依次进行处理。
(步骤S241)
数据发送部133将从数据生成部132接收到的数据追加于列表。本步骤的处理与步骤S161的处理相同。
(步骤S242)
数据发送部133从列表取得数据。本步骤的处理与步骤S162的处理相同。
(步骤S243)
数据发送部133确认已取得的数据是否是发送完成通知。
在已取得的数据是发送完成通知的情况下,数据发送部133结束本流程图的处理。在除此以外的情况下,即,在已取得的数据是转移数据510的情况下,数据发送部133进入步骤S244。
(步骤S244)
数据发送部133向转移目的地节点41发送转移数据510,该转移目的地节点41与和已取得的转移数据510的“顶点数据列表”包含的元素对应的顶点数据505中的、和尚未登记于转移目的地分布式账本中的数据对应的顶点数据505对应。
作为具体例,数据发送部133能够通过利用账本更新监视部15,调查与某顶点数据505对应的数据是否登记于转移目的地分布式账本。具体而言,数据发送部133能够通过确认在表示账本更新监视部15管理的事务登记的状况的信息中是否登记有与已取得的转移数据510的“顶点数据列表”包含的元素对应的顶点数据505的“事务ID”作为登记完成事务,判断该顶点数据505是否是与登记于转移目的地分布式账本中的数据对应的顶点数据505。作为其他调查方法,可举出数据发送部133询问转移目的地节点41是否能够执行与该顶点数据505对应的事务的方法。作为具体例,考虑作为数据转移对象的账本的智能合约是如下逻辑的情况:判定是否要双重登记内容相同的数据,在要双重登记的情况下,丢弃事务。在该情况下,首先,数据发送部133向转移目的地节点41发送与该顶点数据505对应的数据。接着,转移目的地节点41通过智能合约判定是否能登记与该顶点数据505对应的数据。接着,数据发送部133在能登记与该顶点数据505对应的数据的情况下,判断为与该顶点数据505对应的数据未登记于转移目的地分布式账本。此外,在该情况下,也可以采用数据发送部133将数据登记于转移目的地节点41的方法,而不是询问转移目的地节点41的方法。在采用数据发送部133登记数据的方法的情况下,如果数据发送部133能够顺利地将与该顶点数据505对应的数据登记于转移目的地节点41,则能够判断为该数据尚未登记于转移目的地分布式账本,如果不能将该数据登记于转移目的地节点41,则能够判断为该数据已登记于转移目的地分布式账本。
说明数据发送部133向转移目的地节点41发送数据的处理的具体例。首先,数据发送部133利用转移数据510的“账本名称”、“连接目的地节点”和“连接目的地节点资格信息”中的至少任意一个等,与转移目的地节点41连接。接着,数据发送部133参照与顶点数据505对应的已筛选事务数据502和补充数据503中的至少任意一个,其中,该顶点数据505与“顶点数据列表”包含的各元素对应。接着,数据发送部133可以根据已参照的数据,向转移目的地节点41发送事务,也可以调用转移目的地节点41的功能。由此,向转移目的地分布式账本的数据发送完成。
(步骤S245)
数据发送部133确认列表是否为空。
在列表为空的情况下,数据发送部133进入步骤S241。在除此以外的情况下,数据发送部133进入步骤S242。
在此前的动作的说明中,数据转移对象为转移源账本网络3的转移对象即账本包含的全部事务。但是,数据转移对象也可以为转移源账本网络3的转移对象即账本中包含的一部分事务。此时的数据转移装置1的处理与实施方式1相同,因此,省略该处理的说明。
***实施方式2的效果的说明***
如上所述,根据本实施方式,数据转移装置1具有账本更新监视部15,并且,多个数据转移装置1协作地进行动作。因此,本实施方式的数据转移装置1即使在具有实施方式1的特征并且设定有转移源账本网络3中包含的转移对象事务的取得权限的情况下或者在设定有针对转移目的地账本网络4的事务的登记权限的情况等下,也能够转移数据。
实施方式3
以下,参照附图主要对与上述的实施方式不同的方面进行说明。
***结构的说明***
本实施方式的数据转移装置1具有如下功能:确认通过上述的实施方式生成的转移目的地分布式账本是否与转移源分布式账本相同。另外,本功能也可以与其他任意的实施方式组合,但为了方便说明,说明对实施方式1追加有本功能的具体例。本实施方式的处理能够在将转移源分布式账本记录的电子数据的至少一部分转移到转移目的地分布式账本之后实施。
图25示出本实施方式的数据转移系统90的结构例。本实施方式与实施方式1的主要差异在于数据转移装置1具有数据验证部16,管理装置2具有数据验证请求部23。
数据取得部112根据数据验证请求511,从转移目的地分布式账本取得包含作为与转移目的地转移数据的各元素对应的数据的转移目的地数据在内的转移目的地取得数据。数据验证请求511是验证转移源分布式账本与转移目的地分布式账本的同一性的请求。转移目的地转移数据与转移数据510相同。转移目的地取得数据与取得数据相同。转移目的地数据与对应于生成元素的数据相同。转移目的地转移数据是与转移数据510中的至少一部分对应的数据。
数据筛选部113从转移目的地取得数据中筛选并提取转移目的地数据。
在不存在与任何转移目的地数据对应的补充数据503的情况下,事务关系数据生成部121也可以根据需要使用转移目的地数据,生成转移目的地事务关系数据。此外,在存在与转移目的地数据中的至少任意一个分别对应的补充数据503的情况下,事务关系数据生成部121也可以根据需要,使用转移目的地数据和与转移目的地数据中的至少任意一个分别对应的补充数据503,生成转移目的地事务关系数据。转移目的地事务关系数据与作为事务关系数据中的至少一部分的比较用关系数据对应。比较用关系数据与此前转移到转移目的地分布式账本的电子数据对应。在将应该转移的电子数据全部转移到转移目的地分布式账本的情况下,比较用关系数据是事务关系数据。
数据验证部16验证转移源分布式账本与转移目的地分布式账本之间有无差异。作为具体例,数据验证部16从管理装置2接收数据验证请求511,利用转移源分布式账本和转移目的地分布式账本各自的事务关系数据和补充数据503,实施具有该数据验证部16的数据转移装置1设为转移对象的转移源分布式账本与转移目的地分布式账本的比较。数据验证部16分别利用转移顺序生成部12和补充数据管理部14管理的数据作为账本的事务关系数据和补充数据503。在不存在转移顺序生成部12和补充数据管理部14中的任意一个所需的数据的情况下,数据验证部16向数据提取部11适当地发送取得请求,请求从账本取得必要的数据。数据验证部16通过对比较用关系数据和转移目的地事务关系数据进行比较,验证转移源分布式账本与转移目的地分布式账本的同一性。
数据验证请求部23向数据转移装置1发送数据验证请求511。
图26示出本实施方式的数据转移系统90具有的各装置的软件结构例。本实施方式与实施方式1的主要差异在于数据转移装置1具有数据验证部16,管理装置2具有数据验证请求部23。
数据验证部16具有验证请求受理部161、验证数据取得请求部162和验证部163。
验证请求受理部161从数据验证请求部23受理数据验证请求511。
验证数据取得请求部162从验证请求受理部161接收数据验证请求511,确认接收到的数据验证请求511的内容。在未生成作为比较对象的账本的事务关系数据和关联的补充数据503中的至少任意一个的情况下,验证数据取得请求部162请求取得请求受理部111从持有该账本的节点取得数据,使用已取得的数据,生成事务关系数据和关联的补充数据503中的至少任意一个。
验证部163通过利用各账本的事务关系数据和关联的补充数据503,根据数据验证请求511表示的比较方法,对作为数据验证请求511表示的比较对象的各账本进行比较,验证各账本是否一致。
***动作的说明***
图27是示出本实施方式的数据转移系统90的动作的一例的流程图。参照本图说明数据转移系统90的动作。
(步骤S301:验证请求发送处理)
数据验证请求部23向数据转移装置1发送数据验证请求511。
图28示出数据验证请求511的具体例。数据验证请求511包含“比较方法”、“数据对应关系”和表示作为比较对象的各账本的信息的“比较对象账本信息”。此外,各“比较对象账本信息”包含“比较对象账本ID”、“比较对象账本名称”、“连接节点”和“连接节点资格信息”。“比较对象账本ID”是“转移源账本ID”和“转移目的地账本ID”的总称。“比较对象账本名称”是“转移源账本名称”和“转移目的地账本名称”的总称。“连接节点”是“转移源连接节点”和“转移目的地连接节点”的总称。“连接节点资格信息”是“转移源连接节点资格信息”和“转移目的地连接节点资格信息”的总称。
“比较方法”是表示确定对作为比较对象的账本进行比较的方法的规则的信息。作为规则的一例,可举出对事务关系数据进行比较。本例子是如下规则:在从作为比较对象的账本分别提取出的事务数据和表示事务数据之间的关联性的事务关系数据分别是逻辑上相同的内容的情况下,视作作为比较对象的账本一致。
“数据对应关系”具体地总结出如下情形:在某项目的值在作为比较对象的账本之间不同的情况下,该某项目的值表现的内容一致。作为具体例,有时在转移目的地分布式账本中变更数据登记的执行者。在该情况下,当利用数据登记的执行者的值时,判定为转移源分布式账本的内容与转移目的地分布式账本的内容根据“比较方法”而不一致。但是,通过预先记述在“数据对应关系”中这些执行者对应,数据验证部16能够视为这些执行者一致,因此,能够视为内容在作为比较对象的账本之间一致。作为“数据对应关系”的具体例,可举出表示账本1的用户A和账本2的用户B是相同用户的信息等表示用户的信息、或者表示执行顺序的信息等。事务ID也是值在转移源分布式账本与转移目的地分布式账本之间典型地不同的信息。关于事务ID,也可以在数据转移时,数据发送部133或账本更新监视部15等保持数据转移前后的事务ID的对应关系,数据验证部16也可以利用已保持的事务ID的对应关系。
“账本ID”是分别唯一地表示作为比较对象的账本的标识符。
“比较对象账本名称”是作为比较对象的账本中设定的名称。
“连接节点”是表示在从账本取得数据时连接的节点的位置的信息,与“连接转移源节点”等相同。
“连接节点资格信息”是在与“连接节点”连接时需要进行认证的情况下利用的信息,与“连接转移源节点资格信息”等相同。
另外,针对“比较对象账本信息”中的“比较对象账本名称”、“连接节点”和“连接节点资格信息”,在将表示与它们对应的“比较对象账本ID”表示的账本的事务关系数据保存于事务关系数据记录部122的情况下,也可以不存在。
(步骤S302:验证请求接收处理)
验证请求受理部161从管理装置2接收数据验证请求511,向验证数据取得请求部162发送接收到的数据验证请求511。
(步骤S303:验证请求确认处理)
验证数据取得请求部162从验证请求受理部161接收数据验证请求511,确认接收到的数据验证请求511的内容。
作为具体例,验证数据取得请求部162提取数据验证请求511的各“比较对象账本ID”,确认表示提取出的各“比较对象账本ID”表示的账本的事务关系数据是否保存于事务关系数据记录部122。作为具体例,在数据转移装置1利用事务关系图表504作为事务关系数据的情况下,验证数据取得请求部162确认是否保存有具有值与“比较对象账本ID”相同的“取得对象账本ID”的事务关系图表504。在保存有全部该事务关系图表504的情况下,验证数据取得请求部162向验证部163发送数据验证请求511。关于未保存有事务关系数据的比较对象账本,数据提取部11和转移顺序生成部12生成与该比较对象账本对应的事务关系数据。作为具体例,首先,验证数据取得请求部162使用数据验证请求511包含并且分别表示与作为想要取得的比较对象账本的该比较对象账本对应的“比较对象账本ID”、“比较对象账本名称”、“连接节点”和“连接节点资格信息”的数据,生成转移源数据取得请求501。接着,验证数据取得请求部162通过向取得请求受理部111发送已生成的转移源数据取得请求501,使数据提取部11和转移顺序生成部12生成与想要取得的比较对象账本对应的事务关系数据。已生成的事务关系数据是转移目的地事务关系数据。接着,验证数据取得请求部162确认已生成与数据验证请求511包含的“比较对象账本信息”对应的事务关系数据,向验证部163发送数据验证请求511。
(步骤S304:验证处理)
验证部163从验证数据取得请求部162接收数据验证请求511,开始验证作为比较对象的账本。
作为具体例,首先,验证部163通过确认数据验证请求511的“比较方法”,确认利用何种规则对作为比较对象的账本进行比较。接着,验证部163根据“比较方法”,对与作为各比较对象的账本对应的事务关系数据和关联的补充数据503进行比较。
图29是示出数据转移装置1利用事务关系图表504作为事务关系数据并且验证方法为事务关系图表504的一致的情况下的、验证部163对转移源分布式账本和转移目的地分布式账本进行比较的处理的一例的流程图。参照本图说明验证部163的动作。
(步骤S321)
验证部163整理与转移源分布式账本和转移目的地分布式账本各自的事务关系图表504具有的“顶点集合”包含的元素对应的顶点数据505的对应关系。
图30是示出步骤S321的详细处理的一例的流程图。参照本图说明步骤S321的详细处理。
(步骤S341)
验证部163生成表示转移源分布式账本中的事务ID与转移目的地分布式账本中的事务ID的对应关系的事务ID对应表。
作为具体例,在实施方式2的结构中,账本更新监视部15保管表示转移源事务的事务ID与在将该转移源事务登记于转移目的地时新设定的事务ID的对应的信息。因此,验证部163也可以通过利用账本更新监视部15保管的信息,生成事务ID对应表。此外,在实施方式1的结构中,数据发送部133也可以取得登记于转移目的地分布式账本中的转移目的地事务的事务ID,保管将已取得的事务ID与转移源事务的事务ID建立关联而得到的信息。此时,验证部163也可以通过利用数据发送部133保管的信息,生成事务ID对应表。
(步骤S342)
验证部163将与事务关系图表504的“顶点集合”包含的元素对应的顶点数据505登记于列表,该事务关系图表504与转移源分布式账本对应。
(步骤S343)
验证部163从列表取得1件的顶点数据505,从列表中删除已取得的顶点数据505。
(步骤S344)
验证部163参照事务ID对应表,取得与已取得的顶点数据505的“事务ID”对应的转移目的地分布式账本的事务ID。
(步骤S345)
验证部163根据数据验证请求511的“比较方法”和“数据对应关系”,对与已取得的顶点数据505的“事务ID”对应的已筛选事务数据502和与该已筛选事务数据502相关的补充数据503、与已取得的转移目的地分布式账本中的事务ID对应的已筛选事务数据502和与该已筛选事务数据502相关的补充数据503进行比较。
(步骤S346)
验证部163确认步骤S345中的比较结果是否是转移源事务的内容和与转移源事务对应的转移目的地事务的内容一致。
在两者的内容一致的情况下,验证部163进入步骤S348。在除此以外的情况下,验证部163进入步骤S347。
(步骤S347)
设验证部163确认出在作为比较对象的账本之间在顶点中对应关系不成立,结束本流程图的处理。
(步骤S348)
验证部163确认列表是否为空。
在列表为空的情况下,验证部163进入步骤S349。在除此以外的情况下,验证部163返回步骤S343。
(步骤S349)
设验证部163确认出在作为比较对象的账本之间在顶点中对应关系成立,结束本流程图的处理。
(步骤S322)
验证部163接收步骤S321的处理结果,确认在转移源分布式账本与转移目的地分布式账本之间在顶点中对应关系是否成立。
当在顶点中对应关系成立的情况下,验证部163进入步骤S324。在除此以外的情况下,验证部163进入步骤S323。
(步骤S323)
验证部163通知与转移源分布式账本和转移目的地分布式账本分别对应的事务关系图表504不一致,结束本流程图的处理。
(步骤S324)
验证部163根据顶点数据505的对应关系,整理与转移源分布式账本和转移目的地分布式账本各自的事务关系图表504包含的“边集合”的元素对应的边数据506的对应关系。
作为具体例,假设与转移源分布式账本对应的事务关系图表504为G((v1(1234),v2(2345)),(e1(v1,v2))),与转移目的地分布式账本对应的事务关系图表504为G((v9(9876),v8(8765)),(e9(v9,v8))),事务ID对应表为((1234->9876),(2345->8765))。在此,v1(1234)表示“事务ID”为1234、“顶点ID”为v1的某顶点数据505。e1(v1,v2)表示“边ID”为e1、“输出侧顶点ID”为v1、“输入侧顶点ID”为v2的边数据506。G(V,E)表示由顶点集合V和边集合E构成的事务关系图表504。(1234->9876)表示转移源分布式账本中的事务ID为1234的事务和转移目的地分布式账本中的事务ID为9876的事务对应。此时,根据事务ID对应表可知,关于顶点数据505,v1和v9、v2和v8各自的对应关系成立。因此,当考虑到事务的对应关系时,e9(v9,v8)可以替换为e9(v1,v2),由此,可知e1(v1,v2)和e9(v9,v8)是对应关系成立的边。这样,验证部163针对与事务关系图表504的“边集合”的全部元素分别对应的边数据506,整理对应关系是否成立,所述事务关系图表504与转移源分布式账本和转移目的地分布式账本分别对应。
(步骤S325)
验证部163针对全部边数据506,确认在转移源分布式账本与转移目的地分布式账本之间对应关系是否成立。
在针对全部边数据506,对应关系成立的情况下,验证部163进入步骤S326。在除此以外的情况下,验证部163进入步骤S323。
(步骤S326)
验证部163通知在转移源分布式账本与转移目的地分布式账本之间事务关系图表504一致,结束本流程图的处理。
***实施方式3的效果的说明***
如上所述,根据本实施方式,通过数据转移装置1具有数据验证部16,能够保留上述的实施方式具有的特征,并且验证转移目的地分布式账本中的已转移的数据是否与转移源分布式账本中的元的数据一致。
实施方式4
以下,参照附图主要对与上述的实施方式不同的方面进行说明。
***结构的说明***
数据提取部11和数据登记部13除了分布式账本以外,也可以从数据存储器提取并转移数据。假设数据存储器能够实现登记和参照分布式账本的事务数据的形式中的至少一方。数据存储器也是转移源数据存储器5和转移目的地数据存储器6的总称。
也可以在任意其他实施方式的结构中追加数据存储器,但为了方便说明,以下,说明在实施方式1中追加了数据存储器的情况下的具体例。
图31示出本实施方式的数据转移系统90的结构例。本实施方式与实施方式1的主要差异在于数据提取部11不仅与转移源账本网络3还与转移源数据存储器5连接,数据登记部13不仅与转移目的地账本网络4还与转移目的地数据存储器6连接。转移源数据存储器5也被称作转移源事务形式数据存储器。转移目的地数据存储器6也被称作转移目的地事务形式数据存储器。
图32示出本实施方式的数据转移系统90具有的各装置的硬件结构例。本实施方式与实施方式1的主要差异在于数据转移系统90具有转移源数据存储器5和转移目的地数据存储器6。
图33示出数据转移系统90具有的各装置的软件结构例。本实施方式与实施方式1的主要差异在于数据转移系统90具有转移源数据存储器5和转移目的地数据存储器6。
假设数据取得部112能够利用转移源数据取得请求501的“取得对象账本ID”、“取得对象账本名称”、“连接转移源节点”和“连接转移源节点资格信息”中的至少任意一个等,与转移源数据存储器5连接。数据取得部112也可以根据转移请求,代替从转移源分布式账本而从数据存储器取得包含取得数据在内的数据,该数据存储器记录有与转移源分布式账本记录的数据相同的数据。
转移源数据存储器5具有事务形式参照部51和转移源数据保存部52。
事务形式参照部51接收基于数据取得部112发送的转移源数据取得请求501的数据取得请求,适当地参照转移源数据保存部52保存的数据,并且适当地转换,适当地参照数据取得部112,并且发送适当地转换后的数据。
转移源数据保存部52是根据此前的来自应用的数据处理请求登记并更新数据,并且保持有已参照的记录的数据存储器,是除了最新的数据以外还保持有与数据处理请求对应的执行历史数据的数据存储器。此外,除此以外,假设转移源数据保存部52保存有具有与登记有数据的应用同等的功能的智能合约主体、构建应用并将应用与转移源数据保存部52协作时的事件数据和修改应用的逻辑而得到的事件数据,根据来自事务形式参照部51的参照请求而适当地被调用。
转移源数据存储器5也可以采用集中的账本系统。此时,作为具体例,在事务形式参照部51中,与转移源分布式账本相同的智能合约进行动作,转移源数据保存部52记录与进行动作的智能合约对应的事务和补充数据503。
假设数据发送部133能够利用转移数据510的“账本名称”、“连接转移目的地节点”和“连接转移目的地节点资格信息”中的至少任意一个等,与转移目的地数据存储器6连接。数据发送部133也可以代替向转移目的地分布式账本而向能处理与各个生成元素对应的数据的数据存储器发送与各个生成元素对应的数据。
转移目的地数据存储器6具有事务形式登记部61和转移目的地数据保存部62。
事务形式登记部61接收基于数据发送部133发送的转移数据510的数据,解释接收到的数据,适当地发送登记于转移目的地数据保存部62中的数据。
假设事务形式登记部61具有能实施与已指定的智能合约同等的处理的应用。
转移目的地数据保存部62在从事务形式登记部61具有数据登记或数据参照请求时,适当地登记数据,此外,适当地参照数据。
转移目的地数据存储器6也可以采用集中的账本系统。此时,作为具体例,在事务形式登记部61中,与转移目的地分布式账本相同的智能合约进行动作,转移目的地数据保存部62记录与进行动作的智能合约对应的事务和补充数据503。
***动作的说明***
以下,主要说明关于数据取得部112的动作和数据发送部133的动作的与实施方式1的差异。
图34是示出本实施方式的数据取得部112的动作的一例的流程图。参照本图说明数据取得部112的动作。
(步骤S401:数据取得请求发送处理)
数据取得部112利用转移源数据取得请求501的“连接转移源节点”和“连接转移源节点资格信息”,与转移源节点31或转移源数据存储器5连接。关于数据取得部112与转移源节点31连接的情况下的处理,由于与实施方式1中的处理相同,因此省略说明。在数据取得部112与转移源数据存储器5连接的情况下,数据取得部112向转移源数据存储器5发送包含转移源数据取得请求501的“取得对象账本ID”和“取得对象账本名称”在内的数据取得请求。
(步骤S402:数据发送处理)
事务形式参照部51接收数据取得部112发送的数据取得请求,利用接收到的数据取得请求包含的“取得对象账本ID”和“取得对象账本名称”,从转移源数据保存部52取得与和数据取得请求对应的账本相关的事务相当数据和补充数据503。事务相当数据是相当于事务的数据。事务形式参照部51将已取得的数据转换成与转移源节点31向数据取得部112发送的数据形式相同的数据形式,向数据取得部112发送已转换的数据。具体而言,该相同的数据形式是表示数据筛选部113能够生成已筛选事务数据502和补充数据503的内容的数据。
作为具体例,通过将在转移源数据保存部52中登记有数据的应用视作智能合约并且将从应用向转移源数据保存部52的数据处理请求视作1个事务,能够将转移源数据存储器5的处理视作与分布式账本的动作大致同等的处理。此时,关于针对从应用向转移源数据保存部52的数据处理请求的处理,假设通过利用转移源数据存储器5的事务功能等,以一致的方式执行某集成的数据参照处理、数据登记处理或数据更新处理。此外,分布式账本中的智能合约的部署用的事务是构建应用并且应用与转移源数据保存部52协作时的事件数据。用于更新分布式账本中的智能合约的事务相当于修改应用的逻辑时的事件数据。
示出事务形式参照部51向数据取得部112发送的数据与已筛选事务数据502的具体对应关系的具体例。
首先,说明事务形式参照部51向数据取得部112发送的数据中的、与应用的执行相关的数据和已筛选事务数据502的对应关系的例子。事务形式参照部51利用按照每个应用分配的固有的值作为已筛选事务数据502的“取得对象账本ID”,利用从应用向转移源数据保存部52的数据处理请求的ID作为已筛选事务数据502的“事务ID”。事务形式参照部51利用从应用向转移源数据保存部52的数据处理请求表示的执行顺序信息作为已筛选事务数据502的“执行顺序信息”。假设通过在从应用向转移源数据保存部52的数据处理请求的执行顺序信息中,事先确认从应用向转移源数据保存部52的数据处理请求的日志、应用的构建和协作事件、以及应用的更新事件,从应用顺序较早的数据处理请求和事件起依次分配编号。事务形式参照部51将已筛选事务数据502的“类别”设定成“智能合约执行”,利用应用的名称作为已筛选事务数据502的“执行对象”。事务形式参照部51利用进行了从应用向转移源数据保存部52的数据处理请求时的应用中的处理名称,作为已筛选事务数据502的“执行处理”。事务形式参照部51利用在进行了从应用向转移源数据保存部52的数据处理请求时被交付给转移源数据保存部52的自变量数据,作为已筛选事务数据502的“处理自变量列表”。事务形式参照部51利用应用的持有者或执行者信息作为已筛选事务数据502的“执行者信息”,设定在数据处理请求中进行的对数据存储器的参照和写入的信息作为已筛选事务数据502的“执行结果”。
接着,说明事务形式参照部51向数据取得部112发送的数据中的、与应用的构建相关的数据与已筛选事务数据502以及补充数据503的对应关系的具体例。事务形式参照部51利用按照每个应用分配的固有的值作为已筛选事务数据502的“取得对象账本ID”,设定不与其他事务ID重复并且构建应用并与转移源数据保存部52协作时的事件数据的ID,作为已筛选事务数据502的“事务ID”。事务形式参照部51利用构建应用并与转移源数据保存部52协作时的事件数据的执行顺序信息作为已筛选事务数据502的“执行顺序信息”,对已筛选事务数据502的“类别”设定“智能合约部署”。事务形式参照部51在将应用利用的初始数据登记于转移源数据保存部52时等,与在与应用的执行相关的数据和已筛选事务数据502的对应关系中说明的处理同样地,适当地设定已筛选事务数据502的“执行对象”、“执行处理”和“处理自变量列表”。具体而言,事务形式参照部51利用应用的名称作为“执行对象”,利用构建应用并与转移源数据保存部52协作时的事件数据或修改应用的逻辑而得到的事件数据的事件名称等作为“执行处理”,利用构建应用并与转移源数据保存部52协作时的事件数据或修改应用的逻辑而得到的事件数据的主体等作为“处理自变量列表”。事务形式参照部51利用表示应用的持有者或应用构建的执行者的信息作为已筛选事务数据502的“执行者信息”,适当地设定进行了初始数据登记等时的对转移源数据存储器5的参照和写入的信息作为已筛选事务数据502的“执行结果”。事务形式参照部51针对与已筛选事务数据502相关的补充数据503,对“补充数据ID”设定与其他补充数据ID不重复的值,对“取得对象账本ID”和“事务ID”设定与关联的已筛选事务数据502中设定的取得对象账本ID和事务ID分别相同的值,对“数据类别”设定“智能合约”,对“数据”设定具有与登记有转移源数据保存部52保存的数据的应用同等功能的智能合约的主体。
接着,说明事务形式参照部51向数据取得部112发送的数据中的、与应用的更新相关的数据与已筛选事务数据502以及补充数据503的对应关系的具体例。该对应关系由于与如下对应关系相似,因此,仅对与该对应关系不同的方面进行说明,所述对应关系是与应用的构建相关的数据和已筛选事务数据502以及补充数据503的对应关系。
事务形式参照部51将已筛选事务数据502的“类别”设定成“智能合约更新”,在需要通过应用的更新进行现有数据的转换的情况等下,与在与应用的执行相关的数据和已筛选事务数据502的对应关系中说明的处理同样地,适当地设定已筛选事务数据502的“执行对象”、“执行处理”和“处理自变量列表”。事务形式参照部51在进行了基于应用更新的现有数据的转换等时,对已筛选事务数据502的“执行结果”适当地设定表示对转移源数据存储器5的参照和写入的信息。
根据以上的处理,事务形式参照部51能够将一般的应用和转移源数据存储器5的执行记录转换成与转移源节点31相同的数据形式。
事务形式参照部51向数据取得部112发送转换成与转移源节点31相同的数据形式的数据。
图35是示出本实施方式的数据发送部133的动作的一例的流程图。参照本图说明数据发送部133的动作。
(步骤S421:数据发送处理)
数据发送部133接收数据生成部132生成的转移数据510,利用接收到的转移数据510的“连接转移目的地节点”和“连接转移目的地节点资格信息”,适当地与转移目的地节点41或转移目的地数据存储器6连接。关于数据发送部133与转移目的地节点41连接的情况下的处理,由于与实施方式1中的处理相同,因此省略说明。在数据发送部133与转移目的地数据存储器6连接的情况下,数据发送部133向转移目的地数据存储器6发送基于转移数据510的数据。
(步骤S422:执行处理)
事务形式登记部61从数据发送部133接收数据,适当地实施接收到的数据包含的处理,将处理的结果记录于转移目的地数据保存部62。在此,假设从数据发送部133发送转移数据510的“顶点数据列表”、与“顶点数据列表”包含的元素对应的各顶点数据505、与各顶点数据505对应的已筛选事务数据502和与已筛选事务数据502相关的补充数据503进行说明。
作为具体例,首先,考虑与顶点数据505对应的已筛选事务数据502的“类别”是“智能合约部署”或“智能合约更新”的情况,其中,所述顶点数据505与“顶点数据列表”包含的某元素对应。在该情况下,事务形式登记部61取得与该已筛选事务数据502相关的补充数据503的智能合约主体,生成能够进行与已取得的智能合约主体同等的处理的应用,将已生成的应用的构建或更新记录登记于转移目的地数据保存部62。接着,考虑与顶点数据505对应的已筛选事务数据502的“类别”是“智能合约执行”的情况,其中,所述顶点数据505与顶点数据列表包含的某元素对应。在该情况下,事务形式登记部61根据已筛选事务数据502的内容,执行能执行与在“执行对象”中指定的智能合约同等的处理的应用,将执行应用时的处理结果记录于转移目的地数据保存部62。此外,在能在事务形式登记部61中使与分布式账本相同的智能合约进行动作的情况下,事务形式登记部61也可以直接利用智能合约主体,而不将智能合约主体转换成应用。
***实施方式4的效果的说明***
如上所述,根据本实施方式,除了分布式账本以外,还能够将能进行登记和参照分布式账本的事务数据的形式中的至少任意一方的数据存储器作为对象,实现提取和转移数据中的至少任意一方。此外,根据本实施方式,能够针对由1个数据转移装置1从1个以上的分布式账本和数据存储器中提取出的数据,比较简单地将数据转移到1个以上的其他分布式账本和数据存储器。
此外,本实施方式具有如下特征:能够将1个以上的分布式账本和数据存储器表现为事务关系数据,将与该事务关系数据对应的数据转移到1个以上的其他分布式账本和数据存储器。根据本特征,在整合使用分布式账本作为数据基础的系统和使用数据存储器作为数据基础的系统时,数据转移作业的负责人能够使用1个工具,比较简单地转移数据。因此,根据本实施方式,能够减轻与转移数据的作业有关的人工负荷。
***其他实施方式***
能够实现上述的各实施方式的自由组合、或各实施方式的任意结构要素的变形、或各实施方式中的任意结构要素的省略。
此外,实施方式不限于实施方式1~4中所示的内容,也可以根据需要进行各种变更。使用流程图等说明的步骤也可以适当地变更。
标号说明
1:数据转移装置;11:数据提取部;111:取得请求受理部;112:数据取得部;113:数据筛选部;12:转移顺序生成部;121:事务关系数据生成部;122:事务关系数据记录部;13:数据登记部;131:登记请求受理部;132:数据生成部;133:数据发送部;14:补充数据管理部;141:补充数据受理部;142:补充数据记录部;15:账本更新监视部;16:数据验证部;161:验证请求受理部;162:验证数据取得请求部;163:验证部;2:管理装置;21:转移请求部;211:取得请求部;212:登记请求部;22:补充数据登记请求部;23:数据验证请求部;3:转移源账本网络;31:转移源节点;4:转移目的地账本网络;41:转移目的地节点;5:转移源数据存储器;51:事务形式参照部;52:转移源数据保存部;6:转移目的地数据存储器;61:事务形式登记部;62:转移目的地数据保存部;501:转移源数据取得请求;502:已筛选事务数据;503:补充数据;504:事务关系图表;505:顶点数据;506:边数据;507:主密钥更新历史表;508:智能合约更新历史表;509,509b:转移目的地数据登记请求;510:转移数据;511:数据验证请求;10:计算机;81:处理器;82:存储器;83:通信接口;84:辅助存储装置;88:处理电路;90:数据转移系统。

Claims (11)

1.一种数据转移装置,其中,该数据转移装置具有:
数据取得部,其根据将电子数据从转移源分布式账本转移到转移目的地分布式账本的转移请求,从所述转移源分布式账本取得包含与各个生成元素对应的数据的取得数据,其中,所述各个生成元素是作为包含1个以上的元素的数据即转移数据的各元素而生成的;
数据筛选部,其从所述取得数据中筛选并提取与所述生成元素对应的数据;以及
转移顺序生成部,其使用与所述生成元素对应的数据,生成将与各个所述生成元素对应的数据转移到所述转移目的地分布式账本的转移顺序,
所述转移数据是与所述转移请求对应的数据,
各个所述生成元素与所述电子数据的至少一部分对应。
2.根据权利要求1所述的数据转移装置,其中,
在存在补充数据的情况下,所述转移顺序生成部使用与所述生成元素对应的数据和所述补充数据生成所述转移顺序,其中,所述补充数据是和与所述生成元素对应的数据中的至少1个数据一对一地对应的至少1个数据,并且是辅助将与各个所述生成元素对应的数据转移到所述转移目的地分布式账本的数据。
3.根据权利要求2所述的数据转移装置,其中,
所述数据转移装置还具有:
数据生成部,其使用与所述生成元素对应的数据,根据各个所述生成元素的形式生成各个所述生成元素;以及
数据发送部,其根据所述转移顺序,向所述转移目的地分布式账本发送与各个所述生成元素对应的数据。
4.根据权利要求3所述的数据转移装置,其中,
具备其他数据转移装置的数据转移系统具有所述数据转移装置,所述其他数据转移装置具有与所述数据转移装置相同的功能,
所述数据转移装置还具有账本更新监视部,该账本更新监视部取得表示所述转移目的地分布式账本从所述其他数据转移装置接收并登记于所述转移目的地分布式账本中的数据的其他装置登记信息,
所述数据生成部在转移所述电子数据的中途,根据所述转移目的地分布式账本从所述数据发送部接收并登记于所述转移目的地分布式账本中的数据和所述其他装置登记信息,生成各个所述生成元素,
所述数据发送部根据所述其他装置登记信息,向所述转移目的地分布式账本发送与各个所述生成元素对应的数据,通过所述数据发送部向所述转移目的地分布式账本发送与各个所述生成元素对应的数据,向所述其他数据转移装置发送表示所述转移目的地分布式账本已登记的数据的信息。
5.根据权利要求3或4所述的数据转移装置,其中,
与所述生成元素对应的数据是表示事务的数据,
所述数据筛选部从所述取得数据中提取与所述生成元素对应的数据作为已筛选事务数据,
所述转移顺序生成部具有事务关系数据生成部,在没有所述补充数据的情况下,该事务关系数据生成部使用所述已筛选事务数据,根据所述已筛选事务数据之间的关系,生成作为规定所述转移顺序的数据的事务关系数据,在存在所述补充数据的情况下,该事务关系数据生成部使用所述已筛选事务数据和所述补充数据,生成所述事务关系数据,
所述数据生成部利用所述事务关系数据,生成包含表示所述已筛选事务数据的数据、或者分别表示所述已筛选事务数据和与所述已筛选事务数据对应的补充数据的数据在内的数据,作为各个所述生成元素。
6.根据权利要求5所述的数据转移装置,其中,
所述事务关系数据生成部生成事务关系图表作为所述事务关系数据,该事务关系图表通过图表构造表示所述转移顺序和将所述已筛选事务数据转移到所述转移目的地分布式账本的转移条件,
所述数据生成部利用所述事务关系图表的图表构造,提取能够登记于所述转移目的地分布式账本中的与各个所述生成元素对应的数据作为能登记数据,
所述数据发送部向所述转移目的地分布式账本发送包含所述能登记数据的数据。
7.根据权利要求5或6所述的数据转移装置,其中,
在将所述电子数据的至少一部分转移到所述转移目的地分布式账本之后,
所述数据取得部根据验证所述转移源分布式账本与所述转移目的地分布式账本的同一性的请求即数据验证请求,从所述转移目的地分布式账本取得包含作为与转移目的地转移数据的各元素对应的数据的转移目的地数据在内的转移目的地取得数据,其中,所述转移目的地转移数据是与所述转移数据的至少一部分对应的数据,
所述数据筛选部从所述转移目的地取得数据中筛选并提取所述转移目的地数据,
在与任何所述转移目的地数据对应的补充数据都不存在的情况下,所述事务关系数据生成部使用所述转移目的地数据生成转移目的地事务关系数据,
在存在与所述转移目的地数据中的至少任意一个分别对应的补充数据的情况下,所述事务关系数据生成部使用所述转移目的地数据和与所述转移目的地数据中的至少任意一个分别对应的补充数据,生成转移目的地事务关系数据,
转移目的地事务关系数据与作为所述事务关系数据的至少一部分的比较用关系数据对应,
所述数据转移装置还具有数据验证部,该数据验证部通过对所述比较用关系数据与所述转移目的地事务关系数据进行比较,验证所述转移源分布式账本与所述转移目的地分布式账本的同一性。
8.根据权利要求3~7中的任意一项所述的数据转移装置,其中,
所述数据取得部根据所述转移请求,代替从所述转移源分布式账本而从数据存储器取得包含所述取得数据的数据,其中,所述数据存储器记录有与所述转移源分布式账本记录的数据相同的数据。
9.根据权利要求3~8中的任意一项所述的数据转移装置,其中,
所述数据发送部代替向所述转移目的地分布式账本而向能够处理与各个所述生成元素对应的数据的数据存储器发送与各个所述生成元素对应的数据。
10.一种数据转移方法,其中,
数据取得部根据将电子数据从转移源分布式账本转移到转移目的地分布式账本的转移请求,从所述转移源分布式账本取得包含与各个生成元素对应的数据的取得数据,其中,所述各个生成元素是作为包含1个以上的元素的数据即转移数据的各元素而生成的,
数据筛选部从所述取得数据中筛选并提取与所述生成元素对应的数据,
转移顺序生成部使用与所述生成元素对应的数据,生成将与各个所述生成元素对应的数据转移到所述转移目的地分布式账本的转移顺序,
所述转移数据是与所述转移请求对应的数据,
各个所述生成元素与所述电子数据的至少一部分对应。
11.一种数据转移程序,该数据转移程序使作为计算机的数据转移装置执行以下处理:
数据取得处理,根据将电子数据从转移源分布式账本转移到转移目的地分布式账本的转移请求,从所述转移源分布式账本取得包含与各个生成元素对应的数据的取得数据,其中,所述各个生成元素是作为包含1个以上的元素的数据即转移数据的各元素而生成的;
数据筛选处理,从所述取得数据中筛选并提取与所述生成元素对应的数据;以及
转移顺序生成处理,使用与所述生成元素对应的数据,生成将与各个所述生成元素对应的数据转移到所述转移目的地分布式账本的转移顺序,其中,
所述转移数据是与所述转移请求对应的数据,
各个所述生成元素与所述电子数据的至少一部分对应。
CN202180092049.2A 2021-02-03 2021-02-03 数据转移装置、数据转移方法以及数据转移程序 Pending CN116802622A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/003833 WO2022168192A1 (ja) 2021-02-03 2021-02-03 データ移行装置、データ移行方法、及び、データ移行プログラム

Publications (1)

Publication Number Publication Date
CN116802622A true CN116802622A (zh) 2023-09-22

Family

ID=82741259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180092049.2A Pending CN116802622A (zh) 2021-02-03 2021-02-03 数据转移装置、数据转移方法以及数据转移程序

Country Status (5)

Country Link
US (1) US20230315719A1 (zh)
JP (1) JP7527404B2 (zh)
CN (1) CN116802622A (zh)
DE (1) DE112021006204T5 (zh)
WO (1) WO2022168192A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8619783B2 (en) * 2009-12-18 2013-12-31 Electronics And Telecommunications Research Institute System and method for coupling communication terminals
US20140122315A1 (en) * 2012-10-30 2014-05-01 Millennium It (Usa) Inc. Alert investigation system
DE112014001621T5 (de) * 2013-03-25 2015-12-24 Mitsubishi Electric Corporation Bus-Master, Bussystem und Bussteuerungsverfahren
JP6737039B2 (ja) * 2016-07-22 2020-08-05 沖電気工業株式会社 データベースシステム、データ処理プログラム、及びデータ処理方法
US11240035B2 (en) * 2017-05-05 2022-02-01 Jeff STOLLMAN Systems and methods for extending the utility of blockchains through use of related child blockchains
JP7180223B2 (ja) 2018-09-12 2022-11-30 富士通株式会社 取引管理装置、取引管理方法および取引管理プログラム
US11842331B2 (en) * 2018-10-24 2023-12-12 Capital One Services, Llc Network of trust for bill splitting
US11178537B2 (en) * 2019-01-24 2021-11-16 International Business Machines Corporation Data item transfer between mobile devices

Also Published As

Publication number Publication date
WO2022168192A1 (ja) 2022-08-11
US20230315719A1 (en) 2023-10-05
JPWO2022168192A1 (zh) 2022-08-11
JP7527404B2 (ja) 2024-08-02
DE112021006204T5 (de) 2023-10-12

Similar Documents

Publication Publication Date Title
CN100555279C (zh) 不用快照的项同步系统和方法
CN104272247B (zh) 元数据驱动的撤销方法和系统
CN101268439B (zh) 数据库片段克隆和管理
US8364683B2 (en) Importing and reconciling resources from disjoint name spaces to a common namespace
CN101111840B (zh) 用于在数据库管理系统中为文件操作提供锁定的技术
US20150120658A1 (en) System and method for splitting a replicated data partition
US20140244581A1 (en) System and method for log conflict detection and resolution in a data store
CN107688611B (zh) 一种基于saltstack的Redis键值管理系统及方法
CN111737104B (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
EP1589691A2 (en) Method, system and apparatus for managing computer identity
DE112021002797T5 (de) Datenschutzerhaltende architektur für genehmigungspflichtige blockchains
US20100211662A1 (en) Method and system for specifying planned changes to a communications network
CN112654978A (zh) 分布式异构存储系统中数据一致性实时检查的方法、设备和系统
EP4189914B1 (en) Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
US7934118B2 (en) Failure notification in rendezvous federation
US20100145911A1 (en) Serverless Replication of Databases
JP6868728B2 (ja) パーミッションドブロックチェーンアプリケーションの継続的デリバリのための方法及び装置
JPH1021061A (ja) クライアントソフトウェア自動バージョンアップシステム
US20220335016A1 (en) Management device, management method, and non-transitory computer-readable recording medium
US8996484B2 (en) Recursive lock-and-propagate operation
US20090234872A1 (en) Synchronization of disconnected/offline data processing/entry
CN111638890B (zh) 用于在进程控制系统中的节点的在线固件升级的方法、节点管理器及计算机程序产品
CN104520821A (zh) 动态目录控制
CN116802622A (zh) 数据转移装置、数据转移方法以及数据转移程序
CN115485674A (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