JP2022546378A - ブロックチェーンシステムのテスト環境を構築する方法と装置 - Google Patents

ブロックチェーンシステムのテスト環境を構築する方法と装置 Download PDF

Info

Publication number
JP2022546378A
JP2022546378A JP2022512815A JP2022512815A JP2022546378A JP 2022546378 A JP2022546378 A JP 2022546378A JP 2022512815 A JP2022512815 A JP 2022512815A JP 2022512815 A JP2022512815 A JP 2022512815A JP 2022546378 A JP2022546378 A JP 2022546378A
Authority
JP
Japan
Prior art keywords
staging environment
blockchain
environment
system configuration
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022512815A
Other languages
English (en)
Other versions
JP7266147B2 (ja
Inventor
佑樹 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2022546378A publication Critical patent/JP2022546378A/ja
Application granted granted Critical
Publication of JP7266147B2 publication Critical patent/JP7266147B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Figure 2022546378000001
ブロックチェーンシステムのステージング環境を設定するために、ブロックデータなしでシステム構成と状態データベースを再作成することを含む、ブロックチェーンシステムのテスト環境を作成する方法および装置。実装例では、本番環境から最新のコンフィグブロックと状態データベースのデータベースファイルを取得する機能がある。さらに、受信した最新コンフィグブロックからシステム構成を抽出し、システム構成に含まれるルート認証局証明書をステージング環境用の証明書に置き換え、システム構成トランザクションを作成し、システム構成を反映させるためにシステム構成トランザクションをステージング環境に送信する機能がある。さらに、データベースファイルから状態のリストを抽出し、状態のリストを持つトランザクション要求メッセージを作成し、状態データベースに状態をロードするためのトランザクションをステージング環境に送信する機能がある。

Description

本開示は、一般的にはブロックチェーンシステムに向けられたものであり、より具体的には、ブロックチェーンシステムのテスト環境を作成するための方法および装置に向けられたものである。
関連技術では、スナップショットを持つ分散型台帳を含むシステムがある。そのような関連技術の実装は、ポイントインタイムのノード再起動を容易にするために、特定の時点で分散型台帳のスナップショットを生成することを含む。分散型台帳は、トランザクションの不変的な記録を提供する。データ量は時間の経過とともに大きくなる可能性がある。
分散型台帳に新しいノードを追加する場合、新しいノードは、台帳内の各要素の現在の状態を判断するために、すべてのトランザクションを読み込まなければならない。台帳に多くのトランザクションがある場合、すべてのトランザクションを読み取るのに大量の時間がかかることがあり、そのような操作を容易にするために大量のストレージが必要となる。関連技術の実装では、特定の時点での分散型台帳のスナップショットを生成し、スナップショットをセグメントデータファイルと台帳に書き込み、スナップショットを使用してノードを再起動することで、上記の問題に対処している。
関連技術の実装とは対照的に、本明細書に記載されている例示的な実装は、ステージング環境をセットアップするためにブロックチェーンシステムのスナップショットを生成することと、ステージング環境のテストデータを作成するためにブロックチェーンシステムのスナップショットを修正することとに向けられている。
本開示の側面は、本番環境上に展開されたブロックチェーンシステムのステージング環境を管理する方法であって、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されているブロックチェーンシステムからデータを取得することを含む方法である。取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成するステップと、システム構成内のルート証明書をステージング環境用のダミーのルート証明書で置き換えるステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するステップとを含む。
本開示の側面には、本番環境上に展開されたブロックチェーンシステムのステージング環境を管理するための命令を格納するコンピュータプログラムが含まれ、その命令は、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されているブロックチェーンシステムからデータを取得することを含む。取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成するステップと、システム構成内のルート証明書をステージング環境用のダミーのルート証明書で置き換えるステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するステップとを含む。コンピュータプログラムおよび命令は、非一時的なコンピュータ可読媒体に格納され、1つまたは複数のプロセッサによって実行されるように構成されてもよい。
本開示の側面は、本番環境上に展開されたブロックチェーンシステムのステージング環境を管理するシステムであって、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されているブロックチェーンシステムからデータを取得する手段と、取得したデータに基づいてステージング環境におけるブロックチェーンシステムのシステム構成を再作成する手段と、システム構成のルート証明書をステージング環境用のダミーのルート証明書に置き換える手段と、再作成する手段とを含む。取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成する手段と、システム構成のルート証明書をステージング環境用のダミーのルート証明書に置き換える手段と、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成する手段とを含む。
本開示の側面は、本番環境上に展開されたブロックチェーンシステムのステージング環境を管理するように構成された装置であって、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されているブロックチェーンシステムからデータを取得するように構成された、プロセッサを含む装置を含む。システム構成のルート証明書をステージング環境用のダミーのルート証明書に置き換えるステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成するステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するステップと、を含む。
図1は、例示の実施形態による、ブロックチェーンシステムの例示のシステムアーキテクチャを示す。 図2は、一実施例による、ブロックチェーンノードの物理的構成例を示す図である。 図3は、一実施例によるテストデータ管理ツールの物理的構成例を示す図である。 図4は、一実施例による、テストデータマネージャの処理例を示すフロー図である。 図5は、実施例にしたがって、本番環境からデータを取得するためのフロー図を示している。 図6(a)は、一実施例に従って、システム構成を再作成するための側面を示している。 図6(b)は、一実施例に従って、システム構成を再作成するための側面を示している。 図6(c)は、一実施例に従って、システム構成を再作成するための側面を示している。 図7(a)は、例示の実施形態に従って、状態データベースを再作成するための側面を示している。 図7(b)は、例示の実施形態に従って、状態データベースを再作成するための側面を示している。 図7(c)は、例示の実施形態に従って、状態データベースを再作成するための側面を示している。 図8は、一実施例による状態データベースのデータ構造の例を示す図である。
以下の詳細な説明では、本願発明の図および例示的な実施例の詳細を提供する。参照番号および図間の冗長な要素の記述は、明確にするために省略されている。本明細書を通して使用される用語は、例として提供されており、限定することを意図していない。例えば、「自動」という用語の使用は、本願発明の実装を実践する当業者の所望の実装に応じて、実装の特定の側面に対するユーザまたは管理者の制御を伴う完全自動または半自動の実装を含むことができる。選択は、ユーザインターフェースまたは他の入力手段を介してユーザが行うことができ、または所望のアルゴリズムを介して実装することができる。本明細書に記載されている例示的な実装は、単数または複数の組み合わせで利用することができ、例示的な実装の機能は、所望の実装に応じて任意の手段で実装することができる。
ブロックチェーンは、ネットワークに参加しているノード間で分散・共有されるデータベースであり、アペンドオンリーのデータベースとして機能する。ブロックチェーンの名前が示すように、ブロックチェーンはブロックの連鎖で構成されており、各ブロックにはトランザクションのリストが含まれている。各ブロックは前のブロックと暗号ハッシュで結ばれている。ノードはブロックチェーンの状態を維持し、その状態を変更するためにトランザクションを実行する。ブロックチェーンは、分散型台帳技術としても知られている。
ブロックチェーンシステムには、互いに完全には信頼していない異なる組織によって運営される複数のノードが含まれる。ブロックチェーンネットワークのすべてのノードは、ブロックに格納されたトランザクションの内容と順序に合意する。合意のためのメカニズムは、コンセンサス・アルゴリズムとして知られている。コンセンサス・アルゴリズムにはさまざまなものがある。例えば、さまざまな暗号通貨では、パブリックネットワークでのコンセンサスの際に、計算コストの高い数学的演算をノードに実行させるPoW(Proof-of-Work)が採用されている。閉鎖的なプライベートネットワークでノードが認証されている場合は、Raft、Paxos、PBFTなどのフォールトトレラントなコンセンサスプロトコルが使用されている。
新しいブロックが作成されると、そのブロックはブロックチェーンネットワークのすべてのノードにブロードキャストされる。ノードは、ブロックをブロックチェーンに追加する前に、ブロックとブロック内のトランザクションを検証する。検証ロジックはブロックチェーンプラットフォームソフトウェアに依存するが、標準的な検証ルールはデジタル署名の検証である。トランザクションには、要求者のデジタル署名が含まれており、ブロックチェーンノードは、トランザクションが有効な要求者によって署名されているかどうかを検証する。ブロックチェーンネットワークに新しいノードを追加する際、ノードは他のノードから以前のブロックを受け取る。その後、ノードは、他のノードから転送された以前のブロックとトランザクションを検証する。
金融機関をはじめとする企業は、ブロックチェーンがビジネスプロセスを変革し、新たなサービスを生み出すことを期待して、ブロックチェーンのアプリケーションを開発している。ブロックチェーンの利点は、分散型のガバナンス、不変性、透明性である。ブロックチェーンネットワークでは、各ノードが同じトランザクションを実行し、同じ状態になる。特権的な第三者を介さずに取引を促進することが可能である。ブロックチェーン上のデータは、ハッシュの連鎖によって取引履歴が変更されることがないため、不変である。分散されたデータは関係者間の透明性を保つため、ブロックチェーンは組織を超えたコミュニケーションや監査のコストを削減する。
継続的インテグレーション(Cl)と継続的デリバリ(CD)は、ソフトウェア開発の手法の一つで、コードの変更を短いサイクルで、通常は高度な自動化を用いてリリースに向けて準備するものである。その目的は、フィードバックループをできるだけ短くして、ソフトウェアの品質を向上させることにある。
CI/CDでは、自動化されたビルド、テスト、ステージング・デプロイメントが1つの継続的なプロセスに統合される。すべてのコード変更は、ビルド、テストされた後、ステージング環境にプッシュされる。ステージング環境では、ユーザインターフェース(UI)テスト、統合テスト、性能テスト、負荷テスト、信頼性テストなど、本番ネットワークに入る前に複数のテストが行われる。このプロセスを自動化するために、開発チームではCI/CDツールが使用されている。
ステージング環境とは、可能な限り本番環境に似せた環境のことである。ステージング環境の目的は、本番環境に適用する前に、インストール/設定/移行のスクリプトと手順のすべてをテストすることである。もう一つの目的は、実際のビジネスデータを使って、システムの機能性と非機能性のテストを行うことである。
一般的なステージング環境には、アプリケーション、システム構成、データが含まれる。これらのコンポーネントは、本番環境と同じであることが望ましい。アプリケーションは、ソースコード管理システムから引き出される。システム構成とデータをセットアップするために、1つの標準的な方法は、本番環境からステージング環境にデータ全体をコピーすることである。
ブロックチェーンシステムでは、いくつかのタイプのテストがステージング環境で実行される。テストの種類には、機能性テスト、システムテスト、アップグレードテスト、互換性テストがある。機能性テストでは、システムの機能性が設計通りに動作するかどうかを検証する。システムテストでは、パフォーマンス、可用性、復旧性など、システムの非機能面を検証する。アップグレードテストでは、環境のアップグレードがすべて正常に終了することを確認する。スマートコントラクト(ブロックチェーンアプリケーション)のアップグレード、ブロックチェーンへの組織の追加、ブロックチェーンのシステム構成のアップグレード、ブロックチェーンプラットフォームソフトウェアのバージョンのアップグレードなどが例として挙げられる。互換性テストでは、アップグレードされたスマートコントラクトが、以前のバージョンのスマートコントラクトが作成した状態を取得したり、置いたりできるかどうかを検証する。
このようなタイプのテストを実行するためには、ステージング環境は本番環境と同じであることが望ましい。ブロックチェーンシステムのステージング環境には、組織、ネットワークトポロジー、システム構成、アプリケーション、データ、デジタル証明書/鍵などがあることが望ましい。組織構造は本番環境と同じであること、ノード数は本番環境と同じであること、システム構成は、本番環境と同じであること、アプリケーションは、テスト後に本番環境にデプロイされる予定のものを使用すること、データは本番環境と同じものを使用する。デジタル証明書および鍵は、テスト用のダミー証明書/鍵で構わない。
本番環境とステージング環境でトランザクションのコンセンサスを分離するために、ステージング環境ではダミーのデジタル証明書と鍵を使用する。ブロックチェーンシステムでは、デジタル証明書と鍵を使って取引を検証する。取引に電子署名を付けることは、本番環境では組織がその商取引に同意していることを意味する。ステージング環境では、テストのためにトランザクションが実行される。これらの取引は実際のビジネス取引ではないため、各組織の同意の必要はない。境界を明確にするため、テストにはダミーの証明書と鍵を使用する。
ステージング環境のデータを準備するために、標準的な方法では、本番環境からデータをコピーする。しかし、ブロックチェーンシステムでは、本番環境からステージング環境にデータをコピーすることはできない。
ブロックチェーンシステムには、ブロックとステート(状態)という2種類のデータがある。ブロックは、トランザクションのリストを含む。ステートは、トランザクションに含まれるすべてのキーの最新の値を表している。新しいノードがブロックチェーンネットワークに参加すると、ノードはブロックチェーンネットワークの他のノードからブロックを受け取り、最新のブロックに追いつく。ブロックを受信したノードは、ブロック内のデジタル署名を検証する。検証が通れば、そのブロックは台帳にコミットされる。ブロックをコミットする際には、ブロック内の取引に応じて状態も更新される。このプロセスを繰り返すことで、ノードは最新の状態に追いつくことができる。このメカニズムは、ノードが同じブロックチェーンネットワークに存在する限り、うまく機能する。
ステージング環境の場合、本番環境からブロックをコピーしてブロックをコミットすることは、トランザクションの検証が失敗するため不可能である。ステージング環境のピアノードが本番環境からブロックを受信した場合、ノードは最新のブロックに追いつき、ステートを作成しようとする。ステージング環境では、本番環境とは異なるダミーの暗号材料(デジタル証明書や秘密鍵など)を使用している。その結果、本番環境からコピーされたトランザクションのIDがステージング・ブロックチェーン・ネットワーク内のものと一致しないため、ノードは検証に失敗する。これらのトランザクションは無効と評価されるため、ブロックには何もコミットされず、ステートも更新されない。そのため、ステージング環境でデータを作成するという一般的なアプローチは、ブロックチェーンシステムでは機能しない。
本明細書に記載されている例示的な実装は、上記の問題に以下のように対処する。例示的な実装は、ブロックチェーンシステム用のステージング環境を設定するために、ブロックデータなしでシステム構成およびを再作成することに向けられた実装を利用する。そのような実装は、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されるブロックチェーンシステムからデータ(例えば、最新の構成コンフィグブロックおよびステートデータベース(状況データベース)のデータベースファイル)を取得する機能を含む。実装例では、機能が、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成し(例えば、受信した最新のコンフィグブロックからシステム構成を抽出し、システム構成に含まれるルート認証局(CA)証明書(複数可)をステージング環境用のダミールート証明書(複数可)に置き換え、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成する。このような再作成は、システム構成を反映するために、システム構成トランザクションを作成し、システム構成トランザクションをステージング環境に送信することを含むことができる。また、実施例では、データベースファイルから状態(スレート)のリストを抽出する機能と、状態(ステート)のリストを有するトランザクション要求メッセージを作成する機能と、状態データベースにステートをロードするためにステージング環境にトランザクションを送信する機能とを含む。
主なコンセプトは、テストに必要な最低限のデータをステージング環境に再現することである。上述したように、ブロックチェーンシステムのステージング環境は、機能テスト、システムテスト、アップグレードテスト、互換性テストに使用される。本発明は、これらの主要なテストタイプに着目したものである。
上記のテストタイプでは、ステージング環境は、本番環境と同じシステム構成と状態データベースを持つことが望ましい。同じシステム構成は、アップグレード操作を本番環境に適用する前に、現在の環境で正常に動作するかどうかを検証するために使用される。また、同じ状態データベースは、前バージョンのスマートコントラクトが作成した状態を取得して置くことで、アップグレードされたスマートコントラクト(=ブロックチェーンアプリケーション)がうまく動作するかどうかを評価するために必要である。一方で、スマートコントラクトはブロックデータに直接アクセスしないため、これらのテストタイプではブロックデータは使用されない。
本明細書に記載されている実施例では、ステージング環境のシステム構成と状態データベースを、ブロックデータなしで再作成する。ブロックデータは、ステージング環境でのテストには必要ないため、廃棄される。さらに、本番環境からコピーされたブロックは、トランザクション検証プロセスのためにステージング環境の状態データベースの再現を妨げる。したがって、本明細書で説明する例示的な実装は、他の方法によって状態データベースを再作成する。
まず、実施例では、本番環境から最新のコンフィグブロックと状態データベースのデータベースファイルを取得する。最新のコンフィグブロックは、後でシステム構成を再構築するために使用される。データベースファイルは、ステージング環境で状態データベースを再作成するために使用される。本番環境のその他のデータはコピーされない。
次に、本明細書に記載されている例示的な実装では、ステージング環境のシステム構成を再現する。最新のコンフィグブロックには、システム構成のセットが含まれている。本方法は、コンフィグブロックをパースし、システム構成を抽出する。このシステム構成には、本番環境の組織のルートCA証明書が含まれている。これらのシステム構成をそのままステージング環境に適用すると、システム構成のトランザクションは失敗する。これは、ステージング環境のブロックチェーンノードが、ダミーのデジタル証明書と秘密鍵を使用しているためである。検証に合格するために、実装例では、システム構成のルートCA証明書をステージング環境用のダミー証明書に置き換える。その後、システム構成のトランザクションを作成し、それをステージング環境に送信する。トランザクションがコミットされると、ステージング環境はデジタル証明書を除き、本番環境と同じシステム構成になる。
次に、実施例では、ステージング環境で状態データベースを再作成する。状態データベースのデータベースファイルには、キーバリューの状態のセットが含まれている。本明細書に記載の例示的な実装は、データベースファイルをパージし、最新の状態を抽出する。範囲内のテストタイプは現在の状態のみを必要とするため、インデックス情報やトランザクション履歴などの他のデータは廃棄される。抽出された状態をロードするために、例示の実装では、状態のリストを含むトランザクション要求メッセージを作成し、ステージング環境に送信する。トランザクションがコミットされると、ステージング環境は本番環境と同じ状態になる。
本番環境からステージング環境にブロックデータがコピーされないため、ブロックデータを利用したテストの種類によっては利用できない場合がある。例えば、ブロックデータの取引履歴やデジタル署名をチェックする監査機能は対象外となる。このようなテストタイプを廃棄するのではなく、実装例では大多数のテストケースを容易にし、ステージング環境を効率的に構築している。
図1は、例示の実施形態による、ブロックチェーンシステムの例示のシステムアーキテクチャを示す。
システム100は、本番環境101と、ステージング環境102と、テストデータ管理ツール104とを有する。本番環境101は、ブロックチェーンノード(複数可)103(P1)~(P3)を有する。ステージング環境102は、ブロックチェーンノード103(S1)-(S3)を有する。すべてのコンポーネントはネットワーク105で接続されている。テストデータ管理ツール104は、ネットワーク105を介して、本番環境101およびステージング環境102のブロックチェーンノード(複数)103にアクセスする。実施例では、ブロックチェーンノード103は、異なる組織によって所有されている。
本番環境101は、業務に使用される。一方、ステージング環境102は、本番環境101に成果物を展開する前のテストに使用される。
図2は、例示的な実装による、ブロックチェーンノード103の例示的な物理的構成を示す。ブロックチェーンノード103は、メモリ201、ローカルストレージ202、通信インターフェース(複数可)203、プロセッサ(複数可)204、入出力(I/O)デバイス(複数可)205を含む。ローカルストレージ202は、オペレーティングシステム206、ブロックチェーンプログラム207、台帳208、スマートコントラクト(複数可)209、デジタル証明書ストア210および秘密鍵ストア211を含む。台帳208は、ブロック(複数)212、状態データベース213、およびプライベート状態データベース214を有する。プロセッサ(複数可)204は、Central Processing Unit(複数可)(CPU)などの物理的なハードウェアの形態、または所望の実装に応じたハードウェアおよびソフトウェアプロセッサの任意の組み合わせであることができる。
ブロックチェーンプログラム207は、ブロックチェーンシステムのインフラを提供するプラットフォームソフトウェアである。スマートコントラクト(複数)209は、ブロックチェーンシステム内での取引の実行を要求するブロックチェーンアプリケーションプログラムである。
要求は、ブロックチェーンプログラム207によって処理される。ブロックチェーンプログラム207がトランザクションを検証するとき、デジタル証明書ストア210のデジタル証明書と、秘密鍵ストア211の秘密鍵をそれぞれ使用する。検証の後、ブロックチェーンプログラム207は、ブロック(複数可)212にトランザクションを格納する。また、状態データベース213は、ブロック(複数可)212に格納されたトランザクションに含まれるすべての鍵の最新の値を表すように更新される。ブロックチェーンシステムのシステム構成は、ブロックデータとして格納される。システム構成をアップグレードする際には、システム構成トランザクションが実行され、アップグレードされた構成がブロック212に入れられる。
ブロックチェーンシステムは、複数の組織によって運営される。各組織は、独自のブロックチェーンノード(複数可)103を有する。ブロックチェーンノード(複数可)103の構造は全組織で同じであるが、各組織のノード(複数可)は、各組織を識別するために異なる証明書と秘密鍵を持つ。また、本番環境101とステージング環境102では、証明書や秘密鍵が異なる。
場合によっては、一部の組織がそれらの間にプライベートデータを持っていることがある。指定された組織のみがプライベートデータを持つべきであり、他の組織はプライベートデータを持つべきではない。データ共有の範囲を制限するために、プライベートデータは、状態データベース213ではなく、プライベート状態データベース214に格納される。プライベート状態データベース214には、各組織のプライベートデータ領域が存在する。組織間のプライバシーポリシーに応じて、各組織のブロックチェーンノード(複数可)103は、プライベート状態データベース214に異なるデータを持つ。
図3は、例示的な実施形態による、テストデータ管理ツール104の物理的構成例を示す図である。テストデータ管理ツール104は、メモリ301、ローカルストレージ302、通信インターフェース(複数可)303、プロセッサ(複数可)304およびI/Oデバイス(複数可)305を含む。ローカルストレージ302は、オペレーティングシステム306、ブロックチェーンコマンドラインインタフェース(CLI)307、デジタル証明書ストア308、秘密鍵ストア309、およびテストデータマネージャ310を含む。プロセッサ304は、Central Processing Unit(s)(CPU)などの物理的なハードウェアの形態、または所望の実装に応じたハードウェアおよびソフトウェアプロセッサの任意の組み合わせにすることができる。
ブロックチェーンCLI307は、ブロックチェーンノード(複数可)103と対話するためのコマンドのセットを有する。ブロックチェーンCLI307は、ブロックチェーンネットワークにトランザクションを送信するとき、またはブロックチェーンネットワークにオペレーションを実行するときに使用される。
デジタル証明書ストア308には、本番環境101およびステージング環境102で使用されるデジタル証明書が格納されている。秘密鍵ストア309は、ステージング環境102で使用される秘密鍵を含む。
テストデータマネージャ310は、ステージング環境のシステム構成や状態データベースを再現するプログラムである。
本明細書で説明されるように、テストデータ管理ツール104は、図1に図示されているように、本番環境上に展開されたブロックチェーンシステムのためのステージング環境102を管理するように構成される。図4の402で図示されているようなブロックチェーンシステムのためのステージング環境を生成する要求に応答して、プロセッサ(複数可)304は、図4の403で図示されているような本番環境上で実行されているブロックチェーンシステムからデータを取得し、図4の404で図示されているような取得されたデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成し、図4の405で図示されているような取得されたデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するように構成され得る。
一例として、図4の403に図示されているように、そのようなデータは、ブロックチェーンシステムの最新のコンフィグブロックを含むことができ、プロセッサ(複数可)304は、図6(a)の603に図示されているように、最新のコンフィグブロックからシステム構成を抽出することと、図6(a)の605から606に図示されているように、抽出されたシステム構成からシステム構成トランザクションを生成することと、実行のためにステージング環境でシステム構成トランザクションを送信することとによって、得られたデータに基づいてステージング環境でブロックチェーンシステムのシステム構成を再作成するように構成することができる。
別の例として、図4の403に図示されているように、そのようなデータは、ブロックチェーンシステムの状態データベースの複数のデータベースファイルを含むこともでき、プロセッサ(複数可)304は、図7(a)の703に図示されているように、データベースファイルからブロックチェーンシステムの最新の状態を抽出することと、図7(a)の704~706に図示されているように、最新の状態でトランザクションを生成することと、図7(a)の707に図示されているように、実行のためにステージング環境にトランザクションを送信することと、によって、得られたデータに基づいてステージング環境でブロックチェーンシステムの状態データベースを再作成するように構成され得る。図7(a)の704~706に図示されているように、最新の状態を有するトランザクションを生成し、図7(a)の707に図示されているように、実行のためにトランザクションをステージング環境に送信する。図7(a)に図示されているように、プロセッサ(複数可)304は、704に図示されているように、ブロックチェーンシステムの最新の状態をステージング環境のブロックチェーンノードに配置するための要求メッセージを生成し、図7(a)の705および706に図示されているように、要求メッセージに基づいてトランザクションを生成および署名するように構成され得る。
プロセッサ(複数可)304は、図6(a)の604で図示されているように、ステージング環境のためのブロックチェーンシステムのルート証明書を置き換えるためのダミーキーを提供することによって、得られたデータに基づいて、ステージング環境のブロックチェーンシステムのシステム構成を再現するように構成することができる。例示的な実装では、ダミーキーは、所望の実装に応じて当業者に知られている任意の方法によってユーザが作成することができ、または、キージェネレータを介して生成することができる。
本明細書に記載されているいくつかの例では、対応するプライベート状態データベースを含むブロックチェーンシステムの組織の側面の一部またはすべてを複製する必要性がある。そのような例示の実装では、データは、ステージング環境でテストされている1つまたは複数の組織のプライベートデータベースからのデータベースファイルを含むことができ、プロセッサ(複数可)304は、1つまたは複数の組織のそれぞれの対応するプライベート状態データベースからデータベースファイルを取得し、図5に示されるように、ステージング環境において、1つまたは複数の組織のそれぞれと、ステージング環境における1つまたは複数の組織のそれぞれの対応するプライベート状態データベースとを、データベースファイルに基づいて再作成するように構成することができる。
図4は、例示的な実施形態による、テストデータマネージャ310の例示的なプロセスを示すフロー図である。プロセスは401で始まる。402において、テストデータマネージャ310は、ステージング環境をセットアップする要求を受信する。403にて、テストデータマネージャ310は、本番環境から最新のコンフィグブロックとデータベースファイルを取得する。この処理の詳細な手順については、図5でさらに詳しく説明する。
404で、テストデータマネージャ310は、ステージング環境のシステム構成を再作成する。このプロセスの詳細な手順は、図6(a)~図6(c)でさらに詳細に説明する。405において、テストデータマネージャ310は、ステージング環境における状態データベースを再作成する。このプロセスの詳細な手順は、図7でさらに詳細に説明される。406で、テストデータマネージャ310は、処理を終了する。
図5は、例示的な実施形態による、本番環境からデータを取得するためのフロー図である。具体的には、図5は、図4の処理例403を示すフロー図である。403でのフローは、本番環境101からテストデータ管理ツール104にデータを取得する。501では、テストデータマネージャ310がフローを開始する。502にて、テストデータ管理者310は、本番環境101をメンテナンスモードに変更するための要求メッセージを送信する。要求メッセージは、本番環境101のブロックチェーンノード(複数可)103に送信される。
503において、テストデータマネージャ310は、本番環境101のブロックチェーンノード(複数可)103から応答メッセージを受信する。応答メッセージは、本番環境101がメンテナンスモードに変更されたことを示している。メンテナンスモードの間、本番環境101は新しいトランザクションを受信しない。
504で、テストデータマネージャ310は、ブロックチェーンCLI307の「フェッチブロック」コマンドを呼び出す。このコマンドは、コンフィグブロックを取得するオプション付きで実行される。このコマンドは、本番環境101のブロックチェーンノード(複数可)103に送信される。ブロックチェーンノード(複数可)が、コンフィグブロックのオプションを持つフェッチコマンドを受信すると、ブロックチェーンノード(複数可)は、環境内の最新のコンフィグブロックを返す。
505で、テストデータマネージャ310は、ブロックチェーンCLI307からの応答を受信し、コンフィグブロックのファイルを取得する。返されたコンフィグブロックには、本番環境101のシステム構成が含まれている。
506で、テストデータマネージャ310は、状態データベース213のデータベースファイルの転送を要求する。テストデータマネージャ310は、オペレーティングシステム306のリモートコピーコマンドを呼び出す。リモートコピーコマンドは、状態データベース213のデータベースファイルを転送するための引数を伴って実行される。コピーコマンドは、本番環境101のブロックチェーンノード(複数可)103に送信される。
507において、テストデータマネージャ310は、オペレーティングシステム306からの応答を受信し、状態データベース213のデータベースファイルを取得する。返却されたデータベースファイルには、本番環境101の状態データが含まれている。
508では、テストデータマネージャ310は、ブロックチェーンネットワークがプライベート状態データベース214を使用しているかどうかをチェックする。説明したように、プライベート状態データベース214は、各組織のプライベートデータ領域である。組織間のプライバシーポリシーによれば、各組織のブロックチェーンノード(複数可)103は、プライベート状態データベース214に異なるデータを有している。ステージング環境102で同じプライベートデータを再現するためには、プライベート状態データベース214のデータベースファイルを、組織ごとに本番環境101から転送する必要がある。プライベート状態データベース214を使用しない場合(No)、処理は509に進み、プライベート状態データベース214のための処理を実行する必要はない。
プライベート状態データベース214を使用する場合(Yes)、処理は511に進む。511~514の処理は、プライベート状態データベース214のデータベースファイルを取得する処理である。これらの追加処理により、本番環境101と同じプライベートデータを持つステージング環境102を作成することが可能となる。
509において、テストデータマネージャ310は、本番環境101を通常モードに変更するための要求メッセージを送信する。この要求メッセージは、本番環境101内のブロックチェーンノード(複数可)103に送信される。510において、テストデータマネージャ310は、本番環境101内のブロックチェーンノード(複数可)103から応答メッセージを受信する。応答メッセージは、本番環境101が通常モードに変更されたことを示している。通常モードへの変更後、本番環境101は、新たなトランザクションを受信し、実行する。
511において、テストデータマネージャ310は、プライベート状態データベース214のデータベースファイルが全ての組織から転送されたかどうかをチェックする。いずれかの組織が残っていれば(Yes)、処理は512に進み、そうでなければ(No)、処理は509に進む。
512で、テストデータマネージャ310は、待機リストから組織を選択する。513で、テストデータマネージャ310は、512での処理で選択した組織が所有するプライベート状態データベース214のデータベースファイルの転送を要求する。テストデータマネージャ310は、オペレーティングシステム306のリモートコピーコマンドを呼び出す。リモートコピーコマンドは、プライベート状態データベース214のデータベースファイルを転送するための引数を伴って実行される。コピーコマンドは、本番環境101において指定された組織が所有するブロックチェーンノード(複数可)103に送信される。
514において、テストデータマネージャ310は、オペレーティングシステム306からの応答を受信し、指定された組織が所有するプライベート状態データベース214のデータベースファイルを取得する。返却されたデータベースファイルには、本番環境101のプライベート状態データが含まれている。515において、テストデータマネージャ310は、処理を終了する。
図6(a)~図6(c)は、例示的な実施形態に従って、システム構成を再作成するための側面を示す。具体的には、図6(a)は、図4のプロセス404の一例を示すフロー図である。404の処理では、ステージング環境102のシステム構成を再作成する。テストデータマネージャ310は、601でこの処理を開始する。602において、テストデータマネージャ310は、本番環境101からフェッチされた最新のコンフィグブロックを読み込む。
コンフィグブロックのデータ構造の例を図6(b)に示す。図6(b)に示すように、コンフィグブロックは、ヘッダ部とデータ部とを有する。ヘッダ部には、ブロック番号、ブロックの前ハッシュ、ブロックのデータハッシュなどのメタデータが格納されている。データ部の下には、署名とconfigがある。署名欄には、このコンフィグレーションブロックの作成者が設定したデジタル署名が記載されている。コンフィグセクションの下には、バージョンと関連する値がある。値には、コンセンサス・タイプ、バッチ・サイズ、バッチ・タイムアウトなどの実際のシステム構成が含まれる。root certsフィールドには、ブロックチェーンネットワークに参加している組織のルートCA証明書がある。
603で、テストデータマネージャ310は、コンフィグブロックから設定部を抽出する。
604で、テストデータマネージャ310は、構成セクションのルートCA証明書(複数可)をステージング環境用のものに置き換える。ステージング環境用のルートCA証明書は、デジタル証明書ストア308から取得される。
605で、テストデータマネージャ310は、ブロックチェーンCLI307の「create transaction」コマンドを呼び出す。このコマンドは、構成トランザクションのデータフォーマットを割り当て、604での処理で変更された構成データを読み取るための引数を伴って実行される。このコマンドが実行されると、新しいシステム構成トランザクションが作成される。
606で、テストデータマネージャ310は、ブロックチェーンCLI307の「sign transaction」コマンドを呼び出す。このコマンドは、605での処理で作成された構成トランザクションを読み込むための引数で実行される。コマンドが実行されると、システム構成トランザクションにデジタル署名(複数可)が付けられる。デジタル署名は、ステージング環境102のダミー秘密鍵で署名される。
署名されたシステム構成トランザクションのデータ構造の例を図6(c)に示す。図6(c)に示されるように、システム構成トランザクションは、ヘッダ部とペイロード部を含む。ヘッダー部は、タイプ、トランザクションID、タイムスタンプなどのメタデータを含む。ペイロード部は、シグネチャとコンフィグを有する。署名フィールドには、606のプロセスから組み込まれたデジタル署名がある。configフィールドには、前のステップで変更されたシステム構成がある。
607で、テストデータマネージャ310は、ブロックチェーンCLI307の「send transaction」コマンドを呼び出す。このコマンドは、606での処理で署名されたシステム構成トランザクションを読み取るための引数とともに実行される。このコマンドは、ステージング環境102のブロックチェーンノード(複数可)103に送信される。ブロックチェーンノード(複数可)がトランザクションを受信すると、ブロックチェーンノード(複数可)は、トランザクションを実行し、構成をブロックにコミットする。その後、ブロックチェーンノード(複数可)103は、ブロック内の更新された構成に従って動作する。
608で、テストデータマネージャ310は、ブロックチェーンCLI307から応答を受信する。応答メッセージは、投稿されたシステム構成トランザクションがステージング環境102のブロックチェーンノード(複数可)103にコミットされることを示す。
609で、テストデータマネージャ310は、処理を終了する。
図7(a)~図7(c)は、実施例による、状態データベースを再作成するための態様を示す図である。具体的には、図7(a)は、図4の405での処理の一例を示すフロー図である。処理405は、ステージング環境102の状態データベース213を再作成する。テストデータマネージャ310は、701での処理を開始する。
702において、テストデータマネージャ310は、507でのプロセスから取得された、本番環境101から転送された状態データベース213のデータベースファイルを読み出す。
703において、テストデータマネージャ310は、データベースファイル内の状態データ801を抽出する。抽出されたデータは、複数のキーと値のセットを持つ。図8に示されるようなインデックス情報802やトランザクション履歴803などの他のデータは、テストタイプの範囲では現在の状態のみが必要とされるため、破棄される。
図8の状態データ801のデータ構造の一例を図7(b)に示す。図7(b)に示されるように、状態部は、contractIDと状態部とを有する。状態部は、複数のキーと値のセットを有する。キーと値データは、ブロックチェーンネットワークにおける最新の状態を示している。
704で、テストデータマネージャ310は、抽出された状態をステージング環境102のブロックチェーンノード(複数可)103に置くためのリクエストメッセージを作成する。リクエストメッセージのデータ構造の例は以下の通りである。リクエストメッセージは、smartContractID、functionName、argsを有する。ブロックチェーンネットワークでは、スマートコントラクト(複数可)209は、状態を置くために使用される。リクエストメッセージでは、smartContractIDフィールドに'my Asset'というスマートコントラクト209を、functionNameフィールドに'loadStatesToStagingEnv'という関数を割り当てている。関数'loadStatesToStagingEnv'は、引数として状態の配列を受け取る。703の処理で抽出された複数の状態のセットを置くために、リクエストメッセージは、それらの状態のセットをargsフィールドに割り当てる。図7(c)に示すように、配列の最初の項目にキーが置かれ、それに応じて値が関連付けられる。
705で、テストデータマネージャ310は、ブロックチェーンCLI307の「create transaction」コマンドを呼び出す。このコマンドは、通常のトランザクションのデータフォーマットを割り当て、704の処理で作成されたリクエストメッセージを読み取るための引数を伴って実行される。このコマンドが実行されると、新しいトランザクションが作成される。
706において、テストデータマネージャ310は、ブロックチェーンCLI307の「sign transaction」コマンドを呼び出す。このコマンドは、705での処理で作成されたトランザクションを読み取るという引数で実行される。コマンドが実行されると、トランザクションにデジタル署名(複数可)が付けられる。デジタル署名はステージング環境102のダミー秘密鍵で署名される。
707で、テストデータマネージャ310は、ブロックチェーンCLI307の「send transaction」コマンドを呼び出す。このコマンドは、706での処理で署名されたトランザクションを読み取るための引数とともに実行される。このコマンドは、ステージング環境102のブロックチェーンノード(複数可)103に送信される。ブロックチェーンノード(複数可)がトランザクションを受信すると、ブロックチェーンノード(複数可)は、トランザクションを実行し、トランザクションをブロックにコミットする。ブロックをコミットしている間、状態データベースも更新され、トランザクションによって生じた変化を反映する。この場合、トランザクションには、本番環境101から抽出した複数のキーバリューのセットを置くという要求が含まれている。ブロックをコミットした後、ステージング環境102のブロックチェーンノード(複数可)103は、本番環境101と同じ状態になる。
708で、テストデータマネージャ310は、ブロックチェーンCLI307からの応答を受信する。応答メッセージは、投稿されたトランザクションがステージング環境102内のブロックチェーンノード(複数可)103にコミットされたことを示している。
709で、テストデータマネージャ310は、処理を終了する。
図8は、例示的な実装による、状態データベース213のデータ構造の例を示す。状態データベース213は、状態データ801、インデックス802、トランザクション履歴803を有する。
詳細な説明のいくつかの部分は,コンピュータ内の操作のアルゴリズムおよび記号的表現の観点から示されている。これらのアルゴリズムの説明と記号的な表現は、データ処理技術の当業者が、その技術革新の本質を当業者に伝えるために使用する手段である。アルゴリズムとは、所望の最終状態や結果に至るまでの一連の定義されたステップのことである。実装例では、実行されるステップは、有形の結果を得るために有形の量を物理的に操作する必要がある。
特に明記しない限り、議論から明らかなように、本明細書を通じて、「処理」、「コンピューティング」、「計算」、「決定」、「表示」などの用語を利用した議論は、コンピュータシステムのレジスタやメモリ内の物理的(電子的)量として表されたデータを、コンピュータシステムのメモリやレジスタ、または他の情報記憶装置、送信装置、表示装置内の物理的量として同様に表された他のデータに操作および変換する、コンピュータシステムまたは他の情報処理装置の動作およびプロセスを含むことができることが理解される。
例示的な実施例は、本明細書の操作を実行するための装置に関するものでもある。この装置は、必要な目的のために特別に構築されていてもよいし、1つまたは複数のコンピュータプログラムによって選択的に起動または再構成される1つまたは複数の汎用コンピュータを含んでいてもよい。このようなコンピュータプログラムは、コンピュータ読取可能な記憶媒体やコンピュータ読取可能な信号媒体などのコンピュータ読取可能な媒体に格納されていてもよい。コンピュータ読み取り可能な記憶媒体は、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、ソリッドステートデバイスおよびドライブなどの有形媒体、または電子情報を格納するのに適した他のタイプの有形または非一時的な媒体を含むことができるが、これらに限定されるものではない。コンピュータ読み取り可能な信号媒体は、搬送波などの媒体を含んでもよい。本明細書に示されたアルゴリズムおよび表示は、特定のコンピュータまたは他の装置に本質的に関係しない。コンピュータプログラムは、所望の実装の動作を実行する命令を含む純粋なソフトウェアの実装を含むことができる。
本明細書の実施例に従ったプログラムやモジュールを用いて様々な汎用システムを使用することができるが、所望の方法ステップを実行するために、より特化した装置を構築することが好都合である場合もある。さらに、本実施例は、任意の特定のプログラミング言語を参照して記述されていない。様々なプログラミング言語が、本明細書に記載された例示の実装の教示を実施するために使用され得ることが理解されるであろう。プログラミング言語の命令は、1つまたは複数の処理装置、例えば、中央処理装置(CPU)、プロセッサ、またはコントローラによって実行されてもよい。
当技術分野で知られているように、上述の操作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって行うことができる。例示的な実装の様々な側面は、回路および論理デバイス(ハードウェア)を使用して実装されてもよいが、他の側面は、プロセッサによって実行された場合に、プロセッサに本願発明の実装を実行する方法を実行させる、機械読み取り可能な媒体に格納された命令(ソフトウェア)を使用して実装されてもよい。さらに、本願発明のいくつかの例示的な実装は、ハードウェアのみで実行されてもよいが、他の例示的な実装は、ソフトウェアのみで実行されてもよい。さらに、説明した様々な機能は、単一のユニットで実行することができ、あるいは、任意の数の方法で多数のコンポーネントに分散させることができる。ソフトウェアで実行する場合、方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行することができる。必要に応じて、命令は圧縮および/または暗号化された形式で媒体に保存することができる。
さらに、本願の他の実施例は、本願明細書を考慮し、本願の教示を実践することから、当業者に明らかになるであろう。記載された例示的実施例の様々な側面および/またはコンポーネントは、単独でまたは任意の組み合わせで使用することができる。本願の真の範囲と精神は、以下の特許請求の範囲によって示されており、本明細書および例示の実施例は、例としてのみ考慮されることが意図されている。

Claims (11)

  1. 本番環境上に展開されたブロックチェーンシステムのステージング環境を管理する方法であって、ブロックチェーンシステムのステージング環境を生成する要求に応答するステップと、本番環境上で実行されているブロックチェーンシステムからデータを取得するステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成するステップと、システム構成内のルート証明書をステージング環境用のダミーのルート証明書に置き換えるステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するステップと、を含む方法。
  2. 請求項1に記載の方法において、
    前記データは、前記ブロックチェーンシステムの最新のコンフィグブロックを含み、前記取得したデータに基づいて、前記ステージング環境において前記ブロックチェーンシステムのシステム構成を再作成することは、前記最新のコンフィグブロックからシステム構成を抽出することと、前記抽出されたシステム構成からシステム構成トランザクションを生成することと、前記実行のために前記ステージング環境において前記システム構成トランザクションを送信することと、を含む方法である。
  3. 請求項1に記載の方法において、
    前記データは、ブロックチェーンシステムの状態データベースの複数のデータベースファイルを含み、得られたデータに基づいてステージング環境でブロックチェーンシステムの状態データベースを再作成することは、データベースファイルからブロックチェーンシステムの最新の状態を抽出することと、最新の状態からなるトランザクションを生成することと、実行のためにトランザクションをステージング環境に送信することと、を含む方法。
  4. 請求項3に記載の方法において、
    ブロックチェーンシステムの最新の状態をステージング環境のブロックチェーンノードに配置するための要求メッセージを生成するステップと、要求メッセージに基づいてトランザクションを生成および署名するステップと、をさらに含む方法。
  5. 請求項1に記載の方法において、
    前記データは、1つまたは複数の組織からのデータベースファイルを含み、前記方法は、前記1つまたは複数の組織のそれぞれの対応するプライベート状態データベースから前記データベースファイルを検索するステップと、前記データベースファイルに基づいて、前記ステージング環境において、前記1つまたは複数の組織のそれぞれと、前記1つまたは複数の組織のそれぞれの対応するプライベート状態データベースとを再作成するステップと、をさらに含む方法。
  6. 本番環境上にデプロイされたブロックチェーンシステムのステージング環境を管理する処理を実行する命令を格納したコンピュータプログラムであって、ブロックチェーンシステムのステージング環境を生成する要求に応答するステップと、本番環境上で実行されているブロックチェーンシステムからデータを取得するステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムのシステム構成を再作成するステップと、システム構成のルート証明書をステージング環境用のダミーのルート証明書に置き換えるステップと、取得したデータに基づいて、ステージング環境におけるブロックチェーンシステムの状態データベースを再作成するステップと、を含むコンピュータプログラム。
  7. 請求項6に記載のコンピュータプログラムにおいて、
    前記データは、前記ブロックチェーンシステムの最新のコンフィグブロックを含み、前記取得されたデータに基づいて、前記ステージング環境において前記ブロックチェーンシステムのシステム構成を再作成することは、前記最新のコンフィグブロックからシステム構成を抽出することと、前記抽出されたシステム構成からシステム構成トランザクションを生成することと、前記実行のために前記ステージング環境において前記システム構成トランザクションを送信することと、を含むコンピュータプログラム。
  8. 請求項6に記載のコンピュータプログラムにおいて、
    前記データは、前記ブロックチェーンシステムの状態データベースの複数のデータベースファイルからなり、取得したデータに基づいて前記ステージング環境で前記ブロックチェーンシステムの状態データベースを再作成することは、前記データベースファイルから前記ブロックチェーンシステムの最新の状態を抽出することと、前記最新の状態からなるトランザクションを生成することと、前記トランザクションを実行のために前記ステージング環境に送信することと、を含むコンピュータプログラム。
  9. 請求項8に記載のコンピュータプログラムにおいて、
    前記命令は、前記ブロックチェーンシステムの最新の状態を前記ステージング環境のブロックチェーンノードに配置するための要求メッセージを生成することと、前記要求メッセージに基づいてトランザクションを生成して署名することと、をさらに含むコンピュータプログラム。
  10. 請求項6に記載のコンピュータプログラムにおいて、
    前記データは、1つまたは複数の組織からのデータベースファイルを含み、前記命令は、前記1つまたは複数の組織のそれぞれの対応するプライベート状態データベースから前記データベースファイルを検索するステップと、前記データベースファイルに基づいて、前記ステージング環境において、前記1つまたは複数の組織のそれぞれと、前記1つまたは複数の組織のそれぞれの対応するプライベート状態データベースとを再作成するステップと、をさらに含むコンピュータプログラム。
  11. 本番環境上に展開されたブロックチェーンシステムのステージング環境を管理するように構成された装置であって、ブロックチェーンシステムのステージング環境を生成する要求に応答して、本番環境上で実行されているブロックチェーンシステムからデータを取得し、取得したデータに基づいてステージング環境におけるブロックチェーンシステムのシステム構成を再作成し、システム構成内のルート証明書をステージング環境用のダミーのルート証明書で置き換え、取得したデータに基づいてステージング環境におけるブロックチェーンシステムの状態データベースを再作成するように構成されたプロセッサを備える。
JP2022512815A 2019-12-10 2019-12-10 ブロックチェーンシステムのテスト環境を構築する方法と装置 Active JP7266147B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/060588 WO2021116728A1 (en) 2019-12-10 2019-12-10 Method and apparatus creating test environments for blockchain systems

Publications (2)

Publication Number Publication Date
JP2022546378A true JP2022546378A (ja) 2022-11-04
JP7266147B2 JP7266147B2 (ja) 2023-04-27

Family

ID=76329778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022512815A Active JP7266147B2 (ja) 2019-12-10 2019-12-10 ブロックチェーンシステムのテスト環境を構築する方法と装置

Country Status (4)

Country Link
US (1) US11836071B2 (ja)
EP (1) EP4073655A4 (ja)
JP (1) JP7266147B2 (ja)
WO (1) WO2021116728A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220237111A1 (en) * 2021-01-23 2022-07-28 Dido Solutions, Inc. Distributed immutable data object testing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019040886A1 (en) * 2017-08-24 2019-02-28 Alibaba Group Holding Limited METHOD AND APPARATUS FOR SELECTING CONSENSUS NODE AND SERVER
WO2019072288A2 (en) * 2018-11-30 2019-04-18 Alibaba Group Holding Limited TEST PLATFORM FOR BLOCK CHAIN NETWORKS
US20190149418A1 (en) * 2017-11-16 2019-05-16 International Business Machines Corporation Clustered application management with a blockchain

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9455838B2 (en) 2014-12-10 2016-09-27 Red Hat, Inc. Creating a digital certificate for a service using a local certificate authority having temporary signing authority
JP6550353B2 (ja) 2016-07-21 2019-07-24 株式会社日立製作所 署名検証システム、署名検証方法及びプログラム
US10795792B2 (en) 2018-02-02 2020-10-06 Storage Engine, Inc. Methods, apparatuses and systems for cloud-based disaster recovery test
CN108628745A (zh) 2018-05-03 2018-10-09 深圳市牛鼎丰科技有限公司 应用程序的跟踪记录系统、方法、计算机设备和存储介质
US10671315B2 (en) * 2018-08-17 2020-06-02 Bank Of America Corporation Blockchain architecture for selective data restore and migration
US10671515B1 (en) * 2018-11-30 2020-06-02 Bank Of America Corporation Recording and playback of electronic event sequence in a distributed ledger system
US11431486B2 (en) * 2019-05-22 2022-08-30 Salesforce.Com, Inc. System or method to implement consensus on read on distributed ledger/blockchain
CN112256577A (zh) * 2020-10-22 2021-01-22 中国平安人寿保险股份有限公司 配置文件差异校验方法、装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019040886A1 (en) * 2017-08-24 2019-02-28 Alibaba Group Holding Limited METHOD AND APPARATUS FOR SELECTING CONSENSUS NODE AND SERVER
US20190149418A1 (en) * 2017-11-16 2019-05-16 International Business Machines Corporation Clustered application management with a blockchain
WO2019072288A2 (en) * 2018-11-30 2019-04-18 Alibaba Group Holding Limited TEST PLATFORM FOR BLOCK CHAIN NETWORKS

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小野 修司 SHUJI ONO: "作れる・試せる! Visual Web Developer Expressを使ったWebアプリケーシ", WINDOWS DEVELOPER MAGAZINE 第12巻 第9号, vol. 第12巻, JPN6023005387, 1 July 2006 (2006-07-01), JP, pages 72 - 81, ISSN: 0004989929 *

Also Published As

Publication number Publication date
EP4073655A1 (en) 2022-10-19
WO2021116728A1 (en) 2021-06-17
US20220334953A1 (en) 2022-10-20
US11836071B2 (en) 2023-12-05
EP4073655A4 (en) 2023-09-27
JP7266147B2 (ja) 2023-04-27

Similar Documents

Publication Publication Date Title
US11907254B2 (en) Provisioning and managing replicated data instances
CN110870253B (zh) 使用分布式分类账管理公共软件组件生态系统的系统和方法
US10430204B2 (en) System and method for cloud provisioning and application deployment
US20220114150A1 (en) Blockchain implemented data migration audit trail
US11874827B2 (en) System and method for automatic, rapid, and auditable updates of digital contracts
TW202023224A (zh) 事件驅動的區塊鏈工作流程處理
TW202021311A (zh) 區塊鏈網路中的功能即服務(faas)平臺
BRPI1014734B1 (pt) método implementado por computador para controlar aspectos de configuração de um ambiente de dados e para a manutenção de um ambiente de dados, e, sistema para controlar um ambiente de dados
US20160048703A1 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
US11627122B2 (en) Inter-system linking method and node
CN116569517A (zh) 用于发布操作系统的基于区块链的系统和方法
US10809992B1 (en) Method and apparatus for continuous delivery of permissioned blockchain application
JP7266147B2 (ja) ブロックチェーンシステムのテスト環境を構築する方法と装置
JP7319461B2 (ja) コンソーシアムブロックチェーンを用いてプライベートデータを保持する方法および装置
Sabharwal et al. Automation through Chef Opscode: a hands-on approach to Chef
AU2021268828B2 (en) Secure data replication in distributed data storage environments
US11593498B2 (en) Distribution of user specific data elements in a replication environment
Pérez Carazo Evaluación y despliegue de tecnologfas Big Data sobre un NIDS
Demidov et al. CONFIGURING THE STRUCTURE OF THE SERVERLESS SYSTEM FOR EFFICIENT DATA COLLECTION
Garnica et al. Backup and Upgrade
SRIVASTAVA Microservices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230313

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R150 Certificate of patent or registration of utility model

Ref document number: 7266147

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150