JP2019200580A - 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード - Google Patents

分散台帳システム、分散台帳サブシステム、および、分散台帳ノード Download PDF

Info

Publication number
JP2019200580A
JP2019200580A JP2018094530A JP2018094530A JP2019200580A JP 2019200580 A JP2019200580 A JP 2019200580A JP 2018094530 A JP2018094530 A JP 2018094530A JP 2018094530 A JP2018094530 A JP 2018094530A JP 2019200580 A JP2019200580 A JP 2019200580A
Authority
JP
Japan
Prior art keywords
distributed ledger
ledger
transaction
node
subsystem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018094530A
Other languages
English (en)
Other versions
JP6684850B2 (ja
Inventor
洋輔 肥村
Yosuke Himura
洋輔 肥村
竜也 佐藤
Tatsuya Sato
竜也 佐藤
悠介 新井
Yusuke Arai
悠介 新井
崇之 永井
Takayuki Nagai
崇之 永井
裕教 江丸
Hironori Emaru
裕教 江丸
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018094530A priority Critical patent/JP6684850B2/ja
Priority to US16/296,861 priority patent/US11373173B2/en
Publication of JP2019200580A publication Critical patent/JP2019200580A/ja
Application granted granted Critical
Publication of JP6684850B2 publication Critical patent/JP6684850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】分散台帳サブシステムの各間を跨がった適宜な情報共有を効率的に行う。【解決手段】分散台帳システム1において、分散台帳サブシステム111〜151の各々において、当該分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ分散台帳サブシステムの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクト701とを備え、所定のトランザクション要求を所定装置から受信してスマートコントラクト701を実行することで、共通のサブ台帳を持つ他の分散台帳サブシステムに対し、当該他の分散台帳サブシステムが管理する他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、他の分散台帳サブシステムから得たトランザクション応答を応答する構成とする。【選択図】図1

Description

本発明は、分散台帳システム、分散台帳サブシステム、および、分散台帳ノードに関するものであり、具体的には、サブ台帳ネットワークの各間を跨がった適宜な情報共有を効率的に行う技術に関する。
近年、分散台帳(Distributed Ledger)技術が様々な分野で注目を集めている。分散台帳は、複数の計算ノード間でやり取りするデータをセキュアに共有することを特徴とする分散データベースである。なお、こうした分散台帳に保存されるデータを台帳データと称し、同一の台帳データセットを共有する計算ノードの集合を分散台帳システムと称する。
分散台帳技術における特徴の一つに、スマートコントラクト(Smart Contract)の存在が挙げられる。スマートコントラクトは、デジタル化(ソフトウェアプログラム化)された契約とも言われるもので、台帳データの入力、出力などの処理をプログラム的に記述することで実現される。分散台帳システムにおける各計算ノードは、互いの合意形成を図りつつ、こうしたスマートコントラクトを実行し、その実行結果等でそれぞれの台帳データを更新する。
なお、上述の分散台帳技術は、その構成に応じて、いくつかの種類に分類される。例えば、不特定多数の計算ノード間で分散台帳システムが構成されるパブリック型、特定組織間の計算ノード間で分散台帳システムが構成されるパーミッション型ないしコンソーシアム型、特定組織内の計算ノード間で分散台帳システムが構成されるプライベート型、などが存在する。
このうち特に、パーミッション型の分散台帳が注目されており、これを組織間横断業務に用いることで、ビジネスプロセスの効率化を図るとの期待もある。例えば、パーミッション型の分散台帳システムをサプライチェーンに適用した場合、当該サプライチェーンを構成する組織間でリソース情報を共有し、バイヤーのニーズに応じてサプライヤーの在庫を最小化するなどといった、サプライチェーンの全体最適化を目指すことも想定される。
ただし、そうしたサプライチェーンの参加者たる組織それぞれで立場は異なっており、取引関係等によっては、当該組織間での情報共有を図ることが好ましくない状況も含みうる。そのため、全組織が所属する単一の分散台帳システムを構築するのではなく、所定の取引関係がある組織同士のみでシステムを構築するケースも想定される。
そこで、そうしたケースに対応して、分散台帳を論理分割する「Channel」と称する概念(非特許文献1)が出現している。なお、このChannelにて論理分割された分散台帳は、サブ台帳(Sub−Ledger)と呼ばれる。
この場合の分散台帳システムは、全組織が参加するひとつの分散台帳システムでありながらも、内部的には特定組織間のみで所定のサブ台帳を共有する分散台帳サブシステムを複数含んだ構成となっている。なお、上述の分散台帳サブシステムにおける計算ノードは、インストールされたスマートコントラクトを実行し、当該分散台帳サブシステムにおけるサブ台帳のデータを更新することとなる。
https://hyperledger−fabric.readthedocs.io/en/release/channels.html(検索日:2018年2月7日)
Channel技術によれば、上述の分散台帳サブシステムを構築しやすい利点がある一方で、情報共有のスコープがそれぞれの分散台帳サブシステム内に限定される問題もある。その場合、分散台帳ネットワーク全体で適宜な情報共有を図ることが難しく、サプライチェーンの全体最適化も限定的となってしまう恐れがある。
そこで、分散台帳サブシステムの所定ノードに、分散台帳サブシステム間で情報を照会するスマートコントラクトを実装し、これを適宜に呼び出して実行する構成も想定できる。
しかしながら、各分散台帳サブシステムのノードに、そうしたスマートコントラクトを実装する場合、分散台帳サブシステムごとに設定等が異なるスマートコントラクトの各間で、インタフェース調整等が必要となりやすい。このことは、少なからぬ導入コスト増に繋がり、導入障壁となりうる。
また、そうしたノードが、当該スマートコントラクトの実行に伴って、各分散台帳サブシステムの各ノードに宛ててトランザクションを発行(すなわち同報配信)すると、受取側のノードとしては同内容のトランザクションを複数受信するケースや、そもそも接続関係が無い(許されていない)分散台帳サブシステムのノード宛てのトランザクションの発行に失敗するといったケースも生じる。この場合、結局のところ、分散台帳サブシステムを跨がった、すなわち組織を跨がった適宜な情報共有が図られないこととなる。
そこで本発明の目的は、分散台帳サブシステムの各間を跨がった適宜な情報共有を効率的に行う技術を提供することにある。
上記課題を解決する本発明の分散台帳システムは、複数の分散台帳サブシステムから構成される分散台帳システムであって、前記分散台帳サブシステムの各々において、当該分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ分散台帳サブシステムの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムから得たトランザクション応答を前記所定装置に応答するものである、ことを特徴とする。
また、本発明の分散台帳サブシステムは、分散台帳システムを構成する分散台帳サブシステムであって、分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ分散台帳サブシステムの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムから得たトランザクション
応答を前記所定装置に応答するものである、ことを特徴とする。
また、本発明の分散台帳ノードは、分散台帳システムを構成する分散台帳サブシステムが含むノードであって、所属先の分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ他の分散台帳サブシステムのノードとの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムの所定ノードに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムの所定ノードから得たトランザクション応答を前記所定装置に応答するものである、ことを特徴とする。
本発明によれば、分散台帳サブ台帳システムの各間を跨がった適宜な情報共有を効率的に行うことが可能となる。
第1実施形態における分散台帳システムの構成例を示す図である。 第1実施形態における分散台帳システムの概念例を示す図である。 第1実施形態における分散台帳システムのサブシステム粒度での関係例を示す図である。 第1実施形態における分散台帳システムの分散台帳ノード粒度での関係例を示す図である。 第1実施形態における分散台帳サブシステムの構成例を示す図である。 第1実施形態における分散台帳クライアントが管理するテーブルの一例を示す図である。 第1実施形態における分散台帳ノードが管理するテーブルの一例を示す図である。 第1実施形態における分散台帳ノードが管理するテーブルの一例を示す図である。 第1実施形態におけるスマートコントラクトの実装例を示す図である。 第1実施形態におけるスマートコントラクトの実装例を示す図である。 第1実施形態の分散台帳システムにおける全体処理フロー例を示す図である。 第1実施形態の分散台帳サブシステムにおける処理フロー例を示す図である。 第1実施形態におけるスマートコントラクトの処理フローを示す図である。 第1実施形態における分散台帳サブシステムの動作概念(分散台帳サブシステム粒度)を説明する図である。 第1実施形態における分散台帳サブシステムの動作概念(分散台帳ノード粒度)を説明する図である。 第1実施形態における呼び出し関係と台帳データの一例を示す図である。 第1実施形態の各分散台帳サブシステムにおける処理を示すシーケンス図である。 第1実施形態におけるGUIの一例を示す図である。 第1実施形態における分散台帳サブシステムの構成例を示す図である。 第1実施形態の分散台帳ノードおよび分散台帳クライアントのハードウェア構成例を示す図である。 第2実施形態における分散台帳クライアントおよび分散台帳サブシステムの構成例を示す図である。 第2実施形態におけるスマートコントラクトの実装例を示す図である。
実施形態を説明するにあたり、本明細書中では、以下のように用語を定義する。まず、分散台帳は、分散台帳システムを構成する複数の計算ノード、すなわち分散台帳ノードの間で取り扱う台帳データをセキュアに共有することを特徴とする分散データベースである。こうした分散台帳はブロックチェーンとも呼ばれる。
なお、本明細書中では、上述の分散台帳システムの形態のうち、パーミッション型(コンソーシアム型とも呼ばれる)を対象として説明を行うものとする。また、分散台帳システムにおいては、上述したデータの共有のために、ハッシュチェーンやコンセンサスプロトコルなどの要素技術が用いられている。
また、上述の分散台帳は、分散台帳システムに参加する計算ノードのうち特定の計算ノード間でのみ共有されるサブ台帳、を含んで構成される。こうしたサブ台帳を共有する計算ノード群は、分散台帳サブシステムを構成する。分散台帳システムは分散台帳サブシステムの集合体である。
また台帳データは、分散台帳(あるいはサブ台帳)に記録されるデータである。台帳データのデータ構造には、RDB(Relational DataBase)やKVS(Key−Value Store)のデータ構造を含みうる。こうしたデータ構造は、分散台帳システムの利用者(スマートコントラクトの実装者)により規定することが可能である。
スマートコントラクトは、台帳データの入力、出力などの処理を記述したプログラムであるとする。スマートコントラクトは、分散台帳システム(あるいは分散台帳サブシステム)に所属する分散台帳ノードにインストールされ、適宜のタイミングで実行される。
スマートコントラクトを実行する分散台帳ノードは、必ずしも分散台帳システム(あるいは分散台帳サブシステム)に所属する全ノードとは限らないが、スマートコントラクトの実行結果にしたがって、分散台帳システム(あるいは分散台帳サブシステム)に所属する全ノードが各自の台帳データを更新する。
また、トランザクションは、上述の分散台帳ノード各々が、コンセンサスプロトコルなどに基づいて連動しながらスマートコントラクトを実行することで行う処理それぞれのことである。トランザクションの例には、台帳データの参照や、台帳データの更新などを含む。トランザクションには引数(リクエストのパラメータ)を含む。トランザクション引数の例には、参照対象のデータのキー(key)や、更新対象のデータのキーおよび更新後の値(value)を含む。
−−−第1実施形態−−−
以下、本発明の第1実施形態について図面を用いて説明する。図1は、第1実施形態における分散台帳システム1の構成例を示す図である。
図1に示す分散台帳システム1の利用者すなわちステークホルダは、組織101〜105である。これらの組織101〜105は、例えば、サプライチェーンを構成するバイヤーとサプライヤーであると想定する。
これら組織101〜105は、それぞれ担当者等が操作する端末、業務システム、およ
び、分散台帳サブシステム、を有している。例えば、組織101は、分散台帳サブシステム111、業務システム112a〜c、端末113a〜c、を有している。同様に、組織102は、分散台帳サブシステム121、業務システム122、端末123a〜c、を有している。同様に組織103は、分散台帳サブシステム131、業務システム132a〜c、端末133a〜c、を有している。同様に、組織104は、分散台帳サブシステム141、業務システム142a〜c、端末143a〜c、を有している。同様に、組織105は、分散台帳サブシステム151、業務システム152a〜c、端末153a〜c、を有している。
こうした組織101〜105の分散台帳サブシステムらは、インターネットなど適宜なネットワーク106を介して、相互に通信可能であるとする。
また、上述の構成のうち、分散台帳サブシステム111〜151は、分散台帳システム1を構成するサブシステムである。本実施形態においては、それぞれの分散台帳サブシステムは、上述の組織101〜105のうち1つの組織に所属している。
ここで、概念的理解を容易にするため、分散台帳サブシステム111〜151が分散台帳やスマートコントラクトを保持する形で図示している。しかし実際には、後述するように、分散台帳サブシステムにおける分散台帳ノードが、そうした分散台帳やスマートコントラクトを保持するものとする。
なお、上述の構成のうち各組織101〜105の業務システム112a〜c、122a〜c、132a〜c、142a〜c、152a〜cは、当該組織が利用する業務システムである。具体的には、サプライチェーンに製品や部品の受発注処理を行うシステムを想定できる。
また、各組織101〜105の端末113a〜c、123a〜c、133a〜c、143a〜c、153a〜cは、当該組織の担当者等が利用する端末である。そうした担当者らは、当該組織の端末を操作して、当該組織の分散台帳サブシステムや業務システムにアクセスする。
また、各組織101〜105は、ゲートウェイ114、124、134、144、154を備えている。こうしたゲートウェイは、当該組織における分散台帳サブシステムと、他組織の分散台帳サブシステムとの間の通信制御装置である。
<分散台帳システムの具体的概念について>
上述の分散台帳システム1の概念を、分散台帳の視点で示した場合、図2の構成を想定できる。図2の例では、単一の分散台帳201が、複数の分散台帳サブシステム111〜151(のサブ台帳)で構成されるケースを示している。
この分散台帳システム1は、次の構成要素を含む。すなわち、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜c、分散台帳クライアント212a〜c、222a〜c、232a〜c、242a〜c、252a〜c、である。
このうち分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cは、分散台帳201を構成する台帳データを持つ。
また、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cは、それぞれが持つ台帳データの入出力処理(トランザクション)を行うスマートコントラクトのプログラムを管理し実行する。
これらの複数の分散台帳ノードそれぞれが台帳データを持ち、スマートコントラクトを実行することで、分散台帳201が実現される。
分散台帳クライアント212a〜c、222a〜c、232a〜c、242a〜c、252a〜cは、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cに、トランザクションを要求する。
一方、上述の分散台帳システム1の概念を、分散台帳サブシステムの視点で示した場合、図3A、3Bの構成を想定できる。図3A、3Bは、サブ台帳を用いた分散台帳システムにおいて、サブ台帳間の論理的な関係の一例を示す図である。
サブ台帳301〜308は、分散台帳システム1の構成要素のうち、特定の限定された分散台帳ノードにより構成される分散台帳サブシステムで共有される分散台帳を示す。
図2で述べたように、台帳データおよびスマートコントラクトの実体は、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cにより管理される。一方で、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cを用いて、サブ台帳301〜308を説明するのは、構成要素が多く複雑性が高い。
そのため、まずは図3Aで、分散台帳サブシステム111〜151の粒度で説明する。その後、図3Bで、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cの粒度で説明する。
図3Aは、サブ台帳301〜308の論理的な関係を、分散台帳サブシステム111〜151の粒度で説明する図である。
サブ台帳301は、分散台帳サブシステム111、121の間で共有される。また、サブ台帳302は、分散台帳サブシステム121内で共有される。
また、サブ台帳303は、分散台帳サブシステム121、131の間で共有される。また、サブ台帳304は、分散台帳サブシステム131内で共有される。
また、サブ台帳305は、分散台帳サブシステム131、141の間で共有される。また、サブ台帳306は、分散台帳サブシステム131、151の間で共有される。
また、サブ台帳307は、分散台帳サブシステム141内で共有される。また、サブ台帳308は、分散台帳サブシステム151内で共有される。
このように、サブ台帳は、特定の分散台帳サブシステム間で(あるいは、単一の分散台帳サブシステム内で)共有される。
一方、図3Bは、上述のサブ台帳301〜308の構成を、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cの粒度で説明する図である。
このうちサブ台帳301は、分散台帳ノード211a〜c、221a〜cにより共有される。またサブ台帳302は、分散台帳ノード221a〜cにより共有される。
また、サブ台帳303は、分散台帳ノード221a〜c、231a〜cにより共有される。また、サブ台帳304は、分散台帳ノード231a〜cにより共有される。
また、サブ台帳305は、分散台帳ノード231a〜c、241a〜cにより共有される。また、サブ台帳306は、分散台帳ノード231a〜c、251a〜cにより共有される。
また、サブ台帳307は、分散台帳ノード241a〜cにより共有される。また、サブ台帳308は、分散台帳ノード251a〜cにより共有される。
なお、必ずしも、分散台帳サブシステム内の全ノードが同一のサブ台帳を保持する必要はない。
<分散台帳サブシステムの構成>
続いて、上述の分散台帳サブシステム111〜151の構成について、図4に基づき説明する。図4において、分散台帳サブシステム401は、分散台帳サブシステム111〜151に該当する。以降は、分散台帳サブシステム111〜151のそれぞれの構成のうち、必要な共通機能を説明するため、主に401の符号を用いて共通的に説明する。
また、図4における端末402a〜cは、端末113a〜c、123a〜c、133a〜c、143a〜c、153a〜cに該当する。以降は、端末113a〜c、123a〜c、133a〜c、143a〜c、153a〜cのそれぞれの構成のうち、必要な共通機能を説明するため、主に402の符号を用いて共通的に説明する。
また、図4における分散台帳ノード411a〜cは、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cに該当する。以降は、分散台帳ノード211a〜c、221a〜c、231a〜c、241a〜c、251a〜cのそれぞれの構成のうち、必要な共通機能を説明する際には、主に411の符号を用いて共通的に説明する。
また、図4における分散台帳クライアント412a〜cは、分散台帳クライアント212a〜c、222a〜c、232a〜c、242a〜c、252a〜cに該当する。以降は、分散台帳クライアント212a〜c、222a〜c、232a〜c、242a〜c、252a〜cのそれぞれの構成のうち、必要な共通機能を説明する際には、主に412の符号を用いて共通的に説明する。
こうした構成の分散台帳サブシステム401における分散台帳ノード411の構成について説明する。分散台帳ノード411の構成要素には、API(Application
Programming Interface)421、スマートコントラクト管理部422、台帳管理部423、トランザクション実行管理部424、ノード管理部425、および、通信制御部426、を含む。
このうちAPI421は、他の構成要素から、トランザクション実行などに関するリクエストを受信し応答するためのインタフェースである。API421の実装例としては、WebAPIを含む。
また、スマートコントラクト管理部422は、スマートコントラクトのプログラムを保持・管理し、実行するための管理部である。
また、台帳管理部423は、サブ台帳を保持・管理し、サブ台帳内の台帳データを管理するための管理部である。
また、トランザクション実行管理部424は、スマートコントラクトの処理の実行状況を管理するための管理部である。このトランザクション管理部424は、分散台帳ノード間で、コンセンサスプロトコルなどに基づき連動しながら、スマートコントラクトを実行する。
また、ノード管理部425は、分散台帳ノードの情報(例:自身のノードID)を管理する管理部である。
また、通信制御部426は、他の構成要素との通信を制御する機能部である。通信のプロトコルには、TCP/IP(Transmission Control Protocol/Internet Protocol)を含む。
上述のごとき分散台帳ノード411の構成要素のうち、スマートコントラクト管理部422は、スマートコントラクト管理テーブル431と、スマートコントラクト実行部432、を含む。
このうちスマートコントラクト管理テーブル431は、サブ台帳ごとに利用可能なスマートコントラクトの情報を管理する。スマートコントラクト管理テーブル431の詳細は、図6A、6Bに基づき後述する。
また、スマートコントラクト実行部432は、スマートコントラクトの処理を実行する機能部である。
また、分散台帳ノード411の構成要素のうち、台帳管理部423は、台帳メタデータ管理テーブル441、および、台帳データ管理テーブル442を含む。
このうち台帳メタデータ管理テーブル441は、分散台帳ノード411が管理するサブ台帳のメタデータを管理する。台帳メタデータ管理テーブル441の詳細は、図6A、6Bに基づき後述する。
また、台帳データ管理テーブル442は、個々のサブ台帳に保存される台帳データを管理するテーブルである。この台帳データ管理テーブル442に保存される台帳データの例は、図6A、6Bに基づき後述する。以上が、分散台帳ノード411の構成についての説明である。
<分散台帳クライアントの構成>
続いて分散台帳クライアント412の構成について説明する。分散台帳クライアント412の構成要素には、API451、UI(User Interface)生成部452、トランザクション呼出部453、ノード管理テーブル454、トランザクション引数一時管理テーブル455、および、トランザクション結果一時管理テーブル456、を含む。
このうちAPI451は、他の構成要素から、処理リクエストを受け取り、処理結果を返すためのインタフェースである。API451の実装例としては、WebAPIを含む。また、API451が提供するインタフェースの例として、分散台帳ノードへのトランザクション生成を要求するインタフェースを含む。また、他の例として、分散台帳ノードが返すトランザクションの結果を返すインタフェースを含む。
また、UI生成部452は、端末402などの他の構成要素向けに、処理の実行結果などを表示するためのUIを生成する機能部である。このUI生成部452の詳細は、図14に基づき後述する。
また、トランザクション呼出部453は、分散台帳ノード411へトランザクション要求を送信し、そのトランザクションの結果(トランザクション応答)を受信する機能部である。
また、ノード管理テーブル454は、分散台帳ノードについての情報を管理するテーブルである。このノード管理テーブル454の詳細は、図5に基づき後述する。
また、トランザクション引数一時管理テーブル455は、分散台帳ノード411に送信するトランザクションの引数(リクエストのパラメータ)を一時的に管理するテーブルである。このトランザクション引数一時管理テーブル455の詳細は、図5に基づき後述する。
また、トランザクション結果一時管理テーブル456は、分散台帳ノード411から受信したトランザクション実行結果(レスポンス。トランザクション応答)を一時的に管理するテーブルである。このトランザクション結果一時管理テーブル456の詳細は、図5に基づき後述する。以上が、分散台帳クライアント412の構成についての説明である。<分散台帳クライアントが管理するテーブル>
図5は、分散台帳クライアント412が管理するテーブルの一例を示す図である。図5において、テーブル中に記載されている値は、分散台帳サブシステム131に所属する分散台帳クライアントにおける例を示している。
まず、ノード管理テーブル454は、分散台帳ノードについての情報を管理するテーブルである。このノード管理テーブル454の構成要素には、ノード511、エンドポイント512、台帳513、および、スマートコントラクト514、を含む。
このうちノード511は、分散台帳クライアント412によりアクセスされるノードの識別子である。
また、エンドポイント512は、上述のノード511のエンドポイントであり、ホスト名、IPアドレス、TCPのポート番号のような、各種の識別子を含む。
また、台帳513は、上述のノード511が所属する分散台帳サブシステムにおけるサブ台帳の識別子である。
また、スマートコントラクト514は、上述のノード511が実行可能なスマートコントラクトの識別子である。
続いて、トランザクション引数一時管理テーブル455は、分散台帳ノード411に送信するトランザクションの引数(リクエストのパラメータ)を一時的に管理するテーブルである。
このトランザクション引数一時管理テーブル455の構成要素には、トランザクションID521、台帳522、スマートコントラクト523、ノード524、認証情報525、メインリソースID526、個数527、価格528、リードタイム529、メインリソースID531、サブリソースID532、および、個数533、を含む。
このうちトランザクションID521は、分散台帳システム1全体にわたって実行されるトランザクションを一意に識別するための識別子である。
また、台帳522は、トランザクション実行対象の、分散台帳サブシステムのサブ台帳の識別子である。
また、スマートコントラクト523は、トランザクション実行対象のスマートコントラクトの識別子である。
また、ノード524は、トランザクションを実行する1つ以上の分散台帳ノードの識別子である。
また、認証情報525は、分散台帳ノードにトランザクション実行を要求する際に必要となる認証情報である。
以降のトランザクション引数は、スマートコントラクトの処理内容や、ユーザが実行したい処理(問い合わせ内容など)により異なる。
例えば、メインリソースID526は、例えば、サプライチェーンにおける在庫情報の問い合わせ対象となる製品の識別情報など、スマートコントラクトによる照会対象のリソースの識別子である。
また、個数527は、上述の照会対象のリソースの個数である。またその他に、価格528、および、リードタイム529なども、トランザクション引数に含めてよい。
また、メインリソースID531、サブリソースID532、および、個数533は、階層構造の上位にあたるメインリソースの構成要素を、メインリソースを構成する階層構造下位のサブリソースと、その個数の形式で表した情報であり、同様にトランザクション引数に含めてよい。
また、トランザクション結果一時管理テーブル456は、分散台帳ノード411から受信したトランザクション実行結果(レスポンス。トランザクション応答)を一時的に管理するテーブルである。
このトランザクション結果一時管理テーブル456の構成要素には、トランザクションID541、個数542、価格543、および、リードタイム544、を含む。
このうちトランザクションID541は、当該トランザクションを一意に識別するための識別子である。
以降の構成要素は、スマートコントラクトの処理内容や、ユーザが実行したい処理(問い合わせ内容など)により異なる。例えば、個数542は、所定のサブリソースIDに対応したサブリソース(例:部品)の利用可能な個数について照会するトランザクションを実行した結果である。同様に、価格543は、当該サブリソースの価格について照会するトランザクションを実行した結果である。また、リードタイム544は、当該サブリソースのリードタイムについて照会するトランザクションを実行した結果である。
<分散台帳ノードが管理するテーブル>
図6A、6Bは、分散台帳ノード411が管理するテーブルの一例を示す図である。図6A、6Bにおいて、テーブル中に記載されている値は、分散台帳サブシステム131に所属する分散台帳ノードにおける例を示している。
このうちスマートコントラクト管理テーブル431は、サブ台帳ごとに利用可能なスマートコントラクトの情報を管理するテーブルである。
このスマートコントラクト管理テーブル431の構成要素には、台帳611、および、スマートコントラクト612、を含む。このうち台帳611は、当該サブ台帳の識別子である。また、スマートコントラクト612は、当該サブ台帳ごとに実行可能なスマートコントラクトの識別子である。
また、台帳メタデータ管理テーブル441は、分散台帳ノード411が管理するサブ台帳のメタデータを管理するテーブルである。この台帳メタデータ管理テーブル441の構成要素には、台帳621、ノード622、および、データ種別623、を含む。
このうち台帳621は、サブ台帳の識別子である。また、ノード622は、当該サブ台帳を共有する分散台帳ノードの識別子である。また、データ種別623は、当該サブ台帳に保存される台帳データの種類についての識別子である。
また、台帳データ管理テーブル442は、個々のサブ台帳に保存される台帳データを管理するテーブルである。こうした台帳データ管理テーブル442に保存される台帳データの例を以下に説明する。
例えば、リソース情報601は、分散台帳システム1における各サブ台帳のうち、サブ台帳303における、リソース情報に関する台帳データである。このリソース情報601の構成要素には、リソースID631、および、リソース保持量632、を少なくとも含む。
このうちリソースID631は、リソース(例えば製品)の識別子である。また、リソース保持量632は、当該リソースの保持量(例えば在庫数)である。なお、このリソース情報601には、他にも、当該リソースの価格633やリードタイム634といった情報を含めてもよい。
また、リソース情報602は、分散台帳システム1における各サブ台帳のうち、サブ台帳305における、リソース情報に関する台帳データである。このリソース情報602の構成要素には、リソースID635、および、リソース保持量636、を含む。
このうちリソースID635は、当該リソース(例えば製品)の識別子である。また、リソース保持量636は、リソースの保持量(例えば在庫数)である。なお、このリソース情報602には、他にも、当該リソースの価格637やリードタイム638のような情報を含めてもよい。
また、リソース情報603は、分散台帳システム1における各サブ台帳のうち、サブ台帳306における、リソース情報に関する台帳データである。このリソース情報603の構成要素には、リソースID639、および、リソース保持量640、を含む。
このうちリソースID639は、当該リソース(例えば製品)の識別子である。また、リソース保持量640は、当該リソースの保持量(例えば在庫数)である。なお、このリソース情報603には、他にも、当該リソースの価格641やリードタイム642のような情報を含めてもよい。
また、ノード別台帳情報604は、例えば、サブ台帳303内における、ノード別の参照先のサブ台帳に関する情報を管理する台帳データである。このノード別台帳情報604の構成要素には、組織651、ノード652、および、台帳653、を含む。
このうち組織651は、組織の識別子である。また、ノード652は、分散台帳ノードの識別子である。また、台帳653は、上述の組織651およびノード652により指定されたノードが参照可能なサブ台帳の識別子である。
また、隣接ノード情報605は、例えば、サブ台帳304における、トランザクション要求の送信先、すなわち再帰問い合わせ先の候補ノードの情報を管理する台帳データである。
この隣接ノード情報605の構成要素には、リソースID661、組織662、台帳663、スマートコントラクト664、および、ノード665、を含む。
このうちリソースID661は、問い合わせ対象(例:製品)となるリソースの識別子である。また、組織662は、当該リソースを取り扱う組織の識別子である。また、台帳663は、当該リソースに関する台帳データを保持するサブ台帳の識別子である。また、スマートコントラクト664は、問い合わせに際して実行するスマートコントラクトの識別子である。また、ノード665は、上述のリソースID661に関するトランザクションを実行する候補ノードの識別子である。
<スマートコントラクトの実装例>
続いて、分散台帳ノードらがそれぞれ保持するスマートコントラクトについて説明する。図7Aは、第1実施形態におけるスマートコントラクト701の実装例を示す図である。ここで示すスマートコントラクト701は、スマートコントラクト管理テーブル431(図4)内に管理される。
スマートコントラクト701の構成要素には、トランザクション受付部711、ロール判別部712、サブ台帳参照部713、トランザクション分解部714、ノード選定部715、トランザクション呼出部716、トランザクション結果結合部717、トランザクション結果応答部718、トランザクション引数一時管理テーブル721、および、トランザクション結果一時管理テーブル722、を含む。
このうちトランザクション受付部711は、例えば、端末113〜153など所定の装置からトランザクションの実行要求(トランザクション要求)を受け付ける機能部である。
また、ロール判別部712は、トランザクションを実行する分散台帳ノードが、自己のロール(役割)を判別する機能部である。
また、サブ台帳参照部713は、サブ台帳に対する入力や出力に関する処理を行う機能部である。
また、トランザクション分解部714は、トランザクション受付部711で受け付けたトランザクションを、サブトランザクションに分解する機能部である。
また、ノード選定部715は、トランザクション分解部714が分解した個々のサブトランザクションについて、当該サブトランザクションの実行対象の分散台帳ノードを選定する機能部である。
また、トランザクション呼出部716は、ノード選定部715が選定した分散台帳ノードについて、サブトランザクションのトランザクション実行要求を送信し、そのトランザクション実行結果(トランザクション応答)を受信する機能部である。
また、トランザクション結果結合部717は、トランザクション分解部714が分解した個々のサブトランザクションの実行結果を集約する機能部である。
また、トランザクション結果応答部718は、トランザクション受付部711で受け付けたトランザクションの呼び出し元に対し、当該トランザクションの実行結果(トランザクション結果結合部717がサブトランザクションの実行結果を集約したもの)を応答する機能部である。
また、トランザクション引数一時管理テーブル721は、分散台帳ノード411に送信するサブトランザクションの引数(リクエストのパラメータ)を一時的に管理するテーブルである。トランザクション引数一時管理テーブル721の構成要素は、トランザクション引数一時管理テーブル455の(図5参照)構成要素と同様である。
また、トランザクション結果一時管理テーブル722(図7B)は、スマートコントラクト701が生成するトランザクションの実行状況および実行結果(レスポンス。トランザクション応答)を一時的に管理するテーブルである。
このトランザクション結果一時管理テーブル722の構成要素には、トランザクションID731、トランザクション内部ID732、サブリソースID733、個数734、価格735、および、リードタイム736、を含む。
このうちトランザクションID731は、分散台帳システム1の全体にわたって実行されるトランザクションを一意に識別するための識別子である。
また、トランザクション内部ID732は、再帰的に実行される個々のトランザクションの進行状況を管理するための識別子である。
以降の構成要素は、スマートコントラクトの処理内容や、ユーザが実行したい処理(問
い合わせ内容など)により異なる。例えば、サブリソースID733は、サブリソース単位に分割されたトランザクションにおいて照会対象のリソースIDである。また、個数734は、特定のサブリソースIDの利用可能な個数について照会するトランザクションを実行した結果である。またその他には、価格735、リードタイム736なども、本テーブルに含めてもよい(図5と同様)。
なお、図7において、一部の機能部に、「lookup」、「divide」、「query」、「merge」、「reply」、のような記号を割り当てている。これらの記号は、後述する図11の呼び出し関係図と、図13のシーケンス図において用いることとする。
<全体の処理フロー例>
図8は、第1実施形態における全体の処理フロー例を示す図である。ここではまず、端末402が、トランザクション引数を生成する(S801)。生成するトランザクション引数には、該当組織のユーザが端末402に入力する、例えば、トランザクションID、在庫情報の問い合わせ対象となるサブ台帳、製品や部品のリソースID、といった値(図5のトランザクション引数一時管理テーブル455の各項目)などを想定する。
次に、上述の端末402が、上述のトランザクション引数の生成に続き、分散台帳サブシステム401にトランザクション実行を要求(トランザクション要求)する(S802)。
一方、この要求を受けた分散台帳サブシステム401は、トランザクション実行処理を行う(S803)。このステップの詳細は図9に基づき後述する。
続いて、上述の端末402が、上述のトランザクション実行処理を行った分散台帳サブシステム401から、トランザクション実行結果(トランザクション応答)を受信する(S804)。
最後に、上述の端末402が、S804で得たトランザクション実行結果を、ディスプレイ等の出力装置上のUIに表示し(S805)、処理を終了する。
<分散台帳サブシステムにおけるトランザクション実行処理>
続いて、上述のフローにおけるステップS803、すなわち分散台帳サブシステムにおけるトランザクション実行処理の詳細について説明する。図9は、分散台帳サブシステムのトランザクション実行処理(S803)に対応した処理フロー例を示す図である。
この場合まず、分散台帳クライアント412のAPI451が、上述の端末402からトランザクション実行の要求とともに、トランザクション引数を受け取り、これをトランザクション引数一時管理テーブル455に保存する(S901)。
次に、分散台帳クライアント412のトランザクション呼出部453は、S901で受け取ったトランザクション引数の中に、トランザクションIDが含まれていなければ、トランザクションIDを生成し、トランザクション引数にセットする(S902)。この生成の方法としては、一般的な乱数生成の関数を利用するか、或いは単に、既存のトランザクションIDの値をインクリメントする、といった適宜な方法を用いればよい。
続いて、分散台帳クライアント412のトランザクション呼出部453は、以下の処理を行う(S903)。まずトランザクション呼出部453は、例えば、上述のトランザクション引数が示す台帳522の値、すなわちサブ台帳の値(例:サブ台帳305)をキーに、ノード管理テーブル454(図5)を参照し、当該サブ台帳を共有している分散台帳サブシステムのノード(例:分散台帳ノード231a〜c、241a〜cのうち、自らが
所属する分散台帳サブシステムの分散台帳ノードではない方)を、スマートコントラクト実行対象の候補ノード群として抽出する。また、トランザクション呼出部453は、抽出したノード群の中から、予め定めた問い合わせ先ノードの選定基準に基づいて、ノードを選定する。こうした問い合わせ先ノードの選定基準としては、候補ノード群のうち、任意のアクティブなノードであることや、直近のトランザクションに対するレスポンスタイム(当然ながら、トランザクションごとのレスポンスタイムの履歴情報を分散台帳クライアント412が管理・保持している)が短いノードであることなどが挙げられる。次にトランザクション呼出部453は、選定した問い合わせ先ノードに対し、該当するスマートコントラクトを呼び出す(この際に、必要に応じて、呼び出し先ノードにスマートコントラクト実行を要求する際に必要となる認証情報を適宜の方法により取得して、トランザクション引数にセットする)。
その後、上述の問い合わせ先ノードである分散台帳ノード411は、上述の分散台帳クライアント412から要求されたスマートコントラクトを実行する(S904)。このステップの詳細は図10に基づき後述する。
続いて、分散台帳ノード411は、S904で実行したスマートコントラクトの実行結果(応答)を、呼び出し元である上述の分散台帳クライアント412に返す(S905)。
最後に、分散台帳ノード411は、上述のスマートコントラクトの実行結果に基づき、自身のサブ台帳を更新し(S906)、処理を終了する。
<分散台帳ノードにおけるスマートコントラクトの実行>
続いて、上述のフローのうち、分散台帳ノード411によるステップS904の処理の詳細について、図10に基づき説明する。
この場合まず、分散台帳ノード411のスマートコントラクト701におけるトランザクション受付部711が、分散台帳クライアント412から上述のトランザクション引数を取得する(S1001)。
次に、S1002において、スマートコントラクト701のロール判別部712が、自己のノードID、すなわち当該スマートコントラクト701を保持する分散台帳ノード411のノードIDを、例えばノード管理部425にて参照する。また、自己のロールを判別する。ここで参照したノードIDは、後述するステップS1004にて用いられる。
また、上述のロールの判別方法としては、トランザクションの呼び出し関係から、呼び出し元なのか呼び出し先なのかを判別する(当然、自身が発行したトランザクションであれば、呼び出し元であり、他の分散台帳ノードが発行したトランザクションであれば呼び出し先となる)。また、自己がリーダーノードか否かなどを判別する。この際に、自己がトランザクション実行対象(例:呼び出し先のリーダーノード)であれば、以降の処理を継続する。このロール判別の処理は、呼び出し元ノードが適切な呼び出し先を毎回的確に指定できれば、必ずしも必要ではない。
次に、スマートコントラクト701のサブ台帳参照部713が、S1001で得ているトランザクション引数のうち「メインリソースID」に対して、リソース情報601(図6B)におけるリソース保持量632の値を参照し、リソース量を特定する(S1003)。
続いて、S1004において、スマートコントラクト701のサブ台帳参照部713は、ノード別台帳情報604(図6B)を参照し、自己のノードID(S1002で得ているもの)に対応する、自己のサブ台帳の識別子を取得する。また、ここで取得したサブ台
帳の識別子(例:304)に対応する、隣接ノード情報605(図6B)を参照する。ここで参照する情報は、少なくとも、台帳633(問い合わせ先の台帳の識別子となる)、スマートコントラクト664(問い合わせ先のスマートコントラクトの識別子となる)、ノード665(問い合わせ先の隣接ノードの識別子となる)、の各値となる。
次に、スマートコントラクト701のトランザクション分解部713が、S1001で得ているトランザクション引数のうちサブリソースID532の値を抽出し、サブリソースID群を取得する(S1005)。なお、サブリソースが、メインリソースと同じIDになる場合もある。
以下、S1005で得たサブリソースID群における各サブリソースIDに対して、以下の処理(S1006)を実行する。なお、呼び出し対象のサブリソースがなければ、以下の処理は行わない。
まず、スマートコントラクト701のノード選定部715が、ステップS1004で参照した隣接ノード情報605のうちノード665、すなわち分散台帳ノードの中から、予め定めた問い合わせ先ノードの選定基準に基づいて、問い合わせ先のノードを選定する(S1007)。問い合わせ先ノードの選定基準には、候補ノード群のうち、任意のアクティブなノードであることや、レスポンスタイムが短いノードであることなどが挙げられる。
続いて、スマートコントラクト701のトランザクション呼出部716が、トランザクション引数のうち、台帳522の欄に対して問い合わせ先の台帳の識別子(S1004で参照済みのもの。以下同様)を、スマートコントラクト523の欄に対して問い合わせ先のスマートコントラクトの識別子を、ノード524の欄に選定した隣接ノードの識別子を、認証情報525の欄に選定した隣接ノードに対するトランザクション要求用の認証情報を、メインリソースID526の欄に問い合わせ対象のサブリソースIDを、それぞれ設定する(S1008)。この際に、必要に応じて、呼び出し先ノードにスマートコントラクト実行を要求する際に必要となる認証情報を適宜の方法により取得する。
次に、スマートコントラクト701のトランザクション呼出部716は、問い合わせ先の分散台帳サブシステム401に、トランザクション実行を要求する(S1009)。要求したトランザクションについて、トランザクション結果一時管理テーブル722(図7B)を用いて、その実行状況を管理する。なお、適切な呼び出し先ノードがなければ、このステップ(S1009)および次のステップ(S1010)は実行しない。
続いて、スマートコントラクト701のトランザクション呼出部716は、上述の分散台帳サブシステム401から、トランザクション実行結果を受け取る(S1010)。受け取った結果は、トランザクション結果一時管理テーブル722に追記される。
以上の処理(S1007〜S1010)は、トランザクション引数のうち、それぞれの「サブリソースID」に対して行うこととなる(S1011)。
その後、スマートコントラクト701のトランザクション結果結合部717が、これまでのステップで得ている、各サブリソースIDに関するトランザクション実行結果を集計する。また、上述のステップS1003で参照した自己のリソース情報と結合する。(S1012)。
各サブリソースIDに関するトランザクション実行結果の集計には、照会したサブリソース(例:部品)の個々の個数を組み合わせることで実現可能なメインリソース(例:製品)の最大個数(必要に応じて価格やリードタイムなど)を、予め保持するBOM(Bi
ll of materials)に基づき算出することを含む。
最後に、スマートコントラクト701のトランザクション応答部718が、上記のステップS1012による結合結果を、呼び出し元に応答し(S1013)、処理を終了する。
<分散台帳サブシステム間の呼び出し関係>
ここで図11A、11Bに基づき、第1実施形態における分散台帳サブシステムの動作概念を、分散台帳サブシステム間の呼び出し関係に基づき説明する。
これまで説明したスマートコントラクト701の処理を実行することにより、図11のような呼び出し関係でトランザクションが実行される。図3の説明と同様の理由により、まず分散台帳サブシステム粒度で説明し(図11A)、次に分散台帳ノードの粒度で説明する(図11B)。
まず図11Aは、分散台帳サブシステムの粒度での呼び出し関係を示す図である。この図11Aにおいて、「query」、「lookup」、「reply」の各単語は、図7Aにおいて説明した、トランザクション呼出部716、サブ台帳参照部713、トランザクション結果応答部718、に該当する。また、各単語の末尾についている、「−A」、「−B」、「−C1」、「−C2」は、サブ台帳におけるトランザクションの符号を意味している(異なる符合がついているトランザクションは異なるものである)。
図11Aに示すように、再帰呼び出し先のサブ台帳が所属する分散台帳サブシステムのみから、再帰呼び出し処理が行われる。
一方、図11Bは、第1実施形態における分散台帳サブシステムの動作概念(分散台帳ノード粒度)を、分散台帳ノードの粒度での呼び出し関係に基づき説明する図である。この図11Bにおいて、分散台帳クライアントは省略し、分散台帳ノードのみを表示している。
各段階の呼び出し関係において、二重トランザクションが発生しないように、呼び出し先には特定の分散台帳ノードのみを指定する。なお、図からは省略しているが、分散台帳サブシステム111からのトランザクションは、分散台帳クライアントから生成される。
また、図からは省略しているが、本実施形態においては、分散台帳ノードが呼び出すトランザクションは、呼び出し先の分散台帳サブシステムにアクセス可能な、(自己が所属する分散台帳サブシステム内、あるいは、サブ台帳に所属する他の分散台帳サブシステム内の)分散台帳クライアントに送信される。
図12は、第1実施形態における呼び出し関係と台帳データの一例を示す図である。呼び出し関係は、図11と同様である。図12においては、組織101と組織102が「製品」の個数情報を共有し、組織102と組織103が同様の粒度の「製品」の個数情報を共有する。一方、組織103と組織104は「(組織101から見た意味での)部品」の個数情報を共有し、組織103と組織105が「(組織101から見た意味での)部品」の個数情報を共有する。
個々のサブ台帳だけでは、組織101からは、限定された個数情報しか把握できないが、このように再帰的に問い合わせをしていくことで、直接的にサブ台帳を共有しないながらも、システム全体としての集約された個数情報を取得できることとなる。
<シーケンス>
図13は、第1実施形態の各分散台帳サブシステムにおける処理を示すシーケンス図である。ここで、分散台帳サブシステム111、121、131、141、151の粒度で
の、処理の流れについてあらためて説明する。
図において、「TX−A」、「TX−B」、「TX−C1」、「TX−C2」は、それぞれ異なる(サブ)トランザクションであることを示す。
また、「query」、「lookup」、「divide」、「merge」、「reply」は、図7Aにおいて説明した、トランザクション呼出部716、サブ台帳参照部713、トランザクション分解部714、トランザクション結果結合部717、トランザクション結果応答部718、にそれぞれ該当する。また、「commit」は台帳データを更新することを意味する。
図13に示すように、例えば、分散台帳サブシステム111に端を発するトランザクションの実行要求を受けた分散台帳サブシステム121が、分散台帳サブシステム131に対してトランザクション実行要求(query)を行い、これに対して、分散台帳サブシステム131がサブ台帳データを参照(lookup)し、必要に応じてトランザクションを分割(divide)し、別の分散台帳サブシステム141、151への1つ以上のトランザクション実行要求(query)を行う。また、その分散台帳サブシステム141、151から応答された(reply)トランザクションの実行結果は、集計(merge)されて、要求の送信元の分散台帳サブシステム111に応答(reply)される。このようなサブトランザクションの連鎖により、分散台帳システム全体にわたるトランザクションが実行される。
<GUIについて>
図14は、第1実施形態におけるGUIの一例を示す図である。このGUIは、上述のごとく集計されたトランザクションの実行結果を受信した分散台帳サブシステムが、自身のディスプレイ等の出力装置上に表示させる画面例となる。
図で示すGUI1401の構成要素は、リソース情報サブ画面1411、ブロックデータサブ画面1412、クエリサブ画面1413、を含む。クエリサブ画面1413には、製品ID表示エリア1421、問合ボタン1422、個数表示エリア1423、および、価格表示エリア1424、を含む。
本図で示す例においては、各構成要素の用途は次のとおりである。リソース情報サブ画面1411は、例えば、図6Bのリソース情報601〜603といった台帳データ管理テーブル442で管理する情報を表示する。
また、ブロックデータサブ画面1412は、図5のトランザクション引数一時管理テーブル455で管理する情報を表示する。
また、製品ID表示エリア1421で指定される値は、ユーザが指定する、トランザクション引数のリソースIDの値となる。
また、問合ボタン1422は、ユーザに押下されることで、トランザクション実行要求をトリガする。
また、個数表示エリア1423と価格表示エリア1424は、トランザクション実行結果を表示するエリアである(他にもリードタイムなどの情報を適宜表示してもよい)。
こうしたGUI1401において、リソース情報サブ画面1411、ブロックデータサブ画面1412は、所属するサブ台帳ごとにサブ画面を表示させるとしてもよい。
このためには、分散台帳クライアント412におけるUI生成部412(図15参照)は、画面パーツテンプレート1431a〜c、および、分散台帳ネットワーク構成管理テーブル1432を保持する。
このうち分散台帳ネットワーク構成管理テーブル1432は、自己の分散台帳サブシステム401が所属するサブ台帳に関するプロファイル情報などを持つ。UI生成部412は、この情報を元に、所属サブ台帳の個数分だけのサブ画面をGUI1401に表示するよう画面制御処理を行う。
<ハードウェア構成例>
続いて、分散台帳ノード411および分散台帳クライアント412のハードウェア構成例について説明する。図16は、第1実施形態における分散台帳ノード411、分散台帳クライアント412のハードウェア構成例を示す図である。
図16に例示する分散台帳ノード411、分散台帳クライアント412は、演算装置たるCPU(Central Processing Unit)1501、メモリ1502、および、補助記憶装置1503、を備える一般的な計算機を用いて実現することができる。
さらに、分散台帳ノード411、分散台帳クライアント412が実装する各処理部は、CPU1501が補助記憶装置1503に格納されているプログラム15031を実行することにより具現化される。プログラム15031は、あらかじめ補助記憶装置1503に格納されていてもよいし、必要なときに通信インタフェース1504を介した他装置から取得するか、メディアインタフェース1505を経由して利用可能な媒体から読み取って取得するとしてもよい。
また上述の媒体とは、たとえば、通信媒体(すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やデジタル信号)、またはメディアインタフェース1505に着脱可能な外部記憶媒体1507を指す。
なお、分散台帳ノード411、分散台帳クライアント412は、入出力装置1506を介して端末402からの操作を受け付けるべく、当該端末402と通信可能に接続してもよい。
また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ1502や、ハードディスク、SSD(Solid State Drive)等の補助記憶装置1503、または、IC(Integrated Circuit)カード、SD(Secure Digital)メモリカード、DVD(Digital Versatile Disc)等の記録媒体に記録しておくことができる。また、上記の各構成は、それらの一部又は全部を、仮想的なハードウェア(仮想マシン)として実現してもよい。
−−−第2実施形態−−−
以下、本発明の第2の実施形態について図面を用いて説明する。基本的には上述の第1実施形態と同様であるため、ここでは上述の第1実施形態との差分についてのみ説明するものとする。
図17は、第2の実施形態における分散台帳サブシステム401の構成を示す図である。上述の第1実施形態における分散台帳サブシステムと異なる点は、端末402において、UI表示部1611、分散台帳API呼出部1612、を含むことである。
このうちUI表示部1611は、第1実施形態のUI生成部452と同様である。また、分散台帳API呼出部1612は、トランザクション呼出部453と同様である。すなわち、分散台帳クライアント412の機能の一部を端末402に実装した構成となっている。従って端末402が分散台帳ノード411の処理を直接呼び出すこととなる。
図18は、第2実施形態におけるスマートコントラクトの実装例を示す図である。図18では、分散台帳クライアント412の機能部を、スマートコントラクト701の中に実装することを示している。
特に、トランザクション呼出部453、トランザクション引数一時管理テーブル455、トランザクション結果一時管理テーブル456は、第1実施形態で示したスマートコントラクト701内の構成要素と重複する部分があり、図18に示すような機能部で代替する(ノード管理テーブル454は、サブ台帳内のデータである隣接ノード情報605で代替する)。
第1実施形態において、図11Bでは分散台帳クライアントを省略した旨を説明した。一方、第2実施形態における構成では、各トランザクション間の連携において、分散台帳クライアント自体が不要となり、図11Bの構造を具現化することとなる。
以下、これまでに述べた各実施形態(第1実施形態、第2実施形態)について補足する。上記の各実施形態においては、単一の分散台帳内に複数のサブ台帳が存在する状況を想定し説明を行った。一方、分散台帳自体が複数存在し、分散台帳間にまたがってトランザクションを実行する場合にも、上述の各実施形態と同様の構成や処理が適用可能である。
また、各実施形態にて示した、各サブ台帳の共有範囲(所属する分散台帳サブシステムや所属する分散台帳ノード)は、あくまでも一例にすぎない。例えば、サブ台帳が3つ以上の組織で共有されてもよい。また、サブ台帳に記録される台帳データについても、あくまでも一例である。各実施形態では、リソース情報のような台帳データも、複数組織で共有されるサブ台帳内の台帳データとして記述したが、単一組織内のみで共有されるサブ台帳内の台帳データとしてもよい。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、分散台帳サブシステムの各間を跨がった適宜な情報共有を効率的に行うことが可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の分散台帳システムにおいて、前記分散台帳サブシステムの各々は、トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
これによれば、トランザクション要求の好適な送信先を効率的に特定することが可能となり、ひいては、分散台帳サブシステムの各間を跨がった適宜な情報共有をより効率的に行うことが可能となる。
また、本実施形態の分散台帳システムにおいて、前記分散台帳サブシステムの各々は、前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
これによれば、トランザクション要求の送信要否を効率的に判定し、無用なトランザクション要求の送信を回避できることとなる。ひいては、分散台帳サブシステムの各間を跨がった適宜な情報共有をより効率的に行うことが可能となる。
また、本実施形態の分散台帳システムにおいて、前記分散台帳サブシステムの各々は、前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデータ構造で規定しており、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、としてもよい。
これによれば、例えば、サプライチェーンにおいて取り扱う製品とそれを構成する部品といった階層構造をふまえて、部品の在庫情報に関するトランザクション要求の送信とその応答の取得、ならびに、当該応答を集約して製造可能な製品の情報生成、といった、サプライチェーンにおけるバイヤーとサプライヤーの各間にわたる情報収集を柔軟に実行できる。ひいては、分散台帳サブシステムの各間を跨がった適宜な情報共有をより効率的に行うことが可能となる。
また、本実施形態の前記分散台帳サブシステムは、トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
また、本実施形態の前記分散台帳サブシステムは、前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
また、本実施形態の前記分散台帳サブシステムは、前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデー
タ構造で規定しており、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、としてもよい。
また、本実施形態の分散台帳ノードは、前記トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
また、本実施形態の分散台帳ノードは、前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、としてもよい。
また、本実施形態の分散台帳ノードは、前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデータ構造で規定しており、前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、としてもよい。
1 分散台帳システム
101〜105 組織
106 ネットワーク
111、121、131、141、151 分散台帳サブシステム
112、122、132、142、152 業務システム
113、123、133、143、153 端末
114、124、134、144、154 ゲートウェイ
201 分散台帳
211、221、231、241、251 分散台帳ノード
212、222、232、242、252 分散台帳クライアント
301〜308 サブ台帳
401 分散台帳サブシステム
402 端末
411 分散台帳ノード
412 分散台帳クライアント
421 API
422 スマートコントラクト管理部
423 台帳管理部
424 トランザクション管理部
425 ノード管理部
426 通信制御部
431 スマートコントラクト管理テーブル
432 スマートコントラクト実行部
441 台帳メタデータ管理テーブル
442 台帳データ管理テーブル
451 API
452 UI生成部
453 トランザクション呼出部
454 ノード管理テーブル
455 トランザクション引数一時管理テーブル
456 トランザクション結果一時管理テーブル
601〜603 リソース情報
604 ノード別台帳情報
605 隣接ノード情報
701 スマートコントラクト
711 トランザクション受付部
712 ロール判定部
713 サブ台帳参照部
714 トランザクション分解部
715 ノード選定部
716 トランザクション呼出部
717 トランザクション結果結合部
718 トランザクション結果応答部
721 トランザクション引数一時管理テーブル
722 トランザクション結果一時管理テーブル
1401 GUI
1411 リソース情報表示サブ画面
1412 ブロックデータ表示サブ画面
1413 クエリ表示サブ画面
1421 製品表示エリア
1422 問合ボタン
1423 個数表示エリア
1424 価格表示エリア
1431 画面パーツテンプレート
1432 分散台帳ネットワーク構成管理テーブル
1501 CPU
1502 メモリ
1503 補助記憶装置
15031 プログラム
1504 通信インタフェース
1505 メディアインタフェース
1506 入出力装置
1507 外部記憶媒体
1508 ネットワーク
1611 UI表示部
1612 分散台帳API呼出部

Claims (12)

  1. 複数の分散台帳サブシステムから構成される分散台帳システムであって、
    前記分散台帳サブシステムの各々において、当該分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ分散台帳サブシステムの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムから得たトランザクション応答を前記所定装置に応答するものである、
    ことを特徴とする分散台帳システム。
  2. 前記分散台帳サブシステムの各々は、
    トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、
    前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項1に記載の分散台帳システム。
  3. 前記分散台帳サブシステムの各々は、
    前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項2に記載の分散台帳システム。
  4. 前記分散台帳サブシステムの各々は、
    前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデータ構造で規定しており、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、
    ことを特徴とする請求項3に記載の分散台帳システム。
  5. 分散台帳システムを構成する分散台帳サブシステムであって、
    分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ分散台帳サブシステムの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、
    所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行
    することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムから得たトランザクション応答を前記所定装置に応答するものである、
    ことを特徴とする分散台帳サブシステム。
  6. 前記分散台帳サブシステムは、
    トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、
    前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項5に記載の分散台帳サブシステム。
  7. 前記分散台帳サブシステムは、
    前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項6に記載の分散台帳サブシステム。
  8. 前記分散台帳サブシステムは、
    前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデータ構造で規定しており、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、
    ことを特徴とする請求項7に記載の分散台帳サブシステム。
  9. 分散台帳システムを構成する分散台帳サブシステムが含むノードであって、
    所属先の分散台帳サブシステム内で共有される台帳データを保持するサブ台帳と、共通のサブ台帳を持つ他の分散台帳サブシステムのノードとの間で連動して台帳データの入出力に関するトランザクション処理を行うスマートコントラクトとを備え、
    所定のトランザクション要求を所定装置から受信して前記スマートコントラクトを実行することで、前記共通のサブ台帳を持つ他の分散台帳サブシステムの所定ノードに対し、当該他の分散台帳サブシステムが管理する、前記共通のサブ台帳とは異なる他のサブ台帳の台帳データを対象としたトランザクション要求を送信し、少なくとも前記他の分散台帳サブシステムの所定ノードから得たトランザクション応答を前記所定装置に応答するものである、
    ことを特徴とする分散台帳ノード。
  10. 前記トランザクション要求の対象となるサブ台帳を保持する分散台帳ノードのリストとして、隣接ノード情報を更に保持し、
    前記スマートコントラクトを実行することで、前記トランザクション要求を送信する際、予め定めた所定のノード選定基準に基づいて、前記隣接ノード情報から、前記トランザクション要求の送信先として、前記他の分散台帳サブシステム内の分散台帳ノードを選定し、当該選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項9に記載の分散台帳ノード。
  11. 前記隣接ノード情報において、トランザクション引数に応じて呼び出すべきサブ台帳と当該サブ台帳を保持する分散台帳ノードとに関する各情報を保持し、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値と、前記隣接ノード情報とに基づき、前記他のサブ台帳の台帳データを対象としたトランザクション要求の送信要否を判定し、前記判定の結果、送信が必要であれば、前記選定した分散台帳ノードに前記トランザクション要求を送信するものである、
    ことを特徴とする請求項10に記載の分散台帳ノード。
  12. 前記隣接ノード情報において、前記トランザクション引数を、当該トランザクション引数が示す事象の階層構造に応じたデータ構造で規定しており、
    前記スマートコントラクトを実行することで、前記受信した所定のトランザクション要求におけるトランザクション引数の値を、より下位階層のレベルについての1つ以上のトランザクション引数である下位トランザクション引数に分解し、当該分解したそれぞれの下位トランザクション引数の値と、前記隣接ノード情報とに基づき、前記分散台帳ノードの選定を行い、当該選定した分散台帳ノードに前記トランザクション要求を送信して、前記送信先の分散台帳ノードからトランザクション応答を受信し、当該受信した前記下位階層に関するトランザクション応答を、前記下位階層よりも上位階層のトランザクション引数に応じて集約し、前記トランザクション要求の送信元に応答するものである、
    ことを特徴とする請求項11に記載の分散台帳ノード。
JP2018094530A 2018-05-16 2018-05-16 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード Active JP6684850B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018094530A JP6684850B2 (ja) 2018-05-16 2018-05-16 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード
US16/296,861 US11373173B2 (en) 2018-05-16 2019-03-08 Distributed ledger system, distributed ledger subsystem, and distributed ledger node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018094530A JP6684850B2 (ja) 2018-05-16 2018-05-16 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード

Publications (2)

Publication Number Publication Date
JP2019200580A true JP2019200580A (ja) 2019-11-21
JP6684850B2 JP6684850B2 (ja) 2020-04-22

Family

ID=68533810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018094530A Active JP6684850B2 (ja) 2018-05-16 2018-05-16 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード

Country Status (2)

Country Link
US (1) US11373173B2 (ja)
JP (1) JP6684850B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112381539A (zh) * 2020-11-13 2021-02-19 陈素华 基于区块链和大数据的交易信息处理方法及数字金融平台
JPWO2021171457A1 (ja) * 2020-02-27 2021-09-02
WO2021176599A1 (ja) * 2020-03-04 2021-09-10 三菱電機株式会社 管理装置、管理方法、及び、管理プログラム
JP2021136598A (ja) * 2020-02-27 2021-09-13 横河電機株式会社 データ記録装置、データ記録方法、データ記録プログラム、システム、方法、および、プログラム
JP2021153331A (ja) * 2020-07-15 2021-09-30 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210312558A1 (en) 2016-11-23 2021-10-07 State Farm Mutual Automobile Insurance Company Systems and methods for maintaining a distributed ledger of transactions pertaining to one or more smart contracts
US10824759B1 (en) 2017-01-25 2020-11-03 State Farm Mutual Automobile Insurance Company Systems and methods for verifying agent sales data via blockchain
US20210264426A1 (en) 2017-01-25 2021-08-26 State Farm Mutual Automobile Insurance Company Blockchain based asset access
US20210264531A1 (en) 2017-03-03 2021-08-26 State Farm Mutual Automobile Insurance Company Systems and methods for updating an insured loss history blockchain
US10832214B1 (en) 2017-04-05 2020-11-10 State Farm Mutual Automobile Insurance Company Systems and methods for maintaining transferability of title via blockchain
US10929931B1 (en) 2017-05-02 2021-02-23 State Farm Mutual Automobile Insurance Company Distributed ledger system for carrier discovery
US10554649B1 (en) 2017-05-22 2020-02-04 State Farm Mutual Automobile Insurance Company Systems and methods for blockchain validation of user identity and authority
US10949926B1 (en) 2017-05-24 2021-03-16 State Farm Mutual Automobile Insurance Company Fault determination of blockchain subrogation claims
US11386498B1 (en) 2017-09-06 2022-07-12 State Farm Mutual Automobile Insurance Company Using historical data for subrogation on a distributed ledger
US10872381B1 (en) 2017-09-06 2020-12-22 State Farm Mutual Automobile Insurance Company Evidence oracles
US11416942B1 (en) 2017-09-06 2022-08-16 State Farm Mutual Automobile Insurance Company Using a distributed ledger to determine fault in subrogation
JP7316081B2 (ja) * 2019-04-03 2023-07-27 株式会社日立製作所 分散台帳装置、分散台帳システム、及び分散台帳管理方法
US11250438B2 (en) * 2019-07-31 2022-02-15 Advanced New Technologies Co., Ltd. Blockchain-based reimbursement splitting
JPWO2021125109A1 (ja) * 2019-12-19 2021-06-24
JP7432443B2 (ja) * 2020-05-28 2024-02-16 株式会社日立製作所 移行支援システム、移行支援方法、およびノード
US11343136B2 (en) 2020-10-01 2022-05-24 Bank Of America Corporation System for real time recovery of resource transfers over a distributed server network
US11574304B2 (en) * 2021-05-10 2023-02-07 Bank Of America Corporation Blockchain-based dynamic payterm generator
US20220392004A1 (en) 2021-06-03 2022-12-08 State Farm Mutual Automobile Insurance Company Method and system for verifying settlement demands for subrogation claims using a distributed ledger

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017187395A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger
WO2018015177A1 (en) * 2016-07-22 2018-01-25 NEC Laboratories Europe GmbH Method for secure ledger distribution and computer system using secure distributed ledger technology

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5236086B2 (ja) * 2010-01-28 2013-07-17 株式会社日立製作所 増設/減設する記憶容量を計算する管理システム
EP2887222B1 (en) * 2013-04-05 2020-07-15 Hitachi, Ltd. Management system and management program
DE112014002303T5 (de) * 2014-01-15 2016-02-25 Hitachi, Ltd. Computersystem und Verfahren zum Steuern eines hierarchischen Speichers dafür
US10069906B2 (en) * 2014-04-29 2018-09-04 Hitachi, Ltd. Method and apparatus to deploy applications in cloud environments
WO2016103314A1 (ja) * 2014-12-22 2016-06-30 株式会社日立製作所 計算機システムの管理システム及び管理方法
WO2016199232A1 (ja) * 2015-06-10 2016-12-15 株式会社日立製作所 ストレージ管理計算機、及びストレージ装置の管理方法
JP6568232B2 (ja) * 2015-12-04 2019-08-28 株式会社日立製作所 計算機システム、及び、装置の管理方法
EP3414713B1 (en) * 2016-02-12 2023-07-26 Royal Bank Of Canada Methods and systems for digital reward processing
US10102265B1 (en) * 2017-04-12 2018-10-16 Vijay K. Madisetti Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
US10348487B2 (en) * 2017-07-20 2019-07-09 International Business Machines Corporation Game data offloading to a blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017187395A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger
JP2019515534A (ja) * 2016-04-29 2019-06-06 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 分散ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用した契約の実行を制御する方法及びシステム
WO2018015177A1 (en) * 2016-07-22 2018-01-25 NEC Laboratories Europe GmbH Method for secure ledger distribution and computer system using secure distributed ledger technology
JP2019521450A (ja) * 2016-07-22 2019-07-25 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー 安全な台帳分散の方法及び安全な分散型台帳技術を用いたコンピューターシステム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021171457A1 (ja) * 2020-02-27 2021-09-02
WO2021171457A1 (ja) * 2020-02-27 2021-09-02 富士通株式会社 制御方法、情報処理装置及び制御プログラム
JP2021136598A (ja) * 2020-02-27 2021-09-13 横河電機株式会社 データ記録装置、データ記録方法、データ記録プログラム、システム、方法、および、プログラム
JP7311020B2 (ja) 2020-02-27 2023-07-19 富士通株式会社 制御方法、情報処理装置及び制御プログラム
JP7327208B2 (ja) 2020-02-27 2023-08-16 横河電機株式会社 データ記録装置、データ記録方法、データ記録プログラム、システム、方法、および、プログラム
WO2021176599A1 (ja) * 2020-03-04 2021-09-10 三菱電機株式会社 管理装置、管理方法、及び、管理プログラム
JPWO2021176599A1 (ja) * 2020-03-04 2021-09-10
JP2021153331A (ja) * 2020-07-15 2021-09-30 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体
JP7072103B2 (ja) 2020-07-15 2022-05-19 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体
CN112381539A (zh) * 2020-11-13 2021-02-19 陈素华 基于区块链和大数据的交易信息处理方法及数字金融平台

Also Published As

Publication number Publication date
US20190354966A1 (en) 2019-11-21
JP6684850B2 (ja) 2020-04-22
US11373173B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
JP6684850B2 (ja) 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード
CN113711536B (zh) 从区块链网络中提取数据
WO2020177533A1 (zh) 电子票据标识分配方法、电子票据生成方法、装置及系统
US9077717B2 (en) Propagation and adoption of extensions across applications in networked solutions
US7792944B2 (en) Executing programs based on user-specified constraints
EP2005709B1 (en) Service registry and relevant system and method
US11546168B1 (en) Systems and methods for IT management of distributed computing resources on a peer-to-peer network
CN112333249B (zh) 一种业务服务系统及方法
US11336588B2 (en) Metadata driven static determination of controller availability
WO2020215752A1 (zh) 图计算方法及装置
US8751711B2 (en) Storage topology manager
WO2024066342A1 (zh) 任务处理方法、装置、电子设备及存储介质
CN114448983A (zh) 基于ZooKeeper的分布式数据交换方法
CN113645251B (zh) 适用于跨区域服务的数据传输方法及装置
WO2020106845A1 (en) Enabling access across private networks for a managed blockchain service
CN114650320A (zh) 任务调度方法、装置、存储介质及电子设备
US11601495B2 (en) Mechanism for a work node scan process to facilitate cluster scaling
Krishnaswamy et al. A microservices-based virtualized blockchain framework for emerging 5G data networks
US11637737B2 (en) Network data management framework
CN115422184A (zh) 一种数据获取方法、装置、设备及存储介质
CN114710350A (zh) 一种可调用资源的分配方法和装置
US8041671B2 (en) Method and system for providing a homogeneous view of a distributed common information model (CIM) within a heterogeneous virtual system environment
US9841929B1 (en) Distributed system software infrastructure
Cannarella Multi-Tenant federated approach to resources brokering between Kubernetes clusters
CN115168366B (zh) 数据处理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200330

R150 Certificate of patent or registration of utility model

Ref document number: 6684850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150