IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シーアン グァダー ネットワーク テクノロジー カンパニー リミテッドの特許一覧

特許7288264トランザクションシーケンスコンセンサス方法及びシステム
<>
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図1
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図2
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図3
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図4
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図5
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図6
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図7
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図8
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図9
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図10
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図11
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図12
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図13
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図14
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図15
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図16
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図17
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図18
  • 特許-トランザクションシーケンスコンセンサス方法及びシステム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-30
(45)【発行日】2023-06-07
(54)【発明の名称】トランザクションシーケンスコンセンサス方法及びシステム
(51)【国際特許分類】
   G06F 9/52 20060101AFI20230531BHJP
【FI】
G06F9/52 150C
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022021394
(22)【出願日】2022-02-15
(65)【公開番号】P2022164563
(43)【公開日】2022-10-27
【審査請求日】2022-03-25
(31)【優先権主張番号】202110414298.0
(32)【優先日】2021-04-16
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】522060205
【氏名又は名称】シーアン グァダー ネットワーク テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110002343
【氏名又は名称】弁理士法人 東和国際特許事務所
(72)【発明者】
【氏名】リー、 クァン
(72)【発明者】
【氏名】チェン、 ハオ
(72)【発明者】
【氏名】ドン、 シンユー
(72)【発明者】
【氏名】リー、 シーユー
(72)【発明者】
【氏名】フェ、 ヂェンイャオ
(72)【発明者】
【氏名】チェン、 シージェ
(72)【発明者】
【氏名】ジーアン、 ブォウェン
【審査官】浦口 幸宏
(56)【参考文献】
【文献】国際公開第2021/052769(WO,A1)
【文献】特表2020-504920(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/52
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
コンセンサス待ちトランザクションと、対応するトランザクション情報と、を取得するステップであって、前記トランザクション情報は、トランザクション番号、トランザクション入力モジュール情報、トランザクションエントリノード情報、トランザクション実行待ち情報及びコンセンサス待ちトランザクションを取得する経路情報を含むステップと、
前記コンセンサス待ちトランザクションを取得する経路情報に基づいて、前記コンセンサス待ちトランザクションを、ローカルトランザクションとノンローカルトランザクションとに区分するステップと、
前記コンセンサス待ちトランザクションを検証、解析、同期するステップと、
コンセンサスノードにおける前記ローカルトランザクションの到着時系列情報を取得し、持続的にノッティングするローカル到着ロープにローカルトランザクションを導入するステップと、
異なるコンセンサスノード間のローカル到着ロープを同期して、同期後の各ノードの到着時系列情報を取得するステップと、
予め設定された復元ルールに従って、前記各ノードの到着時系列情報を分析して、自ノードにおける2つずつのトランザクションの復元時系列及び1グループのトランザクションの連続的な復元時系列情報を取得し、ローカル復元ロープを構築するステップと、
異なるコンセンサスノード間のローカル復元ロープを交換、同期して、同期後の各ノードの復元時系列情報を取得するステップと、
予め設定されたコンセンサスルールに従って自ノードの復元時系列情報に対してコンセンサス処理を行って、コンセンサス時系列情報を取得し、コンセンサス済みトランザクションを含むコンセンサスロープを構築するステップと、
前記コンセンサスロープに対する解析に基づいて、コンセンサスロープにおけるコンセンサス済みトランザクションを取得するステップと、
コンセンサス済みトランザクションに基づいて状態データを更新するステップと、を含む、
ことを特徴とするトランザクションシーケンスコンセンサス方法。
【請求項2】
状態データを更新した後に、
コンセンサスノードが、コンセンサスロープの状態変化軌跡に基づいてコンセンサス時間を取得するステップをさらに含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項3】
前記コンセンサス時間の現在時間には、現在時刻値と、前記現在時刻値の検証値とが含まれ、
現在時刻値は、前記コンセンサス時系列情報のうち、現在コンセンサス済みトランザクションの数であり、
前記コンセンサス時間の現在時間を取得してタイムスタンプとする、
ことを特徴とする請求項2に記載のトランザクションシーケンスコンセンサス方法。
【請求項4】
コンセンサス待ちトランザクションと、対応するトランザクション情報と、を取得する前に、
トランザクショントリガ情報を取得するステップと、
コンセンサスネットワークにおけるコンセンサスノード情報を取得するステップと、
前記トランザクショントリガ情報及びコンセンサスノード情報に基づいて、コンセンサス待ちトランザクションのトランザクションエントリノード情報を決定するステップと、をさらに含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項5】
前記トランザクションエントリノード情報が、予め設定された割当ルールによって前記コンセンサス待ちトランザクションにエントリノードを割り当て、ここで、前記予め設定された割当ルールには、指定、ポーリング、ランダム、近接及び負荷分散が含まれ、
前記トランザクションエントリノード情報に基づいて、前記コンセンサス待ちトランザクションを区分する、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項6】
前記コンセンサス待ちトランザクションを検証、解析するステップは、
予め設定された検証項目に基づいて、前記コンセンサス待ちトランザクションを検証して検証結果を取得するステップと、
検証結果が合格である場合、前記コンセンサス待ちトランザクションを検証済みのコンセンサス待ちトランザクションとしてマークするステップと、
予め設定された解析ルールに従って、前記検証済みのコンセンサス待ちトランザクションを解析して、解析結果を取得するステップと、
前記検証済みのコンセンサス待ちトランザクションを解析済みのコンセンサス待ちトランザクションとしてマークするステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項7】
コンセンサスノードにおける前記ローカルトランザクションの到着時系列情報を取得し、持続的にノッティングするローカル到着ロープに前記ローカルトランザクションを導入し、異なるコンセンサスノード間のローカル到着ロープを同期するステップは、
コンセンサスノードのローカル到着ロープを初期化するステップと、
結び目番号、導入結び目データ及び検証項目を含む結び目を持続的に作成して前記ローカル到着ロープを延長するステップと、
前記コンセンサスノードがローカルトランザクションを受信すると、前記ローカルトランザクションを前記ローカル到着ロープの現在の結び目に導入するステップと、
予め設定されたローカル到着ロープの同期トリガ条件を満たすと、前記ローカル到着ロープにおける同期されていない部分を自ノード以外のコンセンサスノードに同期するステップと、
予め設定された到着ルールに従ってノンローカル到着ロープを受信、検証、同期するステップと、
前記ローカル到着ロープ及び前記ノンローカル到着ロープを解析して、同期後の各ノードの到着時系列情報を取得するステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項8】
N個の実行待ちのノッター及びスケジューラに適用される結び目を持続的に作成して前記ローカル到着ロープを延長するステップは、
空っているノッターを非同期的に順次呼び出して、ノッティング操作を行うステップと、
結び目番号を生成し、前時系列結び目及び導入待ちトランザクションを決定して、導入結び目を作成するステップと、を含む、
ことを特徴とする請求項に記載のトランザクションシーケンスコンセンサス方法。
【請求項9】
N個の実行待ちノッターに適用される、結び目を持続的に作成してローカル到着ロープを延長するステップにおいて、N個のノッターのそれぞれが、唯一の番号を有し、持続的に1つのミューテックスを競争し、前記ミューテックスが、結び目番号を生成するための整数変数aと、最近の競争でミューテックスを得たノッターの番号を記録するための変数bとを所持しているステップは、
ノッターが競争でミューテックスを得た後、ミューテックスが所持している整数変数aに1を加算して現在の結び目番号を生成する前記ステップと、
ミューテックスの変数bを読み取って競争でミューテックスを得た直前のノッターの番号を取得するステップと、
変数bを自ノッターの番号に設定して、導入待ち結び目のトランザクションがあるか否かを判断するステップと、
導入待ち結び目のトランザクションがある場合、前記ローカル到着ロープにトランザクション結び目をノッティングするステップと、
導入待ち結び目のトランザクションがない場合、ミューテックスを直ちに解放して空の結び目をノッティングするステップと、を含み、
前記トランザクション結び目は、自ノッターの番号と、競争でミューテックスを得た直前のノッターの番号とを含み、前記空の結び目は、トランザクションが導入されていない作成済みの結び目である、
ことを特徴とする請求項に記載のトランザクションシーケンスコンセンサス方法。
【請求項10】
前記ローカル到着ロープのノッティングは、
ローカル到着ロープから現在の結び目を含むロープセグメントを取得するステップと、
前記現在の結び目が含まれているロープセグメントにおける結び目の総数に対する前記現在の結び目が含まれているロープセグメントにおけるトランザクション結び目の数の比率を統計するステップと、
前記比率が予め設定された閾値を超える場合、ローカル到着ロープのノッターを増加させるステップと、
前記比率が予め設定された閾値よりも低い場合、ローカル到着ロープのノッターを減少させるステップと、を含む、
ことを特徴とする請求項又はに記載のトランザクションシーケンスコンセンサス方法。
【請求項11】
異なるコンセンサスノード間のローカル到着ロープを同期する前に、
前記ローカル到着ロープに対してセグメント化処理を行って、到着ロープセグメントを取得するステップと、
予め設定された圧縮ルールに従って、前記到着ロープセグメントに対して圧縮処理を行うステップと、を含み、
前記圧縮処理において、前記到着ロープセグメントにおけるトランザクション結び目を保留し、前記到着ロープセグメントの非マーク用の空の結び目を削除する、
ことを特徴とする請求項に記載のトランザクションシーケンスコンセンサス方法。
【請求項12】
2つずつのトランザクションの復元時系列及び1グループのトランザクションの連続的な復元時系列情報を取得するステップは、
前記到着時系列情報のうち関連するトランザクション情報を取得するステップと、
前記到着時系列情報のうち関連するトランザクションから2つのトランザクションを選択するステップと、
前記2つのトランザクションの復元時系列を判断し、前記2つのトランザクションの復元時系列情報と、前記2つのトランザクションの復元時系列情報に対する信頼度とを出力するステップと、
前記到着時系列情報から1グループのトランザクションが連続する復元時系列を取得するまで繰り返すステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項13】
異なるコンセンサスノード間でローカル復元ロープを交換するステップは、
コンセンサスノード情報を取得し、到着ロープ、復元ロープ及びコンセンサスロープを取得して初期値とするステップと、
前記初期値に基づいて乱数を生成するステップと、
コンセンサスノード情報及び前記乱数に基づいて、復元時系列情報を交換するノード組合せを生成するステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項14】
予め設定されたコンセンサスルールに従って自ノードの復元時系列情報に対してコンセンサス処理を行って、コンセンサス時系列情報を取得し、コンセンサスロープを構築するステップは、
自ノード復元ロープにおけるコンセンサスが取られずかつ安定している復元ロープセグメントを取得するステップと、
他のN個のコンセンサスノードの対応するコンセンサスが取られずかつ安定している復元ロープセグメントを受信するステップと、
取得した到着時系列情報及び復元時系列情報に基づいてノンローカル復元ロープをチェックするステップと、
受信したコンセンサスが取られずかつ安定している復元ロープセグメントを、自ノードに対応するコンセンサスが取られかつ安定している復元ロープセグメントと比較し、異なるロープセグメントにおいて同じ部分が3分の2超である時系列関係を保留するステップと、
同じ時系列関係を取得するまで、コンセンサスが取られずかつ安定している複数の復元ロープセグメントと繰り返して比較して、コンセンサス時系列情報を取得し、コンセンサスロープを構築するステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【請求項15】
コンセンサス済みトランザクションに基づいて状態データを更新するステップは、
コンセンサス時系列情報に基づいてコンセンサスロープにおけるコンセンサス済みトランザクションを解析するステップと、
前記コンセンサス済みトランザクションに基づいて、トランザクション実行キューを作成するステップと、
前記コンセンサス済みトランザクションを前記トランザクション実行キューに書き込むステップと、
キュー処理ルールに従って、前記コンセンサス済みトランザクション実行キューにおけるトランザクションをエグゼキュータで処理するステップと、を含む、
ことを特徴とする請求項1に記載のトランザクションシーケンスコンセンサス方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術の分野に関し、特に、トランザクションシーケンスコンセンサス方法及びシステムに関するものである。
【背景技術】
【0002】
トランザクションシーケンスコンセンサスは、1グループのトランザクションを順位付けして、順位付けについて合意に達する(コンセンサスを取る)ことを言い、ブロックチェーン技術における核心的な内容である。また、トランザクションシーケンスコンセンサスは、ブロックチェーン技術における核心的な目的である。ブロックチェーンシステムの本質は、非中央集権化(decentration)のネットワーククロックであり、各ノードは、時間の解釈及び進行ルールについて統一的な理解があるが、時間進行権は、単一ノードによって独占されず、次の時間進行をどのノードが完了するかも予測できない。時間が進行するたびに、直前のタイムスタンプ及び受信されたがタイムスタンプトがバインディングされていない可能な1グループのランザクションに依拠して、新しいタイムスタンプが生成される。ノードは、タイムスタンプに対する依存関係及びトランザクションとタイムスタンプとのバインディング関係についてコンセンサスを取ることにより、トランザクションの因果順序を決定し、即ち、同一のタイムスタンプによってバインディングされたトランザクションは、併発(concurrent)し、直前のタイムスタンプによってバインディングされたトランザクションよりも遅いものであり、このように、全てのタイムスタンプのトランザクションを類推する。
【0003】
ブロックチェーンは、タイムスタンプの依存関係及びトランザクションとタイムスタンプとのバインディング関係を格納するデータ構造であり、ブロックチェーン技術におけるコンセンサス及び暗号学方法は、ブロックチェーンが、ある程度上不可逆かつ改ざん不可の増分バックアップを実現するようにする。
【0004】
現在、ブロックチェーン技術におけるトランザクションシーケンスコンセンサス方法には、一般に、「リーダー選出、ブロック生成、検証、チェーンへの格納」という4つのステップが含まれる。リーダー選出は、コンセンサスネットワークにおける各ノードが時間進行権を持つリーダーノードになるために競争や選出を行うことであり、ブロック生成は、リーダーノードが自分によって生成されたタイムスタンプと1グループの事前に選択しておいた当該タイムスタンプがバインディングされたトランザクションとをブロックにパッケージ化して他のノードに伝送することであり、検証及びチェーンへの格納は、コンセンサスノードが、リーダーノードによって生成されたブロックを検証し、検証に合格したブロックをブロックチェーンに書き込んで実行することである。リーダー選出及びブロック生成の本質は、リーダーノードを選出して1回の時間進行を完了することである。
【0005】
しかしながら、ノードは、トランザクションを受信する際に証明可能な計時手段がなく、トランザクションを差別せずにバッファに受け入れるため、トランザクションが当該ノードに到着した時系列情報を失い、ノードがシーケンスを行うときに時系列性の客観的根拠が不足して、手数料などの非時系列性の情報根拠を利用せざるを得なくなり、トランザクションに高額手数料でシーケンス優先権を取得するようにする。リーダーノードの時間進行権には、バインディング待ちトランザクションの選択、タイムスタンプの生成、因果の決定、ボーナスの取得などの特権が含まれ、リーダー選択過程において各ノード間の非理性的な競争が引き起こされて、大量のリソースを消費する可能性がある。トランザクションを選択してブロックにパッケージ化する際に、ノードに主観性があり、客観的なトランザクションの時系列証拠ではなく主観的な利益の最大化に依拠する場合が多く、ノードが客観的な証拠を取得することもできないことにより、トランザクションシーケンス結果が真実性を喪失し、実質的にはトランザクションの実際の時系列に対する改ざん行為である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願は、従来技術における、情報の損失によるトランザクションシーケンス能力の不足と、リーダーノードの競合による不公正な競争や浪費と、リーダーノードの主観的な操作によるトランザクションシーケンスの不公平性と、上記の問題から派生された問題と、を解決するためのトランザクションシーケンスコンセンサス方法及びシステムを提供する。
【課題を解決するための手段】
【0007】
記述の便宜上、トランザクションがコンセンサスネットワークに進入する実際の時系列を「真正時系列」とし、トランザクションがあるノードに到着する時系列をノードの「到着時系列」とし、トランザクションがコンセンサスネットワークに進入する時系列に対するノードの判断を「復元時系列」とし、トランザクションがネットワークに進入する時系列に対するノードのコンセンサスを「コンセンサス時系列」とする。
【0008】
本願では、1)情報の損失を回避するために、ノードに、自分の到着時系列及びトランザクションの由来情報を記録できる計時手段を提供し、2)ノードに、ノードが各ノードの到着時系列情報及びトランザクションの由来情報に基づいて、トランザクションがコンセンサスネットワークに進入する時系列情報を推理することにより、それぞれ復元時系列を付与する方法を提供し、3)ノードに、ノードが各復元時系列についてコンセンサスシーケンスを取る方法を提供し、4)コンセンサスで新しい計時手段を定義してシーケンスコンセンサスを補助し、情報を提供する際のノードの不正な行為を回避するために、コンセンサス効率の向上、コンセンサスコストの低下のために、新しいトランザクションシーケンスコンセンサス方法及びシステムを提供する。
【0009】
上記の目的を達成するために、本願の実施例は以下の技術的構成を採用する。
【0010】
第1態様に係るトランザクションシーケンスコンセンサス方法は、コンセンサス待ちトランザクションと、対応するトランザクション情報と、を取得するステップであって、前記トランザクション情報は、トランザクション番号、トランザクション入力モジュール情報、トランザクションエントリノード情報、トランザクション実行待ち情報及びコンセンサス待ちトランザクションを取得する経路情報を含むステップと、コンセンサス待ちトランザクションを取得する経路情報に基づいて、コンセンサス待ちトランザクションを、ローカルトランザクションとノンローカルトランザクションとに区分するステップと、コンセンサス待ちトランザクションを検証、解析、同期するステップと、コンセンサスノードにおけるローカルトランザクションの到着時系列情報を取得し、持続的にノッティングするローカル到着ロープにローカルトランザクションを導入するステップと、異なるコンセンサスノード間のローカル到着ロープを同期して、同期後の各ノードの到着時系列情報を取得するステップと、予め設定された復元ルールに従って、各ノードの到着時系列情報を分析して、自ノードにおける2つずつのトランザクションの復元時系列及び1グループのトランザクションの連続的な復元時系列情報を取得し、ローカル復元ロープを構築するステップと、異なるコンセンサスノード間のローカル復元ロープを交換、同期して、同期後の各ノードの復元時系列情報を取得するステップと、予め設定されたコンセンサスルールに従って自ノードの復元時系列情報に対してコンセンサス処理を行って、コンセンサス時系列情報を取得し、コンセンサス済みトランザクションを含むコンセンサスロープを構築するステップと、コンセンサスロープに対する解析に基づいて、コンセンサスロープにおけるコンセンサス済みトランザクションを取得するステップと、コンセンサス済みトランザクションに基づいて状態データを更新するステップと、を含む。
【0011】
第2態様に係るトランザクションシーケンスコンセンサスシステムは、コンセンサス待ちトランザクションを生成するためのトランザクション入力モジュールと、コンセンサス待ちトランザクションを分析処理して、コンセンサス待ちトランザクションのコンセンサス時系列を取得するためのコンセンサスネットワークと、状態データの状態変化を表示するための状態取得モジュールと、を含む。
【発明の効果】
【0012】
本願の実施例に係る技術的構成は、以下の有利な効果を奏することができる。
【0013】
本願では、コンセンサスノードがローカル到着ロープを構築してトランザクションが当該コンセンサスノードに到着する時系列を記録する方法により、コンセンサスネットワークが、トランザクションがコンセンサスノードに到着する時系列証拠情報を保留して情報の損失を回避し、それにより、コンセンサスノードがトランザクションの到着時系列に基づいて、トランザクションがネットワークに進入した時系列をそれぞれ復元することができ、コンセンサスノードのトランザクションシーケンス能力が強化される。
【0014】
本願のコンセンサス方法では、リーダーノードが設けられず、リーダーノードを競合する必要もなく、コンセンサスノードがトランザクションの順位付けを共同で行うため、リーダーノードを競合することによる非理性的な競争やリソースの浪費を回避することができる。
【0015】
本願では、コンセンサスノードが、トランザクションが各ノードに到着する時系列証拠に基づいて、予め設定された客観的な分析方法でトランザクションの順位付けを完了し、順位付け過程の客観性を保証し、トランザクションの順位付けがあるノードによって主観的に操作されることはなく、トランザクションの順位付けの根拠は、トランザクションの時系列と関係のない要因(取引手数料の安さなど)ではなく、順位付けの結果も基本的にトランザクションが実際に発生した時系列に近い。また、トランザクションイニシエータは、公平に記帳する待遇を取得し、記帳されることを求めて手数料を増やす必要がなく、開始されたトランザクションがネットワークに先に進入したため、長期間にわたって記帳されないか又は後に記帳されて、トランザクションの時効性や先発優勢を失う心配がなくなり、コンセンサスネットワークの使用に対する信頼が高まる。
【0016】
本願では、シングルストランドロープにおいて、ローカル到着ロープの1回のノッティング時間は、コンセンサスノードの1回のハッシュ計算時間とほぼ等しく、ローカル到着ロープの毎回のノッティングを時間の進行と見なすことができるため、ローカル到着ロープをトランザクション到着のタイマーとして使用することができ、このように設計すると、トランザクション到着の計時に非常に高い時間分解能を提供し、また、コンセンサスロープもトランザクションに全順列を提供できる。本願は、トランザクションの全順列を実現できるだけでなく、トランザクションがコンセンサスノードに到着する頻度の変化を精確に分析することもでき、さらに、トランザクションの到着時系列及びコンセンサス時系列に基づいてビッグデータ分析及び最適化処理を行うことができる。
【0017】
本願では、トランザクションのコンセンサスは、トランザクションの確認と同等であり、トランザクションのコンセンサスは、ビットコインスキームのように、ブロック生成間隔を周期としてバッチで完了される必要がなく、コンセンサスのスムーズな進行が実現され、トランザクションの確認遅延を大幅に短縮するため、人為的に1つの取引を確認することによって二重支払に攻撃されるセキュリティリスクを回避することができる。
【0018】
本願では、コンセンサスノードが持続的に到着ロープを構築し、このような設計で、コンセンサスノードが2つのトランザクションの到着時系列の記録を逆にしたい場合、同じ時間を費やして係るロープセグメントを再構築しなければならず、同時に、ロープセグメントを再構築する間に到着するトランザクションを処理する必要もあるため、コンセンサスノードが悪意を持ってトランザクションの時系列を改ざんする難度を極めて大きく増加させた。特に、マルチストランドロープ及びストランド変更ロープを用いる場合、トランザクションの到着時系列を偽造することがより困難になり、悪意を持ってコンセンサスロープ時間を改ざんする行為及びトランザクションの到着時系列を改ざんする行為は、コンセンサスノードの到着ロープ処理段階で認識されることにより、後続のコンセンサスロープの生成に影響を与えることができず、コンセンサスシステムの障害耐性(fault tolerance)が保証される。
【0019】
本願では、コンセンサスノードは、トランザクションがコンセンサスノードに到着する時系列を客観的に分析することにより、トランザクションがネットワークに進入した時系列を復元して、トランザクションがネットワークに進入した時系列に対するコンセンサスを取り、コンセンサスの時系列に従ってトランザクションを実行し、このような設計により、トランザクションの実行時系列が、トランザクションがコンセンサスネットワークに進入した実際の時系列に近くなる。
【0020】
本願は、非中央集権化の時間がネットワーク自身によって生成されるメカニズムを基にして創出され、ここで、時間の進行は、リーダーノードによって完了されず、トランザクションシーケンスは、基準系を頻繁に変換する必要がなくなり、時間進行権を独占するために生じるノードの中央化傾向を回避することができる。単一のノードの到着時系列は、最終のコンセンサス時系列ではないため、単一のノードの到着時系列がコンセンサス時系列に直接進入することを回避することができる。
【図面の簡単な説明】
【0021】
本願の実施例や従来技術における技術的構成をより明確に説明するために、以下のように、実施例や従来技術の説明に必要な図面について簡単に説明するが、以下の説明における図面は、本願の一部の実施例にすぎず、当業者であれば、創造的な労働なしでこれらの図面に基づいて他の添付図面を取得することもできることは勿論である。
図1】本願の実施例に係るトランザクションシーケンスコンセンサスシステムの概略構成図である。
図2】本願の実施例に係る別のトランザクションシーケンスコンセンサスシステムの概略構成図である。
図3】本願の実施例に係るコンセンサスノードの概略構成図である。
図4】本願の実施例に係るさらに別のトランザクションシーケンスコンセンサスシステムの概略構成図である。
図5】本願の実施例に係るトランザクション入力モジュールの概略構成図である。
図6】本願の実施例に係る状態取得モジュールの概略構成図である。
図7】本願の実施例に係るコンセンサスノード装置を含むトランザクションシーケンスコンセンサスシステムの概略構成図である。
図8】本願の実施例に係るトランザクション入力モジュールの方法のフローチャートである。
図9】本願の実施例に係るトランザクション入力モジュールがコンセンサス待ちトランザクションに対するエントリノードの割当を開始する方法の概略図である。
図10】本願の実施例に係るトランザクションシーケンスコンセンサス方法のフローチャートである。
図11】本願の実施例に係る別のトランザクションシーケンスコンセンサス方法のフローチャートである。
図12】本願の実施例に係るコンセンサス待ちトランザクションを検証・解析する方法のフローチャートである。
図13】本願の実施例に係るコンセンサスノードがローカルトランザクションを検証する方法の概略図である。
図14】本願の実施例に係る到着ロープの概略構成図である。
図15】本願の実施例に係る結び目を持続的に作成してローカル到着ロープを延長する方法の概略図である。
図16】本願の実施例に係る別の結び目を持続的に作成してローカル到着ロープを延長する方法の概略図である。
図17】本願の実施例に係るコンセンサスノードが予め設定の復元ルールに従ってトランザクションの到着時系列情報を処理して2つずつのトランザクションの復元時系列及び全てのトランザクションの復元時系列を出力する方法の概略図である。
図18】本願の実施例に係るコンセンサスノードがローカル復元ロープを構築して復元時系列情報を格納する方法の概略図である。
図19】本願の実施例に係るコンセンサスアプリケーションプログラムの概略構成図である。
【発明を実施するための形態】
【0022】
以下、当業者にとって本願の技術的構成をより易く理解するために、本願の実施例の図面を参照しながら、本願の実施例における技術的構成について明確かつ完全に説明するが、説明された実施例は、本願の一部の実施例にすぎず、全ての実施例ではない。本願の実施例に基づいて、当業者が創造的な労働なしで得た他の実施例も本願の保護範囲に属する。
【0023】
なお、本願の明細書、特許請求の範囲及び上記の図面における「第1」及び「第2」などの用語は、類似しているオブジェクトを区別するためのものであり、特定の順序や優先順位を説明するために使用されるものではない。このように使用されるデータは、適切な状況で交換されてもよいため、本明細書に記載の本願の実施例は、ここで図示や記載された順序以外の順序で実施されてもよいと理解することができる。また、用語「含む」や「有する」及びそれらのいかなる変形は、非排他的に含むことを意図する。
【0024】
トランザクションは、状態を変更する意志のキャリアであり、状態は、トランザクションが実行された現実的結果である。開始されるのはトランザクションであり、取得されるのは、状態である。状態は、新しいトランザクションを開始する根拠であり、トランザクションは、新しい状態を生成する動機(動因)である。実行されるトランザクションのみが状態を変更することができ、異なるトランザクションの実行順序により、異なる状態変化軌跡が生成される。1つの状態が変更されるチャンスは、一回性リソースである。1つの状態が生成された後、この状態が変更される絶好のチャンス(window of opportunity)があり、この状態が新しい状態に変更された後は、元の状態が変更される絶好のチャンスはなく、つまり、1つのトランザクションが元の状態から新しい状態に変更された後、別のトランザクションが元の状態に基づいて別の変更を行うことはない。
【0025】
意志は、必ずしも現実を変えることではなく、因果順序が決定されたトランザクションは、必ずしも実行されることではない。トランザクションが実行されるには、基となる状態が他のトランザクションによって変更されていないことと、トランザクションの所期実行結果が合理性を満足することとの2つの条件を満たす必要がある。2つのトランザクションが互いに矛盾する場合、トランザクションの因果順序を決定する必要があり、前位のトランザクションが実行され、後位のトランザクションは放棄され、2つのトランザクションに、基になる状態が予め設定されていない場合、後位のトランザクションは、未知の新しい状態を基にするため、予想される実行結果の合理性を失う可能性があって実行されず、何れかの主体は、自分の意志が放棄や抑制されることを望まないため、トランザクションは、因果順序を競争する需要があり、したがってトランザクションシーケンスメカニズムに要求を提出する。
【0026】
コンセンサスネットワークにおいて、データは、異なるノードにコピーが格納されており、各ノードは、トランザクションを受信して実行することによりデータコピーの状態を変更する。一致する同期の状態変化軌跡をデータコピーに持たせるために、ノードは、ランザクションの因果順序についてのコンセンサスを取る必要があり、コンセンサスが取られたトランザクションの因果順序に従ってトランザクションの実行順序を決定する。
【0027】
しかしながら、ネットワーク空間には、物理的空間における天文現象を基準系とすることがないので、物理的空間に対する依存を脱するために、ネットワーク内の活動によって形成された状態変化軌跡を基準系とするしかない。ネットワーク空間は、人工的に作ったものであり、ネットワーク内の活動も、主観的に制御することができるものであり、ネットワーク時間の解釈、進行、発行の権利が単一のノードによって独占されるか又は特定の優勢を形成することを回避するために、少数のノードによって操作されない時間メカニズムの確立を必要とする。
【0028】
従来技術には、次の問題も存在する。ブロック生成メカニズムは、1グループのトランザクションを同一の時刻にバインディングすることにより、このグループのトランザクションが同時に発生すると見なし、トランザクションの時系列の分解能を低下させ、トランザクションの実際の時系列と明らかに一致しない。ブロックが単一のノードからネットワーク全般にコピーされると、ブロックの同期が遅延され、システムは、ブロック生成の難易度を設定して、安定したブロック生成間隔を維持することにより、ブロックがネットワーク全般に同期されることを保証するために、十分な時間窓を確保し、これも、ネットワークコンセンサスの進行及びトランザクションの実行にスムーズ性が欠けていることになってしまい、このようなブロック生成間隔も攻撃者が悪を行うのに十分な時間窓を与えている。ブロックデータは、複数回のコンセンサス後こそ確率的に確認されるため、トランザクションの確認遅延が高いことになる。これは、ネットワーク状態データが長期間にわたって不確実性にあることを意味し、このよう不確実性は、主体の意思決定にリスクをもたらす。
【0029】
本願の関連用語に対する解釈は、次のとおりである。
【0030】
状態:記憶があるシステムにおいて、1つ又は1グループの主体に複数の参照項目を設定してトランザクションを記述し、これらの参照項目の値が一定であると、このトランザクションが「ある状態にある」と称し、これらの参照項目のうちのいずれか1つの値が変化したか又は参照項目の数が変化すると、このトランザクションに「状態変化」が発生したと称する。
【0031】
トランザクションの状態は、このトランザクションの直前の状態変化によって得られ、つまり、毎回の状態変化は、いずれも1つの「初期状態」から「最終状態」に変化する。Sを用いてこのような状態変化関係を表し、状態変化関係も、1種のトランザクションであるため、Sも、状態変化関係による状態を表すことができ、右上角の(n)は、状態の
【0032】
状態変化軌跡:トランザクションの状態が変化していると、このトランザクションもこの変化に伴って新しい状態変化関係を生成し、過去に生成された状態変化関係は、その生成の順序に従って順列を形成し、この順列をこのトランザクションの「状態変化軌跡」と
ける要素とで1対1のマッピング関係が確立し、自然数の大きさの順序は、状態変化軌跡における要素によって生成される順序と1対1に対応する。状態展開集合は、状態におけ
は、軌跡における全ての要素の展開集合内の要素の集合であり、
【0033】
時間基準系:現実的には、いずれかの主体であっても全てのトランザクションの全ての状態変化を完全に認識することができないため、主体が時間変化を感知する難易度及び主体が時間感覚を記述する難易度を低減するために、1つ又は1グループの主体は、1つ又は複数のトランザクションの状態変化軌跡を時間基準系とすると協定するしかない。時間
【0034】
時刻:時間基準系を1つの全体とする場合、時間基準系にも状態変化軌跡があると、時間基準系の状態変化軌跡における各項目が1つの時刻となる。時間遅延:2つの時刻によって定義される時間区間の時間長である。
【0035】
時系列:時間基準系の状態変化軌跡を利用して、イベントの発生時間又は予想される発生時間の順序をマークする。イベント0が時刻iと時刻mとの間で発生し、イベント1が時刻mと時刻nとの間で発生すること、及び時刻jが時刻mより早いことを知っていると、イベント0がイベント1よりも早く発生すると決定できる。
【0036】
タイムスタンプ:書きと交流の便宜上、採用される符号は、時間基準系の時刻と1対1に対応し、符号がタイムスタンプである。時間基準系の状態変化軌跡が延長し続けるため、タイムスタンプも対応する生成方式を有する必要がある。
【0037】
主体:状態取得能力及びトランザクション出力能力を持つ個体又は個体グループ全体である。1つの主体には、一般に、複数のトランザクション入力モジュール及び複数の状態取得モジュールが含まれ、かつ、取得したシステムデータを格納する1つのデータベースと、システムデータに対する処理結果を保存するための1つのバッファと、システム状態を分析理解してトランザクションの開始を決定するための1グループの決定モジュールと、を有する。Mは、主体を表し、Iは、トランザクション入力モジュールの集合を表し、Fは、状態取得モジュールの集合を表し、Σは、取得したシステム状態の集合を表し、Bは、バッファを表し、Dは、決定モジュールの集合を表す。
【0038】
コンセンサスノード:ノードと略称し、特別な主体であり、互いに直接的または間接的に接続されて1つのネットワークを形成し、ネットワーク内の1グループのトランザクションに対してシーケンスを行い、このグループのトランザクションの因果順序及び実行順序についてコンセンサスを取る。コンセンサスノードは、トランザクションを能動的に開始することもでき、他の主体からの委託を受けてネットワークにトランザクションを入力することもでき、他のノードから送信されたトランザクションを同期することもできる。
【0039】
コンセンサスネットワーク:ネットワークと略称する。1グループの数が可変であるコンセンサスノードによるネットワーク構築によって形成され、コンセンサスノードは、予め設定されたルールに従ってコンセンサスネットワークに加入したり、退出したりすることができる。トランザクション入力モジュールは、コンセンサスネットワークにコンセンサス待ちトランザクションを入力し、具体的には、トランザクション入力モジュールは、コンセンサスネットワークにおけるコンセンサスノードにコンセンサス待ちトランザクションを入力する。1つのコンセンサスネットワークを構成するコンセンサスノード同士は、必ずしも2つずつ直接的に接続されることではないが、2つのコンセンサスノードの間には必ず少なくとも1つの経路がある。Gでコンセンサスネットワークトポロジを表し、Vでコンセンサスネットワークのノードの集合を表し、Eでノード接続関係の集合を表す。
【0040】
トランザクションのネットワークへの進入:あるトランザクションがエントリノードによって計時され署名された後、エントリノードから他のノードに送信されることを、当該トランザクションがコンセンサスネットワークに進入されと見なす。本願に係る実施例では、トランザクションがエントリノードによってタイムスタンプが付けられたのちに、直ちに署名されて送信されると仮定するため、トランザクションのコンセンサスタイムスタンプは、トランザクションがネットワークに進入された時間を表す。
【0041】
トランザクション同期:なるべくネットワークにおける全てのノードがいずれもトランザクションを取得するように、トランザクションがノード間で転送される過程である。ノ
れる。
【0042】
トランザクションシーケンスコンセンサス:コンセンサスネットワークにおけるノードが、1グループのトランザクションの因果順序について一致する認識を達成することである。トランザクションの因果順序によって、トランザクションの実行順序が決定される一方、トランザクションの実行順序の違いによって、異なる状態変化軌跡が生成され、状態が一致する変化軌跡を有することを保証するために、コンセンサスネットワークは、トランザクションの実行順序についてコンセンサスを取る必要がある。
【0043】
コンセンサス待ちトランザクション:トランザクション番号、トランザクション入力モジュール標識、エントリノード標識、トランザクション入力モジュールの、システムが指定した状態データに対する変更請求の記述である。トランザクション入力モジュールは、ユーザクライアントであるってもよいし、他の装置であってもよい。システムは、暗号学手段によりトランザクション内容が改ざんされたか否かに対する検証可能性を実現する。ここで、トランザクションの実行待ち内容には、一般に、ユーザID、指定されたトランザクションエグゼキュータID、実行待ち状態の更新記述命令が含まれる。
【0044】
真正時系列:トランザクション入力モジュールがそれぞれコンセンサスネットワークにトランザクションを入力して、トランザクションがコンセンサスネットワークに進入した時系列を生成し、この時系列を「真正時系列」と称する。コンセンサスネットワークは、分散型であり、トランザクション入力モジュールによって入力されたトランザクションは、コンセンサスネットワークにおける異なるコンセンサスノードをエントリとしてコンセンサスネットワークに進入し、従来技術の条件下で全てのトランザクションがネットワークに進入する時系列を直ちに記録できるクロックはなく、コンセンサスノードもいずれかの外部のタイムスタンプをトランザクションの順位付けの根拠としない。したがって、真正時系列は、トランザクションがネットワークに進入したのちに、直ちにコンセンサスネットワークにおける全てのコンセンサスノードによって取得されることはない。
【0045】
到着時系列:コンセンサスネットワークにおける各コンセンサスノードは、トランザクションを取得し、他のコンセンサスノードにトランザクションを同期させることにより、客観的に、トランザクションが各コンセンサスノードに到着した時系列が生成され、この時系列を「到着時系列」と称する。各コンセンサスノードは、それぞれが構築したクロックで到着時系列を記録する。トランザクションが1つのコンセンサスノードに「到着」する方式には、トランザクションがコンセンサスノードをエントリコンセンサスノードとして、コンセンサスノードに到着すること、又はトランザクションがコンセンサスネットワークに進入した後同期メカニズムによりコンセンサスノードに伝播されることが含まれる。明らかに、各コンセンサスノードの記録した到着時系列が互いに異なる可能性があり、到着時系列が真正時系列と同等でもない。到着とは、一般に、初めて到着したことを
【0046】
復元時系列:コンセンサスノード同士は、それぞれの到着時系列記録を同期し、予め設定されたルールによって各到着時系列記録に含まれている一部の真正時系列情報を分析し、各一部の真正時系列情報を統合して、真正時系列に対する判断をそれぞれ復元する。コンセンサスノードが真正時系列に対する判断を復元することを、「復元時系列」と称し、
【0047】
コンセンサス時系列:コンセンサスネットワークが1グループのトランザクションの復元時系列に対する一致の認識である。コンセンサスノード同士は、それぞれの復元時系列を共有し、予め設定されたコンセンサス処理方法により、真正時系列に対する一致性判断を形成する。一般に、コンセンサス時系列は、一旦形成されると、逆行が不可であり、末端に新しいコンセンサストランザクションを追加して一方向に延長することのみが可能である。したがって、コンセンサスノードは、コンセンサス時系列の1回の一方向延長をコンセンサスネットワークの1回の時間進行とすることができ、即ち、コンセンサス時系列をコンセンサスネットワークの共通クロックとすることができ、コンセンサスノードは、コンセンサス時系列を利用して時間を記録することができる。コンセンサス時系列を
ーク及びユーザとやり取りを行い、特定のアプリケーションシナリオの需要の主体を満たす。
【0048】
ロープ:1グループの連続的に生成されるデータブロックを含むデータ構造であり、ここで、各データブロックは、直前のブロックが生成された直後に作成され、かつ、直前のブロックのデータ(一般には、直前のデータブロックのハッシュ値を当該ブロックに書き込む)に依存し、各データブロックには連続する番号がある。Φと記す。
【0049】
結び目:ロープにおける各データブロックを1つの結び目と称する。結び目の構造は、結び目番号と、前時系列結び目引用と、トランザクション引用と、検証項目と、検証ルール番号と、を含む。結び目番号は、一般に連続する自然数であり、同一の到着ロープにおいて後に生成された結び目の番号が前に生成された結び目の番号よりも大きい。前時系列結び目引用は、一般に、同一のローカル到着ロープにおいて自結び目にすぐ隣接する直前の結び目のデジタルダイジェスト値である。トランザクション引用は、一般に、コンセンサス待ちでありかつ検証済みのトランザクションのデジタルダイジェスト値であり、トランザクションが導入されたことを表すか、又は、ヌル値(null値)又は特定値であり、自結び目にトランザクションが導入されていないことを表す。検証項目について、到着ロープの再構築の難度を高めかつ改ざんされた結び目のチェックを容易にするために、0個又は複数個の検証項目が設定され、検証項目は、現在の結び目によって証明された一部の特徴状態値であることができる。検証ルール番号について、検証ルールの番号を設定し、各検証項目がどの検証ルールに従って検証されるかを指定することができる。プログラムの角度から、検証ルールは、検証コードの真偽を検証するプログラムセグメントであり、コンセンサスノードには1群の検証ルールが予め設定されており、各ルールに1つの番号を設定すると、結び目における検証ルール番号により、どのセグメントの検証ルールを実行するかを知ることができる。
【0050】
1つの結び目は、1つの構造体で表し、メモリに格納されてもよいし、JSON、XMLなどの形式でファイル、データベース、磁気ディスクに格納されてもよく、上記番号、前時系列結び目引用、トランザクション引用、検証項目などの内容を保存する予め設定されたフォーマットがあればよく、結び目のフォーマット及び格納位置は限定されない。結
【0051】
時間ロープ:時間及びイベントの計時(イベントと1つのタイムスタンプとを関連付ける行為)を定義するためのロープであり、ロープの状態変化軌跡を時間基準系とする。本願の実施例では、到着ロープ及びコンセンサスロープとの2つの時間ロープがある。時間ロープに含まれる情報の本質は、タイムスタンプ集合、トランザクション集合、タイムスタンプの順序関係集合、トランザクションとタイムスタンプとのバインディング関係集合から構成されるクワドルプルであり、ここで、1つのタイムスタンプは、0個または1個以上のトランザクションをバインディングすることができる。ブロックチェーンは、時間ロープの特例であり、ここで、1つのブロックは、実際には、タイムスタンプと、このタイムスタンプがバインディングされたトランザクションとの集合である。
【0052】
到着ロープ:到着情報を運ぶためのデータ及びデータ構造の実現可能な形態であり、コンセンサスノードによって構築され、ローカル時間を定義し、トランザクションの到着時系列を記録する時間ロープであり、コンセンサスノードがロープ方式で記録したトランザクションの到着時系列データである。ロープにトランザクションがコンセンサスノードに到着した時系列証拠が記録されているため、このロープを「到着ロープ」と称する。ここで、一般に、1つのコンセンサスノードは、1本の到着ロープのみを構築する。例えば、ノードn0によって構築された1本のローカル到着ロープは、
省略され、トランザクション結び目のみを列挙する。ローカル到着ロープ:自ノードによって構築された到着ロープには、トランザクションが自コンセンサスノードに到着した時系列データが記録される。
【0053】
以下、図面を参照しながら、本願についてさらに詳細に説明する。
【0054】
本願の一部の実施例では、メタバースにおいて、時間プロトコル及び価値転送プラットフォームとして適用されることができるトランザクションシーケンスコンセンサスシステムを提供する。
【0055】
図1及び図2に示すように、システムには、複数のトランザクション入力モジュール、1つのコンセンサスネットワーク、複数の状態取得モジュールが含まれている。
【0056】
トランザクション入力モジュールは、コンセンサス待ちトランザクションを生成するために用いられ、コンセンサスネットワークは、コンセンサス待ちトランザクションを分析処理して、コンセンサス待ちトランザクションのコンセンサス時系列を取得するために用いられ、状態取得モジュールは、状態データの状態変化を表示するために用いられる。
【0057】
図3に示すように、コンセンサスネットワークには、N個のコンセンサスノードが含まれており、コンセンサスノードは、トランザクション処理サブモジュールと、到着ロープ処理サブモジュールと、復元ロープ処理サブモジュールと、コンセンサスロープ処理サブモジュールと、状態処理サブモジュールと、時間処理サブモジュールと、を含む。
【0058】
トランザクション処理サブモジュールは、ローカルトランザクション及びノンローカルトランザクションを処理するために用いられ、トランザクション処理サブモジュールは、ローカルトランザクション処理ユニットと、ノンローカルトランザクション処理ユニットと、トランザクションマークユニットと、トランザクション格納ユニットと、を含み、ここで、ローカルトランザクション処理ユニットは、ローカルトランザクション取得サブユニットと、ローカルトランザクション検証サブユニットと、ローカルトランザクション解析サブユニットと、ローカルトランザクション同期サブユニットと、を含む。ノンローカルトランザクション処理ユニットは、ノンローカルトランザクション取得サブユニットと、ノンローカルトランザクション検証サブユニットと、ノンローカルトランザクション解析サブユニットと、ノンローカルトランザクション同期サブユニットと、を含む。
【0059】
到着ロープ処理サブモジュールは、ローカル到着ロープ及びノンローカル到着ロープのデータを処理するために用いられ、到着ロープ処理サブモジュールは、ローカル到着ロープ処理ユニットと、ノンローカル到着ロープ処理ユニットと、到着時系列情報格納ユニットと、到着時系列情報分析ユニットと、到着ロープ処理最適化ユニットと、を含み、ここで、ローカル到着ロープ処理ユニットは、ローカル到着ロープ初期化サブユニットと、ローカル到着ロープノッティングサブユニットと、ローカル到着ロープ同期サブユニットと、ローカル到着ロープ格納サブユニットと、を含む。ノンローカル到着ロープ処理ユニットは、ノンローカル到着ロープ取得サブユニットと、ノンローカル到着ロープスティッチングサブユニットと、ノンローカル到着ロープ検証サブユニットと、ノンローカル到着ロープ解析サブユニットと、ノンローカル到着ロープ同期サブユニットと、ノンローカル到着ロープ格納サブユニットと、を含む。到着時系列情報格納ユニットは、ローカル及びノンローカルの到着時系列情報を格納するために用いられる。到着時系列情報分析ユニットは、到着時系列情報を分析するために用いられる。到着ロープ処理最適化ユニットは、外部入力に応答して到着ロープの処理を最適化するために用いられる。
【0060】
復元ロープ処理サブモジュールは、ローカル復元ロープ及びノンローカル復元ロープのデータを処理するために用いられ、復元ロープ処理サブモジュールは、到着時系列情報取得ユニットと、ローカル復元ロープ生成ユニットと、復元ロープ同期ユニットと、ローカル復元時系列情報格納ユニットと、ノンローカル復元ロープ同期ユニットと、ノンローカル復元ロープ解析ユニットと、ノンローカル復元ロープ検証ユニットと、ノンローカル復元時系列情報格納ユニットと、復元ロープコンセンサス時系列生成ユニットと、を含む。
【0061】
コンセンサスロープ処理サブモジュールは、コンセンサスロープのデータを処理するために用いられ、コンセンサスロープ処理サブモジュールは、コンセンサスロープ初期化ユニットと、コンセンサスロープノッティングユニットと、コンセンサスロープトランザクション検証ユニットと、コンセンサスロープトランザクション解析ユニットと、コンセンサスロープトランザクション実行ユニットと、コンセンサスロープデータ分析ユニットと、コンセンサスロープ同期ユニットと、コンセンサスロープ検証ユニットと、コンセンサスロープ状態出力ユニットと、を含む。
【0062】
状態処理サブモジュールは、状態データを処理して、状態取得モジュールとデータのやり取りを行うために用いられ、状態処理サブモジュールは、状態データ初期化ユニットと、状態データ更新ユニットと、状態データ検証ユニットと、状態データサービスユニットと、状態データ格納ユニットと、状態データ同期ユニットと、を含む。状態データサービスユニットは、状態データ購読管理サブユニットと、状態データアクティブプッシュサブユニットと、状態データ請求応答サブユニットと、状態データ権限管理サブユニットと、を含む。状態データ格納ユニットは、状態データを格納するために用いられる。状態データ同期ユニットは、状態データを同期するために用いられる。
【0063】
時間処理サブモジュールは、ユーザがタイムスタンプを取得して、タイムスタンプを検証するために用いられる。時間処理サブモジュールは、時間定義ユニットと、時間解釈ユニットと、時間検証ユニットと、時間マークユニットと、時間取得ユニットと、時間同期ユニットと、を含む。タイムスタンプは、ある挙動が発生した時間をマークするために用いられ、本願において、タイムスタンプは、人々が通常使用している年/月/日/時/分/秒での時間表示ではなく、コンセンサスシステム以外の時間源によって提供される時間表示でもなく、コンセンサスシステム内のある増加数量を基に形成される時間表示である。
【0064】
図4に示すように、一実施形態では、システムは、複数のトランザクション入力モジュール、1つのコンセンサスネットワーク、及び複数の状態取得モジュールを含む。ここで、コンセンサスネットワークは、N個のコンセンサスノードを含み、コンセンサスノードは、トランザクション処理と、到着時系列情報と、復元時系列情報と、コンセンサス時系列情報と、状態データと、時間情報と、を含む。図2は、図4の詳細的な具現であり、本願は、図2の形態を含むだけでなく、他の図4を具現することができる他の方式も含む。トランザクション処理サブモジュール、到着ロープ処理サブモジュール、復元ロープ処理サブモジュール、コンセンサスロープ処理サブモジュール、状態処理サブモジュール及び時間処理サブモジュールを介して、コンセンサスノードを詳細的な形態で具現化し、本願は、図2の具現方法のみを含むことではない。
【0065】
図5に示すように、トランザクション入力モジュールは、トランザクション開始サブモジュールと、トランザクションエントリノード割当サブモジュールと、トランザクション送信サブモジュールと、を含む。ここで、トランザクション開始サブモジュールは、トランザクショントリガ情報を取得するために用いられ、主体の意志入力を取得してトランザクションの開始を完了し、トランザクションをトランザクションエントリノード割当サブモジュールに提出する。トランザクションエントリノード割当サブモジュールは、コンセンサスネットワークからコンセンサスノード情報を取得し、予め設定されたエントリノード割当ルール、コンセンサス待ちトランザクション及びコンセンサスノードに基づいて、コンセンサス待ちトランザクションのエントリノードを決定し、トランザクションをトランザクション送信サブモジュールに提出するために用いられる。トランザクション送信サブモジュールは、コンセンサス待ちトランザクションをエントリノードに伝達するために用いられる。
【0066】
図6に示すように、状態取得モジュールは、状態表示サブモジュールと、状態請求サブモジュールと、状態購読サブモジュールと、状態合成サブモジュールと、状態格納サブモジュールと、状態分析サブモジュールと、を含む。状態表示サブモジュールは、状態取得モジュールによって取得された現在または履歴の状態データを表示する。ここで、状態データをオフラインで利用し、データ要求回数を減らすために、状態表示モジュールは、毎回コンセンサスノードから状態データを取得する必要なく、取得した状態データを一時的に格納することができる。状態格納サブモジュールは、取得した状態データを格納するために用いられる。状態分析サブモジュールは、取得した状態データを分析して分析結果を出力するために用いられ、分析結果の出力は、一連の処理を経て主体の意志を形成して、トランザクション入力モジュールをトリガしてトランザクションを開始することができる。
【0067】
本願の一部の実施例は、第1部分のコンセンサスネットワークに適用されるコンセンサスノードを提供し、図7に示すように、ここで、図7のコンセンサスノードに対応する装置は次のとおりである。コンセンサスノード装置は、エントリノード装置と、到着時系列ノード装置と、復元時系列ノード装置と、コンセンサス時系列ノード装置と、状態ノード装置と、時間ノード装置と、を含み、エントリノード装置は、到着時系列ノード装置及び状態ノード装置とデータ接続され、到着時系列ノード装置は、復元時系列ノード装置とデータ接続され、復元時系列ノード装置は、コンセンサス時系列ノード装置とデータ接続され、コンセンサス時系列ノード装置は、状態ノード装置とデータ接続され、時間ノード装置は、エントリノード装置、到着時系列ノード装置、復元時系列ノード装置、コンセンサス時系列ノード装置及び状態ノード装置とデータ接続され、フルノード装置は、エントリノード、到着時系列ノード、復元時系列ノード、コンセンサス時系列ノード、状態ノード及び時間ノードの機能を有する。
【0068】
トランザクションを開始し、予め設定された割当ルールに従ってトランザクションにエントリノードを割り当ててエントリノードへトランザクションを入力させ、エントリノードは、トランザクションを取得して同期し、トランザクションに対して一連の処理を行い、トランザクションを到着時系列ノードに送信する。ここで、エントリノードは、トランザクションが持っているエントリノード情報に基づいてトランザクションを区分し、到着時系列ノードは、エントリノードのトランザクションを取得し、予め設定された到着ルールに従って、自ノードの到着時系列を記録し、自ノードの到着時系列を復元時系列ノードに送信し、復元時系列ノードは、到着時系列ノードの到着時系列を取得し、予め設定された復元ルールに従って、到着時系列を自ノードの復元時系列に処理して、復元時系列をコンセンサス時系列ノードに送信し、コンセンサス時系列ノードは、復元時系列ノードの復元時系列を取得して同期し、予め設定されたコンセンサスルールに従って、復元時系列をコンセンサス時系列に処理し、コンセンサス時系列を状態ノードに送信し、状態ノードは、コンセンサス時系列に従って、コンセンサス時系列に関するトランザクションを取得して実行し、状態データのコピーを更新し、時間ノードは、コンセンサス時系列を利用して時間データを定義して、時間データの入力、出力、処理を行い、状態取得モジュールは、状態ノードから状態データを取得する。
【0069】
第1態様との異なる点は、コンセンサスネットワークにおけるコンセンサスノードは、担当して処理するトランザクションシーケンスコンセンサス流れの手順の異なりによって、1つ又は複数のノードアイデンティティを有する。ノードアイデンティティは、以下のことを含む。
【0070】
エントリノードは、トランザクション入力モジュールからのトランザクションを受信して、客観的に「真正時系列」が生成される。エントリノードのトランザクション処理サブモジュールは、予め設定された割当ルールに従ってトランザクションを受信し、トランザクションを到着時系列ノード及び状態ノードに入力させる。エントリノード装置は、ローカルトランザクション処理モジュールを含むエントリノードを含み、ここで、ローカルトランザクション処理モジュールは、トランザクションを取得して同期し、トランザクションに対して一連の処理を行い、トランザクションを到着時系列ノードに送信し、ここで、ローカルトランザクション処理モジュールは、トランザクションが持っているエントリノード情報に基づいてトランザクションを区分する。
【0071】
到着時系列ノードのトランザクション処理サブモジュールは、エントリノードからのトランザクションを受信して、客観的に「到着時系列」が生成され、到着ロープ処理サブモジュールは、到着ロープを構築して到着時系列情報を記録し、到着ロープを復元時系列ノードに入力させる。到着時系列ノード装置は、ノンローカルトランザクション処理モジュール及びローカル到着ロープ処理モジュールを含む到着時系列ノードを含み、ここで、到着時系列ノードは、システムにおける到着時系列ノードであり、ここで、ノンローカルトランザクション処理モジュールは、エントリノードのトランザクションを取得し、ローカル到着ロープ処理モジュールは、予め設定された到着ルールに従って、自ノードの到着時系列を記録し、自ノードの到着時系列を復元時系列ノードに送信する。
【0072】
復元時系列ノードは、到着時系列ノードからの到着ロープを受信し、復元ロープ処理サブモジュールは、到着ロープを処理し、復元ロープを構築して復元時系列情報を記録し、復元ロープをコンセンサス時系列ノードに入力させる。復元時系列ノード装置は、ノンローカル到着ロープ処理モジュール及びローカル復元ロープ処理モジュールを含む復元時系列ノードを含み、ここで、復元時系列ノードは、システムにおける復元時系列ノードであり、ここで、ノンローカル到着ロープ処理モジュールは、到着時系列ノードの到着時系列を取得し、ローカル復元ロープ処理モジュールは、予め設定された復元ルールに従って到着時系列を自ノードの復元時系列に処理し、この復元時系列をコンセンサス時系列ノードに送信する。
【0073】
コンセンサス時系列ノードのコンセンサスロープ処理サブモジュールは、復元時系列ノードからの復元ロープを受信し、コンセンサス時系列ノード同士は、コンセンサス時系列を達成し、コンセンサスロープ処理サブモジュールは、コンセンサスロープを構築してコンセンサス時系列情報を保存し、コンセンサス時系列情報を状態ノード及び時間ノードに送信する。コンセンサス時系列ノード装置は、ノンローカル復元ロープ処理モジュール及びローカルコンセンサスロープ処理モジュールを含むコンセンサス時系列ノードを含み、ここで、コンセンサス時系列ノードは、システムにおけるコンセンサス時系列ノードであり、ここで、ノンローカル復元ロープ処理モジュールは、復元時系列ノードの復元時系列を取得して同期し、ローカルコンセンサスロープ処理モジュールは、予め設定されたコンセンサスルールに従って、復元時系列をコンセンサス時系列に処理し、このコンセンサス時系列を状態ノードに送信する。
【0074】
状態ノードの状態処理サブモジュールは、エントリノードからのトランザクション及びコンセンサス時系列ノードからのコンセンサス時系列を取得し、コンセンサス時系列に従ってトランザクションを実行して、状態データに対する変更を完了する。状態ノード装置は、ノンローカルトランザクション処理モジュール及び状態処理モジュールを含む状態ノードを含み、ここで、状態ノードは、システムにおける時間ノードであり、ここで、ノンローカルトランザクション処理モジュールは、コンセンサス時系列に従ってコンセンサス時系列に関するトランザクションを取得し、状態処理モジュールは、コンセンサス時系列に従ってコンセンサス時系列に関するトランザクションを実行し、状態データのコピーを更新する。
【0075】
時間ノードは、コンセンサス時系列ノードから時間ノードの時間処理サブモジュールにコンセンサス時系列ノードのコンセンサスロープ状態情報を入力させ、時間ノードは、コンセンサスロープ状態情報を時間情報に処理して、エントリノード、到着時系列ノード、復元時系列ノード、コンセンサス時系列ノード、状態ノード、及び時間ノードに時間情報を提供し、好ましくは、エントリノードは、時間情報を受信してトランザクションにタイムスタンプを追加し、到着時系列ノードは、時間情報を受信して到着ロープの現在の結び目にタイムスタンプを追加し、復元時系列ノードは、時間情報を受信して出力する復元ロープにタイムスタンプを追加し、コンセンサス時系列ノードは、コンセンサスロープの現在の結び目にタイムスタンプを追加し、状態ノードは、時間情報を受信して状態データにタイムスタンプを追加し、時間ノードは、時間情報を受信して自ノードの時間と比較する。時間ノード装置は、時間処理モジュールを含む時間ノードを含み、ここで、時間ノードは、システムにおける状態ノードであり、ここで、時間処理モジュールは、コンセンサス時系列を利用して時間データを定義して、時間データの入力、出力、処理を行う。
【0076】
フルノード装置は、少なくとも、トランザクション処理サブモジュールと、到着ロープ処理サブモジュールと、復元ロープ処理サブモジュールと、コンセンサスロープ処理サブモジュールと、状態処理サブモジュールと、時間処理サブモジュールと、を含む。極端の場合、コンセンサスネットワークにおけるノードは、全てがフルノードであるか、又は、全てがフルノードでない。フルノード装置は、コンセンサスノードであり、フルノードは、トランザクション処理サブモジュールと、到着ロープ処理サブモジュールと、復元ロープ処理サブモジュールと、コンセンサスロープ処理サブモジュールと、状態処理サブモジュールと、時間処理サブモジュールと、を含み、ここで、フルノードは、システムにおけるコンセンサスノードであり、ここで、トランザクション処理サブモジュールは、トランザクションを取得して同期し、トランザクションに対して一連の処理を行い、ここで、コンセンサスノードは、トランザクションが持っているエントリノード情報に基づいてトランザクションを区分し、到着ロープ処理サブモジュールは、自ノードの到着時系列を記録して、自ノードの到着時系列を同期し、到着ロープ処理サブモジュールは、他のノードの到着時系列を取得して同期し、復元ロープ処理サブモジュールは、自ノードの到着時系列及び他のノードの到着時系列を自ノード復元時系列に処理し、自ノード復元時系列を同期し、復元ロープ処理サブモジュールは、他のノード復元時系列を取得して同期し、コンセンサスロープ処理サブモジュールは、自ノード復元時系列及び他のノード復元時系列をコンセンサス時系列に処理し、状態処理サブモジュールは、コンセンサス時系列に従ってコンセンサス時系列に関するトランザクションを取得して同期し、状態データのコピーを更新し、時間処理サブモジュールは、コンセンサス時系列を利用して時間データを定義して、時間データの入力、出力、処理を行う。
【0077】
一実施形態では、トランザクションシーケンスコンセンサスシステムには、N個のトランザクション入力モジュールと、F個の状態取得モジュールと、1個のコンセンサスネットワークと、が含まれ、コンセンサスネットワークには、M個のエントリノードと、H個の到着時系列ノードと、K個の復元時系列ノードと、J個のコンセンサス時系列ノードと、L個の状態ノードと、T個の時間ノードと、が含まれる。1つのノードは、複数のアイデンティティ、さらには、フルノードアイデンティティを有する可能性があるため、コンセンサスネットワークにおけるノードの総数は、(M+H+K+J+L+T)以下であり、極端の場合は、コンセンサスネットワークの全部がフルノードであり、即ち、コンセンサスネットワークにおけるノードの総数がMであり、M=H=K=J=L=Tである。
【0078】
コンセンサスロープによってトランザクションの実行順序が決定されているため、各コンセンサスノードがそれぞれ実行するトランザクションは、実際に重複計算になり、また、コンセンサスノードの実行効率が異なるため、各コンセンサスロープの長さも厳密に同期することができなくなり、各コンセンサスノードの状態データがリアルタイムに一致しないことにもなる。そのため、トランザクションの実行及び状態データの処理を担当する専用のノードを設立してもよく、コンセンサスノードは、トランザクションのコンセンサスの完了を担当する。
【0079】
状態ノードは、コンセンサスノードから最新の実行されていないコンセンサスロープセグメント及び関連のトランザクションを取得して、トランザクションの実行、及び状態データの格納、更新、購読サービスなどの作業を完了する。状態ノードと複数のコンセンサスノードとの間に持続接続(persistent connection)を確立してもよいし、カスタム通信方式を使用してもよく、コンセンサスノードが実行ノードを監督してもよいし、実行ノード同士が互いに監督してもよい。
【0080】
複数のコンセンサスノードは、同一の状態ノードを共有することができるため、コンセンサスノードの計算及び格納圧力を軽減することができ、計算及び格納リソースの浪費も回避することができる。
【0081】
本願の一部の実施例では、トランザクションシーケンスコンセンサスシステムに適用されるトランザクションシーケンスコンセンサス方法を提供し、図8に示すように、まず、トランザクション入力モジュールにより以下のステップS0001~S0003を完了する。
ステップS0001では、トランザクショントリガ情報を取得する。主体の意志入力を取得して、トランザクションの開始を完了することにより、トランザクションをトランザクションエントリノード割当サブモジュールに提出することができる。
ステップS0002では、コンセンサスネットワークにおけるコンセンサスノード情報を取得する。
ステップS0003では、トランザクショントリガ情報及びコンセンサスノード情報に基づいて、コンセンサス待ちトランザクションのトランザクションエントリノード情報を決定する。
【0082】
図9に示すように、トランザクションエントリノード割当サブモジュールは、コンセンサスネットワークにおける、ノードアドレス、ポート及び通信プロトコルを含むコンセンサスノード情報を取得する。トランザクションエントリノード割当サブモジュールは、コンセンサスノードの機器の動作パラメータを取得する。トランザクションエントリノード割当サブモジュールは、トランザクション開始サブモジュールからトランザクションを取得する。トランザクションエントリノード割当サブモジュールは、予め設定されたエントリノード割当ルールに従って、ノード情報に基づいてトランザクションのエントリノードを決定する。例えば、方式1として、指定の原理に従って、トランザクションエントリノード割当サブモジュールは、ノード0をトランザクション1のエントリノードと指定し、方式2として、ポーリングの原理に従って、合計N個のノードがあると仮定し、トランザクションエントリノード割当サブモジュールは、第1のトランザクションに第1のノードを指定し、第2のトランザクションに第2のノードを指定し、第N+1のトランザクションに第1のノードを指定し、方式3として、ランダム原理のに従って、トランザクションエントリノード割当サブモジュールは、エントリノードをランダムに指定し、方式4として、近接の原理に従って、トランザクションエントリノード割当サブモジュールは、各ノードとの通信遅延情報を既に知っている前提下で、通信遅延がある閾値よりも小さいノードのうちの1つを選択してトランザクションのエントリノードとし、方式5として、負荷分散の原理に従って、トランザクションエントリノード割当サブモジュールは、各ノードとの動作負荷情報を既に知っている前提下で、動作負荷がある閾値よりも小さいノードのうちの1つを選択してトランザクションのエントリノードとする。
【0083】
次に、トランザクションシーケンスコンセンサス方法では、図10及び図11に示すように、ステップS1001~S1010を含む。
【0084】
ステップS1001では、コンセンサス待ちトランザクションと、対応するトランザクション情報と、を取得し、トランザクション情報は、トランザクション番号、トランザクション入力モジュール情報、トランザクションエントリノード情報、トランザクション実行待ち情報、及びコンセンサス待ちトランザクションを取得する経路情報を含む。トランザクションエントリノード情報は、予め設定された割当ルールによってコンセンサス待ちトランザクションにエントリノードを割り当て、ここで、予め設定された割当ルールには、指定、ポーリング、ランダム、近接及び負荷分散が含まれ、トランザクションエントリノードに基づいてコンセンサス待ちトランザクションを区分する。
【0085】
ステップS1002では、コンセンサス待ちトランザクションを取得する経路情報に基づいて、コンセンサス待ちトランザクションを、ローカルトランザクションとノンローカルトランザクションとに区分する。ここで、ローカルトランザクションは、あるコンセンサスノードにとって、自コンセンサスノードをエントリノードとしてネットワークに進入して、自コンセンサスノードによって取得されるトランザクションである。本願では、1つのトランザクションを指す場合もあり、1グループのトランザクションを指す場合もあり、文脈に応じて決定される。ノンローカルトランザクションは、あるコンセンサスノードにとって、他のコンセンサスノードをエントリノードとしてネットワークに進入して、自コンセンサスノードに同期されるトランザクションであり、本願では、1つのトランザクションを指す場合もあり、1グループのトランザクションを指す場合もあり、文脈に応じて決定される。ここで、コンセンサス待ちトランザクションを取得する経路情報は、トランザクション同期メッセージの経路リストを取得し、このトランザクション同期メッセージの経路リストの末尾に自ノードのIDを追加することによって取得される。
【0086】
ステップS1003では、コンセンサス待ちトランザクションを検証、解析、同期する。ここで、図12に示すように、コンセンサス待ちトランザクションの検証、解析方法は、予め設定された検証項目に基づいて、コンセンサス待ちトランザクションを検証して検証結果を取得するステップS2001と、検証結果が合格である場合、コンセンサス待ちトランザクションを検証済みのコンセンサス待ちトランザクションとしてマークするステップS2002と、予め設定された解析ルールに従って、検証済みのコンセンサス待ちトランザクションを解析して解析結果を取得するステップS2003と、検証済みのコンセンサス待ちトランザクションを解析済みのコンセンサス待ちトランザクションとしてマークするステップS2004と、を含む。
【0087】
ここで、ステップS2001において、図13に示すように、ローカルトランザクションの検証方法の概略図であり、例えば、以下に列挙した検証項目の一部又は全部を含むが、以下に列挙した検証項目に限定されることではない。
【0088】
(1)検証待ちトランザクションが重複されて受信されたか否かをチェックする。例えば、トランザクションIDを取得した後、既に取得したトランザクションにIDが含まれているか否かを検索し、含まれている場合、重複されて受信されたとし、検証に不合格とする。
(2)検証待ちトランザクション署名が正しいかどうかをチェックする。例えば、デジタル署名の検証方法に従って、検証待ちトランザクションのデジタル署名が秘密キーとマッチングしないことを発見した場合、この項目の検証に失敗したと判定する。
(3)検証待ちトランザクションの構造が予め設定された所定構造に合致するか否かをチェックする。例えば、予め設定されたルールにおいて、トランザクションをキー値ペア(key‐value pair)フォーマットで表現するように規定されており、検証待ちトランザクションがキー値ペアフォーマットで表現されていないか、又はキー名と規定とが対応していないか、又はキー値ペアの排列順序に合致しないと、この項目の検証に不合格と判定する。
(4)検証待ちトランザクションの構成内容が予め設定された所定構造に合致するか否かをチェックする。例えば、予め設定されたルールにおいて、トランザクションIDが20桁の小文字であると規定されているが、検証待ちトランザクションのトランザクションIDが19桁であると、この項目の検証に不合格と判定する。例えば、検証待ちトランザクションの実行待ち内容が空である場合、この項目の検証に不合格と判定する。全てが検証に合格した場合のみが、検証に合格と判定し、そうでなければ、検証に不合格と判定し、上記の検証項目を並行して検証することもできる。
【0089】
ローカルトランザクション検証サブユニットは、検証結果に基づいて処理を完了し、即ち、検証に合格すると、トランザクションマークユニットを呼び出してコンセンサス待ちトランザクションを「検証済み」とマークし、トランザクションをローカルトランザクション解析サブユニットに提出し、検証に不合格すると、例えば、トランザクションをトランザクション格納ユニットから削除するか、又はトランザクションマークユニットを呼び出してトランザクションを「検証失敗」とマークし、関連するトランザクション入力モジュールを「信頼不可」とマークするように、トランザクションを処理する。
【0090】
ステップS2002において、ローカル到着ロープの同期トリガ条件が満たされた場合、他のコンセンサスノードにローカル到着ロープのうち同期されていないロープセグメントを同期する方法である。方法の具体的なステップは、次のとおりである。ローカル到着ロープは、ローカル到着ロープの同期条件が現在トリガされたか否かを判断し、Yesであれば、次のステップを実行し、そうでなければローカル到着ロープの次のノッティングが完了した後当該ステップを実行し、ローカル到着ロープの同期メッセージを生成し、ローカル到着ロープの同期策略を取得し、同期策略に従って同期する。ローカル到着ロープの同期メッセージに書き込まれたのは、圧縮後のローカル到着ロープセグメントであり、同期されたローカル到着ロープセグメントを同期済みとマークする。ローカル到着ロープの同期メッセージには、少なくとも、メッセージを発行する際のコンセンサスロープにおける末尾結び目の時系列番号及びハッシュ値であるメッセージ発行タイムスタンプと、圧縮済みのものであってもよい同期待ちローカル到着ロープと、メッセージの発行者のコンセンサスノードの署名と、が含まれる。
【0091】
ノンローカルトランザクションを同期する方法は、ノンローカルトランザクション同期サブユニットが検証済みのノンローカルトランザクションを取得するステップと、ノンローカルトランザクションが検証されず、自コンセンサスノードによって他のノードに同期されるステップと、が含む。
【0092】
ステップS1004では、コンセンサスノードにおけるローカルトランザクションの到着時系列情報を取得し、持続的にノッティングするローカル到着ロープにローカルトランザクションを導入する。ステップS1005を実行中、異なるコンセンサスノード間のローカル到着ロープを同期する前に、ローカル到着ロープに対してセグメント化処理を行って、到着ロープセグメントを取得するステップと、予め設定された圧縮ルールに従って、到着ロープセグメントに対して圧縮処理を行うステップと、を含み、圧縮処理において、到着ロープセグメントにおけるトランザクション結び目を保留し、到着ロープセグメントの非マーク用の空の結び目を削除する。
【0093】
以下、到着ロープの目的及び作用について具体的に紹介する。1つのコンセンサスノードが、受信したトランザクションを現在の結び目にできるだけ速く導入することができると、現在の結び目によって生成された時間は当該トランザクションがコンセンサスノードによって受信された時間に近似する。一般に、ノッティング頻度が高いほど、時間の近似誤差が小さくなる。そのため、当該コンセンサスノードによって結び目に先に入れ込まれたトランザクションは、当該コンセンサスノードに先に到着したか、又は当該コンセンサスノードによって先に受け入れられたと見なすことができる。したがって、ロープには、トランザクションが当該コンセンサスノードに到着した相対的な時系列の証拠情報が含まれている。ロープに、トランザクションがコンセンサスノードに到着した時系列証拠が記録されているため、このロープを「到着ロープ」と称する。到着ロープには、ビットコインスキームの取引バッファに比べ、少なくともトランザクションが到着したコンセンサスノード、トランザクションがコンセンサスノードに到着した時間、トランザクション入力モジュールの3つの情報次元が増加されており、情報表現能力を極めて大きく拡張した。到着ロープは、トランザクションがコンセンサスノードに到着した前後順序を反映するだけでなく、トランザクションがコンセンサスノードに到着した頻度変化をある程度反映することもでき、さらに、現在のネットワークの混雑状況を反映することもでき、異なるコンセンサスノードの相対的なノッティング頻度を近似的に反映することもでき、ローカルトランザクションがこの前に到着したノンローカルトランザクションよりも遅くネットワークに進入されたことも反映することができる。安全性の観点から、ロープの各結び目は、いずれも前のものに依存しているため、2つのトランザクションの順序を逆にしたい場合は、時間を費やして関連するロープセグメントを新たに構築しなければならず、構築中において、継続的に新たに受信したトランザクションをロープに導入する必要もあり、そうでなければ、導入待ちトランザクションが複数溜まって、トランザクションを連続的に導入しなければならず、このような偽造行為は、ロープにおいて痕跡を残してしまい、かつ、他のノードによって発見されやすい。しかしながら、単一のノードのトランザクションの到着時系列に対する偽造は、トランザクションがネットワークに進入した時系列に対するネットワーク全体の最終的なコンセンサスに影響を与えにくい。従って、ノードが到着ロープを偽造することは無用である。到着ロープを時系列データ流と見なすことができ、異なる階段の到着ロープを選択し、統計や確率知識を利用して、トランザクションの到着頻度の変化状況を分析できる。
【0094】
ローカル到着ロープの初期化方法の具体的なステップは、次のとおりである。方法の目的は、ローカル到着ロープの初期結び目を決定することであり、コンセンサスノードは、同一のデジタルアイデンティティを用いてコンセンサスネットワークに複数回加入したり、退出したりし、コンセンサスネットワークから退出するたびに、ローカル到着ロープがノッティングを停止することによって途切れが発生するため、コンセンサスネットワークに加入するたびに、間もなく新しいローカル到着ロープを初期化するとコンセンサスネットワークに告知して、今回の初期結び目を決定する必要がある。プロセスには、以下の内容が含まれる。N個のコンセンサスノードがあるコンセンサスネットワークにおいて、1号のコンセンサスノードがコンセンサスネットワークに加入した後、コンセンサスネットワークの各コンセンサスノードに特定タイプの「ローカル到着ロープの初期化トランザクション」を発行し、トランザクションには、少なくとも、自コンセンサスノード署名、及び自コンセンサスノードが前回コンセンサスネットワークに加入して生成したローカルコンセンサスロープの末尾結び目を含み、ネットワークに初めて加入すると合、初めて加入したことを明記し、末尾結び目が空または特定値であり、コンセンサスネットワークがトランザクションについてコンセンサスを取り、コンセンサスノードは、トランザクションをコンセンサスロープに書き込んで、予め設定された方法に従ってトランザクションを実行し、実行結果は、トランザクションデータ及びトランザクションが存在するコンセンサスロープのデータに基づいて、1グループのコンセンサスノードを選択する選択策略を生成することである。
【0095】
コンセンサスノードは、自コンセンサスノードが他のコンセンサスノードにローカル到着ロープのデータを送信したことがあるか否かを他のコンセンサスノードに照会し、大多数又は全てのコンセンサスノードが到着ロープのデータを受信したことがないと返信すると、ローカルコンセンサスノードはゼロからローカル到着ロープを生成する必要があることを説明し、残りのコンセンサスノードを不審なノードとマークする。大多数又は全てのノードが到着ロープのデータの最新ロープセグメントを返信し、かつ、ロープセグメント内の最新の結び目が同じであると、ローカル到着ロープがローカル到着ロープを生成したことがあることを説明し、前のローカル到着ロープに引き続いて生成する必要があり、最新の結び目を、今回の到着ロープを生成する初期結び目とし、残りのコンセンサスノードを不審なノードとマークする。
【0096】
ステップS1005では、異なるコンセンサスノード間のローカル到着ロープを同期して、同期後の各ノードの到着時系列情報を取得する。上記のステップS1004及びステップS1005には、コンセンサスノードのローカル到着ロープを初期化するステップと、結び目番号、導入結び目データ及び検証項目を含む結び目を持続的に作成してローカル到着ロープを延長するステップと、コンセンサスノードがローカルトランザクションを受信すると、ローカルトランザクションをローカル到着ロープの現在の結び目に導入するステップと、予め設定されたローカル到着ロープの同期トリガ条件を満たすと、ローカル到着ロープにおける同期されていない部分を自ノード以外のコンセンサスノードに同期するステップと、予め設定された到着ルールに従ってノンローカル到着ロープを受信、検証、同期するステップと、ローカル到着ロープ及びノンローカル到着ロープを解析して、同期後の各ノードの到着時系列情報を取得するステップと、が含まれる。
【0097】
ここで、ローカル到着ロープを持続的にノッティングして延長し、自ノードに到着したローカルトランザクション又はノンローカルトランザクションを直ちに現在の結び目に引用する方法である。方法の具体的なステップは、次のとおりである。ローカル到着ロープ同期モジュールは、ローカル到着ロープの初期結び目が引用しようとするデータを確認した後、ローカル到着ロープノッティングモジュールがローカル到着ロープの初期結び目をノッティングして、初期結び目の番号を0と設定し、この時、初期結び目は、ローカル到着ロープの末尾結び目でもある。ローカル到着ロープノッティングモジュールは、直ちにローカル到着ロープの末尾結び目を取得し、末尾結び目データのデジタルダイジェストを直ちに計算する。ローカル到着ロープノッティングモジュールは、ローカル到着ロープに導入されていないコンセンサス待ちトランザクションがあるか否かをチェックし、ある場合、そのうちの1つのトランザクションをロックして、トランザクションのデジタルダイジェストを取得し、現在の結び目がトランザクション結び目であると決定し、導入されていないコンセンサス待ちトランザクションがない場合、現在の結び目が空の結び目であると決定し、現在の結び目を作成し、現在の結び目の番号は末尾結び目の番号に1を加算し、末尾結び目を現在の結び目の内容の1つとし、現在の結び目がトランザクション結び目である場合、トランザクションのデジタルダイジェストを現在の結び目の内容の1つとし、現在の結び目が空の結び目である場合、デフォルト値を現在の結び目の内容とする。初期ノードから自ノードまでのトランザクション結び目の数を統計して現在の結び目の内容の1つとする。現在の結び目の直前のトランザクション結び目の番号を取得して、現在内容の1つとする。2つの選択可能な手段で、到着ロープの再構築の難度を高めるための、到着ロープのデータを検証する方法を追加することはできるが、到着ロープのデータ量も増加されてしまう。作成された現在の結び目をローカル到着ロープのデータに格納する。コンセンサスノードが予め設定された理由によってローカル到着ロープのノッティングを停止するまで、次回のノッティングプロセスをトリガする。
【0098】
図14に示すように、到着ロープの構造は、1グループの連続する前のものに依存するデータブロックから構成され、前のものに依存するデータブロックとは、一般に、N+1番目のデータブロックの作成が、N番目のデータブロックのデータを入力とすることに依存することを言う。前のものへの依存関係のあるデータブロックは、直列に作成されるため、データブロックの作成を利用して、一定期間の時間の経過を固定することができ、各データブロックの作成は時間の進行を意味する。
【0099】
結び目の概略構造図であり、結び目の構造には、一般に連続する自然数であり、かつ、同一の到着ロープにおける後に生成された結び目の番号が前に生成された結び目の番号よりも大きい結び目番号と、一般に、同一のローカル到着ロープにおける自結び目に隣接する直前の結び目のデジタルダイジェスト値である前時系列結び目引用と、一般に、コンセンサス待ちでありかつ検証済みのトランザクションのデジタルダイジェスト値であり、トランザクションが導入されたことを表すか、又は、ヌル(null値)又は特定値でありかつ自結び目にトランザクションが導入されていないことを表すトランザクション引用と、到着ロープの再構築の難度を高めかつ改ざんされた結び目のチェックを容易にするために、ゼロ又は複数設定されてもよく、現在の結び目によって証明された一部の特徴状態値であってもよい検証項目と、が含まれ、実施形態では、現在の結び目まで存在するローカル到着ロープに導入されたトランザクションの総数と、現在の結び目の直前のトランザクションが導入された結び目の番号と、現在の結び目から一定数前の結び目に導入されたトランザクションの総数と、現在の結び目に導入されたトランザクションのエントリコンセンサスノードのIDと、現在の結び目から前にN個目の特徴を満たす結び目のデジタルダイジェスト値と、他の予め設定された特徴値とである。検証ルール番号は、異なる結び目内の検証項目を柔軟に増減、変更するために、ルールを検証する番号を設定してもよく、各検証項目がどの検証ルールに従って検証するかを指定できる。プログラムの角度から見ると、検証コードの真偽を検証するプログラムセグメントであり、コンセンサスノードには検証ルールセットが予め設定されており、各ルールに1つの番号を設定すると、結び目における検証ルール番号により、どのセグメントの検証ルールを実行するかを知ることができる。
【0100】
一実施形態では、図15に示すように、N個の実行待ちノッター及びスケジューラに適用される結び目を持続的に作成してローカル到着ロープを延長するステップは、空っているノッターを非同期的に順次呼び出して、ノッティング操作を行うステップと、結び目番号を生成し、前時系列結び目及び導入待ちトランザクションを決定して、導入結び目を作成するステップと、を含む。
【0101】
図16に示すように、別の実施形態では、N個の実行待ちノッターに適用される結び目を持続的に作成してローカル到着ロープを延長するステップであって、N個のノッターのそれぞれが、唯一の番号を有し、持続的に1つのミューテックスを競争し、ミューテックスが、結び目番号を生成するための整数変数aと、最近の競争でミューテックスを得たノッターの番号を記録するための変数bとを所持しているステップは、ノッターが競争でミューテックスを得た後、ミューテックスが所持している整数変数aに1を加算して現在の結び目番号を生成するステップと、ミューテックスの変数bを読み取って競争でミューテックスを得た直前のノッターの番号を取得するステップと、変数bを自ノッターの番号に設定して、導入待ち結び目のトランザクションがあるか否かを判断するステップと、導入待ち結び目のトランザクションがある場合、ローカル到着ロープにトランザクション結び目をノッティングするステップと、導入待ち結び目のトランザクションがない場合、ミューテックスを直ちに解放して空の結び目をノッティングするステップと、を含み、ここで、トランザクション結び目は、自ノッターの番号と、競争でミューテックスを得た直前のノッターの番号と、を含み、空の結び目は、トランザクションが導入されていない作成済みの結び目である。
【0102】
上記の2つの実施形態では、ローカル到着ロープのノッティングは、ローカル到着ロープから現在の結び目を含むロープセグメントを取得するステップと、現在の結び目が含まれているロープセグメントにおける結び目の総数に対する現在の結び目が含まれているロープセグメントにおけるトランザクション結び目の数の比率を統計するステップと、比率が予め設定された閾値を超える場合、ローカル到着ロープのノッターを増加させるステップと、比率が予め設定された閾値よりも低い場合、ローカル到着ロープのノッターを減少させるステップと、を含む。
【0103】
ステップS1006では、予め設定された復元ルールに従って各ノードの到着時系列情報を分析して、自ノードにおける2つずつのトランザクションの復元時系列及び1グループのトランザクションの連続的な復元時系列情報を取得し、ローカル復元ロープを構築する。ここで、2つずつのトランザクションの復元時系列及び1グループのトランザクションの連続的な復元時系列情報を取得するステップは、到着時系列情報のうち関連するトランザクション情報を取得するステップと、到着時系列情報のうち関連するトランザクションから2つのトランザクションを選択するステップと、2つのトランザクションの復元時系列を判断し、2つのトランザクションの復元時系列情報と、2つのトランザクションの復元時系列情報に対する信頼度とを出力するステップと、到着時系列情報から1グループのトランザクションが連続する復元時系列を取得するまで繰り返すステップと、を含む。異なるコンセンサスノード間でローカル復元ロープを交換するステップは、コンセンサスノード情報を取得し、到着ロープ、復元ロープ及びコンセンサスロープを取得して初期値とするステップと、初期値に基づいて乱数(random number)を生成するステップと、コンセンサスノード情報及び乱数に基づいて、復元時系列情報を交換するノード組合せを生成するステップと、を含む。
【0104】
一実施形態では、さらに、コンセンサスノードが復元ロープのデータと2つずつのトランザクションの復元時系列とを並行して処理する方法を提出する。この方法は、具体的には、N個のコンセンサス待ちトランザクションについて、M=N*(N-1)/2対のトランザクション、すなわちM個の時系列分析タスクを生成するステップと、マルチコアリソースを利用して、M個の時系列分析タスクを並行して処理し、各コアがそれぞれ1つのタスクを処理してもよいし、複数のコアを呼び出して、M個のタスクを共同で処理してもよいステップと、1対のトランザクションの時系列分析結果を得るたびに、直ちに復元ロープに書き込むステップと、を含む。
【0105】
ステップS1007では、異なるコンセンサスノード間でのローカル復元ロープを交換、同期して、同期後の各ノードの復元時系列情報を取得する。
【0106】
ステップS1008、予め設定されたコンセンサスルールに従って自ノードの復元時系列情報に対してコンセンサス処理を行って、コンセンサス時系列情報を取得し、コンセンサス済みトランザクションを含むコンセンサスロープを構築する。ステップS1007及びステップS1008のステップにおいて、予め設定されたコンセンサスルールに従って自ノードの復元時系列情報に対してコンセンサス処理を行って、コンセンサス時系列情報を取得し、コンセンサスロープを構築するステップは、自ノード復元ロープにおけるコンセンサスが取られずかつ安定している復元ロープセグメントを取得するステップと、他のN個のコンセンサスノードの対応するコンセンサスが取られずかつ安定している復元ロープセグメントを受信するステップと、取得した到着時系列情報及び復元時系列情報に基づいてノンローカル復元ロープをチェックするステップと、受信したコンセンサスが取られずかつ安定している復元ロープセグメントを自ノードに対応するコンセンサスが取られかつ安定している復元ロープセグメントと比較し、異なるロープセグメントにおいて同じ部分が3分の2超である時系列関係を保留するステップと、同じ時系列関係を取得するまで、コンセンサスが取られずかつ安定している複数の復元ロープセグメントと繰り返して比較して、コンセンサス時系列情報を取得し、コンセンサスロープを構築するステップと、を含む。
【0107】
ステップS1009では、コンセンサスロープに対する解析に基づいて、コンセンサスロープにおけるコンセンサス済みトランザクションを取得する。
【0108】
ステップS1010では、コンセンサス済みトランザクションに基づいて状態データを更新する。コンセンサス済みトランザクション基づいて状態データを更新するステップは、コンセンサス時系列情報に基づいてコンセンサスロープにおけるコンセンサス済みトランザクションを解析するこステップと、コンセンサス済みトランザクションに基づいて、トランザクション実行キューを作成するステップと、コンセンサス済みトランザクションをトランザクション実行キューに書き込むステップと、キュー処理ルールに従って、コンセンサス済みトランザクション実行キューにおけるトランザクションをエグゼキュータで処理するステップと、を含む。
【0109】
ローカルコンセンサスロープにおけるトランザクションを解析して、トランザクション実行キューを作成し、実行可能なトランザクションをトランザクション実行キューに書き込む方法である。この方法は、具体的には、コンセンサスロープトランザクション解析モジュールがコンセンサスロープにおける解析されて実行されていないロープセグメント内の最初の結び目を取得し、コンセンサス結び目におけるトランザクション引用に基づいて対応するトランザクションを検索し、トランザクションをpushして実行キューに進入させ、全てのロープにおけるトランザクション実行タスクがいずれもpushされて実行キューに進入されるまで当該ステップを重複して実行するステップと、コンセンサスロープトランザクション実行モジュールが先入れ先出しの順序に従って、実行キューの先頭にあるトランザクションTを取得するステップと、コンセンサスロープトランザクション実行モジュールが、トランザクションTの実行待ち内容を取得し、実行待ち内容によって指定されたエグゼキュータIDに基づいてトランザクションTを実行するためのエグゼキュータEを取得するステップと、を含む。ここで、エグゼキュータEは、本質的には、トランザクションを実行可能なプログラムセグメントであり、1つのエグゼキュータであってもよいし、複数のエグゼキュータが一定の構造によって構成されたエグゼキュータ組合せであってもよい。トランザクションTの実行待ち内容をエグゼキュータEにロードし、エグゼキュータEは、予め設定された実行ルールに従って、実行待ち内容を実行して、状態データを変更するかまたは状態データを変更しない。ここで、トランザクションTの実行待ち内容が予め設定された実行条件に適合しないと、エグゼキュータEは、実際的にトランザクションTの実行を拒否し、つまり、トランザクションには、トランザクション開始側の状態データに対する変更請求が所持されているが、請求が応答されるか及びどのように応答されるかは、トランザクションに対応するエグゼキュータが判断して実行する必要がある。エグゼキュータEが実行を完了した後、トランザクションTを「実行済み」とマークし、コンセンサスロープトランザクション実行モジュールは、実行済みのトランザクションを実行キューから移出する。
【0110】
エグゼキュータがトランザクション実行キュー中のトランザクションを処理するステップは、エグゼキュータがコンセンサス済みトランザクションの実行待ち内容を取得するステップと、実行待ち内容をチェックするステップと、実行待ち内容を実行可能な命令に変換するステップと、対応するトランザクションが実行可能な命令の実行条件を満たすと、実行可能な命令に従って状態データを変更するステップと、を含む。
【0111】
ステップS1010で状態データを更新した後、トランザクションシーケンスコンセンサス方法は、さらに、コンセンサスノードがコンセンサスロープの状態変化軌跡に基づいてコンセンサス時間を取得するステップを含む。コンセンサス時間の現在時間には、現在時刻値と、現在時刻値の検証値とが含まれ、現在時刻値は、コンセンサス時系列のうち、現在コンセンサス済みトランザクションの数であり、コンセンサス時間の現在時間を取得してタイムスタンプとする。
【0112】
本実施例に係るトランザクションシーケンスコンセンサス方法をトランザクションシーケンスコンセンサスシステムに適用する具体的なプロセスは、次の通りである。トランザクション入力モジュールがそれぞれコンセンサスネットワークにトランザクションを入力して、客観的に「真正時系列」を生成する。
【0113】
(トランザクション処理モジュールプロセス)
コンセンサスノードがトランザクションを受信して同期し、客観的に「到着時系列」を生成する。ここで、コンセンサスノードのトランザクション処理サブモジュールが、ローカルトランザクション及びノンローカルトランザクションを受信し、ローカルトランザクション及びノンローカルトランザクションを検証、解析、格納、同期する。
【0114】
(到着ロープ処理モジュールプロセス)
コンセンサスノードは、それぞれ互いに理解できる方式で到着時系列情報を記録する。ここで、コンセンサスノードの到着ロープ処理サブモジュールが、ローカル到着ロープを初期化した後、ローカル到着ロープを持続的にノッティングして延長し、自ノードに到着したローカルトランザクション又はノンローカルトランザクションを直ちに現在の結び目に引用することにより、ローカル到着時系列の証拠を形成し、予め設定されたローカル到着ロープの同期トリガ条件を満たすと、ローカル到着ロープにおける同期されていない部分を他のコンセンサスノードに同期し、ノンローカル到着ロープを受信、検証、格納、同期し、ノンローカル到着ロープを解析してノンローカル到着時系列を取得する。ここで、予め設定されたローカル到着ロープ同期トリガ条件には、一般に、現在の結び目に導入されたのが、ローカルトランザクションであること、同期されていないロープセグメントのトランザクション結び目又は空の結び目の数が一定値に達すること、現在の結び目のハッシュ値が一定の特徴に適合すること等が含まれ、ここで、ローカル及びノンローカル到着ロープからトランザクション到着時系列を取得する方法は、
【0115】
(復元ロープ処理モジュールプロセス)
コンセンサスノード同士が、各ノードによって記録された到着時系列情報を受信、同期し、各到着時系列の記録に含まれている一部の真正時系列情報を予め設定されたルールで分析して、各一部の真正時系列情報を統合することにより、それぞれ「復元時系列」を復元する。ここで、コンセンサスノードの復元ロープ処理サブモジュールは、予め設定されたルールに従って、既に取得したローカル及びノンローカル到着ロープからトランザクション到着時系列情報を取得し、予め設定された復元ルールに従ってトランザクション到着時系列情報を処理して、2つずつのトランザクションの復元時系列及び全てのトランザクションの復元時系列を出力しながら、ローカル復元ロープを構築して復元時系列情報を格納する。好ましくは、処理効率を向上するために、コンセンサスノードの復元ロープ処理サブモジュールは、復元ロープのデータを並行して処理する。好ましくは、格納負担を軽減するために、コンセンサスノードは、復元ロープにおける冗長な時系列データをタイムリーに削除する。
【0116】
(コンセンサスロープ処理モジュールプロセス)
各コンセンサスノード同士は、各ノードの復元時系列情報を受信、同期し、予め設定された処理方法で復元時系列情報を処理し、コンセンサス時系列を形成する。ここで、コンセンサスノードのコンセンサスロープ処理サブモジュールは、復元時系列情報を複数回交換し、ローカル及びノンローカル復元ロープに対してコンセンサス処理を行って、コンセンサス時系列を形成する。コンセンサスロープ処理サブモジュールは、ローカルコンセンサスロープ格納コンセンサス時系列情報を構築する。好ましくは、コンセンサスノードが、復元時系列情報を交換するノード組合せを主観的に選択することを回避するために、コンセンサスロープ処理サブモジュールは、復元時系列情報を交換するノード組合せをランダムに生成する。好ましくは、コンセンサスロープ処理サブモジュールは、コンセンサスロープのデータを検証して、コンセンサスロープが改ざんされず、他のコンセンサスノードのコンセンサスロープとの状態同期をできるだけ維持することを保証する。
【0117】
(状態処理モジュールプロセス)
コンセンサスノードが、コンセンサス時系列に従ってトランザクションを実行することにより、各状態データのコピーによって一致する状態変化軌跡を生成する。ここで、コンセンサスノードの状態処理サブモジュールは、状態データを格納、検証、同期し、コンセンサス時系列に従ってローカルコンセンサスロープにおけるトランザクションを解析して、トランザクション実行キューを作成し、実行可能なトランザクションをトランザクション実行キューに書き込み、トランザクションに対応するエグゼキュータを呼び出してトランザクション実行キューにおけるトランザクションを実行して、状態データの状態変化を完了し、状態取得モジュールと協定したルールに従って、状態取得モジュールに状態データを出力する。好ましくは、トランザクションの実行効率を向上するために、状態処理サブモジュールは、トランザクションを並行して実行し、ここで、状態処理サブモジュールは、状態取得モジュールに購読の状態データを能動的にプッシュすることができ、状態取得モジュールの状態取得請求に応答することもできる。
【0118】
(時間処理モジュールプロセス)
コンセンサスノードが、コンセンサス時系列の状態変化軌跡を利用して、1種の時間を定義、解釈、進行する。好ましくは、トランザクションシーケンスシステム1において時間が生成された後、コンセンサスノードが、時間情報を入力、出力、処理することができる。ここで、コンセンサスノードの時間処理サブモジュールは、ローカルコンセンサスロープの状態変化軌跡を時間基準系としてコンセンサス時間を定義し、全てのコンセンサスノードは、一致するルールに従ってコンセンサス時間を解釈、進行し、現在コンセンサス時間を取得してネットワークにおけるイベントにコンセンサスタイムスタンプを付け、他のコンセンサスノードからのコンセンサスタイムスタンプを検証し、コンセンサス時間情報を分析して応答最適化処理を行う。
【0119】
(状態取得モジュールプロセス)
状態取得モジュールは、コンセンサスネットワークから状態データを取得する。ここで、状態取得モジュールは、コンセンサスノードと状態取得ルールを協定して、コンセンサスノードから状態データを取得し、状態データを格納、処理する。状態取得モジュールは、同時に複数のコンセンサスノードから状態データを取得してその中の複数の結果を受け入れることができ、その中の最新結果を受け入れることもでき、複数の結果を1つの結果に合成することもできる。
【0120】
一実施形態では、コンセンサスノードが自己適応型ローカル時間分解能を提供してローカル到着ロープを並行して構築する方法を提供し、到着ロープにおける全ての結び目は、シングルストランドのロープのような一本鎖構造を構成し、シングルストランドロープと称する。シングルストランドロープにおいて、結び目は、同期して連続的(serial)に生成されるしかないので、トランザクションの書き込み速度及び処理リソースの利用率が制限される。
【0121】
マルチコア処理リソースを十分に利用し、かつ、到着ロープの時間分解能及び到着トランザクションに対する処理効率を向上するために、マルチコア並行ノッティング方法が提案され、方式1と方式2を含む。方式1として、マルチコアリソース上でN個の実行待ちのノッター及び1つのスケジューラを実施し、スケジューラは、毎回において、1つの空っているノッターを非同期的に順次呼び出してノッティング操作を行い、毎回呼び出す前に、スケジューラは、結び目番号を生成し、前時系列結び目を決定し、導入待ち結び目のトランザクションがあるか否かを決定し、スケジューラは、結び目番号、前時系列結び目、導入待ちトランザクションをノッターに入力させ、ノッターは、スケジューラの入力に従ってノッティングを行う。方式2として、マルチコアリソース上でN個の実行待ちノッターを実施し、N個のノッターのそれぞれは、唯一の番号を有し、持続的に1つのミューテックスを競争し、ミューテックスは、結び目番号を生成するための整数変数aと、最近の競争でミューテックスを得たノッターの番号を記録するための変数bとを所持しており、そのうちの1つのノッターが競争でミューテックスを得た後、ミューテックスが所持している整数変数aに1を加算して現在の結び目番号を生成し、その後、ミューテックスの変数bを読み取って競争でミューテックスを得た直前のノッターの番号を取得し、その後、変数bを自ノッターの番号に設定し、その後、導入待ち結び目のトランザクションがあるか否かをチェックし、ある場合、トランザクションをロックしてトランザクション結び目にノッティングすることを決定し、ない場合、空の結び目にノッティングすることを決定し、その後、ミューテックスを直ちに解放してノッティングし始め、ノッティングされた結び目の前時系列結び目は、自ノッターが前回ノッティングした結び目であり、ノッティングされた結び目は、自ノッターの番号、競争でミューテックスを得た直前のノッターの番号をさらに含む。ノッティングが完了した後、ミューテックスを継続して競争する。
【0122】
上記方法によれば、N個のノッターがNストランドのロープを生成し、Nをロープの並行度と称し、並行度がNであるロープをNストランドロープと称することができる。さらに、ロープが再構築される難度を高くするために、2つの前時系列結び目を設定し、一方の前時系列結び目は、自ノッターが最後にノッティングした結び目であり、他方の前時系列結び目は、前回ノッティング権利を取得したノッターが、自ノッターのノッティング権利取得前に最後にノッティングした結び目である。上記方式1において、ノッターがスケジューラによって呼び出されると、ノッターがノッティング権利を取得したと見なされることができる。方式2において、ノッターが競争でミューテックスを得ると、ノッティング権利を取得したと見なされることができる。さらに、異なる並行度のノッティングによって占用される計算リソースが異なるため、実現される時間分解能も異なる。到着頻度が高くない場合、高すぎるノッティングの並行度は浪費になり、トランザクション到着頻度が高い場合、低いノッティングの並行度は時系列の分解能を満たすことができない。トランザクション到着頻度に基づいて自己適応的にノッティングの並行度を調整するために、自己適応的変更可能な並行度の到着ロープのノッティング方法及び到着ロープの検証方法を提出し、この方法は、モニターがローカル到着ロープから現在の結び目が含まれているロープセグメントを取得し、ロープセグメント結び目の総数に対するロープセグメントにおけるトランザクション結び目の数の比率を統計し、比率がある予め設定された値を超えると、ローカル到着ロープの並行度を高くし、比率がある予め設定された値よりも低いと、ローカル到着ロープの並行度を低くするステップを含む。並行度が変化するロープをストランド変更ロープと称し得る。
【0123】
一実施形態では、コンセンサスノードがそれぞれローカル到着ロープのデータに対して圧縮処理を行う方法である。ここで、方式1として、初期結び目、トランザクション結び目、末尾結び目、一部の空の結び目を保留する。方式2として、初期結び目、トランザクション結び目、同期されていないロープセグメント全部を保留する。方式3として、初期結び目、トランザクション結び目、末尾結び目、及び番号がある整数の整数倍の結び目を保留する。また、基本情報を保留し、基本情報から導出可能なデータを削除することを目的とする他の方式もあり得る。
【0124】
一実施形態では、コンセンサスノードが統計学方法を利用してローカル及びノンローカルの到着ロープのデータを分析して、トランザクション入力モジュール、コンセンサスネットワーク、コンセンサスノードに関する特徴変化軌跡を取得し、特徴を利用して対応する応答を最適化する方法である。
【0125】
一実施形態では、ローカル及びノンローカルの到着ロープを介してトランザクションがコンセンサスノードに到着する頻度を了解する分析項目を予め設定するステップを含み、このステップには、1セグメントの到着ロープ(ローカル到着ロープでも、ノンローカル到着ロープでもよい)を選択するステップと、当該セグメントの到着ロープに含まれている結び目数aを取得し、具体的には、当該セグメントの到着ロープの末尾結び目番号から先頭結び目番号を減算して結び目数aを取得するステップと、当該セグメントの到着ロープにおけるトランザクション結び目の数b0、当該到着ロープを作成するコンセンサスノードに対するローカルトランザクション結び目の数b1、及び到着ロープを作成するコンセンサスノードに対するノンローカルトランザクションb2を統計するステップと、を含み、当該到着ロープを作成するコンセンサスノードに比べ、当該セグメントの到着ロープが代表する履歴時間内で、トランザクションがコンセンサスノードに到着する頻度はb0/aであり、ローカルトランザクションがコンセンサスノードに到着する頻度はb1/aであり、ノンローカルトランザクションがコンセンサスノードに到着する頻度はb2/aである。
【0126】
一実施形態では、ローカル到着ロープが、並行度可変のノッティング延長形式である場合、到着時系列情報分析ユニットは、一定期間内のトランザクション到着頻度の変化状況を統計して分析結果を形成し、到着ロープ処理最適化ユニットが分析結果を取得し、予め設定された関連付けによって分析項目が到着ロープの並行度変化応答ルールに対応するため、応答ルールを実行し、応答ルールの実行過程は、分析結果を取得し、トランザクションの到着頻度がある閾値を超えたことを発見すると、応答結果はローカル到着ロープの並行度を高くすることである。
【0127】
一実施形態では、コンセンサスノードが予め設定されたルールに従って、取得したローカル及びノンローカル到着ロープからトランザクション到着時系列情報を取得する方法である。ローカル到着時系列情報は、ノンローカル到着時系列情報と構造が同じであるが、異なるのは、ローカル到着時系列情報におけるノードが自ノードであり、トランザクションが自ノードに到着するトランザクションである点であり、ここで、ローカル及びノンローカル到着ロープからトランザクション到着時系列情報を取得する原理は、同一の到着ロープにおいて、トランザクションが存在する結び目の番号の大きさの順序は、トランザクションが到着ロープのローカルノードに到着する到着時系列と同じである。
【0128】
図17に示すように、一実施形態では、コンセンサスノードが予め設定された復元ルールに従ってトランザクションの到着時系列情報を処理して2つずつのトランザクションの復元時系列及び全てのトランザクションの復元時系列を出力する方法である。
【0129】
予め設定された復元ルールは、以下の例示により、コンセンサスネットワークG、複数のトランザクション入力モジュールI及び複数の状態取得モジュールFを含むトランザクションシーケンスコンセンサスシステムを説明する。ここで、
【0130】
ノード0、1、2、3がコンセンサスネットワークを構成し、図4に示すように、次のように記す。
【0131】
計算及び説明の便宜上、各ノード間の遅延Dは、それぞれ固定値であると仮定し、具体的には、次のとおりである。
【0132】
コンセンサスネットワーク中で1グループのトランザクションのコンセンサスが取られる過程を実演するために、真正時系列が客観的に存在すると仮定し、
そして、絶対時間が存在すると仮定し、絶対時間及び真正時系列に従ってトランザクションがネットワークに進入するスケジュール表を設計する。ここで、真正時系列におけるトランザクションはト、ランザクション入力モジュールによって、指定された時刻で指定されたノードに入力される。例えば、時刻10で、トランザクション入力モジュール1がノード0をエントリノードとしてトランザクションT0を入力し、以下のように類推する。
【0133】
計時の開始後、指定されたトランザクション入力モジュールは、スケジュール表に従って、指定されたトランザクションをコンセンサスネットワークの指定されたエントリノードに入力させる。t=0であると仮定すると、各ノードのローカル到着ロープは、ノッティングし始め、それぞれ次のとおりである。
【0134】
各ノードのノッティング頻度が異なるため、t=10である場合、各ノードのローカル到着ロープは次の通りである。
【0135】
このとき、トランザクションT0がエントリノード0によって取得され、ノード0は、トランザクションT0がローカルトランザクションであると判断し、ローカルトランザクションT0を検証、解析、格納及び同期する。ノード0は、トランザクションT0をローカル到着ロープの1001号の結び目にノッティングし、次のように記する。
このとき、ノード0は、ローカル到着ロープの同期されていないセグメントを同期する。
【0136】
t=11である場合、ノード0によって同期されたトランザクションT0がノード1に到着し、ノード1は、トランザクションT0がノンローカルトランザクションであると判断し、ノンローカルトランザクションT0を検証、解析、格納及び同期する。このとき、ノード1のローカル到着ロープの末尾番号は2200であるため、ノード1は、トランザクションT0をローカル到着ロープの2201号の結び目にノッティングし、
このとき、ノード1は、ローカル到着ロープの同期されていないセグメントを同期する。
【0137】
一定期間を経た後、各トランザクションが、いずれもコンセンサスネットワークに入力され、かつ、各ノードに同期されており、各ノードのローカル到着ロープも全部コンセンサスネットワークの他のノードに同期された。
【0138】
計算を簡略化するために、ノードがトランザクションを同期するためにローカルで生成した処理時間を無視することができ、ノード間の遅延設定に基づいて、トランザクションが各ノードに到着する「絶対時間」が次の通りであることが分かる。
各ノードの到着ロープのデータは、次のとおりである。
【0139】
各ノードは、ノンローカル到着ロープを受信した後、復元ロープ処理を行い始める。ノード0を例とすると、ローカル及びノンローカル到着ロープに従って、トランザクションが各ノードに到着する時系列を取得し、次の通りである。
【0140】
復元ルール1(コンセンサス待ちトランザクションの復元がコンセンサス済みトランザクションの復元よりも遅い)によれば、現在、コンセンサス済みトランザクションが未だないので、ルール1を利用することはできない。
【0141】
復元ルール2(同一のノードにおける両ローカルトランザクションの到着時系列と復元時系列とが同じ)によれば、ノード0のローカルトランザクションにはT0及びT4があり、ノード1のローカルトランザクションにはT1及びT5があり、ノード2のローカルトランザクションにはT2があり、ノード3のローカルトランザクションにはT3があることが既知であると、次の通りである。
【0142】
復元ルール3(比較される2つのトランザクションが同一の到着ロープにおける結び目番号の差が大きいほど)によれば、次の通りである。
【0143】
復元ルール5(トランザクションの復元時系列が伝達性を満たす)によれば、ルール2及び3と組み合わせた結果は次の通りである。
【0144】
今の所、T0とT1、T1とT2、T1とT3、T2とT3、T2とT4、T3とT4、T4とT5の復元時系列関係をまだ確定することができない。
【0145】
復元ルール4(比較される2つのトランザクションが先に到着されるノードの数の差が大きいほど)によれば、T0とT1とについて、ノード0、2、3においてはT0がT1よりも早く到着し、ノード1のみにおいてT1がT0よりも早いと、T0がT1よりも早くネットワークに進入したと判断し、同原理によって、T1がT3よりも早く、T2がT3よりも早く、T2がT4よりも早く、T3がT4よりも早く、T4がT5よりも早いと判断でき、このとき、再度ルール5によれば、以下の通りである。
【0146】
しかし、T1及びT2は、それぞれ到着時系列が相手よりも早いノードが2つあり、今の所、T1とT2との復元時系列関係をまだ確定することができない。
【0147】
復元ルール6(同一のノードにおける2つのトランザクションの到着時系列間の間隔がある閾値よりも大きい)によれば、T0及びT1のローカル及びノンローカルの到着ロープにおける結び目番号を取得して計算する。
【0148】
これまでになると、ノード0は、復元時系列を取得でき、
【0149】
同原理によって、ノード1、2、3は、同じ方法に従って復元時系列を取得でき、
【0150】
ノード0は、ローカル復元時系列を他のノードに送信し、他のノードは、自ノードのローカル復元時系列を返信し、ノード0は、受信したノンローカル復元時系列を比較して、完全に一致することを発見すると、復元時系列がコンセンサス時系列を達成したと判定する。
【0151】
ノード0がコンセンサス時系列を順序に従ってコンセンサスロープに書き込んで取得したコンセンサスロープは以下の通りである。
【0152】
ノード0は、コンセンサス時系列に従ってコンセンサスロープにおけるトランザクションを解析して、トランザクション実行キューに書き込み、トランザクションに対応するトランザクションエグゼキュータを1つずつ呼び出して、トランザクション実行キューにおけるトランザクションを実行して、状態データの変更を完了する。他のノードも同じ操作を行う。例えば、前記トランザクションの実行待ち内容は、それぞれ、変数Aに対して1を加算することを要求するT0、変数Aに対して2を加算することを要求するT1、変数Bに対して2に3を加算することを要求するT2、変数Aに対して3を減算することを要求するT3、変数Aに対して2を減算することを要求するT4、変数Bに対して2に1を加算することを要求するT5であり、A及びBが0未満になってはいけないとの拘束条件があり、
トランザクションがネットワークに入力される前において、ノードの状態データには、Aの値が1、Bの値が2であるとのことが含まれる。
【0153】
コンセンサス時系列が実行され始めると、T0が実行されて、Aの値が1+1=2になり、T1が実行されて、Aの値が2+2=4になり、T2が実行されて、Bの値が2であり、2に3を加算して5になり、T3が実行されて、Aの値が4-3=1になり、T4が実行されて、Aの値が1-2<0になって、拘束条件に適合しないので、T4を放棄し、T5が実行されて、Bの値が5であり、2に1を加算することができないので、T5を放棄する。
【0154】
同時に、状態取得モジュールは、任意のノードから状態データを取得する。例えば、状態取得モジュール0がノード0からAの値を請求し、Aがノード0にこの時のAの値を返信し、状態取得モジュール1がノード2からBの値をすでに購読しており、Bの値を更新する度に、ノード2が状態取得モジュール1にBの値をプッシュし、状態取得モジュール2が同時にノード0、1、2、3からAの値を請求し、状態取得モジュール3が同時にノード1、2からAの値を購読する。
【0155】
一実施形態では、ローカル復元ロープを構築して復元時系列情報を格納する方法である。トポロジマップデータ構造を構築し、トポロジマップデータ構造は、自コンセンサスノードが、受信した到着ロープから分析復元したコンセンサス待ちトランザクションがネットワークに進入する時系列関係を格納、表示するために用いられ、このマップを「復元ロープ」と呼ぶ。ここで、復元ロープにおける「ポイント」は、エンティティを代表し、「エッジ」は、エンティティ間の関係を代表し、ポイント及びエッジは、いずれもタイプ及び属性を有する。ポイントのタイプには、トランザクション及びコンセンサスノードが含まれ、エッジのタイプには、発行関係(トランザクションエンティティと当該トランザクションを発行するコンセンサスノードエンティティとを接続する1本のエッジ)、時系列関係(2つのトランザクションA及びBを接続する1本のエッジ、属性は、AトランザクションがBトランザクションよりも早くネットワークに進入したと判断するコンセンサスノードの確信スコアであり、確信スコアの計算により得られる)が含まれる。コンセンサスノードは、コンセンサス待ちトランザクション集合から2つのトランザクションA及びBを選択し、分析ルールに従ってAがBよりも早くネットワークに進入した確信スコアを取得し、分析結果を復元ロープに書き込みながら、冗長な時系列関係エッジを削除する。コンセンサスノードは、復元ロープにおける安定しかつコンセンサスが達成されていないと想定される部分を、他のコンセンサスノードとコンセンサス処理を行うとともに、トランザクションがネットワークに進入したコンセンサス時系列に従って、コンセンサスが達成された部分をコンセンサスロープに書き込み、コンセンサスが達成されたトランザクションを復元ロープに「コンセンサス済み」とマークする。格納空間を節約するために、コンセンサスが達成されたトランザクション、発行関係及び時系列関係を復元マップから削除する。
【0156】
図18に示すように、一実施形態では、コンセンサスノードが復元時系列情報を複数回交換し、ローカル及びノンローカル復元ロープに対してコンセンサス処理を行って、コンセンサス時系列を形成する方法であって、具体的なステップは、次の通りである。コンセンサスノードは、復元ロープから、コンセンサスが取られずかつ安定している復元ロープセグメント及び現在のコンセンサスロープの末尾結び目を取って、N個のコンセンサスノードにランダムに送信する。コンセンサスノードが復元ロープからコンセンサスが取られずかつ安定している復元ロープセグメントを取る方法には、受信した到着ロープに含まれているトランザクション全部の分析が完了したことを確認するステップと、冗長な関係を削除した後、復元ロープにおける比較的早くネットワークに進入したトランザクションの時系列関係が一本の単一のチェーンを形成することにより、新しいトランザクションが単一のチェーンの比較的早い部分に挿入する可能性がないことが確認され、この部分の単一のチェーンが安定した時系列であるステップと、コンセンサスノードがN個のコンセンサスノードに、安定している復元ロープセグメント及びコンセンサスロープ末尾結び目をランダムに請求するステップと、コンセンサスノードが、他のノードから送信されたコンセンサス待ちロープセグメントを受信した後、自コンセンサスノードの対応するロープセグメントと比較して、そのうちの異なる時系列関係について、そのうちの複数の結果を受け入れるステップとが、含まれる。
【0157】
コンセンサスノードが復元時系列情報を交換するノード組合せをランダムに生成する方法を提供し、具体的には、ノード情報を取得し、到着ロープ、復元ロープ及びコンセンサスロープのデータに基づいて、初期値を取得するステップと、初期値に基づいて乱数を生成するステップと、ノード情報及び乱数に基づいてノード組合せを生成するステップと、を含む。
【0158】
コンセンサスノードが、復元ロープの冗長な時系列データをリアルタイムに削除する方法である。具体的なステップは、コンセンサス待ちトランザクションにおける冗長な時系列関係エッジを判断して削除することである。
【0159】
一実施形態では、コンセンサスノードがローカルコンセンサスロープを構築してコンセンサス時系列情報を格納する方法である。具体的には、コンセンサスノードがコンセンサスネットワークに加入した後、コンセンサスロープ初期化モジュールがコンセンサスロープの初期化同期を開始することをトリガするステップと、コンセンサスロープ初期化同期モジュールが他の複数のコンセンサスノードに、現在の最新のコンセンサス結び目の取得を目的とするコンセンサスロープ同期請求を送信し、他のコンセンサスノードが最新のコンセンサス結び目を返信するステップと、請求を受信したノードが、請求を送信したノードと一定期間の持続接続を確立して、請求を送信したノードに最新のコンセンサス結び目を持続的にプッシュするステップと、コンセンサスロープ初期化同期モジュールが他の複数のコンセンサスノードに、指定のコンセンサスロープセグメントをダウンロードする請求を送信し、コンセンサスネットワークに生成されているがローカルに格納されていないコンセンサスロープを補足することを目的とするステップと、を含む。コンセンサスロープノッティングモジュールは、コンセンサスが取られた安定している復元ロープセグメントと、ロープセグメントに対応するコンセンサス結び目とを取得する。すでにコンセンサスロープに入れ込まれたトランザクションは、対応して、自コンセンサスノードで「コンセンサス済み」とマークされ、1つのトランザクションを入れ込むたびに、1つのトランザクションをマークしてもよいし、バッチでマークしてもよい。
【0160】
コンセンサスノードがローカル時間を定義、解釈、進行する方法である。具体的なステップは、次の通りである。コンセンサスノードが、ローカル到着ロープをコンセンサスノードの内部クロックとし、ローカル到着ロープの結び目数の増加を時間進行の根拠とし、ローカル到着ロープの結び目をコンセンサスノードの内部時間スケールとする。
【0161】
本願に係るトランザクションシーケンスコンセンサス方法は、本質的には、各コンセンサスノードが1グループのトランザクションが自コンセンサスノードに到着するローカル時間をローカル時間によって記録し、トランザクション到着コンセンサスネットワークの時系列についてコンセンサスを取り、トランザクションがコンセンサスネットワークに到着するコンセンサス時系列を利用してコンセンサスネットワークのコンセンサス時間を定義し、コンセンサス時間及びローカル時間の両方でシーケンス能力を強化する。
【0162】
また、異なるコンセンサスノードのノッティング頻度は異なる可能性があり、形成されたローカル時間の進行速度も異なる可能性がある。
【0163】
タイムスタンプは、ある行為が発生する時間をマークするために用いられ、本願において、タイムスタンプは、人々が通常使用している年/月/日/時/分/秒での時間表示ではなく、コンセンサスシステム以外の時間源によって提供される時間表示でもなく、コンセンサスシステム内のある増加数量を基に形成される時間表示である。
【0164】
一実施形態では、コンセンサスノードが他のコンセンサスノードからのコンセンサスタイムスタンプを検証する方法である。具体的なステップは次のとおりである。コンセンサス時間及び検証コードを含む提供されるタイムスタンプを取得し、検証コードに基づいて自コンセンサスノードのコンセンサスロープから対応する結び目を検索して、結び目番号及び結び目のhash値を取得し、対応するコンセンサス時間及び検証コードを算出し、提供されたタイムスタンプと等しいか否かをチェックし、等しくない場合、検証に失敗とし、等しい場合、検証に合格とする。
【0165】
一実施形態では、コンセンサスノードがコンセンサス処理を誠実に行うように奨励する方法を提案し、エントリコンセンサスノードが、受信したローカルトランザクションTに対してコンセンサスロープ時間t0を付けるステップと、トランザクションTがコンセンサスロープに書き込まれると、現在のコンセンサスロープ時間t1を取得し、コンセンサスをΔt=t1-t0遅延させるステップと、トランザクションTに近い1グループのコンセンサス済みトランザクションのコンセンサス遅延区間[t]を取得し、Δtと[t]とのある種の関係の特徴値xを判断し、システムがトランザクションTのエントリコンセンサスノードに対するボーナス又はペナルティを決定するステップと、を含み、ボーナス及びペナルティの程度は、xの値に関連する。
【0166】
一実施形態では、順位付け不要のトランザクションのコンセンサス方法であって、トランザクション入力モジュールがコンセンサスノードに順位付け不要のトランザクションを入力するステップと、コンセンサスノードがトランザクションを受信した後、トランザクションをローカル到着ロープにノッティングして、トランザクション結び目にコンセンサスタイムスタンプを付けた後、同期処理するステップと、コンセンサスノードがコンセンサス時間の順序に従って、トランザクションを配列してコンセンサスを取るステップと、を含み、順位付け不要のトランザクションとは、投票間の前後順序が投票結果に影響を与えないことを言う。しかし、「二重支払」の問題を回避するために、競合投票シーンでは、1人が2人に投票する状況が発生する可能性があり、同一の投票者のトランザクションを順位付けする必要が依然としてあり、この場合、トランザクションのコンセンサス時間を利用して配列し、後で書き込まれた二重支払トランザクションを削除すればよい。順位付けする必要がないため、同一適用シーンのトランザクションの手数料は一般的に厳密に同じであり、コンセンサスノードがトランザクションにタイムスタンプを付けるときにも時間を改ざんする必要がなく、本願のトランザクションシーケンスコンセンサス方法によって形成されたコンセンサス時間は、ネットワーク自身によって生成された時間であり、外部時間源に依存しない。そのため、直接トランザクションのコンセンサスタイムスタンプを用いて順位付けすることもできる。
【0167】
順位付け不要のトランザクションの適用シーンでは、一般に、開始時間と終了時間を設定しておき、トランザクションのコンセンサスを取った後にコンセンサスネットワークに到着したトランザクションに対して同期及びコンセンサス処理を行わないように、コンセンサスノードに要求してもよいため、開始と終了需要がある順位付け不要のトランザクションの適用シーンについて、コンセンサスノードは、トランザクションに対して同期及びコンセンサス処理を行うか否かを決定するために、開始及び終了時間を比較するオプションを到着トランザクションの検証に追加することができる。
【0168】
一実施形態では、コンセンサスノードがコンセンサス処理を誠実に行うように奨励する方法であって、エントリコンセンサスノードが、受信したローカルトランザクションTに対してコンセンサスロープ時間t0を付けるステップと、トランザクションTがコンセンサスロープに書き込まれると、現在のコンセンサスロープ時間t1を取得し、コンセンサスをΔt=t1-t0遅延させるステップと、トランザクションTに近い1グループのコンセンサス済みトランザクションのコンセンサス遅延区間[t]を取得し、Δtと[t]とのある種の関係の特徴値xを判断し、システムがトランザクションTのエントリコンセンサスノードに対するボーナス又はペナルティを決定するステップと、を含みし、ボーナス及びペナルティの程度は、xの値に関する。
【0169】
一実施形態では、コンセンサスノードのマルチレベルアクセス方法であって、コンセンサスノードのロイヤリティ度を向上させ、かつ、コンセンサスネットワークの安全性を向上させることを目的とし、コンセンサスノードがコンセンサスノードのアイデンティティ状態データを維持することを含む。コンセンサスノードのアイデンティティ状態には、シードノード、公式ノード、準備ノード、育成ノードが含まれ、また、ノードは、一時的にパトロールノード及び紹介ノードとなることができる。ここで、シードノードは、一般に、最初にネットワークを構成するのに用いられ、コンセンサスネットワークにおいて長期間安定に動作し、コンセンサスに参加し、ボーナスを取得できる。公式ノードは、コンセンサスに参加し、エントリコンセンサスノードとして使用でき、ボーナスを取得でき、ボーナスがロックされない。シードノードは、特別な公式ノードである。全ての公式ノードは、毎回、システムに一定の費用を納入する必要があり、費用は、コンセンサスネットワークに貢献のある者を奨励するのに使用される。準備ノードは、コンセンサスに参加し、エントリコンセンサスノードとして使用されることができ、ボーナスを取得できるが、ボーナスがロックされ、コンセンサスに誠実に参加した経歴が一定のアイデンティティ変更条件を満たすと、公式ノードにアイデンティティ変更申請を送信して公式ノードに変更されることができ、公式ノードに変更されると、取得したボーナスのロックが解除される。ボーナスがロックされるというのは、ボーナスを取得することができるが、ボーナスを実行することはできないことを言う。育成ノードは、コンセンサスに参加し、エントリコンセンサスノードとして使用されることができ、ボーナスを取得できず、コンセンサスに誠実に参加した経歴が一定のアイデンティティ変更条件を満たすと、公式ノードにアイデンティティ変更申請を送信して準備ノードに変更されることができる。紹介ノードは、シードノード及び公式ノードが紹介ノードとして使用されることができる。ノードがアイデンティティ変更条件を満たすと、予め設定されたルールに従ってアイデンティティ変更申請を複数(一般に6個以上)のノードにランダムに送信し、申請を受信したノードが、アイデンティティ変更を提出したノードがアイデンティティ変更を行う紹介ノードと呼ばれる。紹介ノードがアイデンティティ変更申請を審査し、アイデンティティ変更申請を提出したノード(申請ノードと略称)に審査結果を返信し、申請ノードは、全ての審査結果を集計した後、最終的に審査通過となったか否かを判断し、集計結果を1つのトランザクションとしてネットワーク全体に同期し、トランザクションの実行結果は、状態データにおける申請ノードのアイデンティティを変更するか又は変更しないことである。パトロールノードは、コンセンサスノードが予め設定された条件を満たすと、一回のパトロール権利を取得し、パトロール権利の実行とは、コンセンサスノードが1つ又は複数のコンセンサスノードに1つ又は複数の「パトロールトランザクション」をランダムに入力し、パトロールトランザクショも、同様に、コンセンサス処理によってコンセンサスロープに書き込まれる。パトロールトランザクションを利用して、到着時系列を逆にする行為を破壊し、また、パトロールトランザクションのエントリコンセンサスノードがパトロールトランザクションの要求に従って対応する検証を実行することを目的とする。
【0170】
本願の一部の実施例は、トランザクションシーケンスコンセンサスシステムに適用される、複数のトランザクション入力モジュール、複数の状態取得モジュール、及びアプリケーションデプロイモジュールを含むコンセンサスアプリケーションプログラムを提供し、アプリケーションデプロイモジュールは、コンセンサスアプリケーションに関連するトランザクションエグゼキュータ及び状態データのコンセンサスノードにおけるデプロイを管理するために用いられる。図19に示すように、トランザクションシーケンスコンセンサスシステム1は、1つのコンセンサスネットワーク及び複数のコンセンサスアプリケーションから構成され、ここで、コンセンサスアプリケーションは、複数のトランザクション入力モジュール、複数の状態取得モジュール、及びアプリケーションデプロイモジュールが組み合わせられて構成され、コンセンサスネットワークは、コンセンサスノードから構成される。アプリケーションデプロイモジュールは、当該アプリケーションの使用可能なノード情報を管理し、当該アプリケーションのデプロイリソースマッチングを処理し、当該アプリケーションをデプロイするか又はデプロイを停止し、使用可能ノード管理サブモジュール、デプロイリソースマッチングサブモジュールを含む。
【0171】
本願は、トランザクションシーケンスコンセンサス方法及びシステムを提供し、コンセンサスネットワークにおける各ノードが外部時間を信頼せず、ネットワーク内の計算及び通信手段のみにより、少数によって操作されない時間メカニズムを形成し、ネットワークに進入された1グループのトランザクションの因果順序について不可逆的の一致性コンセンサスを取り、それにより、各データのコピー状態が一致する変化軌跡を有し、ここで、コンセンサスを取ったトランザクションの因果順序は、トランザクションが実際にネットワークに進入した時系列と同じであるべきである。
【0172】
以上の内容は、本願の技術構想を説明するためのものにすぎず、本願の保護範囲を限定するものではなく、本願に提案された技術構想に従って、技術案を基に行われたいずれの変更は、いずれも本願の特許請求の保護範囲に含まれる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19