<A:第1実施形態>
<A1:ネットワークシステム1>
図1は、ネットワークシステム1を示す図である。ネットワークシステム1は、ネットワークNWと、管理装置10と、を含む。ネットワークNWは、ノード20、30、40、50及び60のグループA1を含む。ネットワークNWは、グループA1に属さない複数のノードも含む。
ノード20は、第1ノードの一例である。ノード30、40、50及び60は、複数の第2ノードの一例である。ノード30、40、50及び60の各々は、第2ノードの一例である。第2ノードの数は、4に限らず2以上であればよい。グループA1は、第1ノードと複数の第2ノードとによって構成されるグループの一例である。
ノード20、30、40、50及び60は、P2P(Peer to Peer)ネットワークを構成する。P2Pネットワークの構成は、図1に示される構成に限らず適宜変更可能である。
ノード20、30、40、50及び60の各々は、共通のブロックチェーンBCを保有する。すなわち、ノード20、30、40、50及び60は、ブロックチェーンBCを共に有する。
図2は、ブロックチェーンBCの一例を示す図である。ブロックチェーンBCは、直列に接続された複数のブロックB1を含む。各ブロックB1は、ブロック関連データQ1と、対象データT1と、を含む。
ブロック関連データQ1は、直前のブロックB1に含まれるデータに基づいている。ブロック関連データQ1は、例えば、直前のブロックB1に含まれるデータに基づくハッシュ値である。ブロック関連データQ1は、ブロックチェーンBCにおけるデータの改ざんへの耐性に寄与する。
対象データT1は、例えば、取引データD1である。取引データD1は、例えば、暗号資産の取引に関するデータである。暗号資産は、仮想通過又は電子通貨とも称される。取引データD1は、暗号資産の取引に関するデータに限らない。取引データD1は、例えば、不動産の取引に関するデータ、動産の取引に関するデータ、又は、情報の取引に関するデータでもよい。取引データD1は、トランザクションとも称される。対象データT1は、取引データD1に限らず、例えば、契約書等の情報のやり取りに関するデータでもよい。ブロックチェーンBCは、対象データT1を管理するデータベースの一例である。
以下、説明の簡略化のため、対象データT1が取引データD1である例を説明する。取引データD1は、複数のノード20、30、40、50及び60の各々によって生成可能である。
取引データD1は、取引データD1の生成元であるノードから、複数のノード20、30、40、50及び60のうち取引データD1の生成元とは異なるノードに伝搬される。複数のノード20、30、40、50及び60の各々は、取引データD1を受け取ると、当該取引データD1を検証する。
ブロックB1は、複数のノード20、30、40、50及び60のうち、マイナーノードと称されるノードによって生成される。マイナーノードは、複数の取引データD1を1つのブロックB1にまとめる。
ブロックB1は、ブロックB1の生成元であるマイナーノードから、複数のノード20、30、40、50及び60のうちブロックB1の生成元とは異なるノードに伝搬される。複数のノード20、30、40、50及び60の各々は、ブロックB1を受け取ると、当該ブロックB1を検証する。
複数のノード20、30、40、50及び60の各々は、ブロックB1の検証結果が有効を示す場合、当該ブロックB1を既存のブロックチェーンBCに追加する。ブロックB1を既存のブロックチェーンBCに追加することは、ブロックB1を既存のブロックチェーンBCに接続することを意味する。ブロックB1、対象データT1及び取引データD1の各々は、所定データの一例である。所定データは、追加データの一例である。
ノード20、30、40、50及び60の各々は、ブロックチェーンBCに取引データD1を追加するための通信を実行する。以下「ブロックチェーンBCに取引データD1を追加するための通信」を「データ追加用通信」とも称する。データ追加用通信の一例は、取引データD1の通信である。データ追加用通信の他の例は、取引データD1を含むブロックB1の通信である。ネットワークNWにおいて、取引データD1等のデータ及びブロックB1は、パケットによって通信される。
取引データD1がブロックチェーンBCに追加されるタイミングが早いほど、取引データD1が確定したとみなされるタイミングは早くなる。管理装置10は、データ追加用通信の品質を制御することによって、取引データD1がブロックチェーンBCに追加されるタイミングの遅延を小さくする。管理装置10は、取引データD1がブロックチェーンBCに追加されるタイミングの遅延を小さくすることによって、取引データD1が確定したとみなされるタイミングを早くする。管理装置10は、取引データD1が確定したとみなされるタイミングを早くすることによって、ノード20、30、40、50及び60のうち少なくとも1つのノードを支援する。
図3は、ネットワークNWの一例を示す図である。ネットワークNWは、ノード20、30、40、50及び60に加えて、通信装置71、72、73及び74を含む。通信装置71、72、73及び74の各々は、例えば、ルータである。ノード20、30、40、50及び60と、通信装置71、72、73及び74は、管理装置10と通信可能である。
管理装置10は、通信装置71、72、73及び74の少なくとも1つに、優先制御及び帯域制御の少なくとも一方を実行させることによって、ネットワークNWにおける通信の品質を制御する。
優先制御は、例えば、特定の通信に係るパケットを優先的に転送する制御である。優先制御が実行されると、特定の通信において、低遅延、スループットの向上、高速化、及び高信頼性等が実現される。帯域制御は、通信に使用される帯域の広さを調節する制御である。帯域制御によって通信の帯域が広がると、通信において、例えば、低遅延、スループットの向上、高速化、及び高信頼性等が実現される。優先制御及び帯域制御の各々は、QoS(Quality of Service)制御の一例である。
管理装置10は、通信装置71、72、73及び74の少なくとも1つにQoS制御を実行させることによって、取引データD1がブロックチェーンBCに追加されるタイミングの遅延を小さくする。
<A2:ノード20>
ノード20は、パーソナルコンピュータである。ノード20は、パーソナルコンピュータに限らず、例えば、スマートフォン又はタブレットでもよい。ノード20は、データ追加用通信(ブロックチェーンBCに取引データD1を追加するための通信)をノード30及び40の各々と実行する。
図4は、ノード20の一例を示す図である。ノード20は、入力装置21と、出力装置22と、通信装置23と、記憶装置24と、処理装置25と、を含む。
入力装置21は、キーボードを含む。入力装置21は、マウス及びタッチパネルの少なくとも一方を含んでもよい。入力装置21は、タッチパネルを含む場合、キーボード及びマウスの少なくとも一方を含まなくてもよい。入力装置21は、ユーザが行う操作を受け付ける。
出力装置22は、ディスプレイを含む。出力装置22は、タッチパネルを含んでもよい。出力装置22は、種々の情報を表示する。出力装置22は、タッチパネルを含む場合、ディスプレイを含まなくてもよい。タッチパネルが、入力装置21及び出力装置22として用いられてもよい。
通信装置23は、ルータ等の通信装置71を介してノード30と通信する。通信装置23は、ルータ等の通信装置72を介してノード40と通信する。通信装置23は、さらに、管理装置10と通信する。
記憶装置24は、処理装置25が読み取り可能な記録媒体である。記憶装置24は、例えば、不揮発性メモリーと揮発性メモリーとを含む。不揮発性メモリーは、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)及びEEPROM(Electrically Erasable Programmable Read Only Memory)である。揮発性メモリーは、例えば、RAM(Random Access Memory)である。記憶装置24は、アプリケーションプログラム241と、ブロックチェーンBCと、を記憶する。
処理装置25は、1又は複数のCPU(Central Processing Unit)を含む。1又は複数のCPUは、1又は複数のプロセッサの一例である。プロセッサ及びCPUの各々は、コンピュータの一例である。
処理装置25は、記憶装置24からアプリケーションプログラム241を読み取る。処理装置25は、アプリケーションプログラム241を実行することによって、動作制御部251、第1要求部252、第2要求部253、検証部254及びブロック生成部255として機能する。
動作制御部251は、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)及びFPGA(Field Programmable Gate Array)等の回路によって実現されてもよい。第1要求部252、第2要求部253、検証部254及びブロック生成部255のうち少なくとも1つは、DSP、ASIC、PLD及びFPGA等の回路によって実現されてもよい。
動作制御部251は、ブロックチェーンBCに取引データD1を追加するための通信、すなわち、データ追加用通信を制御する。
第1要求部252は、要求C1を管理装置10に送信する。要求C1は、取引データD1に関する通信についてのQoS制御の要求を示す。取引データD1に関する通信は、取引データD1の通信と、取引データD1を含むブロックB1の通信と、を含む。すなわち、取引データD1に関する通信は、ブロックチェーンBCに取引データD1を追加するための通信の全体を意味する。取引データD1に関する通信は、データ追加用通信の一例である。QoS制御は、通信の品質の制御の一例である。要求C1は、ブロックチェーンBCに所定データを追加するための通信の品質の制御を要求する第1要求の一例である。第1要求は、ブロックチェーンBCに所定データ(追加データ)を追加するための通信の品質を制御するための要求である。
管理装置10は、要求C1を第1ノード(例えば、ノード20)から受信する場合、ワンタイムパスP1を第1ノードに提供する。ワンタイムパスP1は、要求C1に示された制御を実行するために使用される。ワンタイムパスP1は、第1要求に対応する所定情報の一例である。所定情報は、第1情報の一例である。ワンタイムパスP1は、複数の第2ノードの各々に伝播する。
第2要求部253は、要求C2を管理装置10に送信する。要求C2は、通信路K1における通信についてのQoS制御の要求を示す。通信路K1は、第1通信路の一例である。第1通信路は、第1端と第2端とを含む。
通信路K1の一端は、ワンタイムパスP1がグループA1内で通信される状況において、複数の第2ノードのうちワンタイムパスP1を受信した受信ノードである。通信路K1の一端(受信ノード)は、第1通信路の第1端の一例である。通信路K1の他端は、受信ノードにワンタイムパスP1を伝えたノードとは異なる第1接続ノードであって、グループA1に属するノードのうち、グループA1に属するいずれのノードを介さずに受信ノードと接続する第1接続ノードである。通信路K1の他端(第1接続ノード)は、第1通信路の第2端の一例である。
通信路K1における通信は、通信路K1の一端を構成するノード(受信ノード)と、通信路K1の他端を構成するノード(第1接続ノード)と、によって実行される通信である。例えば、通信路K1における通信は、通信路K1の一端を構成する受信ノードを送信元ノードとして示し通信路K1の他端を構成する第1接続ノードを送信先ノードとして示すパケットの通信を含む。通信路K1における通信は、通信路K1の一端を構成する受信ノードを送信先ノードとして示し通信路K1の他端を構成する第1接続ノードを送信元ノードとして示すパケットの通信を、さらに含む。通信路K1の数は、1又は複数である。要求C2は、第1通信路における通信の品質の制御を要求する第2要求の一例である。第2要求は、第1通信路における通信の品質を制御するための要求である。
検証部254は、他のノードが生成した取引データD1を検証する。検証部254は、他のノードが生成したブロックB1を検証する。
ブロック生成部255は、取引データD1を含むブロックB1を生成する。例えば、ブロック生成部255は、複数の取引データD1を1つのブロックB1にまとめる。
<A3:ノード30、40、50及び60>
ノード30、40、50及び60の各々は、ノード20が有する構成要素と同様の構成要素を有する。ノード30は、データ追加用通信(ブロックチェーンBCに取引データD1を追加するための通信)をノード20と実行する。ノード40は、データ追加用通信をノード20、50及び60の各々と実行する。ノード50は、データ追加用通信をノード40と実行する。ノード60は、データ追加用通信をノード40と実行する。
<A4:管理装置10>
図5は、管理装置10の一例を示す図である。管理装置10は、サーバである。管理装置10は、通信装置11と、記憶装置12と、処理装置13と、を含む。
通信装置11は、ノード20、30、40、50及び60の各々と直接的又は間接的に通信する。通信装置11は、通信装置71、72、73及び74の各々と直接的又は間接的に通信する。
記憶装置12は、処理装置13が読み取り可能な記録媒体である。記憶装置12は、例えば、不揮発性メモリーと揮発性メモリーとを含む。記憶装置12は、プログラム121と、管理テーブル122と、を記憶する。図6は、管理テーブル122の一例を示す図である。管理テーブル122は、通信路における通信のQoS制御を管理するために用いられる。
説明を図5に戻す。処理装置13は、1又は複数のCPUを含む。処理装置13は、記憶装置12からプログラム121を読み取る。処理装置13は、プログラム121を実行することによって、提供部131及び品質制御部132として機能する。提供部131及び品質制御部132の少なくとも1つは、DSP、ASIC、PLD及びFPGA等の回路によって実現されてもよい。
提供部131は、要求C1を第1ノード(例えば、ノード20)から受信する場合、ワンタイムパスP1を第1ノードに提供する。ワンタイムパスP1は、グループA1内で通信される。ワンタイムパスP1は、複数の第2ノードの各々に伝播する。第2ノードは、通信路K1における通信が、要求C1によってQoS制御が要求された通信であることを、管理装置10に知らせるために、ワンタイムパスP1を利用する。
品質制御部132は、ワンタイムパスP1を受信した受信ノードから、通信路K1における通信についてのQoS制御の要求を示す要求C2に加えてワンタイムパスP1を受信すると、通信路K1における通信の品質を所定品質以上の品質に設定する。所定品質は、第1品質の一例である。
所定品質は、例えば、通信帯域が「X1」Mbpsである通信品質である。「X1」は正数である。この場合、所定品質以上の品質は、通信帯域が「X1」Mbps以上である品質を意味する。所定品質は、通信帯域が「X1」Mbpsである通信品質に限らず、例えば、遅延が「X2」msである通信品質でもよい。「X2」は正数である。この場合、所定品質以上の品質は、遅延が「X2」ms以下である品質を意味する。所定品質は、記憶装置12に予め登録されてもよいし、要求C1に示されてもよい。
品質制御部132は、通信路K1における通信の品質が所定品質未満の品質である状況において受信ノードから要求C2に加えてワンタイムパスP1を受信する場合、通信路K1における通信の品質を、所定品質以上の品質に変更する。
品質制御部132は、通信路K1における通信の品質が所定品質以上の品質である状況において受信ノードから要求C2に加えてワンタイムパスP1を受信する場合、通信路K1における通信の品質を維持する。
<A5:動作の説明>
図7は、ネットワークシステム1の動作を説明するための図である。図7は、説明の簡略化のため、ノード20が取引要求ノードであり、ノード30が取引先ノード(取引ノード)であり、ノード40、50及び60の各々がマイナーノードである場合における動作を示す。
取引要求ノードは、ノード20に限らず、ノード30、40、50及び60のいずれかでもよい。取引先ノードは、ノード30に限らず、ノード20、40、50及び60のいずれかでもよい。取引先ノードは、取引要求ノードと異なる。マイナーノードは、ノード40、50及び60の各々に限らず、例えば、ノード20及び30の少なくとも一方でもよい。マイナーノードの数は、3に限らない。
図7に示される例では、取引要求ノードが第1ノードの一例である。取引要求ノードと異なる複数のノードが複数の第2ノードの一例である。
ノード20、30、40、50及び60の各々は、図4に示される通信装置23を用いて通信を行う。しかしながら、説明の簡略化のため、通信装置23に関する記載を省略する。管理装置10は、図5に示される通信装置11を用いて通信を行う。しかしながら、説明の簡略化のため、通信装置11に関する記載を省略する。
ノード20の入力装置21が、ノード20のユーザから、ブロックチェーンBCに新たに追加されるべき取引の内容を示す内容情報を受け取ると、ノード20の動作制御部251は、内容情報に基づいて、取引データD1を生成する。
図8は、取引データD1の一例を示す図である。取引データD1は、取引要求ノードを示す情報D11と、取引先ノードを示す情報D12と、取引内容を示す情報D13と、を示す。図7に示される例では、情報D11はノード20を示し、情報D12はノード30を示す。
ノード20の動作制御部251が取引データD1を生成すると、図7に示されるステップS101においてノード20の第1要求部252が、要求C1を管理装置10に送信する。要求C1は、取引データD1に関する通信についてのQoS制御の要求を示す。
ステップS101では、ノード20の第1要求部252は、要求C3を伴う要求C1を管理装置10に送信する。要求C3は、通信路K2における通信の品質の制御に対する要求を示す。通信路K2は、取引データD1を提供するためにノード20によって使用される通信路である。
通信路K2における通信は、通信路K2の一端を構成するノードと、通信路K2の他端を構成するノードと、によって実行される通信である。例えば、通信路K2における通信は、通信路K2の一端を構成するノードを送信元ノードとして示し通信路K2の他端を構成するノードを送信先ノードとして示すパケットの通信を含む。通信路K2における通信は、通信路K2の一端を構成するノードを送信先ノードとして示し通信路K2の他端を構成するノードを送信元ノードとして示すパケットの通信を、さらに含む。
通信路K2の一端は、ノード20である。通信路K2の他端は、複数の第2ノード(ノード30、40、50及び60)のうち、複数の第2ノードのいずれも介さずにノード20と接続するノード(第2接続ノード)である。以下、通信路K2の他端を構成するノードを「接続先ノードN2」とも称する。
複数の接続先ノードN2が存在する場合、ノード20の第1要求部252は、接続先ノードN2ごとに、通信路K2を指定する。図1に示される例では、2つの接続先ノードN2(ノード30及び40)が存在する。このため、ノード20の第1要求部252は、要求C3において、2つの通信路K2(通信路K2a及びK2b)を指定する。
通信路K2aの一端はノード20であり、通信路K2aの他端はノード30である。通信路K2bの一端はノード20であり、通信路K2bの他端はノード40である。通信路K2(通信路K2a及びK2bの各々)は、第2通信路の一例である。第2通信路は、第3端と第4端とを含む。通信路K2(通信路K2a及びK2bの各々)の一端は、第2通信路の第3端の一例である。通信路K2(通信路K2a及びK2bの各々)の他端は、第2通信路の第4端(第2接続ノード)の一例である。要求C3は、第2通信路における通信の品質の制御を要求する第3要求の一例である。第3要求は、第2通信路における通信の品質を制御するための要求である。
要求C3は、通信路K2の一端を構成するノードを特定する情報として、通信路K2の一端を構成するノードのIP(Internet Protocol)アドレスを示す。通信路K2の一端を構成するノードを特定する情報は、通信路K2の一端を構成するノードのIPアドレスに限らず適宜変更可能である。要求C3は、通信路K2の他端を構成するノードを特定する情報として、通信路K2の他端を構成するノードのIPアドレスを示す。通信路K2の他端を構成するノードを特定する情報は、通信路K2の他端を構成するノードのIPアドレスに限らず適宜変更可能である。
管理装置10の提供部131は、要求C1をノード20から受信する場合、ステップS102において、ワンタイムパスP1を発行する。
要求C1が要求C3を伴う場合、ステップS103において提供部131は、要求C3に示される通信路K2を、管理テーブル122のターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録する。
図6は、通信路K2a(ノード20とノード30との間の通信路)と、通信路K2b(ノード20とノード40との間の通信路)とが、ターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録される例を示す。
ステップS103では、提供部131は、通信路K2ごとに、要求C3から、通信路K2の一端を構成するノードのIPアドレスと、通信路K2の他端を構成するノードのIPアドレスと、を読み取る。続いて提供部131は、通信路K2ごとに、通信路K2の一端を構成するノードのIPアドレスと通信路K2の他端を構成するノードのIPアドレスを、通信路K2を示す情報として、ターゲット通信路の欄122aにワンタイムパスP1と対応づけて登録する。
提供部131は、ターゲット通信路の欄122aに通信路を示す情報を新たに登録する場合、管理テーブル122において当該通信路に対応する処理の欄122bを「未」に設定する。
なお、提供部131は、要求C1を受信しても要求C3を受信しない場合、ステップS103を実行しない。
ステップS103に続くステップS104において品質制御部132は、まず、管理テーブル122の処理の欄122bが「未」に設定されているターゲット通信路(この場合、通信路K2a及びK2bの各々)を特定する。続いて、品質制御部132は、特定した通信路における通信の品質を、所定品質以上の品質に設定する。
通信路K2に対応する処理の欄122bに「未」が設定されている場合、品質制御部132は、例えば、以下のように動作する。
品質制御部132は、まず、通信路K2の一端を送信元として示し通信路K2の他端を送信先として示すパケットと、通信路K2の一端を送信先として示し通信路K2の他端を送信元として示すパケットと、の各々を、ターゲットパケットとして特定する。
続いて、品質制御部132は、ターゲットパケットについて、通信装置71~74に優先制御及び帯域制御を実行させることによって、通信路K2における通信の品質を所定品質以上の品質に設定する。
このため、通信路K2における通信について、QoS制御が開始される。なお、品質制御部132は、通信装置71~74に、優先制御及び帯域制御のいずれか一方のみを実行させてもよい。
続いて、品質制御部132は、処理の欄122bのうち、QoS制御が開始された通信路に対応する処理の欄122bを、「未」から「済」に変更する。
続いて、ステップS105において提供部131は、要求C1の送信元であるノード20に、ワンタイムパスP1を提供する。ワンタイムパスP1を要求C1の送信元に提供することは、要求C1の承認を意味する。
ノード20の動作制御部251は、ワンタイムパスP1を受信すると、ステップS106においてノード40とハンドシェイクを実行する。ノード20の動作制御部251は、ハンドシェイクにおいて、ワンタイムパスP1と取引データD1とをノード40に送信する。ステップS106の実行時には、通信路K2bにおける通信についてQoS制御が実施されている。このため、取引データD1の通信に要する時間が短くなる。
ノード40の検証部254は、ノード20から取引データD1を受信すると、ステップS107において、取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
また、ノード20の動作制御部251は、ワンタイムパスP1を受信すると、ステップS108においてノード30とハンドシェイクを実行する。ノード20の動作制御部251は、ハンドシェイクにおいてワンタイムパスP1と取引データD1とをノード30に送信する。ステップS108の実行時には、通信路K2aにおける通信についてQoS制御が実施されている。このため、取引データD1の通信に要する時間が短くなる。
ノード30の検証部254は、ノード20から取引データD1を受信すると、ステップS109において、取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ステップS108~S109は、ステップS106~S107よりも時間的に前に実行されてもよい。ステップS108~S109は、ステップS106~S107と並行に実施されてもよい。この場合、ステップS106~S107とステップS108~S109とを順番に実行する構成に比べてステップS106~S109に要する時間を短縮できる。
ノード40の第2要求部253は、ステップS107における取引データD1の検証結果が有効を示す場合、ステップS110において、要求C2とワンタイムパスP1とを管理装置10に送信する。
要求C2は、通信路K1における通信の品質の制御に対する要求を示す。通信路K1は、取引データD1を提供するためにノード40によって使用される通信路である。
通信路K1における通信は、通信路K1の一端を構成するノードを送信元ノードとして示し通信路K1の他端を構成するノードを送信先ノードとして示すパケットの通信を含む。通信路K1における通信は、通信路K1の一端を構成するノードを送信先ノードとして示し通信路K1の他端を構成するノードを送信元ノードとして示すパケットの通信を、さらに含む。
通信路K1の一端は、ノード40である。ノード40は、受信ノードの一例である。通信路K1の他端は、ノード40にワンタイムパスP1を伝えたノード(ノード20)とは異なるノードであって、グループA1に属するノードのうち、グループA1に属するいずれのノードも介さずにノード40と接続するノード(第1接続ノード)である。以下、通信路K1の他端を構成するノードを「接続先ノードN1」とも称する。
複数の接続先ノードN1が存在する場合、ノード40の第2要求部253は、接続先ノードN1ごとに、通信路K1を指定する。図1に示される例では、2つの接続先ノードN1(ノード50及び60)が存在する。このため、ノード40の第2要求部253は、要求C2において、2つの通信路K1(通信路K1a及びK1bの各々)を指定する。
通信路K1aの一端はノード40であり、通信路K1aの他端はノード50である。通信路K1bの一端はノード40であり、通信路K1bの他端はノード60である。通信路K1(通信路K1a及びK1bの各々)は、第1通信路の一例である。
要求C2は、通信路K1の一端を構成するノードを特定する情報として、通信路K1の一端を構成するノードのIPアドレスを示す。通信路K1の一端を構成するノードを特定する情報は、通信路K1の一端を構成するノードのIPアドレスに限らず適宜変更可能である。要求C2は、通信路K1の他端を構成するノードを特定する情報として、通信路K1の他端を構成するノードのIPアドレスを示す。通信路K1の他端を構成するノードを特定する情報は、通信路K1の他端を構成するノードのIPアドレスに限らず適宜変更可能である。
管理装置10の品質制御部132は、要求C2に加えてワンタイムパスP1を受信すると、ステップS111において、要求C2に示される通信路K1を、管理テーブル122のターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録する。
図6は、通信路K1a(ノード40とノード50との間の通信路)と、通信路K1b(ノード40とノード60との間の通信路)とが、ターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録される例を示す。
ステップS111では、品質制御部132は、通信路K1ごとに、要求C2から、通信路K1の一端を構成するノードのIPアドレスと、通信路K1の他端を構成するノードのIPアドレスと、を読み取る。続いて品質制御部132は、通信路K1ごとに、通信路K1の一端を構成するノードのIPアドレスと通信路K1の他端を構成するノードのIPアドレスを、通信路K1を示す情報としてターゲット通信路の欄122aにワンタイムパスP1と対応づけて登録する。
品質制御部132は、ターゲット通信路の欄122aに通信路を示す情報を新たに登録する場合、管理テーブル122において当該通信路に対応する処理の欄122bを「未」に設定する。
なお、品質制御部132は、要求C2を受信してもワンタイムパスP1を受信しない場合、ステップS111を実行しない。
ステップS111に続くステップS112において品質制御部132は、まず、管理テーブル122の処理の欄122bが「未」に設定されているターゲット通信路(この場合、通信路K1a及びK1bの各々)を特定する。続いて、品質制御部132は、特定した通信路における通信の品質を、所定品質以上の品質に設定する。特定した通信路における通信の品質を、所定品質以上の品質に設定する手法は、ステップS104の手法と同様である。
通信路K1に対応する処理の欄122bに「未」が設定されている場合、品質制御部132は、例えば、以下のように動作する。
品質制御部132は、まず、通信路K1の一端を送信元として示し通信路K1の他端を送信先として示すパケットと、通信路K1の一端を送信先として示し通信路K1の他端を送信元として示すパケットと、の各々を、ターゲットパケットとして特定する。
続いて、品質制御部132は、ターゲットパケットについて、通信装置71~74に優先制御及び帯域制御を実行させることによって、通信路K1における通信の品質を所定品質以上の品質に設定する。
このため、通信路K1における通信について、QoS制御が開始される。なお、品質制御部132は、通信装置71~74に、優先制御及び帯域制御のいずれか一方のみを実行させてもよい。
続いて、品質制御部132は、処理の欄122bのうち、QoS制御が開始された通信路に対応する処理の欄122bを、「未」から「済」に変更する。
続いて、ステップS113において品質制御部132は、要求C2の送信元であるノード40に、QoS制御の実行を示す実行情報G1を送信する。
ノード40の動作制御部251は、実行情報G1を受信すると、ステップS114においてノード50とハンドシェイクを実行する。ノード40の動作制御部251は、ハンドシェイクにおいて、ワンタイムパスP1と取引データD1とをノード50に送信する。ステップS114の実行時には、通信路K1aにおける通信についてQoS制御が実施されている。このため、取引データD1の通信に要する時間が短くなる。
ノード50の検証部254は、ノード40から取引データD1を受信すると、ステップS115において、取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
また、ノード40の動作制御部251は、実行情報G1を受信すると、ステップS116においてノード60とハンドシェイクを実行する。ノード40の動作制御部251は、ハンドシェイクにおいて、ワンタイムパスP1と取引データD1とをノード60に送信する。ステップS116の実行時には、通信路K1bにおける通信についてQoS制御が実施されている。このため、取引データD1の通信に要する時間が短くなる。
ノード60の検証部254は、ノード40から取引データD1を受信すると、ステップS117において、取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ステップS116~S117は、ステップS114~S115よりも時間的に前に実行されてもよい。ステップS116~S117は、ステップS114~S115と並行に実施されてもよい。この場合、ステップS114~S115とステップS116~S117とを順番に実行する構成に比べてステップS114~S117に要する時間を短縮できる。
ステップS116が完了すると、ノード40のブロック生成部255は、ステップS118において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ステップS115が完了すると、ノード50のブロック生成部255は、ステップS119において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ステップS117が完了すると、ノード60のブロック生成部255は、ステップS120において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ノード50のブロック生成部255が、ステップS121において取引データD1を含むブロックB1の生成(マイニング)に成功すると、ノード50の動作制御部251は、当該ブロックB1を、記憶装置24内のブロックチェーンBCに接続する。続いて、ノード50の動作制御部251は、ステップS122において当該ブロックB1をノード40に送信する。ステップS122の実行時には、通信路K1aにおける通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード40の検証部254は、ブロックB1を受信すると、ステップS123においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード40の検証部254は、ブロックB1を、ノード40の記憶装置24内のブロックチェーンBCに接続する。
続いて、ノード40の動作制御部251は、ステップS124においてブロックB1をノード60に送信する。ステップS124の実行時には、通信路K1bにおける通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード60の検証部254は、ブロックB1を受信すると、ステップS125においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード60の検証部254は、ブロックB1を、ノード60の記憶装置24内のブロックチェーンBCに接続する。
ノード40の動作制御部251は、ステップS124に続いて、ステップS126においてブロックB1をノード20に送信する。ステップS126の実行時には、通信路K2bにおける通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。ステップS126は、ステップS124よりも時間的に前に実行されてもよいし、ステップS124と並行に実行されてもよい。
ノード20の検証部254は、ブロックB1を受信すると、ステップS127においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード20の検証部254は、ブロックB1を、ノード20の記憶装置24内のブロックチェーンBCに接続する。
続いて、ノード20の動作制御部251は、ステップS128においてブロックB1をノード30に送信する。ステップS128の実行時には、通信路K2aにおける通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード30の検証部254は、ブロックB1を受信すると、ステップS129においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード30の検証部254は、ブロックB1を、ノード30の記憶装置24内のブロックチェーンBCに接続する。
<A6:第1実施形態のまとめ>
第1実施形態によれば、提供部131は、ブロックチェーンBCにデータを追加するための通信の品質の制御を要求する要求C1を、第1ノード(例えば、ノード20)から受信する場合、ワンタイムパスP1を、第1ノードに提供する。品質制御部132は、ワンタイムパスP1がグループA1内で通信される状況においてワンタイムパスP1を受信した受信ノードから、第1通信路における通信の品質の制御を要求する要求C2に加えて、ワンタイムパスP1を受信する場合、第1通信路における通信の品質を所定品質以上の品質に設定する。第1通信路の一端は、受信ノードである。第1通信路の他端は、受信ノードにワンタイムパスP1を伝えたノードとは異なるノードであって、グループA1に属するノードのうち、グループA1に属するいずれのノードを介さずに受信ノードと接続するノードである。
このため、グループA1に属する複数のノード間のいずれの通信路における通信も所定品質以上の品質に設定しない構成に比べて、データがブロックチェーンBCに追加されるタイミングの遅延を小さくできる。したがって、データをブロックチェーンBCに追加するタイミングの遅延を小さくするためにノードを支援できる。
また、取引データD1の生成を契機にQoS制御が実行される。このため、QoS制御が必要なタイミングから、QoS制御を開始することができる。
また、ブロックチェーンBCにデータを追加するために必要な通信路における通信についてのみ、QoS制御を実行することができる。
<B:変形例>
上述の実施形態における変形の態様を以下に示す。以下の変形の態様から任意に選択された2以上の態様を、相互に矛盾しない範囲において適宜に併合してもよい。
<B1:第1変形例>
第1実施形態において、取引データD1の通信についてQoS制御が実行されなくてもよい。
第1実施形態において、取引データD1の通信にはQoS制御が実行されずに、取引データD1を含むブロックB1の通信にQoS制御が実行される変形例を、第1変形例として説明する。以下、第1実施形態と異なる点を中心に第1変形例について説明する。
第1変形例におけるハードウェア構成は、第1実施形態におけるハードウェア構成と同様である。図9及び図10は、第1変形例の動作を説明するための図である。
第1変形例では、ブロックB1の生成(マイニング)に成功したノード50が起点となって、QoS制御が開始される。この場合、ノード50が第1ノードの一例となり、ノード20、30、40及び60が複数の第2ノードの一例となる。
ノード20の入力装置21が、ノード20のユーザから、ブロックチェーンBCに新たに追加されるべき取引の内容を示す内容情報を受け取ると、ノード20の動作制御部251は、内容情報に基づいて、取引データD1を生成する。
ノード20の動作制御部251は、取引データD1を生成すると、ステップS201において、取引データD1をノード40に送信する。
ノード40の検証部254は、ノード20から取引データD1を受信すると、ステップS202において、取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ノード20の動作制御部251は、ステップS201の完了後、ステップS203において、取引データD1をノード30に送信する。
ノード30の検証部254は、ノード20から取引データD1を受信すると、ステップS204において取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ステップS203~S204は、ステップS201~S202よりも時間的に前に実行されてもよい。ステップS203~S204は、ステップS201~S202と並行に実施されてもよい。この場合、ステップS201~S202とステップS203~S204とを順番に実行する構成に比べて、ステップS201~S204に要する時間を短縮できる。
ノード40の動作制御部251は、ステップS202における取引データD1の検証結果が有効を示す場合、ステップS205において、取引データD1をノード50に送信する。
ノード50の検証部254は、ノード40から取引データD1を受信すると、ステップS206において取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ノード40の動作制御部251は、ステップS205の完了後、ステップS207において、取引データD1をノード60に送信する。
ノード60の検証部254は、ノード40から取引データD1を受信すると、ステップS208において取引データD1を検証する。以下では、取引データD1の検証結果が有効を示すとする。
ステップS207~S208は、ステップS205~S206よりも時間的に前に実行されてもよい。ステップS207~S208は、ステップS205~S206と並行に実施されてもよい。この場合、ステップS205~S206とステップS207~S208とを順番に実行する構成に比べて、ステップS205~S208に要する時間を短縮できる。
ステップS207が完了すると、ノード40のブロック生成部255は、ステップS118において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ステップS206が完了すると、ノード50のブロック生成部255は、ステップS119において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ステップS208が完了すると、ノード60のブロック生成部255は、ステップS120において、取引データD1を含むブロックB1の生成(マイニング)を開始する。
ノード50のブロック生成部255が、ステップS121において取引データD1を含むブロックB1の生成(マイニング)に成功すると、ステップS209においてノード50の第1要求部252は、要求C1を管理装置10に送信する。要求C1は、取引データD1に関する通信に対するQoS制御の要求を示す。
ステップS209では、ノード50の第1要求部252は、要求C3を伴う要求C1を管理装置10に送信する。要求C3は、通信路K2における通信の品質の制御に対する要求を示す。この場合、通信路K2は、ブロックB1を提供するためにノード50によって使用される通信路である。通信路K2の一端は、ノード50である。通信路K2の他端は、複数の第2ノード(ノード30、40、50及び60)のうち、複数の第2ノードのいずれも介さずにノード50と接続するノード40(接続先ノードN2)である。図1に示される例では、1つの接続先ノードN2(ノード40)が存在する。このため、ノード50の第1要求部252は、1つの通信路K2を指定する。
管理装置10の提供部131は、要求C1をノード50から受信する場合、ステップS210において、ワンタイムパスP1を発行する。
要求C1が要求C3を伴う場合、ステップS211において提供部131は、要求C3に示される通信路K2を、管理テーブル122のターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録する。
提供部131は、ターゲット通信路の欄122aに通信路を示す情報を新たに登録する場合、管理テーブル122において当該通信路に対応する処理の欄122bを「未」に設定する。
なお、提供部131は、要求C1を受信しても要求C3を受信しない場合、ステップS211を実行しない。
ステップS211に続くステップS212において品質制御部132は、まず、管理テーブル122の処理の欄122bが「未」に設定されているターゲット通信路(この場合、通信路K2)を特定する。続いて、品質制御部132は、特定した通信路における通信の品質を、所定品質以上の品質に設定する。特定した通信路に関する通信の品質を、所定品質以上の品質に設定する手法は、ステップS104の手法と同様である。
続いて、品質制御部132は、処理の欄122bのうち、QoS制御が開始された通信路に対応する処理の欄122bを、「未」から「済」に変更する。
続いて、ステップS213において提供部131は、要求C1の送信元であるノード50に、ワンタイムパスP1を提供する。
ノード50の動作制御部251は、ワンタイムパスP1を受信すると、ステップS214において、ワンタイムパスP1とブロックB1をノード40に送信する。ステップS214の実行時には、通信路K2における通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード40の検証部254は、ノード50からブロックB1を受信すると、ステップS215において、ブロックB1を検証する。
ノード40の第2要求部253は、ステップS215におけるブロックB1の検証結果が有効を示す場合、ステップS216において、要求C2aとワンタイムパスP1とを管理装置10に送信する。
要求C2aは、通信路K1における通信の品質の制御に対する要求を示す。この場合、通信路K1は、ブロックB1を提供するためにノード40によって使用される通信路である。通信路K1の一端は、ノード40である。ノード40は、受信ノードの一例である。通信路K1の他端は、ノード40にワンタイムパスP1を伝えたノード(ノード50)とは異なるノードであって、グループA1に属するノードのうち、グループA1に属するいずれのノードも介さずにノード40と接続するノード(接続先ノードN1)である。
複数の接続先ノードN1が存在する場合、ノード40の第2要求部253は、接続先ノードN1ごとに、通信路K1を指定する。図1に示される例では、2つの接続先ノードN1(ノード20及び60)が存在する。このため、ノード40の第2要求部253は、2つの通信路K1(通信路K1a及びK1b)を指定する。
この場合、通信路K1aの一端はノード40であり、通信路K1aの他端はノード20である。通信路K1bの一端はノード40であり、通信路K1bの他端はノード60である。通信路K1(通信路K1a及びK1bの各々)は、第1通信路の一例である。要求C2aは、第1通信路における通信の品質の制御を要求する第2要求の一例である。
要求C2aは、通信路K1の一端を構成するノードを特定する情報として、通信路K1の一端を構成するノードのIPアドレスを示す。通信路K1の一端を構成するノードを特定する情報は、通信路K1の一端を構成するノードのIPアドレスに限らず適宜変更可能である。要求C2aは、通信路K1の他端を構成するノードを特定する情報として、通信路K1の他端を構成するノードのIPアドレスを示す。通信路K1の他端を構成するノードを特定する情報は、通信路K1の他端を構成するノードのIPアドレスに限らず適宜変更可能である。
管理装置10の品質制御部132は、要求C2aに加えてワンタイムパスP1を受信すると、ステップS217において、要求C2aに示される通信路K1を、管理テーブル122のターゲット通信路の欄122aに、ワンタイムパスP1と対応づけて登録する。
品質制御部132は、ターゲット通信路の欄122aに通信路を示す情報を新たに登録する場合、管理テーブル122において当該通信路に対応する処理の欄122bを「未」に設定する。
なお、品質制御部132は、要求C2aを受信してもワンタイムパスP1を受信しない場合、ステップS217を実行しない。
ステップS217に続くステップS218において品質制御部132は、まず、管理テーブル122の処理の欄122bが「未」に設定されているターゲット通信路(この場合、通信路K1a及びK1bの各々)を特定する。続いて、品質制御部132は、特定した通信路における通信の品質を、所定品質以上の品質に設定する。特定した通信路における通信の品質を、所定品質以上の品質に設定する手法は、ステップS112の手法と同様である。
続いて、品質制御部132は、処理の欄122bのうち、QoS制御が開始された通信路に対応する処理の欄122bを、「未」から「済」に変更する。
続いて、ステップS219において品質制御部132は、要求C2aの送信元であるノード40に、QoS制御の実行を示す実行情報G1を送信する。
ノード40の動作制御部251は、実行情報G1を受信すると、ステップS220において、ワンタイムパスP1とブロックB1をノード60に送信する。ステップS220の実行時には、通信路K1bにおける通信についてQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード60の検証部254は、ノード40からブロックB1を受信すると、ステップS221においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード60の検証部254は、ブロックB1を、ノード60の記憶装置24内のブロックチェーンBCに接続する。
ノード40の動作制御部251は、ステップS220の完了後、ステップS222において、ワンタイムパスP1とブロックB1をノード60に送信する。ステップS222の実行時には、通信路K1aにおける通信に対してQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード20の検証部254は、ノード40からブロックB1を受信すると、ステップS223においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード20の検証部254は、ブロックB1を、ノード20の記憶装置24内のブロックチェーンBCに接続する。
ステップS222~S223は、ステップS220~S221よりも時間的に前に実行されてもよい。ステップS222~S223は、ステップS220~S221と並行に実施されてもよい。この場合、ステップS220~S221とステップS222~S223とを順番に実行する構成に比べて、ステップS220~S223に要する時間を短縮できる。
ノード20の第2要求部253は、ステップS223におけるブロックB1の検証結果が有効を示す場合、ステップS224において、要求C2bとワンタイムパスP1とを管理装置10に送信する。
要求C2bは、通信路K1cにおける通信の品質の制御に対する要求を示す。通信路K1cは、ブロックB1を提供するためにノード20によって使用される通信路である。通信路K1cの一端は、ノード20である。ノード20は、受信ノードの一例である。通信路K1cの他端は、ノード20にワンタイムパスP1を伝えたノード(ノード40)とは異なるノードであって、グループA1に属するノードのうち、グループA1に属するいずれのノードも介さずにノード20と接続するノード(接続先ノードN3)である。図1に示される例では、1の接続先ノードN3(ノード30)が存在する。このため、ノード20の第2要求部253は、1つの通信路K1cを指定する。通信路K1cは、第1通信路の一例である。要求C2bは、第1通信路における通信の品質の制御を要求する第2要求の一例である。
要求C2bは、通信路K1cの一端を構成するノードを特定する情報として、通信路K1cの一端を構成するノードのIPアドレスを示す。通信路K1cの一端を構成するノードを特定する情報は、通信路K1cの一端を構成するノードのIPアドレスに限らず適宜変更可能である。要求C2bは、通信路K1cの他端を構成するノードを特定する情報として、通信路K1cの他端を構成するノードのIPアドレスを示す。通信路K1cの他端を構成するノードを特定する情報は、通信路K1cの他端を構成するノードのIPアドレスに限らず適宜変更可能である。
管理装置10の品質制御部132は、要求C2bに加えてワンタイムパスP1を受信すると、ステップS225において、要求C2bに示される通信路K1cを、管理テーブル122のターゲット通信路の欄122aにワンタイムパスP1と対応づけて登録する。
品質制御部132は、ターゲット通信路の欄122aに通信路を示す情報を新たに登録する場合、管理テーブル122において当該通信路に対応する処理の欄122bを「未」に設定する。
なお、品質制御部132は、要求C2bを受信してもワンタイムパスP1を受信しない場合、ステップS225を実行しない。
ステップS225に続くステップS226において品質制御部132は、まず、管理テーブル122の処理の欄122bが「未」に設定されているターゲット通信路(この場合、通信路K1c)を特定する。続いて、品質制御部132は、特定した通信路における通信の品質を、所定品質以上の品質に設定する。特定した通信路における通信の品質を、所定品質以上の品質に設定する手法は、ステップS112の手法と同様である。
続いて、品質制御部132は、処理の欄122bのうち、QoS制御が開始された通信路に対応する処理の欄122bを、「未」から「済」に変更する。
続いて、ステップS227において品質制御部132は、要求C2bの送信元であるノード20に、QoS制御の実行を示す実行情報G1を送信する。
ノード20の動作制御部251は、実行情報G1を受信すると、ステップS228において、ワンタイムパスP1とブロックB1をノード30に送信する。ステップS228の実行時には、通信路K1cにおける通信に対してQoS制御が実施されている。このため、ブロックB1の通信に要する時間が短くなる。
ノード30の検証部254は、ノード20からブロックB1を受信すると、ステップS229においてブロックB1を検証する。ブロックB1の検証結果が有効を示す場合、ノード30の検証部254は、ブロックB1を、ノード30の記憶装置24内のブロックチェーンBCに接続する。
ブロックB1の通信において遅延が小さいと、当該ブロックB1が他のブロックB1よりも先に、各ノードに到着する可能性が高くなる。当該ブロックB1が他のブロックB1よりも先に各ノードに到着する場合、当該ブロックB1がブロックチェーンBCに接続される確率が高くなる。このため、ブロックB1の通信において遅延が小さいことは、取引データD1の早期の確定を期待するユーザに加えて、ブロックB1を生成するマイナーノードにとっても望ましい。
第1変形例によれば、取引データD1の通信にはQoS制御が実行されずに、取引データD1を含むブロックB1の通信にQoS制御が実行される。このため、ブロックB1の通信において遅延を小さくできる。よって、取引データD1の通信と、取引データD1を含むブロックB1の通信と、のいずれにもQoS制御が実行されない構成に比べて、取引データD1の早期の確定が可能になり、かつ、ブロックB1がブロックチェーンBCに接続される確率を高くできる。
<B2:第2変形例>
第1実施形態において、品質制御部132は、要求C2の送信元の信憑性を判定してもよい。
品質制御部132は、グループA1内のノードのうちワンタイムパスP1を伝達するノード(例えば、ノード20)から、ワンタイムパスP1が伝達されるノードを示す伝達先リストを受信する。伝達先リストは、所定情報が伝達されるノードを示すノード情報の一例である。要求C2とワンタイムパスP1との送信元であるノードが伝達先リストに示されるノードと一致する場合、品質制御部132は、ワンタイムパスP1を伝達するノードからワンタイムパスP1を受信した受信ノードから、要求C2に加えてワンタイムパスP1を受信したと判定する。要求C2とワンタイムパスP1との送信元であるノードが伝達先リストに示されるノードと一致しない場合、品質制御部132は、要求C2を無効と判定する。
例えば、品質制御部132は、ノード30及び40の各々にワンタイムパスP1を送信したノード20から、ワンタイムパスP1の伝達先のノード(ノード30及び40)を示す伝達先リストを受信する。要求C2とワンタイムパスP1との送信元が、伝達先リストに示される場合、品質制御部132は、ノード20からワンタイムパスP1を受信した受信ノード(ノード30又は40)から、要求C2とワンタイムパスP1とを受信したと判定する。要求C2とワンタイムパスP1との送信元が、伝達先リストL1に示されない場合、品質制御部132は、要求C2を無効と判定する。
なお、第1変形例においては、要求C2の代わりに、要求C2a及びC2bの少なくとも一方が用いられてもよい。
例えば、品質制御部132は、グループA1内のノードのうちワンタイムパスP1を伝達するノード(例えば、ノード20)から、ワンタイムパスP1の伝達先のノードを示す伝達先リストを受信する。
要求C2aとワンタイムパスP1との送信元が伝達先リストに示される場合、品質制御部132は、ワンタイムパスP1を伝達するノードからワンタイムパスP1を受信した受信ノードから、要求C2aに加えてワンタイムパスP1を受信したと判定する。要求C2aとワンタイムパスP1との送信元が伝達先リストに示されない場合、品質制御部132は、要求C2aを無効と判定する。
要求C2bとワンタイムパスP1との送信元が伝達先リストに示される場合、品質制御部132は、ワンタイムパスP1を伝達するノードからワンタイムパスP1を受信した受信ノードから、要求C2bに加えてワンタイムパスP1を受信したと判定する。要求C2bとワンタイムパスP1との送信元が伝達先リストに示されない場合、品質制御部132は、要求C2bを無効と判定する。
第2変形例によれば、例えば、ワンタイムパスP1を正当でないルートを介して入手したノードからの要求C2、C2a及びC2bの各々を無効にできる。
<B3:第3変形例>
第1実施形態及び第1~第2変形例において、品質制御部132は、所定品質以上の品質に設定した通信の品質を、所定品質以上の品質に設定する前の通信の品質に戻してもよい。
要求C1は、グループA1内での取引データD1に関連する通信の品質の制御を要求する。すなわち、要求C1は、グループA1内での取引データD1に関連する通信の品質を制御するための要求である。取引データD1は、複数の第2ノードのいずれかを取引先ノードとして示す(図8参照)。品質制御部132は、取引データD1を含むブロックB1を取引先ノード(取引ノード)が受信したことを示す通知に応じて、グループA1内での取引データD1に関連する通信における所定品質以上の品質を、所定品質以上の品質に設定する前の品質に戻す。
例えば、取引データD1に取引先ノードとして示されるノード30が、取引データD1を含むブロックB1を受信すると、ノード30の動作制御部251は、通知M1を管理装置10に送信する。通知M1は、取引データD1を含むブロックB1を取引先ノードが受信したことを示す。
管理装置10の品質制御部132は、通知M1に応じて、所定品質以上の品質に設定した通信の品質を、所定品質以上の品質に設定する前の通信の品質に戻す。例えば、品質制御部132は、管理テーブル122に登録されている情報(ワンタイムパスP1と通信路)及び管理テーブル122に設定されている情報(「未」と「済」)を、通知M1の受信に応じて削除する。品質制御部132は、その後、管理テーブル122を用いた通信品質の制御(例えば、ステップS104の制御手法)を実行する。この場合、通信装置71~74は、品質制御部132に制御される前の状態(例えば、予め定められている状態)に戻る。
一例を挙げると、品質制御部132は、通知M1を受信してから所定時間(例えば、2分)が経過した場合に、所定品質以上の品質に設定した通信品質を、所定品質以上の品質に設定する前の通信品質に戻す。所定時間は、2分に限らず、2分よりも長くてもよいし2分よりも短くてもよい。所定時間は、グループA1内のすべてのノードに、新たなブロックB1が到達するまでの時間よりも長いことが望ましい。
第3変形例によれば、グループA1における通信の品質が、必要以上に長い時間、高品質になることを抑制できる。
<B4:第4変形例>
第1実施形態及び第1~第3変形例において、品質制御部132は、グループA1に属する複数のノード間のすべての通信路における通信ではなく一部の通信路における通信についてQoS制御を実行してもよい。
第4変形例によれば、グループA1に属する複数のノード間のいずれの通信路における通信についてもQoS制御を実行しない構成に比べて、データがブロックチェーンBCに追加されるタイミングの遅延を小さくできる。
<C:その他>
(1)第1実施形態及び第1変形例~第4変形例の各々においては、記憶装置12及び24は、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ)、CD-ROM(Compact Disc-ROM)、レジスタ、リムーバブルディスク、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ、データベース、サーバその他の適切な記憶媒体を含んでもよい。また、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
(2)第1実施形態及び第1変形例~第4変形例の各々は、LTE(Long Term Evolution)、LTE-A(LTE-Advanced)、SUPER 3G、IMT-Advanced、4G、5G、FRA(Future Radio Access)、W-CDMA(登録商標)、GSM(登録商標)、CDMA2000、UMB(Ultra Mobile Broadband)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、UWB(Ultra-WideBand)、Bluetooth(登録商標)、その他の適切なシステムを利用するシステム及び/又はこれらに基づいて拡張された次世代システムに適用されてもよい。
(3)第1実施形態及び第1変形例~第4変形例の各々において説明した情報などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、情報などは、電圧、電流、電磁波、磁界、磁性粒子、光場、光子、又はこれらの任意の組み合わせにて表されてもよい。
なお、本明細書において説明した用語及び/又は本明細書の理解に必要な用語は、同一の又は類似する意味を有する用語と置き換えられてもよい。
(4)第1実施形態及び第1変形例~第4変形例の各々において、入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、テーブルによって管理されてもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
(5)第1実施形態及び第1変形例~第4変形例の各々において、判定は、1ビットによって表される値(0か1か)に基づいて行われてもよいし、真偽値(Boolean:true又はfalse)に基づいて行われてもよいし、数値の比較(例えば、所定の値との比較)に基づいて行われてもよい。
(6)第1実施形態及び第1変形例~第4変形例の各々において例示した処理手順、シーケンス、又はフローチャート等は、矛盾のない限り、順序を入れ替えてもよい。例えば、本明細書において説明した方法については、例示的な順序において様々なステップの要素を提示しており、提示した特定の順序に限定されない。
(7)図4又は図5に例示された各機能は、ハードウェア及びソフトウェアの任意の組み合わせによって実現される。また、各機能は、単体の装置によって実現されてもよいし、相互に別体にて構成された2以上の装置によって実現されてもよい。
(8)第1実施形態及び第1変形例~第4変形例の各々において例示したプログラムは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード又はハードウェア記述言語と呼ばれるか、他の名称によって呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順又は機能等を意味するよう広く解釈されるべきである。
また、ソフトウェア、又は命令などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)などの有線技術及び/又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
(9)第1実施形態及び第1変形例~第4変形例の各々において、「システム」及び「ネットワーク」という用語は、互換的に使用される。
(10)第1実施形態及び第1変形例~第4変形例の各々において、ノード20、30、40、50及び60の少なくとも1つは、移動局でもよい。移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、又はいくつかの他の適切な用語を用いて称される場合もある。
(11)第1実施形態及び第1変形例~第4変形例の各々において、「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
(12)本明細書において使用する「第1」及び「第2」などの呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書において使用され得る。したがって、第1及び第2の要素への参照は、2つの要素のみが採用され得ること又は何らかの形において第1要素が第2要素に先行しなければならないことを意味しない。
(13)第1実施形態及び第1変形例~第4変形例の各々において「含む(including)」、「含んでいる(comprising)」、及びそれらの変形が、本明細書あるいは特許請求の範囲において使用されている限り、これら用語は、用語「備える」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
(14)本願の全体において、例えば、英語におけるa、an及びtheのように、翻訳によって冠詞が追加された場合、これらの冠詞は、文脈から明らかにそうではないことが示されていなければ、複数を含む。
(15)本明細書において、「装置」という用語は、回路、デバイス又はユニット等の他の用語に読み替えられてもよい。
(16)本発明が本明細書中に説明した実施形態に限定されないことは当業者にとって明白である。本発明は、特許請求の範囲の記載に基づいて定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施できる。したがって、本明細書の記載は、例示的な説明を目的とし、本発明に対して何ら制限的な意味を有さない。また、本明細書に例示した態様から選択された複数の態様を組み合わせてもよい。
<D:上述の形態又は変形例から把握される態様>
上述の形態又は変形例の少なくとも1つから以下の態様が把握される。
<D1:第1態様>
第1態様に係る管理装置は、提供部と、品質制御部と、を含む。提供部は、ブロックチェーンを共に有し前記ブロックチェーンに追加データを追加するための通信を実行する第1ノードと複数の第2ノードとによって構成されるグループ内での前記通信の品質を制御するための第1要求を、前記第1ノードから受信する場合、前記第1要求に対応する第1情報を、前記第1ノードに提供する。品質制御部は、前記第1情報が前記グループ内で通信される状況において、前記複数の第2ノードのうち前記第1情報を受信した受信ノードから、第1通信路における通信の品質を制御するための第2要求に加えて、前記第1情報を受信する場合、前記第1通信路における通信の品質を、第1品質以上の品質に設定する。前記第1通信路は、第1端と第2端とを含む。前記第1端は、前記受信ノードである。前記第2端は、前記受信ノードに前記第1情報を伝えたノードとは異なる第1接続ノードであって、前記グループに属するノードのうち、前記グループに属するいずれのノードを介さずに前記受信ノードと接続する第1接続ノードである。この態様によれば、第1通信路における通信の品質を、第1品質以上の品質に設定できる。このため、グループに属する複数のノード間のいずれの通信路における通信も第1品質以上の品質に設定しない構成に比べて、追加データがブロックチェーンに追加されるタイミングの遅延を小さくできる。したがって、追加データをブロックチェーンに追加するタイミングの遅延を小さくするために、ノードを支援できる。
<D2:第2態様>
第1態様の例(第2態様)において、前記第1通信路における通信は、前記受信ノードと、前記第1接続ノードと、によって実行される通信である。第1通信路の一端を構成する受信ノードと、第1通信路の他端を構成する第1接続ノードと、によって実行される通信は、追加データをブロックチェーンに追加するための通信を含む。このため、グループに属する複数のノード間のいずれの通信路における通信も第1品質以上の品質に設定しない構成に比べて、追加データがブロックチェーンに追加されるタイミングの遅延を小さくできる。
<D3:第3態様>
第1態様又は第2態様の例(第3態様)において、前記品質制御部は、前記第1要求が、第2通信路における通信の品質を制御するための第3要求を伴う場合、前記第2通信路における通信の品質を、前記第1品質以上の品質に設定する。前記第2通信路は、第3端と第4端とを含む。前記第3端は、前記第1ノードである。前記第4端は、前記複数の第2ノードのうち、前記複数の第2ノードのいずれも介さずに前記第1ノードと接続する第2接続ノードである。この態様によれば、第2通信路における通信の品質を、第1品質以上の品質に設定できる。このため、グループに属する複数のノード間のいずれの通信路における通信も第1品質以上の品質に設定しない構成に比べて、追加データがブロックチェーンに追加されるタイミングの遅延を小さくできる。
<D4:第4態様>
第3態様の例(第4態様)において、前記第2通信路における通信は、前記第1ノードと、前記第2接続ノードと、によって実行される通信である。第2通信路の一端を構成する第1ノードと、第1通信路の他端を構成する第2接続ノードと、によって実行される通信は、追加データをブロックチェーンに追加するための通信を含む。このため、グループに属する複数のノード間のいずれの通信路における通信も第1品質以上の品質に設定しない構成に比べて、追加データがブロックチェーンに追加されるタイミングの遅延を小さくできる。
<D5:第5態様>
第1態様から第4態様のいずれかの例(第5態様)において、前記第1ノードは、前記ブロックチェーンに接続されるべきブロックに含まれるべきデータを生成する。この態様によれば、ブロックチェーンに接続されるべきブロックに含まれるべきデータの生成に応じて、第1要求を提供部に提供することができる。
<D6:第6態様>
第1態様から第4態様のいずれかの例(第6態様)において、前記第1ノードは、前記ブロックチェーンに接続されるべきブロックを生成する。この態様によれば、ブロックチェーンに接続されるべきブロックの生成に応じて、第1要求を提供部に提供することができる。
<D7:第7態様>
第1態様から第6態様のいずれかの例(第7態様)において、前記品質制御部は、前記グループ内のノードのうち前記第1情報を伝達するノードから、前記第1情報が伝達されるノードを示すノード情報を受信する。前記品質制御部は、前記第2要求と前記第1情報とを当該管理装置に送信したノードが、前記ノード情報に示されるノードと一致する場合、前記受信ノードから前記第2要求に加えて前記所定情報を受信したと判定する。前記品質制御部は、前記第2要求と前記第1情報とを当該管理装置に送信したノードが、前記ノード情報に示されるノードと一致しない場合、前記第2要求を無効と判定する。この態様によれば、第1情報を正当でないルートを介して入手したノードからの第2要求を無効にできる。
<D8:第8態様>
第1態様から第7態様のいずれかの例(第8態様)において、前記追加データは、前記グループ内で通信される取引データである。前記第1要求は、前記取引データに関連する通信の品質を制御するための要求である。前記取引データは、前記複数の第2ノードのいずれかを取引ノードとして示す。前記品質制御部は、前記取引データを含むブロックを前記取引ノードが受信したことを示す通知に応じて、前記通信の品質を、前記第1品質以上の品質に設定する前の品質に戻す。この態様によれば、グループにおける通信の品質が、必要以上に長い時間、高品質になることを抑制できる。
<D9:第9態様>
第8態様の例(第9態様)において、前記品質制御部は、前記通知の受信から第1時間が経過した場合に、前記通信の品質を、前記第1品質以上の品質に設定する前の品質に戻す。この態様によれば、グループ内のすべてのノードにブロックが到達するまで、グループにおける通信の品質を第1品質以上の品質に維持する可能性を高くできる。