[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP7016389B1 - Systems and programs - Google Patents

Systems and programs Download PDF

Info

Publication number
JP7016389B1
JP7016389B1 JP2020132481A JP2020132481A JP7016389B1 JP 7016389 B1 JP7016389 B1 JP 7016389B1 JP 2020132481 A JP2020132481 A JP 2020132481A JP 2020132481 A JP2020132481 A JP 2020132481A JP 7016389 B1 JP7016389 B1 JP 7016389B1
Authority
JP
Japan
Prior art keywords
node
log
nodes
transactions
logs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020132481A
Other languages
Japanese (ja)
Other versions
JP2022029244A (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.)
MUFG Bank Ltd
Original Assignee
MUFG Bank 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 MUFG Bank Ltd filed Critical MUFG Bank Ltd
Priority to JP2020132481A priority Critical patent/JP7016389B1/en
Priority to PCT/JP2021/024467 priority patent/WO2022030144A1/en
Priority to JP2021157144A priority patent/JP2022029453A/en
Application granted granted Critical
Publication of JP7016389B1 publication Critical patent/JP7016389B1/en
Publication of JP2022029244A publication Critical patent/JP2022029244A/en
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/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】分散型台帳技術において、取引要求に対する処理の高速化又は複数のノード間において整合性を確保するシステム及びプログラムを提供する。【解決手段】分散型台帳システム10において、台帳を分散して記録する複数のノード100~103のうち1つの第1ノードは、複数のノードのうち第1ノードとは異なる複数の第2ノードに、クライアント端末から受信した複数のトランザクションに基づく複数のログの合計を送信する。第1ノードは、複数の第2ノードに対して、複数のログを送信せずに複数のログの合計を送信してもよい。【選択図】図2PROBLEM TO BE SOLVED: To provide a system and a program for speeding up processing for a transaction request or ensuring consistency among a plurality of nodes in a distributed ledger technology. SOLUTION: In a distributed ledger system 10, one first node among a plurality of nodes 100 to 103 for distributing and recording a ledger is a plurality of second nodes different from the first node among the plurality of nodes. , Sends the sum of multiple logs based on multiple transactions received from the client terminal. The first node may transmit the total of a plurality of logs to the plurality of second nodes without transmitting the plurality of logs. [Selection diagram] Fig. 2

Description

本発明は、分散型台帳技術に関するシステム及びプログラムに関する。 The present invention relates to a system and a program relating to distributed ledger technology.

ブロックチェーンを用いた分散型台帳技術が、ビットコイン等の暗号資産(仮想通貨)を管理する方法として用いられている。近年では、これらの技術は、このような暗号資産だけではなく、様々な資産を管理したり移動したりする方法として用いることも検討されている(例えば、特許文献1)。 Distributed ledger technology using blockchain is used as a method of managing cryptocurrencies (virtual currency) such as Bitcoin. In recent years, it has been studied to use these techniques not only as such cryptographic assets but also as a method for managing and moving various assets (for example, Patent Document 1).

特開2018-196150号公報Japanese Unexamined Patent Publication No. 2018-196150

特許文献1に示した分散型台帳技術では、P2P(Peer to Peer)によって接続された複数のノード(1つのリーダノード及びその他の複数のフォロワノード)によって分散台帳ネットワークが形成され、当該分散台帳ネットワークにおける複数のノードによって台帳が分散して記録される。 In the distributed ledger technology shown in Patent Document 1, a distributed ledger network is formed by a plurality of nodes (one leader node and a plurality of other follower nodes) connected by P2P (Peer to Peer), and the distributed ledger network is formed. The ledger is distributed and recorded by multiple nodes in.

上記のような従来の分散型台帳技術においては、クライアント端末からの取引要求に対する処理の高速化及び複数のノード間における整合性の確保は重要な課題である。 In the conventional distributed ledger technology as described above, speeding up processing for transaction requests from client terminals and ensuring consistency among a plurality of nodes are important issues.

本発明の目的の一つは、分散型台帳技術において、取引要求に対する処理の高速化又は複数のノード間において整合性を確保することである。 One of the objects of the present invention is to speed up the processing of transaction requests or ensure consistency among a plurality of nodes in the distributed ledger technology.

本発明の一実施形態に係るシステムは、台帳を分散して記録する複数のノードのうち1つの第1ノードが、前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードに、クライアント端末から受信した複数のトランザクションに基づく複数のログの合計を送信する。 In the system according to the embodiment of the present invention, the first node of one of the plurality of nodes for recording the ledger in a distributed manner becomes a plurality of second nodes of the plurality of nodes different from the first node. Sends the sum of multiple logs based on multiple transactions received from the client terminal.

前記第1ノードは前記複数の第2ノードに対して、前記複数のログを送信せずに前記複数のログの合計を送信させてもよい。 The first node may cause the plurality of second nodes to transmit the total of the plurality of logs without transmitting the plurality of logs.

前記第1ノードは、前記クライアント端末から前記複数のトランザクションを含むブロック単位で前記複数のトランザクションを受信し、前記ブロックに含まれる前記複数のトランザクションに基づいて前記複数のログを生成し、前記複数の第2ノードに対して複数の前記ブロックに含まれる前記複数のログを合計した結果を送信してもよい。 The first node receives the plurality of transactions from the client terminal in block units including the plurality of transactions, generates the plurality of logs based on the plurality of transactions included in the block, and generates the plurality of logs. The result of summing up the plurality of logs included in the plurality of blocks may be transmitted to the second node.

前記第1ノードは前記複数のログを記憶してもよい。 The first node may store the plurality of logs.

本発明の一実施形態に係るプログラムは、台帳を分散して記録する複数のノードのうち1つの第1ノードに対して、前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードに、クライアント端末から受信した複数のトランザクションに基づく複数のログの合計を送信することを実行させる。 In the program according to the embodiment of the present invention, for the first node of one of the plurality of nodes for recording the ledger in a distributed manner, the plurality of second nodes of the plurality of nodes different from the first node are used. To send the sum of multiple logs based on multiple transactions received from the client terminal.

前記第1ノードに対して、前記複数の第2ノードへ前記複数のログを送信させずに前記複数のログの合計を送信させてもよい。 The first node may be made to transmit the total of the plurality of logs without transmitting the plurality of logs to the plurality of second nodes.

前記第1ノードに、前記クライアント端末から前記複数のトランザクションを含むブロック単位で前記複数のトランザクションを受信させ、前記ブロックに含まれる前記複数のトランザクションに基づいて前記複数のログを生成させ、前記複数の第2ノードに対して複数の前記ブロックに含まれる前記複数のログを合計した結果を送信させてもよい。 The first node receives the plurality of transactions from the client terminal in block units including the plurality of transactions, generates the plurality of logs based on the plurality of transactions included in the block, and causes the plurality of logs. The second node may be made to transmit the result of summing up the plurality of logs included in the plurality of blocks.

前記第1ノードに前記複数のログを記憶させてもよい。 The plurality of logs may be stored in the first node.

本発明の一実施形態によれば、分散型台帳技術において、取引要求に対する処理の高速化又は複数のノード間において整合性を確保することができる。 According to one embodiment of the present invention, in the distributed ledger technology, it is possible to speed up processing for transaction requests or ensure consistency among a plurality of nodes.

本発明の一実施形態に係る分散型台帳システムの概要を示す図である。It is a figure which shows the outline of the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムの概要を示す図である。It is a figure which shows the outline of the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムの概要を示す図である。It is a figure which shows the outline of the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムに用いられるリーダノードの機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the reader node used in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムにおけるトランザクション及びログの具体例を示す図である。It is a figure which shows the specific example of the transaction and the log in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムにおけるログの断面及びログの最終断面の具体例を示す図である。It is a figure which shows the specific example of the cross section of a log and the final cross section of a log in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムに用いられるクライアント端末の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the client terminal used in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムに用いられるフォロワノードの機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the follower node used in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムの動作を示すシーケンスを示す図である。It is a figure which shows the sequence which shows the operation of the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムの動作を示すフローチャートを示す図である。It is a figure which shows the flowchart which shows the operation of the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムに用いられるリーダノードの機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the reader node used in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムに用いられるクライアント端末の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the client terminal used in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。It is a figure which shows the sequence which shows the operation of exclusive control in the distributed ledger system which concerns on one Embodiment of this invention. 本発明の一実施形態の変形例に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。It is a figure which shows the sequence which shows the operation of exclusive control in the distributed ledger system which concerns on the modification of one Embodiment of this invention. 本発明の一実施形態の変形例に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。It is a figure which shows the sequence which shows the operation of exclusive control in the distributed ledger system which concerns on the modification of one Embodiment of this invention. 本発明の一実施形態に係る分散型台帳システムにおけるデータ同期アルゴリズムの動作を示すフローチャートを示す図である。It is a figure which shows the flowchart which shows the operation of the data synchronization algorithm in the distributed ledger system which concerns on one Embodiment of this invention.

以下、本発明の一実施形態について、図面を参照しながら詳細に説明する。以下に示す実施形態は本発明の実施形態の一例であって、本発明はこの実施形態に限定して解釈されるものではない。すなわち、以下に説明する複数の実施形態に公知の技術を適用して変形をして、様々な態様で実施をすることが可能である。なお、本実施の形態で参照する図面において、同一部分又は同様な機能を有する部分には同一の符号又は同一の符号の後にアルファベットを付し、その繰り返しの説明は省略する。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. The embodiments shown below are examples of embodiments of the present invention, and the present invention is not construed as being limited to this embodiment. That is, it is possible to apply a known technique to a plurality of embodiments described below to modify the plurality of embodiments and carry out the embodiments in various embodiments. In the drawings referred to in this embodiment, alphabets are added after the same reference numerals or the same reference numerals to the same parts or parts having similar functions, and the repeated description thereof will be omitted.

以下の説明において、トランザクション(TX)は、クライアント端末(ClientMachine;CM)が要求する取引の内容を含む情報である。トランザクションは、互いに関連又は依存する複数の処理によって構成され、当該複数の処理は一体不可分の処理単位として扱われる。具体的には、当該複数の処理の全てが成功した場合には当該トランザクションに関連する取引が成立したと判断され、当該複数の処理の一部が失敗した場合には当該トランザクションに関連する取引が失敗したと判断される。換言すると、トランザクションを構成する複数の処理は、「すべて成功」又は「すべて失敗」のいずれかの結果になることが保証される。例えば、コンピュータ間で入出金処理が行われる場合、入金処理及び出金処理は「どちらも成功」又は「どちらも失敗」であることが要求される。 In the following description, the transaction (TX) is information including the content of the transaction requested by the client terminal (Client Terminal; CM). A transaction is composed of a plurality of processes related to or dependent on each other, and the plurality of processes are treated as an inseparable processing unit. Specifically, if all of the plurality of processes are successful, it is determined that the transaction related to the transaction has been completed, and if a part of the plurality of processes fails, the transaction related to the transaction is performed. It is judged to have failed. In other words, the processes that make up a transaction are guaranteed to result in either "all successes" or "all failures." For example, when deposit / withdrawal processing is performed between computers, the deposit / withdrawal processing is required to be "both successful" or "both unsuccessful".

ログ(又はトランザクションログ)は、複数のトランザクションが整列された情報である。具体的には、ログは、複数のトランザクションに基づいてデータベースの更新が行われる順番を記録したものである。ログは、トランザクションによって規定されたデータの追加、更新、削除などの更新内容を時系列に記録する。システム障害などで処理が中断又は取り消されると、分散型台帳システムは、ログの記録を参照して更新済みのデータを元に戻し、トランザクション開始前の状態に戻す。 A log (or transaction log) is information in which a plurality of transactions are arranged. Specifically, the log records the order in which database updates are made based on multiple transactions. The log records the update contents such as addition, update, and deletion of data specified by the transaction in chronological order. When the process is interrupted or canceled due to a system failure or the like, the distributed ledger system refers to the log record, restores the updated data, and returns to the state before the transaction started.

以下の実施形態では、分散型台帳システムに含まれるリーダノード(LeaderNode;LN)及びフォロワノード(FollowerNode;FN)として、例えばサーバのような固定された情報処理装置が用いられた構成を例示するが、この構成に限定されない。また、特に技術的な矛盾が生じない限り、異なる実施形態間の技術を組み合わせることができる。 The following embodiments exemplify a configuration in which a fixed information processing device such as a server is used as a leader node (LeaderNode; LN) and a follower node (FollowerNode; FN) included in the distributed ledger system. , Not limited to this configuration. Also, techniques between different embodiments can be combined as long as there is no particular technical conflict.

〈第1実施形態〉
[1-1.システムの概要]
図1~図10を用いて、本発明の第1実施形態に係る分散型台帳システム10、分散型台帳システム10を構成する情報処理装置(ノード100)、及びノード100に接続されるクライアント端末400、並びに、これらを動作させるためのプログラムについて説明する。図1~図3は、本発明の一実施形態に係る分散型台帳システムの概要を示す図である。
<First Embodiment>
[1-1. System overview]
Using FIGS. 1 to 10, the distributed ledger system 10 according to the first embodiment of the present invention, the information processing device (node 100) constituting the distributed ledger system 10, and the client terminal 400 connected to the node 100 are used. , And a program for operating them will be described. 1 to 3 are diagrams showing an outline of a distributed ledger system according to an embodiment of the present invention.

図1に示すように、分散型台帳システム10は日本全国各地に台帳(データベース;DB)が配置されており、これらの台帳は互いに同期している。つまり、各クライアントは日本全国のどの台帳からでも分散型台帳システム10にアクセスして取引を要求することができ、取引によって更新されたデータは各台帳で同期して格納される。例えば、北海道に配置された台帳31(この例におけるリーダノード)に対してクライアント端末41から「再配達の費用請求」の取引要求(トランザクション)があった場合、台帳31によって当該取引の順序を示す情報(ログ)が生成され、当該ログは他の台帳32~38(この例におけるフォロワノード)に送信され、当該ログに応じたデータ更新が各台帳31~38で行われる。このようにして、台帳31に対して要求された取引に基づいて日本全国各地に配置された台帳31~38の同期処理が行われる。 As shown in FIG. 1, the distributed ledger system 10 has ledgers (databases; DBs) arranged all over Japan, and these ledgers are synchronized with each other. That is, each client can access the distributed ledger system 10 from any ledger in Japan and request a transaction, and the data updated by the transaction is stored synchronously in each ledger. For example, when there is a transaction request (transaction) for "redelivery cost billing" from the client terminal 41 to the ledger 31 (leader node in this example) arranged in Hokkaido, the ledger 31 indicates the order of the transactions. Information (log) is generated, the log is transmitted to other ledgers 32 to 38 (follower nodes in this example), and data is updated in each ledger 31 to 38 according to the log. In this way, synchronization processing of ledgers 31 to 38 arranged all over Japan is performed based on the transaction requested for the ledger 31.

図1に示すように、分散型台帳システム10は、従来の仮想通貨や資産管理のように人が主体となって取引要求を行うシステムに適用することができる。例えば、分散型台帳システム10が、上記のクライアント端末41を用いた「再配達の費用請求」やクライアント端末42を用いた「部屋の貸し出し」などのシステムに適用されてもよい。また、分散型台帳システム10は、例えばIoT(Internet of Things;モノのインターネット)のように端末が主体となって取引要求を行うシステムに適用することもできる。例えば、分散型台帳システム10が、コンテンツの視聴に係る自動課金(例えば、クライアント端末43による時間課金)、電子書籍の通読に係る自動課金(例えば、クライアント端末44によるページ課金)、及びクライアント端末45による臨時の充電により発生する自動課金など、1円単位又は1円未満の費用請求(マイクロペイメント)が発生しうるサービスに適用されてもよい。また、分散型台帳システム10は、複数の独立した機能を組み合わせることで実現されるマイクロサービスに適用されてもよい。 As shown in FIG. 1, the distributed ledger system 10 can be applied to a system in which a person takes the initiative in making a transaction request, such as a conventional virtual currency or asset management. For example, the distributed ledger system 10 may be applied to a system such as “redelivery cost billing” using the client terminal 41 or “room rental” using the client terminal 42. Further, the distributed ledger system 10 can also be applied to a system such as IoT (Internet of Things; Internet of Things) in which a terminal plays a central role in making a transaction request. For example, the distributed ledger system 10 automatically charges for viewing contents (for example, hourly billing by the client terminal 43), automatic billing for reading electronic books (for example, page billing by the client terminal 44), and client terminal 45. It may be applied to a service in which a charge of 1 yen or less than 1 yen (micropayment) may occur, such as an automatic charge generated by a temporary charge by the client. Further, the distributed ledger system 10 may be applied to a microservice realized by combining a plurality of independent functions.

図2に示すように、クライアント端末400とノード100とは、ネットワーク500を介して通信可能に接続されている。また、各ノード100は、専用ネットワーク600を介して通信可能に接続されている。各ノード100は、台帳(データベース)を分散して記録するノードである。なお、本実施形態では、3つのノード101、102、103を特に区別する必要がない場合、単にノード100という。また、3つのクライアント端末401、402、403を特に区別する必要がない場合、単にクライアント端末400という。 As shown in FIG. 2, the client terminal 400 and the node 100 are communicably connected via the network 500. Further, each node 100 is communicably connected via a dedicated network 600. Each node 100 is a node that distributes and records a ledger (database). In the present embodiment, when it is not necessary to particularly distinguish the three nodes 101, 102, 103, it is simply referred to as a node 100. Further, when it is not necessary to particularly distinguish the three client terminals 401, 402, 403, it is simply referred to as a client terminal 400.

ノード101、102、103は、それぞれサーバ111、112、113及びデータベース121、122、123を含む。これらのサーバ及びデータベースを特に区別する必要がない場合、単にサーバ110及びデータベース120という。サーバ110はデータベース120に対してデータの記録処理及び読み出し処理(データ更新)を実行する。サーバ110は、中央演算処理装置(CPU)及び記憶装置(メモリ)を有しており、これらが協働することで、以下に説明する各種機能を実現する。具体的には、記憶装置に格納されたプログラムをCPUが実行することで、サーバ110の各種機能が実現される。記憶装置は一時的な記憶を行う揮発性の記憶装置であってもよく、不揮発性の記憶装置であってもよく、これらの記憶装置を組み合わせたものであってもよい。 Nodes 101, 102, 103 include servers 111, 112, 113 and databases 121, 122, 123, respectively. When it is not necessary to distinguish between these servers and databases, they are simply referred to as servers 110 and databases 120. The server 110 executes data recording processing and reading processing (data update) for the database 120. The server 110 has a central processing unit (CPU) and a storage device (memory), and by cooperating with each other, various functions described below are realized. Specifically, various functions of the server 110 are realized by the CPU executing the program stored in the storage device. The storage device may be a volatile storage device for temporary storage, a non-volatile storage device, or a combination of these storage devices.

各クライアント端末400から送信されたトランザクションは、ネットワーク500を介して、例えばサーバ111によって受信される。サーバ111において、受信したトランザクションに応じてログの生成が行われる。生成されたログはサーバ111に接続されたデータベース121に格納される。 Transactions transmitted from each client terminal 400 are received via network 500, for example, by server 111. The server 111 generates a log according to the received transaction. The generated log is stored in the database 121 connected to the server 111.

サーバ111は、専用ネットワーク600を介して、上記ログをサーバ112、113に送信する。ログを受信したサーバ112、113は、当該ログをそれぞれのサーバ112、113に接続されたデータベース122、123に格納すると、ログを適正に受信し格納したことを示す応答をサーバ111に送信する。この動作を「合意」又は「合意形成」という。サーバ111は、サーバ112、113からの合意形成が確認されると、ログの複製が正常に行われたと判断する。ログの複製が正常に行われると、当該ログに基づいて各サーバ111、112、113に接続されたデータベース121、122、123の更新が行われる。このようにして、クライアント端末400から1つのノード101に送信されたトランザクションに基づくデータ更新が各ノードで同期して行われる。 The server 111 transmits the above log to the servers 112 and 113 via the dedicated network 600. When the servers 112 and 113 that have received the log store the log in the databases 122 and 123 connected to the respective servers 112 and 113, they send a response indicating that the log has been properly received and stored to the server 111. This operation is called "agreement" or "consensus building". When the consensus building from the servers 112 and 113 is confirmed, the server 111 determines that the log duplication has been performed normally. When the log is duplicated normally, the databases 121, 122, and 123 connected to the servers 111, 112, and 113 are updated based on the log. In this way, the data update based on the transaction transmitted from the client terminal 400 to one node 101 is performed synchronously in each node.

なお、データベース121に格納されたログは、後の工程でデータの不整合が発生した場合に、誤ったデータが格納されたデータベースを修正するために用いられる。 The log stored in the database 121 is used to correct the database in which incorrect data is stored when data inconsistency occurs in a later process.

ネットワーク500は、一般的なWorld Wide Web(WWW)のようなインターネット、WAN(Wide Area Network)、又は社内LANなどのLAN(Local Area Network)である。 The network 500 is an Internet such as a general World Wide Web (WWW), a WAN (Wide Area Network), or a LAN (Local Area Network) such as an in-house LAN.

専用ネットワーク600は、ネットワーク500とは異なり、分散型台帳システム10の専用のネットワークである。つまり、専用ネットワーク600は、クライアント端末400がアクセスすることができないネットワークである。 Unlike the network 500, the dedicated network 600 is a dedicated network of the distributed ledger system 10. That is, the dedicated network 600 is a network that the client terminal 400 cannot access.

図1及び図2では説明を省略したが、図2に示す各ノード100は、図3に示すように、1つのリーダノード200と複数のフォロワノード300として機能する。リーダ選出によって複数のノード100から選出された1つのノード100がリーダノード200として機能し、その他のノード100はフォロワノード300として機能する。リーダノード200としての機能は、定期的に又はイベント発生をトリガとして次のノード100に引き継がれる。ただし、リーダノード200は固定されていてもよい。なお、図3のリーダノード200及びフォロワノード300は、それぞれサーバ及びデータベースを有しており、図2のノード100のように動作する。 Although the description is omitted in FIGS. 1 and 2, each node 100 shown in FIG. 2 functions as one leader node 200 and a plurality of follower nodes 300 as shown in FIG. One node 100 selected from the plurality of nodes 100 by the leader election functions as the leader node 200, and the other nodes 100 function as the follower node 300. The function as the leader node 200 is handed over to the next node 100 periodically or triggered by the occurrence of an event. However, the reader node 200 may be fixed. The reader node 200 and the follower node 300 in FIG. 3 each have a server and a database, and operate as in the node 100 in FIG.

図3に示すように、リーダノード200には複数のクライアント端末400が接続されている。複数のクライアント端末400の各々は、例えば、サービス提供事業者の通信端末であり、例えば、携帯通信端末サービス、自動車サービス、IoTサービスなどのサービスを提供する事業者が有する情報処理装置(ハードウェア)である。各クライアント端末400において、複数のクライアントプロセス(ClientProcess)410(ソフトウェア)が起動している。例えば、一般的に、情報処理装置として使用されるコンピュータには複数のCPUコアが搭載されているため、処理の並列度を向上させるためにCPUコアの数だけ以下のクライアントプロセス410を起動してもよい。ただし、上記のサービス提供事業者は単なる一例であり、上記以外の様々なサービス提供事業者に適用することができる。また、複数のクライアントプロセス410は単一のCPUによって実現されてもよい。 As shown in FIG. 3, a plurality of client terminals 400 are connected to the reader node 200. Each of the plurality of client terminals 400 is, for example, a communication terminal of a service provider, and is an information processing device (hardware) possessed by a provider that provides services such as a mobile communication terminal service, an automobile service, and an IoT service. Is. In each client terminal 400, a plurality of client processes (Client Process) 410 (software) are activated. For example, in general, a computer used as an information processing device is equipped with a plurality of CPU cores, so in order to improve the parallelism of processing, client processes 410 equal to or less than the number of CPU cores are started. May be good. However, the above service provider is merely an example, and can be applied to various service providers other than the above. Further, the plurality of client processes 410 may be realized by a single CPU.

クライアントプロセス411-1、411-2、・・・、411-nは、クライアント端末401上で動作する。クライアントプロセス412-1、412-2、・・・、412-nは、クライアント端末402上で動作する。クライアントプロセス413-1、413-2、・・・、413-nは、クライアント端末403上で動作する。クライアントプロセス414-1、414-2、・・・、414-nは、クライアント端末404上で動作する。上記の複数のクライアントプロセスを特に区別する必要がない場合、単にクライアントプロセス410という。 The client processes 411-1, 411-2, ..., 411-n operate on the client terminal 401. The client processes 412-1, 412-2, ..., 421-n operate on the client terminal 402. The client processes 413-1, 413-2, ..., 413-n operate on the client terminal 403. The client processes 414-1, 414-2, ..., 414-n operate on the client terminal 404. When it is not necessary to distinguish the above-mentioned plurality of client processes, it is simply referred to as client process 410.

複数のクライアントプロセス410の各々は、各ユーザによって使用されるユーザ端末から取引要求を受け付け、当該取引要求に対応するトランザクションを生成してリーダノード200に送信する。本実施形態では、クライアントプロセス410は、ユーザ端末からの取引要求毎にトランザクションをリーダノード200に送信するが、ユーザ端末からの複数の取引要求に対応する複数のトランザクションを蓄積してから、これら複数のトランザクションを1回の通信でまとめてリーダノード200に送信してもよい。詳細は後述するが、複数のトランザクションを1回の通信でまとめて送信する場合、リーダノード200にまとめて送信される複数のトランザクションはブロック単位で扱われる。 Each of the plurality of client processes 410 receives a transaction request from a user terminal used by each user, generates a transaction corresponding to the transaction request, and sends the transaction to the reader node 200. In the present embodiment, the client process 410 transmits a transaction to the reader node 200 for each transaction request from the user terminal, but after accumulating a plurality of transactions corresponding to the plurality of transaction requests from the user terminal, these plurality. Transactions may be collectively transmitted to the reader node 200 in one communication. Although the details will be described later, when a plurality of transactions are collectively transmitted in one communication, the plurality of transactions collectively transmitted to the reader node 200 are handled in block units.

図3の例では、クライアント端末401のクライアントプロセス411-1は、トランザクションTX1~TX149をリーダノード200に送信する。クライアント端末401のクライアントプロセス411-2は、トランザクションTX150~TX500をリーダノード200に送信する。クライアント端末402のクライアントプロセス412-1は、トランザクションTX501~TX1000をリーダノード200に送信する。上記の各トランザクションは、クライアントプロセス410とリーダノード200との間の各々の通信で、クライアントプロセス410からリーダノード200に送信される。 In the example of FIG. 3, the client process 411-1 of the client terminal 401 transmits transactions TX1 to TX149 to the reader node 200. The client process 411-2 of the client terminal 401 transmits the transactions TX150 to TX500 to the reader node 200. The client process 412-1 of the client terminal 402 transmits transactions TX501 to TX1000 to the reader node 200. Each of the above transactions is transmitted from the client process 410 to the reader node 200 in each communication between the client process 410 and the reader node 200.

リーダノード200は、例えば、各クライアント端末400から受信した複数のトランザクションTX1~TX1000を順に整列させる。つまり、データ更新を行う処理順を決定する。このように複数のトランザクションTX1~TX1000及びそれらが整列した順序に基づいて、それぞれログが生成される。ログは各トランザクションTXに対応して生成される。つまり、トランザクションTX1に対してログ1が生成される。また、上記と同様に、複数のトランザクションTX1~TX1000に基づいて、複数のログ1~ログ1000が生成される。 The reader node 200, for example, arranges a plurality of transactions TX1 to TX1000 received from each client terminal 400 in order. That is, the processing order for updating the data is determined. In this way, logs are generated based on the plurality of transactions TX1 to TX1000 and the order in which they are arranged. The log is generated for each transaction TX. That is, log 1 is generated for transaction TX1. Further, similarly to the above, a plurality of logs 1 to 1000 are generated based on the plurality of transactions TX1 to TX1000.

リーダノード200は、上記のようにして生成されたログ1~1000の各々のログを個別に各フォロワノード301、302、303、304に送信するのではなく、これらのログに基づいて、各ログに対する計算を行い、当該計算の結果に基づくログの合計を各フォロワノード301、302、303、304に送信する。ここで、上記の複数のフォロワノードを特に区別する必要がない場合、単にフォロワノード300という。各ログに対する計算結果を「ログの断面」という場合、ログ1~1000の全てのログに対する計算結果(ログの合計)を「ログの最終断面」ということができる。この場合、リーダノード200はフォロワノード300に、ログ1~1000の最終断面のみを送付する、ということができる。 The reader node 200 does not send each log of the logs 1 to 1000 generated as described above to each follower node 301, 302, 303, 304 individually, but each log is based on these logs. Is calculated for, and the total of the logs based on the result of the calculation is transmitted to the follower nodes 301, 302, 303, 304. Here, when it is not necessary to particularly distinguish the plurality of follower nodes, it is simply referred to as a follower node 300. When the calculation result for each log is referred to as "log cross section", the calculation result (total of logs) for all logs 1 to 1000 can be referred to as "final cross section of log". In this case, it can be said that the leader node 200 sends only the final cross section of the logs 1 to 1000 to the follower node 300.

フォロワノード300は、リーダノード200から上記のログの最終断面を受信して格納すると、合意形成したことをリーダノード200に返信する。リーダノード200は、フォロワノード300からの合意形成を確認すると、フォロワノード300によってログの最終断面の複製が正常に行われたと判断する。なお、ログの最終断面の正常な複製を判断する具体的な手法については、後述する。 When the follower node 300 receives the final cross section of the above log from the reader node 200 and stores it, the follower node 300 returns to the reader node 200 that the consensus has been formed. Upon confirming the consensus building from the follower node 300, the leader node 200 determines that the follower node 300 has normally duplicated the final cross section of the log. A specific method for determining normal duplication of the final cross section of the log will be described later.

リーダノード200がログの最終断面の正常な受信が行われたと判断すると、リーダノード200は、当該ログの最終断面に基づいて、リーダノード200のデータ更新を行う。そして、フォロワノード300は、リーダノード200と同様に上記ログの最終断面に基づいてデータの更新を行う。リーダノード200がデータ更新を行うタイミングとフォロワノード300がデータ更新を行うタイミングは同じでなくてもよい。例えば、リーダノード200がデータ更新を行った後に、次のサイクルでリーダノード200からフォロワノード300にログを送信するタイミングで、フォロワノード300がリーダノード200の状態を参照してリーダノード200と同様のデータ更新を行ってもよい。 When the reader node 200 determines that the final cross section of the log has been normally received, the reader node 200 updates the data of the reader node 200 based on the final cross section of the log. Then, the follower node 300 updates the data based on the final cross section of the log, similarly to the reader node 200. The timing at which the reader node 200 updates the data and the timing at which the follower node 300 updates the data do not have to be the same. For example, after the leader node 200 updates the data, the follower node 300 refers to the state of the leader node 200 at the timing when the log is transmitted from the leader node 200 to the follower node 300 in the next cycle, and is the same as the leader node 200. Data may be updated.

このデータ更新の後に、各フォロワノード300において更新されたデータ間の整合性の評価が行われる。各フォロワノード300間で更新後のデータに不整合があった場合は、当該不整合を修正するための修正処理が行われる。このような処理によって、各フォロワノード300間の同期が取られる。 After this data update, the consistency between the updated data is evaluated in each follower node 300. If there is an inconsistency in the updated data between the follower nodes 300, a correction process for correcting the inconsistency is performed. By such processing, synchronization is achieved between the follower nodes 300.

従来の仮想通貨や資産管理の取引では、個々の取引の処理速度が重要であり、各トランザクションに応じたログ毎に処理が行われていた。つまり、リーダノード200からフォロワノード300に送信される個々のログに対する処理速度を向上させることを目的としていた。一方、第1実施形態に係る分散型台帳システム10では、個々のログに対する処理速度を向上させるのではなく、複数のログを合計して処理を行うことで、総合的な処理速度を向上させることを目的としている。 In conventional virtual currency and asset management transactions, the processing speed of each transaction is important, and processing is performed for each log according to each transaction. That is, the purpose is to improve the processing speed for each log transmitted from the reader node 200 to the follower node 300. On the other hand, in the distributed ledger system 10 according to the first embodiment, the overall processing speed is improved by performing processing by totaling a plurality of logs, instead of improving the processing speed for each log. It is an object.

[1-2.リーダノード200の機能]
図4を用いて、本実施形態に係る分散型台帳システム10のリーダノード200の機能を説明する。図4は、本発明の一実施形態に係る分散型台帳システムに用いられるリーダノードの機能構成を示すブロック図である。図4に示すように、リーダノード200は、CM通信部210、TX受信部220、整列処理部230、ログ生成部240、最終断面計算部245、分散処理部250、及びデータ更新部260を有する。これらの機能部は通信バス290によって互いに通信可能に接続されている。これらの機能部の機能は、リーダノード200に備えられた記憶装置に格納されたプログラムをCPUが実行することで実現される。
[1-2. Functions of reader node 200]
The function of the reader node 200 of the distributed ledger system 10 according to this embodiment will be described with reference to FIG. FIG. 4 is a block diagram showing a functional configuration of a reader node used in the distributed ledger system according to the embodiment of the present invention. As shown in FIG. 4, the reader node 200 has a CM communication unit 210, a TX reception unit 220, an alignment processing unit 230, a log generation unit 240, a final cross-section calculation unit 245, a distributed processing unit 250, and a data update unit 260. .. These functional units are communicably connected to each other by the communication bus 290. The functions of these functional units are realized by the CPU executing a program stored in the storage device provided in the reader node 200.

CM通信部210は、各クライアント端末400から通信確立要求を受信すると、クライアント端末400とリーダノード200との通信を確立する機能を有する。なお、当該通信の確立及び終了のプロトコルとして、例えばTCPを利用することができる。 The CM communication unit 210 has a function of establishing communication between the client terminal 400 and the reader node 200 when receiving a communication establishment request from each client terminal 400. For example, TCP can be used as a protocol for establishing and terminating the communication.

TX受信部220は、CM通信部210によって上記の通信が確立されると、クライアント端末400から各トランザクション(例えば、TX1~TX1000)を受信する。 When the above communication is established by the CM communication unit 210, the TX reception unit 220 receives each transaction (for example, TX1 to TX1000) from the client terminal 400.

整列処理部230は、TX受信部220が受信した複数のトランザクションに対して順に整列する処理を行う。整列処理部230は、TX受信部220が受信した順にトランザクションを整列してもよく、ある特定の規則に従ってトランザクションを整列してもよい。 The alignment processing unit 230 performs processing for sequentially aligning a plurality of transactions received by the TX receiving unit 220. The alignment processing unit 230 may arrange the transactions in the order received by the TX reception unit 220, or may arrange the transactions according to a specific rule.

ログ生成部240は、整列処理部230によって整列された複数のトランザクションの処理内容及び順序を記録したログを生成する。なお、リーダノード200のログ生成部240によって生成されたログ(マスターログ)は、リーダノード200の記憶装置に格納される。マスターログがリーダノード200に格納されていることで、リーダノード200とフォロワノード300との間、又は複数のフォロワノード300間で不整合が発生した場合に、マスターログを用いてログの最終断面を計算し直すことができる。 The log generation unit 240 generates a log recording the processing contents and order of a plurality of transactions arranged by the alignment processing unit 230. The log (master log) generated by the log generation unit 240 of the reader node 200 is stored in the storage device of the reader node 200. Since the master log is stored in the reader node 200, when an inconsistency occurs between the leader node 200 and the follower node 300, or between a plurality of follower nodes 300, the final cross section of the log using the master log is used. Can be recalculated.

最終断面計算部245は、ログ生成部240によって生成された各ログの断面に基づいて、ログの最終断面を計算する。具体的には、最終断面計算部245は、データ更新を行う更新対象(例えば、口座番号)毎にデータ更新内容(例えば、振込金額)に基づく計算を行うことで、各更新対象における最終的な更新内容の合計を算出する。最終断面計算部245は、所定の期間に生成されたログに対して最終断面を計算してもよく、生成されたログの数がしきい値に達した場合に、しきい値に達するまでの間に生成されたログに対して最終断面を計算してもよい。 The final cross-section calculation unit 245 calculates the final cross-section of the log based on the cross-section of each log generated by the log generation unit 240. Specifically, the final cross-section calculation unit 245 performs a calculation based on the data update content (for example, the transfer amount) for each update target (for example, the account number) for which the data is updated, so that the final cross-section calculation unit 245 finally performs the calculation for each update target. Calculate the total of updated contents. The final section calculation unit 245 may calculate the final section for the logs generated in a predetermined period, and when the number of generated logs reaches the threshold value, until the threshold value is reached. The final cross section may be calculated for the logs generated in between.

分散処理部250は、最終断面計算部245によって生成されたログの最終断面を複数のフォロワノード300に送信(分散処理)する。例えば、分散処理部250は、[AppendEntries PRC]を使って、生成された全てのログの最終断面を複数のフォロワノード300に送信する。分散処理部250は、フォロワノード300からログの最終断面を正常に格納したことを確認すると、ログの最終断面の複製が正常に行われたと判断する。 The distributed processing unit 250 transmits (distributed processing) the final cross section of the log generated by the final cross section calculation unit 245 to the plurality of follower nodes 300. For example, the distributed processing unit 250 uses [Append Entries PRC] to transmit the final cross section of all the generated logs to a plurality of follower nodes 300. When the distributed processing unit 250 confirms that the final cross section of the log has been normally stored from the follower node 300, it is determined that the final cross section of the log has been duplicated normally.

データ更新部260は、分散処理部250によってログの最終断面の複製が正常に行われたと判断されると、リーダノード200のデータベースに対してログの最終断面に応じたデータ更新を実行する。そして、データ更新が完了したことをクライアントプロセス410に応答する。なお、この段階では、フォロワノード300のデータベースに対してデータ更新が実行されていないが、リーダノード200のデータ更新と共にフォロワノード300のデータ更新が行われてもよい。 When the data update unit 260 determines that the distribution processing unit 250 has normally duplicated the final cross section of the log, the data update unit 260 executes data update according to the final cross section of the log for the database of the reader node 200. Then, it responds to the client process 410 that the data update is completed. At this stage, the data is not updated for the database of the follower node 300, but the data of the follower node 300 may be updated at the same time as the data of the reader node 200 is updated.

[1-3.トランザクション及びログの具体例]
図5は、本発明の一実施形態に係る分散型台帳システムにおけるトランザクション及びログの具体例を示す図である。図5に示すように、トランザクションTX1は、口座番号AAAから口座番号BBBに10万円移動する、という取引要求に基づくトランザクションである。トランザクションTX2は、口座番号BBBから口座番号CCCに20万円移動する、という取引要求に基づくトランザクションである。
[1-3. Specific examples of transactions and logs]
FIG. 5 is a diagram showing specific examples of transactions and logs in the distributed ledger system according to the embodiment of the present invention. As shown in FIG. 5, transaction TX1 is a transaction based on a transaction request to move 100,000 yen from the account number AAA to the account number BBB. Transaction TX2 is a transaction based on a transaction request to move 200,000 yen from the account number BBB to the account number CCC.

複数のトランザクションTX1、TX2は、同一のクライアントプロセス411-1から送信される。そのため、図5のように、複数のトランザクションTX1、TX2の両方が同一の更新対象である口座番号BBBに対する更新処理の要求を含む場合がある。したがって、これらのトランザクション間で不整合が起きないように、TX1、TX2の順で整列させる。そして、TX1、TX2の順で、それぞれのトランザクションに応じたログ1、ログ2が生成される。なお、図5では、複数のトランザクションが同一の更新対象に対する更新処理を要求する場合を含む構成が例示されているが、複数のトランザクションが同一の更新対象に対する更新処理を要求してなくてもよい。 A plurality of transactions TX1 and TX2 are transmitted from the same client process 411-1. Therefore, as shown in FIG. 5, both of the plurality of transactions TX1 and TX2 may include a request for renewal processing for the account number BBB which is the same renewal target. Therefore, TX1 and TX2 are arranged in this order so that inconsistencies do not occur between these transactions. Then, log 1 and log 2 corresponding to each transaction are generated in the order of TX1 and TX2. Note that FIG. 5 illustrates a configuration including a case where a plurality of transactions request update processing for the same update target, but a plurality of transactions may not request update processing for the same update target. ..

なお、TX1は、具体的には以下(1)~(6)の処理を含む。
(1)口座番号AAAの残高を取得する(口座番号AAAの残高は100万円)。
(2)口座番号BBBの残高を取得する(口座番号BBBの残高は1000万円)。
(3)口座番号AAAから10万円引いた場合の金額を計算する(90万円)。
(4)口座番号BBBに10万円足した場合の金額を計算する(1010万円)。
(5)口座番号AAAに90万円と書き込む。
(6)口座番号BBBに1010万円と書き込む。
Specifically, TX1 includes the following processes (1) to (6).
(1) Obtain the balance of the account number AAA (the balance of the account number AAA is 1 million yen).
(2) Obtain the balance of the account number BBB (the balance of the account number BBB is 10 million yen).
(3) Calculate the amount when 100,000 yen is subtracted from the account number AAA (900,000 yen).
(4) Calculate the amount when 100,000 yen is added to the account number BBB (10.1 million yen).
(5) Write 900,000 yen in the account number AAA.
(6) Write 10.1 million yen in the account number BBB.

TX1の(1)~(6)の処理は一体不可分として扱われる。つまり、(1)~(6)の処理が全て成功した場合にTX1が成立したと判断され、(1)~(6)の少なくともいずれか一つの処理が失敗した場合はTX1が失敗したと判断される。TX2に関してもTX1の場合と同様に扱われる。 The processes (1) to (6) of TX1 are treated as inseparable. That is, it is determined that TX1 is established when all the processes (1) to (6) are successful, and it is determined that TX1 is failed when at least one of the processes (1) to (6) fails. Will be done. TX2 is treated in the same manner as TX1.

[1-4.ログの最終断面の具体例]
「ログの断面」及び「ログの最終断面」について、具体的な例を用いて説明する。図6は、本発明の一実施形態に係る分散型台帳システムにおけるログの断面及びログの最終断面の具体例を示す図である。図6では、ログ1~1000のうち、ログ1、ログ150、及びログ1000の処理内容が示されている。
[1-4. Specific example of the final cross section of the log]
The "cross section of the log" and the "final cross section of the log" will be described with reference to specific examples. FIG. 6 is a diagram showing a specific example of a cross section of a log and a final cross section of a log in the distributed ledger system according to the embodiment of the present invention. FIG. 6 shows the processing contents of the log 1, the log 150, and the log 1000 among the logs 1 to 1000.

ログ1の断面には、口座AAAに10万円と書き込む処理(例えば、残高が0円の口座AAAに10万円を振り込む処理)、及び口座BBBに100万円と書き込む処理(例えば、残高が0円の口座BBBに100万円を振り込む処理)が記録されている。ログ150の断面には、口座AAAに20万円と書き込む処理(例えば、残高が10万円の口座AAAに10万円を振り込む処理)、及び口座BBBに100万円と書き込む処理(例えば、残高が0円の口座CCCに100万円を振り込む処理)が記録されている。ログ1000の断面には、口座AAAに30万円と書き込む処理(例えば、残高が20万円の口座AAAに10万円を振り込む処理)、及び口座BBBに50万円と書き込む処理(例えば、残高が100万円の口座BBBから他の口座に50万円を振り込む処理)が記録されている。 In the cross section of log 1, a process of writing 100,000 yen to the account AAA (for example, a process of transferring 100,000 yen to an account AAA with a balance of 0 yen) and a process of writing 1 million yen to the account BBB (for example, the balance is The process of transferring 1 million yen to the 0 yen account BBB) is recorded. In the cross section of the log 150, a process of writing 200,000 yen in the account AAA (for example, a process of transferring 100,000 yen to the account AAA with a balance of 100,000 yen) and a process of writing 1 million yen in the account BBB (for example, the balance). The process of transferring 1 million yen to the account CCC of 0 yen) is recorded. In the cross section of the log 1000, a process of writing 300,000 yen in the account AAA (for example, a process of transferring 100,000 yen to the account AAA with a balance of 200,000 yen) and a process of writing 500,000 yen in the account BBB (for example, the balance). The process of transferring 500,000 yen from the 1 million yen account BBB to another account) is recorded.

従来は各ログがリーダノード200からフォロワノード300に送信されていたが、本実施形態では、リーダノード200においてログ1~1000の各断面が合計され、最終的な、口座AAAに30万円と書き込み、口座BBBに50万円と書き込み、口座CCCに100万円と書き込むという、ログ1~1000の最終断面が計算される。そして、当該最終断面だけがリーダノード200からフォロワノード300に送信される。つまり、リーダノード200は、複数のログの代わりに、複数のログの最終断面をフォロワノード300に送信する。 In the past, each log was transmitted from the reader node 200 to the follower node 300, but in this embodiment, the cross sections of the logs 1 to 1000 are totaled in the reader node 200, and the final account AAA is 300,000 yen. The final cross section of the logs 1 to 1000 is calculated, that is, writing, writing 500,000 yen in the account BBB, and writing 1 million yen in the account CCC. Then, only the final cross section is transmitted from the leader node 200 to the follower node 300. That is, the reader node 200 transmits the final cross section of the plurality of logs to the follower node 300 instead of the plurality of logs.

[1-5.クライアント端末400の機能]
図7を用いて、本実施形態に係る分散型台帳システム10のクライアント端末400の機能を説明する。図7は、本発明の一実施形態に係る分散型台帳システムに用いられるクライアント端末の機能構成を示すブロック図である。図7に示すように、クライアント端末400は、取引要求受信部420、TX生成部430、LN通信部450、及びTX送信部460を有する。これらの機能部は通信バス490によって互いに通信可能に接続されている。これらの機能部の機能は、クライアント端末400に備えられた記憶装置に格納されたプログラムをCPUが実行することで実現される。なお、上記の各機能部は、クライアント端末400の各クライアントプロセス410によって実行される。
[1-5. Functions of client terminal 400]
The function of the client terminal 400 of the distributed ledger system 10 according to this embodiment will be described with reference to FIG. 7. FIG. 7 is a block diagram showing a functional configuration of a client terminal used in the distributed ledger system according to the embodiment of the present invention. As shown in FIG. 7, the client terminal 400 has a transaction request receiving unit 420, a TX generating unit 430, an LN communication unit 450, and a TX transmitting unit 460. These functional units are communicably connected to each other by a communication bus 490. The functions of these functional units are realized by the CPU executing a program stored in a storage device provided in the client terminal 400. Each of the above functional units is executed by each client process 410 of the client terminal 400.

取引要求受信部420は、クライアントプロセス410に接続されるユーザ端末から取引要求を受信する。取引要求受信部420は、同一のユーザ端末から取引要求を受信してもよく、異なるユーザ端末から取引要求を受信してもよい。 The transaction request receiving unit 420 receives a transaction request from a user terminal connected to the client process 410. The transaction request receiving unit 420 may receive a transaction request from the same user terminal, or may receive a transaction request from different user terminals.

TX生成部430は、取引要求受信部420が受信した取引要求の内容に応じたトランザクションTXを生成する。トランザクションTXは、取引要求毎に生成される。 The TX generation unit 430 generates a transaction TX according to the content of the transaction request received by the transaction request reception unit 420. The transaction TX is generated for each transaction request.

LN通信部450は、リーダノード200のCM通信部210に通信確立要求を送信する。LN通信部450は、TX生成部430によってトランザクションTXが生成される度に通信確立要求をCM通信部210に送信する。 The LN communication unit 450 transmits a communication establishment request to the CM communication unit 210 of the reader node 200. The LN communication unit 450 transmits a communication establishment request to the CM communication unit 210 each time a transaction TX is generated by the TX generation unit 430.

TX送信部460は、LN通信部450によって通信が確立されると、TX生成部430によって生成されたトランザクションTXをリーダノード200のTX受信部220に送信する。 When communication is established by the LN communication unit 450, the TX transmission unit 460 transmits the transaction TX generated by the TX generation unit 430 to the TX reception unit 220 of the reader node 200.

[1-6.フォロワノード300の機能]
図8を用いて、本実施形態に係る分散型台帳システム10のフォロワノード300の機能を説明する。図8は、本発明の一実施形態に係る分散型台帳システムに用いられるフォロワノードの機能構成を示すブロック図である。図8に示すように、フォロワノード300は、断面受信部310、断面格納部320、合意形成部330、及びデータ更新部340を有する。これらの機能部は通信バス390によって互いに通信可能に接続されている。これらの機能部の機能は、フォロワノード300に備えられた記憶装置に格納されたプログラムをCPUが実行することで実現される。
[1-6. Functions of follower node 300]
The function of the follower node 300 of the distributed ledger system 10 according to the present embodiment will be described with reference to FIG. FIG. 8 is a block diagram showing a functional configuration of a follower node used in the distributed ledger system according to the embodiment of the present invention. As shown in FIG. 8, the follower node 300 has a cross-section receiving unit 310, a cross-section storage unit 320, a consensus building unit 330, and a data updating unit 340. These functional units are communicably connected to each other by a communication bus 390. The functions of these functional units are realized by the CPU executing a program stored in the storage device provided in the follower node 300.

断面受信部310は、分散処理部250によって送信されたログの最終断面を受信する。断面格納部320は、断面受信部310によって受信されたログの最終断面をフォロワノード300に備えられた記憶装置又はデータベースに格納する。合意形成部330は、断面格納部320によってログの最終断面の格納が正常に行われた場合に、合意形成したことをリーダノード200に返信する。データ更新部340は、断面受信部310がログの最終断面を受信する際にリーダノード200のデータを確認し、リーダノード200のデータに応じてフォロワノード300のデータベースに対してログの最終断面に応じたデータ更新を実行する。 The cross-section receiving unit 310 receives the final cross-section of the log transmitted by the distributed processing unit 250. The cross-section storage unit 320 stores the final cross-section of the log received by the cross-section receiving unit 310 in a storage device or a database provided in the follower node 300. The consensus building unit 330 returns to the reader node 200 that the consensus building has been formed when the final cross section of the log is normally stored by the cross section storage unit 320. The data update unit 340 confirms the data of the reader node 200 when the section receiving unit 310 receives the final section of the log, and sets the final section of the log to the database of the follower node 300 according to the data of the reader node 200. Perform the corresponding data update.

[1-7.分散型台帳システム10の動作]
図9は、本発明の一実施形態に係る分散型台帳システムの動作を示すシーケンスを示す図である。まず、クライアント端末400においてユーザ端末からの取引要求に応じたトランザクションTXが生成される(ステップS701)。生成されたトランザクションTXはリーダノード200に送信される(ステップS702)。
[1-7. Operation of distributed ledger system 10]
FIG. 9 is a diagram showing a sequence showing the operation of the distributed ledger system according to the embodiment of the present invention. First, the client terminal 400 generates a transaction TX in response to a transaction request from the user terminal (step S701). The generated transaction TX is transmitted to the reader node 200 (step S702).

リーダノード200において、トランザクションTXが受信されると(ステップS711)、受信されたトランザクションTXは、例えば受信された順に整列される(ステップS712)。そして、整列されたトランザクションTXの処理内容及び順序に基づいてログが生成される(ステップS713)。生成されたログの数がしきい値に到達すると(ステップS714)、しきい値に達するまでの間に生成されたログに対してログの最終断面の計算が行われる(ステップS715)。計算されたログの最終断面はリーダノード200から複数のフォロワノード301、302に送信される(ステップS716)。 When the transaction TX is received in the reader node 200 (step S711), the received transaction TX are arranged in the order of reception, for example (step S712). Then, a log is generated based on the processing content and order of the arranged transaction TX (step S713). When the number of generated logs reaches the threshold value (step S714), the final cross section of the log is calculated for the logs generated until the threshold value is reached (step S715). The final cross section of the calculated log is transmitted from the reader node 200 to the plurality of follower nodes 301 and 302 (step S716).

フォロワノード301、302において、リーダノード200から送信されたログの最終断面が受信されると、各々のフォロワノードにログの最終断面を格納する処理が行われる(ステップS721、S731)。ログの最終断面の格納が正常に行われると、合意形成したことをリーダノード200に返信する(ステップS722、S732)。リーダノード200は、合意形成を確認することで、フォロワノード301、302においてログの最終断面が正常に複製されたと判断し、データ更新を行う(ステップS717)。そして、リーダノード200はデータ更新が正常に行われたことをクライアント端末400に通知する(ステップS718、S703)。 When the final cross section of the log transmitted from the reader node 200 is received at the follower nodes 301 and 302, a process of storing the final cross section of the log in each follower node is performed (steps S721 and S731). When the final cross section of the log is normally stored, the consensus building is returned to the leader node 200 (steps S722 and S732). By confirming the consensus building, the leader node 200 determines that the final cross section of the log has been normally duplicated at the follower nodes 301 and 302, and updates the data (step S717). Then, the reader node 200 notifies the client terminal 400 that the data update has been performed normally (steps S718 and S703).

なお、図9では、フォロワノード301、302において、ログの最終断面に基づくデータ更新が行われていないが、次のサイクルでログの最終断面がリーダノード200からフォロワノード301、302に送信されるタイミングで、フォロワノード301、302がリーダノード200の状態を参照してリーダノード200と同様に前のサイクルで受信したログの最終断面に基づいてデータ更新を行う。ただし、フォロワノード301、302のログの最終断面に基づくデータ更新は、リーダノード200のデータ更新と同じタイミングで行われてもよい。 In FIG. 9, in the follower nodes 301 and 302, the data is not updated based on the final cross section of the log, but the final cross section of the log is transmitted from the reader node 200 to the follower nodes 301 and 302 in the next cycle. At the timing, the follower nodes 301 and 302 refer to the state of the leader node 200 and update the data based on the final cross section of the log received in the previous cycle in the same manner as the leader node 200. However, the data update based on the final cross section of the logs of the follower nodes 301 and 302 may be performed at the same timing as the data update of the reader node 200.

図10は、本発明の一実施形態に係る分散型台帳システムの動作を示すフローチャートを示す図である。図10のフローチャートにおいて、図9のシーケンスと同様のステップには図9と同じ符号を付した。動作フローが開始し、トランザクションTXが発生(ステップS701)してからログの生成(ステップS713)が行われるまでのフローは図9と同じなので、説明を省略する。 FIG. 10 is a diagram showing a flowchart showing the operation of the distributed ledger system according to the embodiment of the present invention. In the flowchart of FIG. 10, the same steps as those of the sequence of FIG. 9 are designated by the same reference numerals as those of FIG. Since the flow from the start of the operation flow, the occurrence of the transaction TX (step S701) to the generation of the log (step S713) is the same as in FIG. 9, the description thereof will be omitted.

S713のログ生成の後に、ログの最終断面を計算する条件が整っているかどうかの判定が行われる(ステップS802)。S802において、ログの最終断面を計算する条件が整っていないと判定された場合(ステップS802の「No」)、S701まで戻り、次のトランザクションTXの発生を待つ。一方、S802において、ログの最終断面を計算する条件が整っていると判定された場合(ステップS802の「Yes」)、ログの最終断面の計算が行われる(ステップS715)。S802において、例えば生成されたログの数がしきい値に到達しているか否かを判定する。この場合、生成されたログの数がしきい値に到達している場合、ログの最終断面を計算する条件が整っていると判定する。そして、S715で計算されたログの最終断面はリーダノード200からフォロワノード300に送信される(ステップS716)。 After the log generation in S713, it is determined whether or not the conditions for calculating the final cross section of the log are satisfied (step S802). If it is determined in S802 that the conditions for calculating the final cross section of the log are not satisfied (“No” in step S802), the process returns to S701 and waits for the occurrence of the next transaction TX. On the other hand, when it is determined in S802 that the conditions for calculating the final cross section of the log are satisfied (“Yes” in step S802), the calculation of the final cross section of the log is performed (step S715). In S802, for example, it is determined whether or not the number of generated logs has reached the threshold value. In this case, if the number of generated logs reaches the threshold value, it is determined that the conditions for calculating the final cross section of the logs are satisfied. Then, the final cross section of the log calculated in S715 is transmitted from the reader node 200 to the follower node 300 (step S716).

S716の後に、リーダノード200によって合意形成の確認が行われる(ステップS803)。S803において、全てのフォロワノード300から合意形成の確認が取れない場合(ステップS803の「No」)、S716→S803のステップを繰り返す。一方、全てのフォロワノード300から合意形成が確認されると(ステップS803の「Yes」)、リーダノード200においてデータ更新(ステップS717)及び完了通知(ステップS718)が行われる。続いて、フォロワノード300においてS717と同様のデータ更新が行われる(ステップS804)。 After S716, the leader node 200 confirms the consensus building (step S803). In S803, if consensus building cannot be confirmed from all the follower nodes 300 (“No” in step S803), the steps S716 → S803 are repeated. On the other hand, when consensus building is confirmed from all the follower nodes 300 (“Yes” in step S803), data update (step S717) and completion notification (step S718) are performed at the leader node 200. Subsequently, the same data update as in S717 is performed in the follower node 300 (step S804).

従来の分散型台帳技術では、クライアント端末によって要求される個々の取引を迅速に処理することが要求されていた。そのため、当該取引に関連するトランザクションに基づいてログが生成される度に、個々のログがリーダノードからフォロワノードに送信されていた。しかし、ログの送信を行う度にリーダノードとフォロワノードとの通信を確立する必要があるため、複数のログを送信するための時間が長くなってしまい、スループットが低下してしまうという問題があった。 In conventional distributed ledger technology, it has been required to quickly process individual transactions required by client terminals. Therefore, each time a log is generated based on the transaction related to the transaction, each log is transmitted from the leader node to the follower node. However, since it is necessary to establish communication between the reader node and the follower node each time a log is transmitted, there is a problem that the time for transmitting multiple logs becomes long and the throughput decreases. rice field.

しかし、本実施形態に係る分散型台帳システム10によると、リーダノード200とフォロワノード300との1回の通信の確立において、複数のログが合計されたログの最終断面をリーダノード200からフォロワノード300に送信することができる。したがって、分散台帳ネットワークにおけるノード間の同期処理におけるスループットを向上させることができる。 However, according to the distributed ledger system 10 according to the present embodiment, in the establishment of one communication between the reader node 200 and the follower node 300, the final cross section of the log in which a plurality of logs are totaled is obtained from the reader node 200 to the follower node. It can be transmitted to 300. Therefore, it is possible to improve the throughput in the synchronous processing between the nodes in the distributed ledger network.

〈第2実施形態〉
図11~図16を用いて、本発明の第2実施形態に係る分散型台帳システム10Aについて説明する。以下の説明において、分散型台帳システム10Aの構成のうち、第1実施形態に係る分散型台帳システム10と同様の特徴を有する構成には、分散型台帳システム10と同様の符号の後にアルファベット「A」を付して、詳細な説明を省略する場合がある。なお、第1実施形態の図面等を参照しながら第2実施形態に係る分散型台帳システム10Aを説明する場合、図1~図10に記載された符号に対してアルファベット「A」を付して説明する。以下の分散型台帳システム10Aの説明において、主に分散型台帳システム10と異なる点について説明する。
<Second Embodiment>
The distributed ledger system 10A according to the second embodiment of the present invention will be described with reference to FIGS. 11 to 16. In the following description, among the configurations of the distributed ledger system 10A, the configuration having the same characteristics as the distributed ledger system 10 according to the first embodiment includes the alphabet "A" after the same reference numerals as those of the distributed ledger system 10. , And a detailed explanation may be omitted. When the distributed ledger system 10A according to the second embodiment is described with reference to the drawings and the like of the first embodiment, the alphabet "A" is added to the reference numerals shown in FIGS. 1 to 10. explain. In the following description of the distributed ledger system 10A, the differences from the distributed ledger system 10 will be mainly described.

[2-1.システムの概要]
第2実施形態に係る分散型台帳システム10Aの概要は第1実施形態に係る分散型台帳システム10とほぼ同様なので、説明を省略する。分散型台帳システム10Aでは、クライアントプロセス410Aからリーダノード200Aに送信されるトランザクションがブロック単位でまとめて送信される点、複数のトランザクションが排他制御によって整列される点、及びログの最終断面がデータ同期アルゴリズムによってリーダノード200Aからフォロワノード300Aに送信される点において、第1実施形態に係る分散型台帳システム10と相違する。
[2-1. System overview]
Since the outline of the distributed ledger system 10A according to the second embodiment is almost the same as that of the distributed ledger system 10 according to the first embodiment, the description thereof will be omitted. In the distributed ledger system 10A, transactions transmitted from the client process 410A to the reader node 200A are collectively transmitted in block units, a plurality of transactions are aligned by exclusive control, and the final cross section of the log is data-synchronized. It differs from the distributed ledger system 10 according to the first embodiment in that it is transmitted from the leader node 200A to the follower node 300A by an algorithm.

図3を参照して説明すると、分散型台帳システム10Aでは、クライアントプロセス410Aは、ユーザ端末からの取引要求毎にトランザクションをリーダノード200Aに送信するのではなく、ユーザ端末からの複数の取引要求に対応する複数のトランザクションを蓄積してから、これら複数のトランザクションを1回の通信でまとめてリーダノード200Aに送信する。リーダノード200Aにまとめて送信される複数のトランザクションはブロック単位で扱われる。 Explaining with reference to FIG. 3, in the distributed ledger system 10A, the client process 410A does not send a transaction to the reader node 200A for each transaction request from the user terminal, but makes a plurality of transaction requests from the user terminal. After accumulating a plurality of corresponding transactions, the plurality of transactions are collectively transmitted to the reader node 200A in one communication. A plurality of transactions collectively transmitted to the reader node 200A are handled in block units.

トランザクションはクライアントプロセス410A毎にまとめられる。つまり、クライアントプロセス411A-1は、例えばトランザクションTX1~TX149を1回の通信でまとめてリーダノード200Aに送信する。同様に、クライアントプロセス411A-2は例えばトランザクションTX150~TX500を、クライアントプロセス412A-1は例えばトランザクションTX501~TX1000を、それぞれ1回の通信でまとめてリーダノード200Aに送信する。また、トランザクションTX1~TX1000に基づいて生成されるログ1~ログ1000もブロック単位で生成される。つまり、ログ1~ログ149、ログ150~ログ500、及びログ501~ログ1000の各々がブロック単位で生成される。 Transactions are grouped by client process 410A. That is, the client process 411A-1 collectively transmits, for example, transactions TX1 to TX149 to the reader node 200A in one communication. Similarly, the client process 411A-2 transmits, for example, transactions TX150 to TX500, and the client process 412A-1 transmits, for example, transactions TX501 to TX1000 together in one communication to the reader node 200A. In addition, logs 1 to 1000 generated based on transactions TX1 to TX1000 are also generated in block units. That is, each of log 1 to log 149, log 150 to log 500, and log 501 to log 1000 is generated in block units.

異なるブロック間には境界が定義される。具体的には、トランザクションTX1~TX149には、各トランザクションが例えば第1ブロックに属していることを示すブロック識別子が付与される。同様に、トランザクションTX150~TX500には、各トランザクションが第2ブロックに属していることを示すブロック識別子が付与される。同様に、トランザクションTX501~TX1000には、各トランザクションが第3ブロックに属していることを示すブロック識別子が付与される。これらのブロック識別子はリーダノード200Aによって付される。ただし、ブロック識別子がクライアントプロセス410Aによって付されてもよい。なお、上記のようにトランザクションにブロック識別子を付す以外に、個々のトランザクションTXと各トランザクションTXが属するブロックとを管理するテーブルが設けられていてもよい。 Boundaries are defined between different blocks. Specifically, the transactions TX1 to TX149 are given a block identifier indicating that each transaction belongs to, for example, the first block. Similarly, the transactions TX150 to TX500 are given a block identifier indicating that each transaction belongs to the second block. Similarly, transactions TX501 to TX1000 are given a block identifier indicating that each transaction belongs to the third block. These block identifiers are assigned by the reader node 200A. However, the block identifier may be assigned by the client process 410A. In addition to attaching a block identifier to a transaction as described above, a table for managing each transaction TX and the block to which each transaction TX belongs may be provided.

[2-2.リーダノード200Aの機能]
図11を用いて、本実施形態に係る分散型台帳システム10Aのリーダノード200Aの機能を説明する。図11は、本発明の一実施形態に係る分散型台帳システムに用いられるリーダノードの機能構成を示すブロック図である。図11に示すリーダノード200Aの各機能部は、図4のリーダノード200の各機能部に類似しているが、整列処理部230A及び分散処理部250Aの構成が図4の整列処理部230及び分散処理部250と相違する。また、TX受信部220Aの機能が図4のTX受信部220の機能と相違する。
[2-2. Function of reader node 200A]
The function of the reader node 200A of the distributed ledger system 10A according to the present embodiment will be described with reference to FIG. FIG. 11 is a block diagram showing a functional configuration of a reader node used in the distributed ledger system according to the embodiment of the present invention. Each functional unit of the reader node 200A shown in FIG. 11 is similar to each functional unit of the reader node 200 of FIG. 4, but the configurations of the alignment processing unit 230A and the distributed processing unit 250A are the alignment processing unit 230 and the alignment processing unit 230 of FIG. It is different from the distributed processing unit 250. Further, the function of the TX receiving unit 220A is different from the function of the TX receiving unit 220 of FIG.

まず、TX受信部220Aは、CM通信部210Aによって確立された1回の通信の間に、クライアント端末400Aから複数のトランザクションを受信する。当該通信の確立及び終了のプロトコルとして、例えばTCPを利用することができる。なお、TCPのデータ部には、ブロック識別子、当該ブロック識別子に関連付けられたトランザクション数(ブロックに含まれるトランザクションの数)、及びトランザクションの内容(データ更新対象のキー及びデータ更新の値を含む)が含まれる。なお、TX受信部220Aは、上記のように複数のトランザクションをブロック単位で受信する。TX受信部220Aは、トランザクションと共に、ブロックを定義する情報を受信する。つまり、TX受信部220Aは、異なるブロックの境界を定義する情報を受信する。 First, the TX receiving unit 220A receives a plurality of transactions from the client terminal 400A during one communication established by the CM communication unit 210A. For example, TCP can be used as a protocol for establishing and terminating the communication. In the data part of TCP, the block identifier, the number of transactions associated with the block identifier (the number of transactions included in the block), and the transaction contents (including the key to be updated and the value of data update) are included. included. The TX receiving unit 220A receives a plurality of transactions in block units as described above. The TX receiving unit 220A receives the information defining the block together with the transaction. That is, the TX receiving unit 220A receives information defining boundaries between different blocks.

また、図11に示すように、整列処理部230Aは排他制御機能231Aを有している。排他制御機能231Aは、データ更新の衝突を防ぐため、直列に整列された各トランザクションに対して順にデータ更新を行う制御(排他制御)をログに追加する機能を有している。排他制御機能231Aとして、例えばストリクトツーフェーズロック(S2PL)プロトコルを採用することができる。最終断面計算部245Aは、このように排他制御の機能が追加されたログを用いてログの最終断面を計算する。 Further, as shown in FIG. 11, the alignment processing unit 230A has an exclusive control function 231A. The exclusive control function 231A has a function of adding a control (exclusive control) for sequentially updating data to each transaction arranged in series in order to prevent a collision of data updates. As the exclusive control function 231A, for example, a strict two-phase locking (S2PL) protocol can be adopted. The final cross-section calculation unit 245A calculates the final cross-section of the log using the log to which the exclusive control function is added in this way.

分散処理部250Aはデータ同期アルゴリズム機能251Aを有している。データ同期アルゴリズム機能251Aは、リーダノード200Aから複数のフォロワノード300Aにログの最終断面を送付するアルゴリズムであり、後から複数のフォロワノード300A間で不整合が起きないように複数のフォロワノード300A間で同期を取るアルゴリズムである。データ同期アルゴリズム機能251Aは、分散合意アルゴリズム(Raft)であってもよく、その一部の機能であってもよい。 The distributed processing unit 250A has a data synchronization algorithm function 251A. The data synchronization algorithm function 251A is an algorithm for sending the final cross section of the log from the reader node 200A to the plurality of follower nodes 300A, and is used between the plurality of follower nodes 300A so as not to cause inconsistency among the plurality of follower nodes 300A later. It is an algorithm that synchronizes with. The data synchronization algorithm function 251A may be a distributed consensus algorithm (Raft) or a partial function thereof.

ログをブロック単位で生成する場合、整列処理部230Aは、各ブロックの中だけでトランザクションの整列処理を行い、異なるブロック間でトランザクションの入れ替えは行わない。一方、ログをブロック単位で生成しない(つまり、ブロックの境界を解除した)場合、整列処理部230Aは、ブロック間に跨がるトランザクションの整列処理を行う。つまり、この場合、整列処理部230Aは、異なるブロックのトランザクションを入れ替えることができる。ログをブロック単位で生成する場合は、ブロックの境界を定義した情報をログにも引き継ぐ。一方、ログをブロック単位で生成しない場合、ブロックの境界を定義した情報は削除される又は無効化される。 When the log is generated in block units, the alignment processing unit 230A performs transaction alignment processing only in each block, and does not switch transactions between different blocks. On the other hand, when the log is not generated in block units (that is, the boundaries of blocks are released), the alignment processing unit 230A performs alignment processing of transactions straddling between blocks. That is, in this case, the alignment processing unit 230A can replace the transactions of different blocks. When the log is generated in block units, the information that defines the block boundaries is also inherited in the log. On the other hand, if the log is not generated in block units, the information that defines the block boundaries is deleted or invalidated.

分散処理部250Aは、過半数のフォロワノード300Aにおいてログの最終断面の複製が正常に行われたことを確認した場合に、ログの最終断面の複製が完了したと見なす。一方、ログの最終断面の複製が正常に行われたことを示すフォロワノード300Aの数が半数以下の場合、その数が過半数に達するまで分散処理をリトライする、又は待機する。 When the distributed processing unit 250A confirms that the duplication of the final cross section of the log is normally performed in the majority of the follower nodes 300A, it is considered that the duplication of the final cross section of the log is completed. On the other hand, if the number of follower nodes 300A indicating that the final cross section of the log has been duplicated normally is less than half, the distributed processing is retried or waits until the number reaches the majority.

[2-3.クライアント端末400Aの機能]
図12を用いて、本実施形態に係る分散型台帳システム10Aのクライアント端末400Aの機能を説明する。図12は、本発明の一実施形態に係る分散型台帳システムに用いられるクライアント端末の機能構成を示すブロック図である。図12に示すクライアント端末400Aの各機能部は、図7のクライアント端末400の各機能部に類似しているが、TXバッファリング部440Aが設けられている点において、クライアント端末400の各機能部とは相違する。
[2-3. Functions of client terminal 400A]
A function of the client terminal 400A of the distributed ledger system 10A according to the present embodiment will be described with reference to FIG. FIG. 12 is a block diagram showing a functional configuration of a client terminal used in the distributed ledger system according to the embodiment of the present invention. Each functional unit of the client terminal 400A shown in FIG. 12 is similar to each functional unit of the client terminal 400 of FIG. 7, but each functional unit of the client terminal 400 is provided with a TX buffering unit 440A. Is different.

TXバッファリング部440Aは、TX生成部430Aによって生成されたトランザクションTXをバッファリングする。つまり、TXバッファリング部440Aは一時的な記憶装置を有しており、当該記憶装置にトランザクションTXを一時的に格納する。TXバッファリング部440Aには、バッファリングするトランザクションTXの数に対するしきい値が設定されている。TXバッファリング部440Aは、バッファリングするトランザクションTXの数がしきい値に達した場合に、トリガ信号を生成する。例えば、TXバッファリング部440Aは、バッファリングするトランザクションTXの数が100個に達したらトリガ信号を生成する。又は、TXバッファリング部440Aは、上記しきい値の設定の代わりに、所定の期間を計測する機能が備えられていてもよい。この場合、TXバッファリング部440Aは、所定の期間が経過する度にトリガ信号を生成する。例えば、TXバッファリング部440Aは、0.1秒毎にトリガ信号を生成する。ただし、上記の数値はあくまで一例であり、上記の値に限定されない。 The TX buffering unit 440A buffers the transaction TX generated by the TX generation unit 430A. That is, the TX buffering unit 440A has a temporary storage device, and the transaction TX is temporarily stored in the storage device. The TX buffering unit 440A is set with a threshold value for the number of transaction TX to be buffered. The TX buffering unit 440A generates a trigger signal when the number of transaction TX to be buffered reaches the threshold value. For example, the TX buffering unit 440A generates a trigger signal when the number of transaction TX to be buffered reaches 100. Alternatively, the TX buffering unit 440A may be provided with a function of measuring a predetermined period instead of setting the threshold value. In this case, the TX buffering unit 440A generates a trigger signal every time a predetermined period elapses. For example, the TX buffering unit 440A generates a trigger signal every 0.1 seconds. However, the above values are merely examples and are not limited to the above values.

なお、LN通信部450Aは、TXバッファリング部440Aによって生成されたトリガ信号に基づいて通信確立要求をCM通信部210Aに送信する。 The LN communication unit 450A transmits a communication establishment request to the CM communication unit 210A based on the trigger signal generated by the TX buffering unit 440A.

TX送信部460Aは、LN通信部450Aによって確立された1回の通信の間に、リーダノード200AのTX受信部220Aに対して、前のサイクルでトランザクションをリーダノード200Aに送信してから現在のサイクルでトリガ信号が生成されるまでの間に生成された複数のトランザクションを1ブロックにまとめて送信する。TX送信部460Aがトリガ信号に応じて複数のトランザクションを送信すると、TXバッファリング部440Aに一時的に格納されていたトランザクションTXは削除され、次のサイクルのトランザクションTXのバッファリングを開始する。 The TX transmitter 460A transmits a transaction to the reader node 200A in the previous cycle to the TX receiver 220A of the reader node 200A during one communication established by the LN communication unit 450A, and then the current one. A plurality of transactions generated before the trigger signal is generated in the cycle are collectively transmitted in one block. When the TX transmission unit 460A transmits a plurality of transactions in response to the trigger signal, the transaction TX temporarily stored in the TX buffering unit 440A is deleted, and the buffering of the transaction TX in the next cycle is started.

[2-4.排他制御機能]
排他制御の具体的なシーケンスを図13に示す。図13は、本発明の一実施形態に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。図13に示すように、リーダノード200Aが複数のトランザクションを含むブロックを受信する(ステップS810A)と、整列処理部230Aによって、トランザクションTX1、TX2の順で整列される。排他制御機能231Aは、トランザクションTX1の処理(ステップS812A)が行われる前に各ノードのデータ更新に対してロックをかける処理を追加する(ステップS811A)。S811A及びS812Aの後に、各ノードにおいて更新されたデータを永続化する(ステップS813A)。具体的には、S813Aでは、S812Aによって規定された内容で各ノードのデータ更新(データベースの書き換え)を行う。S813Aの後にS811Aでかけたロックを解除する(ステップS814A)。ロックの解除後は、トランザクションTX2に対する処理(ステップS815A~S818A)が行われる。なお、トランザクションTX2の処理内容はトランザクションTX1の処理内容と同じなので、詳細な説明は省略する。なお、この場合、トランザクションTX1とTX2とは順序が逆になってもよい。
[2-4. Exclusive control function]
A specific sequence of exclusive control is shown in FIG. FIG. 13 is a diagram showing a sequence showing the operation of exclusive control in the distributed ledger system according to the embodiment of the present invention. As shown in FIG. 13, when the reader node 200A receives a block containing a plurality of transactions (step S810A), the alignment processing unit 230A arranges the transactions TX1 and TX2 in this order. The exclusive control function 231A adds a process of locking the data update of each node before the process of transaction TX1 (step S812A) is performed (step S811A). After S811A and S812A, the updated data is persisted in each node (step S813A). Specifically, in S813A, data update (rewriting of the database) of each node is performed with the contents specified by S812A. The lock applied by S811A after S813A is released (step S814A). After the lock is released, processing for transaction TX2 (steps S815A to S818A) is performed. Since the processing content of transaction TX2 is the same as the processing content of transaction TX1, detailed description thereof will be omitted. In this case, the order of transactions TX1 and TX2 may be reversed.

上記の構成を換言すると、上記の排他制御は、複数のトランザクションのうちの1つの対象トランザクション(例えば、TX1)に対して、当該対象トランザクションの処理の前に各ノード(台帳)に対する更新処理をロックし、各ノード(台帳)に対して、当該対象トランザクションに応じた更新処理を行い、当該更新処理の後にロックを解除する制御である。 In other words, the above exclusive control locks the update processing for each node (ledger) for one target transaction (for example, TX1) among a plurality of transactions before the processing of the target transaction. Then, each node (ledger) is subjected to update processing according to the target transaction, and the lock is released after the update processing.

図14は、本発明の一実施形態の変形例に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。図14に示す例は、複数のブロックを受信した場合に、ブロック単位で排他制御を行う場合の一例である。図14では、2つのブロックを受信した場合について例示するが、受信するブロックの数は3つ以上であってもよい。図14では、ブロックBL1がトランザクションTX1~TX149を含み、ブロックBL2がトランザクションTX150~TX500を含む。図14では、ブロックBL1は整列処理部230Aによって、トランザクションTX1~TX149の順で整列される。同様に、ブロックBL2はトランザクションTX150~TX500の順で整列される。図示しないが、もちろんこれらの処理の後にトランザクションTX501~1000が順に整列されてもよい。 FIG. 14 is a diagram showing a sequence showing the operation of exclusive control in the distributed ledger system according to the modified example of the embodiment of the present invention. The example shown in FIG. 14 is an example in which exclusive control is performed in block units when a plurality of blocks are received. In FIG. 14, the case where two blocks are received is illustrated, but the number of blocks to be received may be three or more. In FIG. 14, block BL1 includes transactions TX1 to TX149, and block BL2 contains transactions TX150 to TX500. In FIG. 14, the block BL1 is arranged by the alignment processing unit 230A in the order of transactions TX1 to TX149. Similarly, the blocks BL2 are arranged in the order of transactions TX150 to TX500. Although not shown, of course, transactions TX501 to 1000 may be arranged in order after these processes.

排他制御機能231Aは、ブロックBL1、BL2を受信する(ステップS820A-1~S820A-2)と、トランザクションTX1~TX149の処理(ステップS822A~S823A)が行われる前に各ノードのデータ更新に対してロックをかける処理を追加する(ステップS821A)。S822A~S823Aの後に、各ノードにおいて更新されたデータを永続化する(ステップS824A)。具体的には、S824Aでは、S822A~S823Aによって規定された内容で各ノードのデータ更新を行う。S822A~S823Aの後にS821Aでかけたロックを解除する(ステップS825A)。ロックの解除後は、ブロックBL2のトランザクションTX150~TX500に対する処理(ステップS826A~S830A)が行われる。なお、トランザクションTX150~TX500の処理内容はトランザクションTX1~TX149の処理内容と同じなので、詳細な説明は省略する。なお、この場合、ブロックBL1内のトランザクションTX1~TX149の処理順、ブロックBL2内のトランザクションTX150~TX500の処理順の入れ替えはできないが、ブロックBL1とBL2とは順序が逆になってもよい。 When the exclusive control function 231A receives the blocks BL1 and BL2 (steps S820A-1 to S820A-2), the exclusive control function 231A for the data update of each node before the processing of the transactions TX1 to TX149 (steps S822A to S823A) is performed. A process for locking is added (step S821A). After S822A to S823A, the updated data is persisted in each node (step S824A). Specifically, in S824A, the data of each node is updated with the contents specified by S822A to S823A. The lock applied by S821A after S822A to S823A is released (step S825A). After the lock is released, processing (steps S826A to S830A) for transactions TX150 to TX500 of the block BL2 is performed. Since the processing contents of the transactions TX150 to TX500 are the same as the processing contents of the transactions TX1 to TX149, detailed description thereof will be omitted. In this case, the processing order of the transactions TX1 to TX149 in the block BL1 and the processing order of the transactions TX150 to TX500 in the block BL2 cannot be exchanged, but the order of the blocks BL1 and BL2 may be reversed.

図15は、本発明の一実施形態の変形例に係る分散型台帳システムにおける排他制御の動作を示すシーケンスを示す図である。図15に示す例は、複数のブロックを受信した場合に、ブロック間の境界を解消したうえで各ブロックに含まれる複数のトランザクションに対して排他制御を行う場合の一例である。図15では、2つのブロック(BL1、BL2)を受信した場合について例示するが、受信するブロックの数は3つ以上であってもよい。図15では、ブロックBL1がトランザクションTX1~TX149を含み、ブロックBL2がトランザクションTX150~TX500を含む。図15の例では、TX受信部220AがブロックBL1、BL2を受信するとそれぞれのブロックの境界を解消し、これらのブロックに含まれていた各トランザクションは独立に扱われる。そして、図15に示すように、各ブロック間に跨がるように、整列処理部230AによってTX1、TX500、TX149、TX150の順で整列される。 FIG. 15 is a diagram showing a sequence showing the operation of exclusive control in the distributed ledger system according to the modified example of the embodiment of the present invention. The example shown in FIG. 15 is an example in which when a plurality of blocks are received, exclusive control is performed for a plurality of transactions included in each block after eliminating the boundaries between the blocks. In FIG. 15, the case where two blocks (BL1 and BL2) are received is illustrated, but the number of blocks to be received may be three or more. In FIG. 15, block BL1 includes transactions TX1 to TX149, and block BL2 contains transactions TX150 to TX500. In the example of FIG. 15, when the TX receiving unit 220A receives the blocks BL1 and BL2, the boundaries of the respective blocks are eliminated, and each transaction included in these blocks is treated independently. Then, as shown in FIG. 15, the TX1, TX500, TX149, and TX150 are arranged in this order by the alignment processing unit 230A so as to straddle between the blocks.

具体的には、図15に示すように、排他制御機能231Aは、ブロックBL1、BL2を受信する(ステップS840A-1~S840A-2)と、各ブロック間に跨がるように、トランザクションTX1(ステップS841A~S844A)、TX500(ステップS845A~S848A)、TX149(ステップS849A~S852A)、TX150(ステップS853A~S856A)の順で図13と同様の処理を行う。 Specifically, as shown in FIG. 15, when the exclusive control function 231A receives the blocks BL1 and BL2 (steps S840A-1 to S840A-2), the transaction TX1 (steps S840A-1 to S840A-2) straddles the blocks. The same processing as in FIG. 13 is performed in the order of steps S841A to S844A), TX500 (steps S845A to S848A), TX149 (steps S849A to S852A), and TX150 (steps S853A to S856A).

図14及び図15の場合において、リーダノード200Aは、ブロックBL1及びブロックBL2に含まれるトランザクションTX1~TX500に基づいて複数のログ1~ログ500を生成し、フォロワノード300Aに対して、生成された複数のログ1~ログ500を合計した結果(最終断面)を送信する。 In the case of FIGS. 14 and 15, the reader node 200A generates a plurality of logs 1 to 500 based on the transactions TX1 to TX500 included in the block BL1 and the block BL2, and is generated for the follower node 300A. The result (final cross section) of summing up a plurality of logs 1 to 500 is transmitted.

[2-5.データ同期アルゴリズム機能]
データ同期アルゴリズムの具体的なシーケンスを図16に示す。図16は、本発明の一実施形態に係る分散型台帳システムにおけるデータ同期アルゴリズムの動作を示すフローチャートを示す図である。図16のフローチャートは、図10のフローチャートと類似しているが、図16のフローチャートは、トランザクションTXの数がしきい値に到達した場合に通信確立が行われる点、フォロワノード300Aの合意形成を確認する際、全てのフォロワノード300Aのうち過半数の合意が確認された場合にログの最終断面の複製が完了したと見なす点、及びフォロワノード300Aのデータの整合性確認を行う点において、図10のフローチャートと相違する。以下の説明において、図10と同様の構成については説明を省略し、主に図10の構成と異なる点について説明する。
[2-5. Data synchronization algorithm function]
A specific sequence of data synchronization algorithms is shown in FIG. FIG. 16 is a diagram showing a flowchart showing the operation of the data synchronization algorithm in the distributed ledger system according to the embodiment of the present invention. The flowchart of FIG. 16 is similar to the flowchart of FIG. 10, but the flowchart of FIG. 16 consensus-builds the follower node 300A in that communication is established when the number of transaction TX reaches the threshold value. At the time of confirmation, when the agreement of the majority of all the follower nodes 300A is confirmed, it is considered that the duplication of the final cross section of the log is completed, and the consistency of the data of the follower node 300A is confirmed. It is different from the flowchart of. In the following description, the description of the same configuration as that of FIG. 10 will be omitted, and the points different from the configuration of FIG. 10 will be mainly described.

まず、クライアント端末400AにおいてトランザクションTXが発生すると(S701A)、トランザクションTXが発生する度にトランザクションTXを送信する条件を満たしているか否かの確認が行われる(ステップS805A)。S701Aにおいて、トランザクションTXを送信する条件が満たされていると判定された場合(S701Aの「Yes」)、クライアント端末400Aからリーダノード200Aへ通信確立要求が送信される(ステップS801A)。一方、S701Aにおいて、トランザクションTXを送信する条件が満たされていないと判定された場合(S701Aの「No」)、S701Aまで戻り、次のトランザクションTXの発生を待つ。 First, when a transaction TX occurs in the client terminal 400A (S701A), it is confirmed whether or not the condition for transmitting the transaction TX is satisfied each time the transaction TX occurs (step S805A). When it is determined in S701A that the condition for transmitting the transaction TX is satisfied (“Yes” in S701A), a communication establishment request is transmitted from the client terminal 400A to the reader node 200A (step S801A). On the other hand, if it is determined in S701A that the condition for transmitting the transaction TX is not satisfied (“No” in S701A), the process returns to S701A and waits for the occurrence of the next transaction TX.

また、S803Aにおいて、全てのフォロワノード300Aの過半数(例えば2/3以上)から合意形成の確認が取れない場合(ステップS803Aの「No」)、S716A→S803Aのステップを繰り返す。一方、全てのフォロワノード300Aの過半数(例えば2/3以上)から合意形成が確認されると(ステップS803Aの「Yes」)、リーダノード200Aにおいてデータ更新(ステップS717A)及び完了通知(ステップS718A)が行われる。 Further, in S803A, if consensus building cannot be confirmed from a majority (for example, 2/3 or more) of all follower nodes 300A (“No” in step S803A), the steps S716A → S803A are repeated. On the other hand, when consensus building is confirmed from a majority (for example, 2/3 or more) of all follower nodes 300A (“Yes” in step S803A), data update (step S717A) and completion notification (step S718A) in the leader node 200A. Is done.

また、S804Aのデータ更新の後に、フォロワノード300A間におけるデータの整合性確認が行われる(ステップS806A)。S806Aにおいて、フォロワノード300Aの一部にデータの不整合が確認された場合(ステップS806Aの「No」)、フォロワノード300Aデータの修正が行われる(ステップS807A)。 Further, after updating the data of S804A, the consistency of the data between the follower nodes 300A is confirmed (step S806A). In S806A, when data inconsistency is confirmed in a part of the follower node 300A (“No” in step S806A), the follower node 300A data is corrected (step S807A).

ここで、S803Aで過半数の合意形成が確認されているので、S807Aにおいて、フォロワノード300Aのうち過半数のフォロワノード300Aで同一のデータを有している。つまり、同一のデータを有する過半数のフォロワノード300Aのデータが正しいデータである蓋然性が高いので、その他のフォロワノード300Aのデータを修正する。具体的には、リーダノード200Aに格納されていたログの最終断面をその他のフォロワノード300Aに再送信し、フォロワノード300Aにおいてそのログの最終断面に基づくデータ更新を行う。なお、S807Aのデータ修正が行われた後に、再度S806Aの整合性確認が行われる。 Here, since the consensus building of the majority is confirmed in S803A, in S807A, the majority of the follower nodes 300A have the same data. That is, since it is highly probable that the data of the majority of the follower nodes 300A having the same data is the correct data, the data of the other follower nodes 300A are corrected. Specifically, the final cross section of the log stored in the reader node 200A is retransmitted to another follower node 300A, and the follower node 300A updates the data based on the final cross section of the log. After the data of S807A is corrected, the consistency of S806A is confirmed again.

本実施形態に係る分散型台帳システム10Aによると、リーダノード200Aが受信した複数のトランザクションに対して排他制御を行うログを形成し、さらにそのログを用いて生成したログの最終断面を、データ同期アルゴリズムを用いて複数のフォロワノード300Aに送信することで、各ノードにおける整合性を確保したまま各ノード間の同期を取ることができる。特に、クライアント端末400Aからリーダノード200Aに、複数のトランザクションがブロック単位で送信される場合、複数のトランザクションが同一の更新対象に対する更新処理の要求を含む場合が想定されるが、そのような場合であっても、データ更新の衝突を発生させることなく、複数のノード間の不整合を抑制することができる。 According to the distributed ledger system 10A according to the present embodiment, a log for exclusive control is formed for a plurality of transactions received by the reader node 200A, and the final cross section of the log generated using the log is data-synchronized. By transmitting to a plurality of follower nodes 300A using an algorithm, synchronization between each node can be achieved while ensuring consistency in each node. In particular, when a plurality of transactions are transmitted from the client terminal 400A to the reader node 200A in block units, it is assumed that the plurality of transactions include a request for update processing for the same update target. Even if there is, inconsistency between a plurality of nodes can be suppressed without causing a data update collision.

以上、本発明の一実施形態について図面を参照しながら説明したが、本発明は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態の分散型台帳システムを基にして、当業者が適宜構成要素の追加、削除もしくは設計変更を行ったものも、本発明の要旨を備えている限り、本発明の範囲に含まれる。さらに、上述した各実施形態は、相互に矛盾がない限り適宜組み合わせが可能であり、各実施形態に共通する技術事項については、明示の記載がなくても各実施形態に含まれる。 Although one embodiment of the present invention has been described above with reference to the drawings, the present invention is not limited to the above-described embodiment and can be appropriately modified without departing from the spirit of the present invention. For example, a system in which a person skilled in the art appropriately adds, deletes, or changes the design based on the distributed ledger system of the present embodiment is also included in the scope of the present invention as long as the gist of the present invention is provided. Will be. Further, each of the above-described embodiments can be appropriately combined as long as there is no contradiction with each other, and technical matters common to each embodiment are included in each embodiment even if there is no explicit description.

上述した各実施形態の態様によりもたらされる作用効果とは異なる他の作用効果であっても、本明細書の記載から明らかなもの、又は、当業者において容易に予測し得るものについては、当然に本発明によりもたらされるものと解される。 Of course, other effects different from the effects brought about by the embodiments described above, which are obvious from the description of the present specification or which can be easily predicted by those skilled in the art, will naturally occur. It is understood that it is brought about by the present invention.

10:分散型台帳システム、 31~38:台帳、 41~47:クライアント端末、 100~103:ノード、 110~113:サーバ、 120~123:データベース、 200:リーダノード、 220:受信部、 230:整列処理部、 231A:排他制御機能、 240:ログ生成部、 250:分散処理部、 251A:データ同期アルゴリズム機能、 260:データ更新部、 290:通信バス、 300~304:フォロワノード、 310:断面受信部、 320:断面格納部、 330:合意形成部、 340:データ更新部、 390:通信バス、 400~404:クライアント端末、 410~414:クライアントプロセス、 420:取引要求受信部、 430:生成部、 440:バッファリング部、 450:通信部、 460:送信部、 490:通信バス、 500:ネットワーク、 600:専用ネットワーク 10: Distributed ledger system, 31-38: Ledger, 41-47: Client terminal, 100-103: Node, 110-113: Server, 120-123: Database, 200: Reader node, 220: Receiver, 230: Alignment processing unit, 231A: Exclusive control function, 240: Log generation unit, 250: Distributed processing unit, 251A: Data synchronization algorithm function, 260: Data update unit, 290: Communication bus, 300-304: Follower node, 310: Cross section Receiver, 320: Section storage, 330: Consensus formation, 340: Data update, 390: Communication bus, 400-404: Client terminal, 410-414: Client process, 420: Transaction request receiver, 430: Generation Unit, 440: Buffering unit, 450: Communication unit, 460: Transmitter unit, 490: Communication bus, 500: Network, 600: Dedicated network

Claims (8)

台帳を分散して記録する複数のノードのうち1つの第1ノードを選出し、前記第1ノードから、前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードに、クライアント端末から受信した複数のトランザクションに基づき所定の閾値で生成された複数のログの合計を送信するシステム。 A first node is selected from a plurality of nodes for distributing and recording a ledger, and from the first node to a plurality of second nodes different from the first node among the plurality of nodes, from a client terminal. A system that sends the sum of multiple logs generated at a given threshold based on multiple received transactions. 台帳を分散して記録する複数のノードのうち1つの第1ノードは前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードに対して、クライアント端末から受信した複数のトランザクションに基づき所定の閾値で生成された複数のログを送信せずに前記複数のログの合計を送信するシステム。 The first node of one of the plurality of nodes for distributing and recording the ledger is based on a plurality of transactions received from the client terminal for the plurality of second nodes different from the first node of the plurality of nodes. A system that transmits the total of the plurality of logs without transmitting the plurality of logs generated at a predetermined threshold . 前記第1ノードは、
前記クライアント端末から前記複数のトランザクションを含むブロック単位で前記複数のトランザクションを受信し、
前記ブロックに含まれる前記複数のトランザクションに基づいて前記複数のログを生成し、
前記複数の第2ノードに対して複数の前記ブロックに含まれる前記複数のログを合計した結果を送信する、
請求項1又は2に記載のシステム。
The first node is
The plurality of transactions are received from the client terminal in block units including the plurality of transactions.
Generate the plurality of logs based on the plurality of transactions contained in the block, and generate the plurality of logs.
The result of summing up the plurality of logs contained in the plurality of blocks is transmitted to the plurality of second nodes.
The system according to claim 1 or 2.
前記第1ノードは前記複数のログを記憶する、請求項1乃至3のいずれか一に記載のシステム。 The system according to any one of claims 1 to 3, wherein the first node stores the plurality of logs. 台帳を分散して記録する複数のノードから選出された1つの第1ノードに対して、前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードに、クライアント端末から受信した複数のトランザクションに基づき所定の閾値で生成された複数のログの合計を送信することを実行させるためのプログラム。 For one first node selected from a plurality of nodes that distribute and record the ledger, a plurality of the plurality of nodes received from the client terminal to the plurality of second nodes different from the first node among the plurality of nodes. A program for executing the transmission of the sum of multiple logs generated with a predetermined threshold based on a transaction. 台帳を分散して記録する複数のノードのうち1つの第1ノードに対して、前記複数のノードのうち前記第1ノードとは異なる複数の第2ノードへクライアント端末から受信した複数のトランザクションに基づき所定の閾値で生成された複数のログを送信せずに前記複数のログの合計を送信することを実行させるためのプログラム。 Based on a plurality of transactions received from a client terminal to a plurality of second nodes different from the first node among the plurality of nodes for the first node of one of the plurality of nodes for recording the ledger in a distributed manner. A program for executing the transmission of the total of the plurality of logs without transmitting the plurality of logs generated at a predetermined threshold . 前記第1ノードに、
前記クライアント端末から前記複数のトランザクションを含むブロック単位で前記複数のトランザクションを受信させ、
前記ブロックに含まれる前記複数のトランザクションに基づいて前記複数のログを生成させ、
前記複数の第2ノードに対して複数の前記ブロックに含まれる前記複数のログを合計した結果を送信させる、
請求項5又は6に記載のプログラム。
To the first node
The plurality of transactions are received from the client terminal in block units including the plurality of transactions.
Generate the plurality of logs based on the plurality of transactions included in the block, and generate the plurality of logs.
The result of summing up the plurality of logs included in the plurality of blocks is transmitted to the plurality of second nodes.
The program according to claim 5 or 6.
前記第1ノードに前記複数のログを記憶させる、請求項5乃至7のいずれか一に記載のプログラム。 The program according to any one of claims 5 to 7, wherein the first node stores the plurality of logs.
JP2020132481A 2020-08-04 2020-08-04 Systems and programs Active JP7016389B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020132481A JP7016389B1 (en) 2020-08-04 2020-08-04 Systems and programs
PCT/JP2021/024467 WO2022030144A1 (en) 2020-08-04 2021-06-29 System and recording medium
JP2021157144A JP2022029453A (en) 2020-08-04 2021-09-27 node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020132481A JP7016389B1 (en) 2020-08-04 2020-08-04 Systems and programs

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021157144A Division JP2022029453A (en) 2020-08-04 2021-09-27 node

Publications (2)

Publication Number Publication Date
JP7016389B1 true JP7016389B1 (en) 2022-02-04
JP2022029244A JP2022029244A (en) 2022-02-17

Family

ID=80117982

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020132481A Active JP7016389B1 (en) 2020-08-04 2020-08-04 Systems and programs
JP2021157144A Pending JP2022029453A (en) 2020-08-04 2021-09-27 node

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021157144A Pending JP2022029453A (en) 2020-08-04 2021-09-27 node

Country Status (2)

Country Link
JP (2) JP7016389B1 (en)
WO (1) WO2022030144A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235003A (en) 2004-02-20 2005-09-02 Bank Of Tokyo-Mitsubishi Ltd Financial transaction information processing apparatus and program
JP2020067805A (en) 2018-10-24 2020-04-30 株式会社 みずほ銀行 Adjustment system and adjustment method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6966544B2 (en) * 2016-11-10 2021-11-17 スワールズ,インコーポレイテッド Methods and equipment for distributed databases with anonymous entries
US11281644B2 (en) * 2017-07-28 2022-03-22 Hitachi, Ltd. Blockchain logging of data from multiple systems
JP7187894B2 (en) * 2018-08-30 2022-12-13 富士通株式会社 Program, information processing system and information processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235003A (en) 2004-02-20 2005-09-02 Bank Of Tokyo-Mitsubishi Ltd Financial transaction information processing apparatus and program
JP2020067805A (en) 2018-10-24 2020-04-30 株式会社 みずほ銀行 Adjustment system and adjustment method

Also Published As

Publication number Publication date
WO2022030144A1 (en) 2022-02-10
JP2022029244A (en) 2022-02-17
JP2022029453A (en) 2022-02-17

Similar Documents

Publication Publication Date Title
AU2019203861B2 (en) System and method for ending view change protocol
AU2019203865B2 (en) Consensus system downtime recovery
US10671599B2 (en) Consensus system and method
AU2019203862B2 (en) System and method for ending view change protocol
US7636868B2 (en) Data replication in a distributed system
AU2019203864B2 (en) Consensus system downtime recovery
US7143123B2 (en) Well-known transactions in data replication
WO2019042101A1 (en) Cross-chain trading method and apparatus
TW201943250A (en) Cross-blockchain authentication method and apparatus, and electronic device
US10938750B2 (en) Consensus system downtime recovery
US20210233068A1 (en) Settlement system, settlement method, user device, and settlement program
CN105493474A (en) System and method for supporting partition level journaling for synchronizing data in a distributed data grid
US12072866B2 (en) Data processing method and apparatus, computer device, and storage medium
KR20140047230A (en) Method for optimizing distributed transaction in distributed system and distributed system with optimized distributed transaction
US20160285969A1 (en) Ordered execution of tasks
JP7016389B1 (en) Systems and programs
WO2022030204A1 (en) System, terminal, and recording medium
Schintke et al. Enhanced paxos commit for transactions on dhts
JP7308887B2 (en) System and program
US11860828B2 (en) Methods, devices and systems for writer pre-selection in distributed data systems
CN110442573A (en) A kind of method and device of distributed fault-tolerance key assignments storage
JP7319564B2 (en) Data sharing system, management terminal, data sharing method, and data sharing program
US20230325407A1 (en) Blockchain Blocks Storage Management
CN115796863A (en) Consensus method of block chain system and related equipment
Arrieta-Salinas et al. HOW TO DEAL WITH REPLICATION AND RECOVERY IN A DISTRIBUTED FILE SERVER

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200805

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200805

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20200825

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210927

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211005

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211012

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: 20220104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220125

R150 Certificate of patent or registration of utility model

Ref document number: 7016389

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250