JP6727435B2 - ブロックチェーンネットワーク用テストプラットフォーム - Google Patents

ブロックチェーンネットワーク用テストプラットフォーム Download PDF

Info

Publication number
JP6727435B2
JP6727435B2 JP2019521722A JP2019521722A JP6727435B2 JP 6727435 B2 JP6727435 B2 JP 6727435B2 JP 2019521722 A JP2019521722 A JP 2019521722A JP 2019521722 A JP2019521722 A JP 2019521722A JP 6727435 B2 JP6727435 B2 JP 6727435B2
Authority
JP
Japan
Prior art keywords
test
blockchain
production
container
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019521722A
Other languages
English (en)
Other versions
JP2020502621A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020502621A publication Critical patent/JP2020502621A/ja
Application granted granted Critical
Publication of JP6727435B2 publication Critical patent/JP6727435B2/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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

コンセンサスネットワークおよび/またはブロックチェーンネットワークとも呼ばれることのある分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能にデータを記憶させることを可能にするものである。DLSは、特定のユーザ事例(例えば暗号通貨)に関係なく一般にブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークの例示的タイプとしては、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークがあり得る。パブリックブロックチェーンネットワークはオープンであり、あらゆるエンティティがDLSを使用し、コンセンサスプロセスに参加することができるようになっている。プライベートブロックチェーンネットワークは、特定のエンティティのために設けられ、この特定のエンティティが、読出し許可および書込み許可を中央制御する。コンソーシアムブロックチェーンネットワークは、選択された1群のエンティティのために設けられ、これらのエンティティがコンセンサスプロセスを制御し、コンソーシアムブロックチェーンネットワークはまた、アクセス制御層(access control layer)を含む。
ブロックチェーンネットワーク内で実行されるアプリケーション(これにはスマートコントラクトを含むことができる)を作成することができる。統合開発環境(IDE)があれば、アプリケーションの開発が可能である。例示的IDEとしては、Zug、SwitzerlandのEthereum Foundationによって提供される、Solidityでスマートコントラクトを作成するためのRemix IDEがある。場合によっては、IDEにより、例えばデバッグを目的としてスマートコントラクトをテストすることが可能である。しかし、テスト中、動作がプロダクションブロックチェーン上で実行される。この結果、テスト環境が不安定になり、プロダクション環境が汚染される。
本開示の実施形態は、ブロックチェーンアプリケーションをテストするための、コンピュータにより実施される方法を含む。より詳細には、本開示の実施形態は、プロダクションブロックチェーンに影響を及ぼさずにアプリケーションをテストすることを可能にする、ブロックチェーンネットワーク用テストプラットフォームを対象とする。
いくつかの実施形態では、アクションは、プロダクションブロックチェーンへの読出し専用アクセスを有するテストブロックチェーンコンテナをインスタンス化すること、プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意することであって、テストブロックチェーンコンテナがテストブロックチェーンへの読出しおよび書込みアクセスを有する、用意すること、およびブロックチェーンアプリケーションのテストを実行することであって、テストの結果、テストブロックチェーンに、各テストブロックが少なくとも部分的にテストデータを含むテストブロックのセットが順次付加され、テストの実行中にプロダクションブロックチェーンにプロダクションブロックが付加される、実行することを含む。他の実施形態は、コンピュータ記憶デバイス上に符号化された方法のアクションを実施するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
これらのまた他の実施形態は、それぞれが次の特徴のうちの1つまたは複数をオプションで含んでよい:プロダクションブロックチェーンコンテナが、用意され、プロダクションブロックチェーンへの読出しおよび書込みアクセスを有し、テストブロックチェーンへのアクセスをもたない;ブロックチェーンネットワークに参加しているサーバシステム内で、プロダクションブロックチェーンコンテナがテストブロックチェーンコンテナと並列に用意される;テスト中に、複数のノードが、テストブロックチェーンにテストブロックを付加するためのコンセンサスプロトコルを実行し、複数のノードの各ノードが、テストブロックチェーンのコピーを維持する;アクションは、テスト中にテストブロックチェーンに付加されたテストブロックを削除すること、および第2のテストを実行し、その結果、テストブロックチェーンにテストブロックの第2のセットが順次付加されること、をさらに含む;アクションは、テストの終了に応答して、テストに参加している複数のノードの各ノードについて、テストブロックチェーンコンテナを終了させることをさらに含む。
本開示は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると本明細書において提供される方法の実施形態による動作を1つまたは複数のプロセッサに実施させる命令がその上に記憶された、1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本開示は、本明細書において提供される方法を実施するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると本明細書において提供される方法の実施形態による動作を1つまたは複数のプロセッサに実施させる命令がその上に記憶された、1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
本開示による方法が、本明細書において説明する態様および特徴のどんな組合せも含み得ることが、理解されよう。すなわち、本開示による方法は、本明細書において具体的に説明する態様および特徴の組合せに限定されるのではなく、提供される態様および特徴のどんな組合せも含む。
本開示の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明内に記載される。本開示の他の特徴および利点が、説明および図面から、また特許請求の範囲から明らかとなろう。
本開示の実施形態を実行するために使用することのできる例示的環境を示す図である。 本開示の実施形態による例示的テストプラットフォームを示す図である。 例示的プロダクションブロックチェーン、および本開示の実施形態による例示的テストブロックチェーンを概略的に示す図である。 本開示の実施形態に従って実行することのできる例示的プロセスを示す図である。
さまざまな図面中の同様の参照符号は、同様の要素を示す。
本開示の実施形態は、ブロックチェーンアプリケーションをテストするための、コンピュータにより実施される方法を含む。より詳細には、本開示の実施形態は、プロダクションブロックチェーンに影響を及ぼさずにアプリケーションをテストすることを可能にする、ブロックチェーンネットワーク用テストプラットフォームを対象とする。いくつかの実施形態では、アクションは、プロダクションブロックチェーンへの読出し専用アクセスを有するテストブロックチェーンコンテナをインスタンス化すること、プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意することであって、テストブロックチェーンコンテナがテストブロックチェーンへの読出しおよび書込みアクセスを有する、用意すること、およびブロックチェーンアプリケーションのテストを実行することであって、テストの結果、テストブロックチェーンに、各テストブロックが少なくとも部分的にテストデータを含むテストブロックのセットが順次付加され、テストの実行中にプロダクションブロックチェーンにプロダクションブロックが付加される、実行することを含む。
本開示の実施形態にさらなる文脈を提供すべく、また上で紹介したように、コンセンサスネットワーク(例えばピアツーピアノードから成る)およびブロックチェーンネットワークとも呼ばれることのある分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能にトランザクションを行い、データを記憶させることを可能にするものである。ブロックチェーンという用語は一般に、ビットコイン暗号通貨ネットワークと関連付けられるが、ブロックチェーンは、本明細書では、特定の使用事例に関係なく一般にDLSのことを指すのに使用される。上で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして設けられ得る。
パブリックブロックチェーンネットワークでは、コンセンサスプロセスがコンセンサスネットワークのノードによって制御される。例えば、数百のエンティティが、数千のエンティティが、数百万のエンティティでさえもが、パブリックブロックチェーンネットワークに協力することができ、その各々が、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを運営する。したがって、パブリックブロックチェーンネットワークは、参加エンティティに関するパブリックなネットワークと見なすことができる。いくつかの例では、エンティティ(ノード)の大多数がどのブロックにも、ブロックが有効になりブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加されるように、サインしなければならない。例示的パブリックブロックチェーンネットワークとしては、ビットコインネットワークがあり、それはピアツーピア支払い(peer-to-peer payment)ネットワークである。ビットコインネットワークは、ブロックチェーンと呼ばれる分散型台帳を利用する。しかし、上記したように、ブロックチェーンという用語は、ビットコインネットワークに関係なく一般に分散型台帳のことを指すのに使用される。
一般には、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内の全てのノードと共有され、またグローバルブロックチェーン(global blockchain)内に記憶される。グローバルブロックチェーンとは、全てのノードにわたって複製されるブロックチェーンである。すなわち、全てのノードは、グローバルブロックチェーンに対して完全なステートコンセンサス状態(perfect state consensus)にある。コンセンサス(例えばブロックチェーンにブロックを追加するという合意)を得るために、パブリックブロックチェーンネットワーク内でコンセンサスプロトコルが実施される。例示的コンセンサスプロトコルとしては、限定はしないが、ビットコインネットワーク内で実施されるプルーフオブワーク(POW)がある。
一般には、プライベートブロックチェーンネットワークは、特定のエンティティのために設けられ、この特定のエンティティが、読出し許可および書込み許可を中央制御する。エンティティは、どのノードがブロックチェーンネットワークに参加できるかを制御する。それゆえ、プライベートブロックチェーンネットワークは、一般に許可型ネットワーク(permissioned network)と呼ばれ、これは、誰がネットワークへの参加を許されるかに、またそれらの参加レベル(例えば、ある特定のトランザクションのみへの参加)に、制限を課すものである。さまざまなタイプのアクセス制御メカニズムを使用することができる(例えば、既存の参加者が新たなエンティティの追加に関して投票する、規制当局が受入れを制御することができる)。
一般には、コンソーシアムブロックチェーンネットワークは、参加エンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスが、権限付与されたノードのセットによって制御され、1つまたは複数のノードが、それぞれに対応するエンティティ(例えば金融機関、保険会社)によって運営されている。例えば、10個のエンティティ(例えば金融機関、保険会社)から成るコンソーシアムが、コンソーシアムブロックチェーンネットワークを運営することができ、その各々が、コンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを運営する。したがって、コンソーシアムブロックチェーンネットワークは、参加エンティティに関するプライベートなネットワークと見なすことができる。いくつかの例では、各エンティティ(ノード)がどのブロックにも、ブロックが有効になりブロックチェーンに追加されるように、サインしなければならない。いくつかの例では、エンティティ(ノード)の少なくともサブセット(例えば少なくとも7のエンティティ)がどのブロックにも、ブロックが有効となりブロックチェーンに追加されるように、サインしなければならない。
本開示の実施形態について、本明細書では、参加エンティティの間でパブリックであるコンソーシアムブロックチェーンネットワークに即してさらに詳細に説明する。しかし、本開示の実施形態がどんな適切なタイプのブロックチェーンネットワークにおいても実現できることが、企図される。
本開示の実施形態について、本明細書では、上記の文脈に鑑みてさらに詳細に説明する。より詳細には、また上で紹介したように、本開示の実施形態は、プロダクションブロックチェーンに影響を及ぼさずにアプリケーションをテストすることを可能にする、ブロックチェーンネットワーク用テストプラットフォームを対象とする。
図1は、本開示の実施形態を実行するために使用することのできる例示的環境100を示す。いくつかの例では、この例示的環境100により、例えば、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することが可能である。例示的環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(例えばコンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、有線通信リンクおよび/またはワイヤレス通信リンク経由でアクセスされ得る。
図示の例では、コンピューティングシステム106、108は、それぞれが、ノードとしてコンソーシアムブロックチェーンネットワーク102に参加することの可能な任意の適切なコンピューティングシステムを含むことができる。コンピューティングデバイスの例としては、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンがある。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102と対話するための、1つまたは複数のコンピュータにより実施されるサービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティ(例えばユーザA)の、トランザクション管理システムなどのコンピュータにより実施されるサービスをホストすることができ、このトランザクション管理システムは、第1のエンティティがその、1つまたは複数の他のエンティティ(例えば他のユーザ)とのトランザクションを管理するために使用するものである。コンピューティングシステム108は、第2のエンティティ(例えばユーザB)の、トランザクション管理システムなどのコンピュータにより実施されるサービスをホストすることができ、このトランザクション管理システムは、第2のエンティティがその、1つまたは複数の他のエンティティ(例えば他のユーザ)とのトランザクションを管理するために使用するものである。図1の例では、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表されており、コンピューティングシステム106、108はそれぞれ、第1のエンティティおよび第2のエンティティのノードとなっており、それらはコンソーシアムブロックチェーンネットワーク102に参加している。
コンソーシアムブロックチェーンネットワークなどのブロックチェーンネットワークでは、アプリケーションを、開発し、テストし、ブロックチェーンネットワーク内で実行できるようにデプロイすることができる。例示的アプリケーションとしては、限定はしないが、スマートコントラクトがあり得る。スマートコントラクトは、さまざまな当事者に影響を及ぼす契約条項を有する現実世界の適法契約の、デジタル表現と説明することができる。スマートコントラクトは、この例示的文脈においては、コンソーシアムブロックチェーンネットワーク内に実装され、記憶され、コンソーシアムブロックチェーンネットワーク内で(必要に応じて)更新され、実行される。スマートコントラクトに関連する契約当事者(例えば買い手および売り手)は、コンソーシアムブロックチェーンネットワーク内のノードとして表される。
いくつかの例では、スマートコントラクトはデータを記憶することができ、このデータは、情報、事実、関連付け、残高、および契約実行のための論理を実施するのに必要となる他の任意の情報を記録するために使用することができる。スマートコントラクトは、関数から成るコンピュータ実行可能プログラムと説明することができ、この場合、スマートコントラクトのインスタンスを作成し、その中の論理を実行するために関数を呼び出すことができる。
技術的な観点からいうと、スマートコントラクトは、オブジェクトおよびオブジェクト指向クラスに基づいて実装することができる。例えば、スマートコントラクトの条項およびコンポーネントを、スマートコントラクトを実装したアプリケーションによって取り扱われるオブジェクトとして表すことができる。スマートコントラクト(またはスマートコントラクト内のオブジェクト)は、他のオブジェクト指向オブジェクトのように、別のスマートコントラクト(または同じスマートコントラクト内のオブジェクト)を呼び出すことができる。オブジェクトによって行われる呼出しは、例えば、別のクラスのオブジェクトを作成する、更新する、削除する、伝搬させるための、または別のクラスのオブジェクトとやり取りするための、呼出しとすることができる。オブジェクト間の呼出しは、関数、メソッド、アプリケーションプログラミングインターフェース(API)、または他の呼出しメカニズムとして実装することができる。例えば、第1のオブジェクトが、第2のオブジェクトを作成するための関数を呼び出すことができる。
スマートコントラクトなどのアプリケーションを開発し、テストし、ブロックチェーンネットワークにデプロイするために、統合開発環境(IDE)を使用することができる。例示的IDEとしては、Zug、SwitzerlandのEthereum Foundationによって提供される、Solidityでスマートコントラクトを作成するためのRemix IDEがある。場合によっては、IDEにより、例えばデバッグを目的としてスマートコントラクトをテストすることが可能である。しかし、テスト中、動作がプロダクションブロックチェーン上で実行される。この結果、テスト環境が不安定になり、プロダクション環境が汚染される。Remix IDEを非限定的な例として用いると、Remix IDEは、スマートコントラクトを修正および実行するためのJavaScript(登録商標)エミュレーションと、プロダクションブロックチェーンに対するWeb3 provider接続性とを提供する。いくつかの例では、プロダクションブロックチェーンは、ブロックチェーンネットワーク内の、ブロックチェーンネットワークに参加しているエンティティ間のトランザクションを記録するために使用されるライブブロックチェーンのことを指す。したがって、Remix IDE内でのテスト中にトランザクション動作が実行されるとき、動作はプロダクションブロックチェーン上で実行される。さまざまな問題の中でもとりわけこれが、テストトランザクションがプロダクションブロックチェーンを汚染する原因となっている。さらに、プロダクションブロックチェーンを模擬するブロックチェーンテスト環境は、作成し維持することが困難な場合がある。例えば、プロダクションデータを除去する、または生成し直すと、テストランごとにテスト環境全体を作成し直すことが必要になる場合がある。
これに鑑みて、本開示の実施形態は、プロダクションブロックチェーンに影響を及ぼさずにアプリケーションをテストすることを可能にする、ブロックチェーンネットワーク用テストプラットフォームを提供する。いくつかの実施形態では、また本明細書においてさらに詳細に説明するように、本開示のテストプラットフォームは、コンテナを使用して読出し/書込みアクセスを制限し、またプロダクションブロックチェーンの少なくとも一部分を含むテストブロックチェーンを用意する。本開示のテストプラットフォームは、プロダクションブロックチェーンへのテストデータの書込みを回避し、テストランとテストランとの間のテストプラットフォームの効率の良いリセットを可能にする。
図2は、本開示の実施形態による例示的テストプラットフォーム200を示す。図示の例では、テストプラットフォーム200はサーバシステム201を含み、サーバシステム201は、アドミニストレーティブツール202、プロダクションブロックチェーンコンテナ204、プロダクションブロックデータ206、テストブロックチェーンコンテナ210、およびテストブロックデータ212をホストする。単一のサーバシステム201が図示されているが、サーバシステム201が1つまたは複数のサーバリソースを表し得ることが、企図される。いくつかの例では、アドミニストレーティブツール202は、1つまたは複数のコンピュータ実行可能プログラムとして設けられ、アドミニストレーティブツール202により、本開示の実施形態に従ってテスト環境をセットアップ、使用、および解体することが可能である。
いくつかの実施形態では、プロダクションブロックチェーンコンテナ204およびテストブロックチェーンコンテナ210は、それぞれがコンテナとして設けられ、コンテナは、コードおよびコード依存関係をパッケージングするソフトウェアのユニットと説明することができる。さらに詳細には、コンテナは、アプリケーションをそれらが実際に実行される環境から切り離すことのできる論理パッケージングを提供し、それにより、コンテナベースのアプリケーションが、ターゲット環境のタイプ(例えばサーバシステム201)に関わらず、容易にかつ一貫してデプロイされることが可能である。例示的コンテナとしては、限定はしないが、San Francisco、CA USAのDocker、Inc.によって提供されるドッカーコンテナがある。本開示の実施形態について、本明細書では、ドッカーコンテナに即してさらに詳細に説明する。しかし、本開示の実施形態がどんな適切なコンテナを用いても実現できることが、企図される。
いくつかの実施形態では、プロダクションブロックチェーンコンテナ204が、サーバシステム201がブロックチェーンネットワークと対話するためのアプリケーションを実行する。例えば、サーバシステム201は、ブロックチェーンネットワーク内のノードとして動作することができ、プロダクションブロックチェーンコンテナ204が、ブロックチェーンネットワークに参加する(例えばブロックチェーンネットワークにトランザクションを公開する、トランザクションのコンセンサス処理に参加する、ブロックチェーンのローカルコピーを維持する)という機能を実行する。いくつかの例では、プロダクションブロックデータ206が、プロダクションブロックチェーンのローカルコピーを記憶する。ブロックチェーンネットワークにわたるトランザクションの結果としてプロダクションブロックチェーンが更新される(例えばプロダクションブロックチェーンに新たなブロックが追加される)とき、プロダクションブロックチェーンコンテナ204はその更新内容をプロダクションブロックデータ206に書き込む。このようにして、プロダクションブロックデータ206は、ブロックチェーンネットワークのノードにわたって記憶されているプロダクションブロックチェーンのコピーと一致している。図2に示すように、プロダクションブロックチェーンコンテナ204は、プロダクションブロックデータ206への読出しおよび書込みアクセスを有する。
本開示の実施形態によれば、テストブロックチェーンコンテナ210が用意され、テストブロックチェーンコンテナ210は、テストに使用されるブロックチェーン環境を表す。テストブロックチェーンコンテナ210には、プロダクションブロックデータ206に対しては読出しアクセスが設けられるにすぎない。このようにして、テストブロックチェーンコンテナ210は、プロダクションブロックデータ206に書き込むことができず、テスト実行を通じたプロダクションブロックチェーンの汚染が回避される。アプリケーション(例えばスマートコントラクト)のテストを実行するために、テストブロックチェーンコンテナ210が、プロダクションブロックデータ206からブロックデータをコピーする。テストブロックチェーンコンテナ210がテスト動作を実行し、その結果、テストブロックが生成する。テストブロックチェーンコンテナ210はこのテストブロックを、テストブロックデータ212内に記憶されているテストブロックチェーンに書き込む。
図3は、例示的プロダクションブロックチェーン302、および本開示の実施形態による例示的テストブロックチェーン304を概略的に示す。いくつかの実施形態では、テストブロックチェーンコンテナ210がプロダクションブロックチェーン302からテストブロックチェーン304を作成し、プロダクションブロックチェーンとテストブロックチェーン304とは、ノード(例えばサーバシステム201)によって並列に使用される。テストブロックチェーン304は、プロダクションブロックチェーン302の1つまたは複数のブロックをコピーすることによって作成される。図3の例では、テストブロックチェーン304は、プロダクションブロックチェーン302のブロック[0001]-[0004]をコピーすることによって作成される。すなわち、テストブロックチェーンコンテナ210が、プロダクションブロックデータ206からブロック[0001]-[0004]のブロックデータをコピーし、そのブロックデータをテストブロックデータ212に書き込む。
いくつかの実施形態では、テストブロックチェーン304は、プロダクションブロックチェーン302全体のコピーとして作成される。例えば、テストブロックチェーン304は、時間t0において作成されてよい。いくつかの例では、時間t0において、プロダクションブロックチェーン302はブロック[0001]-[0004]しか含んでいない。したがって、テストブロックチェーン304は、時間t0におけるプロダクションブロックチェーン302の完全なコピーとして作成される。
時間t0の後、アプリケーションのテストが実施され、テストの一環として生成されたブロックがテストブロックチェーン304に追加される。例えば、Remix IDEによって提供されるJavaScript(登録商標)仮想マシン(VM)は、ランタイム環境を模擬する。したがって、IDEは、コンセンサスやブロックなどのブロックチェーンリンク動作の模擬を保障することはできない。例えば、プロダクション動作の際には、ブロックチェーンネットワークに参加しているノードの間で、どのブロックがブロックチェーンに追加されるべきかについて合意に達するために、ブロックチェーンネットワークによってコンセンサスプロトコルが利用される。
いくつかの例では、コンセンサスデータがプロダクションブロックチェーンに記憶されないことがあり、したがって、プロダクションブロックチェーン動作のリンクを模擬することができないとノード(例えばサーバシステム201)が判定した場合、テストブロックチェーン動作環境がプロダクションブロックチェーン動作を再現する。この結果、テスト環境内にプロダクションデータと同一のテストブロック(ブロック0005-0008)が生成される。したがって、プロダクションブロックチェーン302とテストブロックチェーン304とは、並列にかつ互いに独立に実行され得る。具体的には、また本開示の実施形態によれば、テストブロックチェーン304は、プロダクションブロックチェーン302に影響を及ぼさずに修正することができ、逆も同様である。本明細書において、例えば図2を参照して説明したように、テストブロックチェーンコンテナ210はプロダクションブロックデータ206から読み出し、したがって、テストブロックチェーンコンテナ210は、テスト実行中に全てのプロダクションブロックデータ206へのアクセスを有する。このようにして、テストブロックチェーン304は、テスト中(例えば時間t0の後)にテストブロックチェーン304にブロックが追加されるとき、プロダクションデータを反映させる。プロダクションチェーン(302)は、テストデータフォルダへのアクセスを有していない。
いくつかの実施形態では、テストが完了されてよく、テスト結果が精査されてよい。テストの後続のラウンドが実施されることが決定されてよい。いくつかの例では、テストブロックチェーン304に追加されたテストブロックのセットが削除される(例えばブロック[0005]-[0008])。テストの後続のラウンドが実行され、テストブロックチェーン304に新たなテストブロックが順次付加される。いくつかの実施形態では、さらなるテストラウンドが実施されないことが決定された場合、テストブロックチェーンを収容するテスト環境がリセットされてよい。管理ツールが、終了すべきテストケースを特定し、テストチェーンを実行する1つまたは複数のノードのリストを生成する。テストブロックチェーンコンテナ210は、1つまたは複数の特定されたノードを収容するこのリストに基づいて終了される。
図4は、本開示の実施形態に従って実行することのできる例示的プロセス400を示す。いくつかの実施形態では、例示的プロセス400は、1つまたは複数のコンピューティングデバイスを用いて実行される1つまたは複数のコンピュータ実行可能プログラムを用いて、実施されてよい。例示的プロセス400は、1つまたは複数の上述した図に関するものである。一般には、この例示的プロセスは、本開示の実施形態に従ってブロックチェーンアプリケーションを作成し維持することを対象とする。
本明細書において、例えば図2を参照して説明したように、プロダクションブロックチェーンへの読出し専用アクセスを有するテストチェーンコンテナをインスタンス化すること(ステップ402)。
それぞれ図3および図2によってさらに明細に示したように、プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意することであって、テストチェーンコンテナがテストブロックチェーンへの読出しおよび書込みアクセスを有する、用意すること(ステップ404)。
本明細書において、例えば図3を参照して説明したように、ブロックチェーンアプリケーションのテストを実行することであって、テストの結果、テストブロックチェーンに、各テストブロックが少なくとも部分的にテストデータを含むテストブロックのセットが順次付加され、テストの実行中にプロダクションブロックチェーンにプロダクションブロックが付加される、実行すること(ステップ406)。
説明した特徴は、デジタル電子回路の形で、またはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェアの形で、またはそれらの組合せの形で実装されてよい。装置は、プログラマブルプロセッサによって実行できるように情報キャリア内に(例えば機械可読記憶デバイス内に)有形に具現化されたコンピュータプログラム製品の形で実装されてよく、方法ステップは、プログラマブルプロセッサが、説明した実施形態の機能を実施するための命令のプログラムを、入力データに作用し出力を生成することにより実行することによって実施されてよい。説明した特徴は、有利には、データ記憶システムからデータおよび命令を受領し、そこにデータおよび命令を送出するように結合された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能な、1つまたは複数のコンピュータプログラムの形で実装されてよい。コンピュータプログラムは、ある特定のアクティビティを実施するために、またはある特定の結果をもたらすために、コンピュータ内で直接的または間接的に使用されてよい命令のセットである。コンピュータプログラムは、コンパイル型またはインタープリタ型言語を含む、任意の形態のプログラミング言語で記述されてよく、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含めて、任意の形態でデプロイされてよい。
命令のプログラムを実行するのに適したプロセッサとしては、例として、汎用と専用両方のマイクロプロセッサ、および任意の種類のコンピュータの単独のプロセッサ、または複数のプロセッサのうちの1つがある。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令およびデータを受領する。コンピュータの要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリとを含んでよい。一般に、コンピュータはまた、データファイルを記憶するための1つまたは複数の大容量記憶デバイスを含むか、またはそれと通信するように動作可能に結合されてよく、そのようなデバイスとしては、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、および光ディスクがある。コンピュータプログラム命令およびデータを有形に具現化するのに適した記憶デバイスとしては、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性記憶領域がある。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)によって補われてもよく、それに組み込まれてもよい。
ユーザとの対話を可能にするために、特徴は、情報をユーザに表示するための、陰極線管(CRT)モニタや液晶ディスプレイ(LCD)モニタなどの表示デバイスと、ユーザがそれによってコンピュータに入力することのできる、キーボードおよびマウスやトラックボールなどのポインティングデバイスとを有する、コンピュータ上に実装されてよい。
特徴は、データサーバなどのバックエンド構成要素を含むか、またはアプリケーションサーバやインターネットサーバなどのミドルウェア構成要素を含むか、またはグラフィカルユーザインターフェースもしくはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、またはそれらの任意の組合せを含む、コンピュータシステム内に実装されてよい。システムの構成要素は、通信ネットワークなど、任意の形態または媒体のデジタルデータ通信によって接続されてよい。通信ネットワークの例としては、例えば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、ならびにインターネットを形成するコンピュータおよびネットワークがある。
コンピュータシステムは、クライアントおよびサーバを含んでよい。クライアントとサーバは一般に、互いに遠隔にあり、典型的には、説明したものなどのネットワークを通じて対話する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれに対応するコンピュータ上でランし、それらのコンピュータプログラムが互いにクライアント-サーバ関係を有することによって生じる。
加えて、図中に示す論理フローは、所望の結果を達成するために、図示の特定の順序、または順番を必要としない。加えて、他のステップが設けられてもよく、説明したフローからステップがなくされてもよく、他の構成要素が、説明したシステムに追加されてもよく、そこから除去されてもよい。したがって、他の実施形態が、添付の特許請求の範囲に記載の範囲に含まれる。
以上、本開示のいくつかの実施形態について説明してきた。とはいえ、本開示の趣旨および範囲から逸脱することなくさまざまな修正が加えられ得ることが理解されよう。したがって、他の実施形態が、添付の特許請求の範囲に記載の範囲に含まれる。
100 例示的環境
102 コンソーシアムブロックチェーンネットワーク
106 コンピューティングデバイス、コンピューティングシステム
108 コンピューティングデバイス、コンピューティングシステム
110 ネットワーク
200 例示的テストプラットフォーム
201 サーバシステム
202 アドミニストレーティブツール
204 プロダクションブロックチェーンコンテナ
206 プロダクションブロックデータ
210 テストブロックチェーンコンテナ
212 テストブロックデータ
302 例示的プロダクションブロックチェーン、プロダクションチェーン
304 例示的テストブロックチェーン

Claims (18)

  1. ブロックチェーンアプリケーションをテストするための、コンピュータにより実施される方法であって、1つまたは複数のプロセッサによって実行され、
    プロダクションブロックチェーンへの読出し専用アクセスを有するテストブロックチェーンコンテナをインスタンス化するステップと、
    前記プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意するステップであって、前記テストブロックチェーンコンテナが前記テストブロックチェーンへの読出しおよび書込みアクセスを有する、ステップと、
    ブロックチェーンアプリケーションのテストを実行するステップであって、前記テストの結果、前記テストブロックチェーンにテストブロックのセットが順次付加され、各テストブロックが少なくとも部分的にテストデータを含み、前記テストの実行中に前記プロダクションブロックチェーンにプロダクションブロックが付加される、ステップと
    を含む、方法。
  2. プロダクションブロックチェーンコンテナが、用意され、前記プロダクションブロックチェーンへの読出しおよび書込みアクセスを有し、前記テストブロックチェーンへのアクセスをもたない、請求項1に記載の方法。
  3. ブロックチェーンネットワークに参加しているサーバシステム内で、前記プロダクションブロックチェーンコンテナが前記テストブロックチェーンコンテナと並列に用意される、請求項2に記載の方法。
  4. 前記テスト中に、複数のノードが、前記テストブロックチェーンにテストブロックを付加するためのコンセンサスプロトコルを実行し、前記複数のノードの各ノードが、前記テストブロックチェーンのコピーを維持する、請求項1に記載の方法。
  5. 前記テスト中に前記テストブロックチェーンに付加されたテストブロックを削除するステップと、
    第2のテストを実行し、その結果、前記テストブロックチェーンにテストブロックの第2のセットが順次付加されるステップと
    をさらに含む、請求項1に記載の方法。
  6. 前記テストの終了に応答して、前記テストに参加している複数のノードの各ノードについて、テストブロックチェーンコンテナを終了させるステップをさらに含む、請求項1に記載の方法。
  7. 1つまたは複数のプロセッサに結合され、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、ブロックチェーンアプリケーションをテストするための動作を実行させる命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
    プロダクションブロックチェーンへの読出し専用アクセスを有するテストブロックチェーンコンテナをインスタンス化すること、
    前記プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意することであって、前記テストブロックチェーンコンテナが前記テストブロックチェーンへの読出しおよび書込みアクセスを有する、用意すること、および
    ブロックチェーンアプリケーションのテストを実行することであって、前記テストの結果、前記テストブロックチェーンにテストブロックのセットが順次付加され、各テストブロックが少なくとも部分的にテストデータを含み、前記テストの実行中に前記プロダクションブロックチェーンにプロダクションブロックが付加される、実行すること
    を含む、非一時的コンピュータ可読記憶媒体。
  8. プロダクションブロックチェーンコンテナが、用意され、前記プロダクションブロックチェーンへの読出しおよび書込みアクセスを有し、前記テストブロックチェーンへのアクセスをもたない、請求項7に記載のコンピュータ可読記憶媒体。
  9. ブロックチェーンネットワークに参加しているサーバシステム内で、前記プロダクションブロックチェーンコンテナが前記テストブロックチェーンコンテナと並列に用意される、請求項8に記載のコンピュータ可読記憶媒体。
  10. 前記テスト中に、複数のノードが、前記テストブロックチェーンにテストブロックを付加するためのコンセンサスプロトコルを実行し、前記複数のノードの各ノードが、前記テストブロックチェーンのコピーを維持する、請求項7に記載のコンピュータ可読記憶媒体。
  11. 前記動作が、
    前記テスト中に前記テストブロックチェーンに付加されたテストブロックを削除すること、および
    第2のテストを実行し、その結果、前記テストブロックチェーンにテストブロックの第2のセットが順次付加されること
    をさらに含む、請求項7に記載のコンピュータ可読記憶媒体。
  12. 前記動作が、前記テストの終了に応答して、前記テストに参加している複数のノードの各ノードについて、テストブロックチェーンコンテナを終了させることをさらに含む、請求項7に記載のコンピュータ可読記憶媒体。
  13. システムであって、
    コンピューティングデバイスと、
    前記コンピューティングデバイスに結合され、前記コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、ブロックチェーンアプリケーションをテストするための動作を実行させる命令を記憶したコンピュータ可読記憶デバイスと
    を含み、前記動作が、
    プロダクションブロックチェーンへの読出し専用アクセスを有するテストブロックチェーンコンテナをインスタンス化すること、
    前記プロダクションブロックチェーンからテスト環境にブロックのセットをコピーして、テストブロックチェーンを用意することであって、前記テストブロックチェーンコンテナが前記テストブロックチェーンへの読出しおよび書込みアクセスを有する、用意すること、および
    ブロックチェーンアプリケーションのテストを実行することであって、前記テストの結果、前記テストブロックチェーンにテストブロックのセットが順次付加され、各テストブロックが少なくとも部分的にテストデータを含み、前記テストの実行中に前記プロダクションブロックチェーンにプロダクションブロックが付加される、実行すること
    を含む、システム。
  14. プロダクションブロックチェーンコンテナが、用意され、前記プロダクションブロックチェーンへの読出しおよび書込みアクセスを有し、前記テストブロックチェーンへのアクセスをもたない、請求項13に記載のシステム。
  15. ブロックチェーンネットワークに参加しているサーバシステム内で、前記プロダクションブロックチェーンコンテナが前記テストブロックチェーンコンテナと並列に用意される、請求項14に記載のシステム。
  16. 前記テスト中に、複数のノードが、前記テストブロックチェーンにテストブロックを付加するためのコンセンサスプロトコルを実行し、前記複数のノードの各ノードが、前記テストブロックチェーンのコピーを維持する、請求項13に記載のシステム。
  17. 前記動作が、
    前記テスト中に前記テストブロックチェーンに付加されたテストブロックを削除すること、および
    第2のテストを実行し、その結果、前記テストブロックチェーンにテストブロックの第2のセットが順次付加されること
    をさらに含む、請求項13に記載のシステム。
  18. 前記動作が、前記テストの終了に応答して、前記テストに参加している複数のノードの各ノードについて、テストブロックチェーンコンテナを終了させることをさらに含む、請求項13に記載のシステム。
JP2019521722A 2018-11-30 2018-11-30 ブロックチェーンネットワーク用テストプラットフォーム Active JP6727435B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/118532 WO2019072288A2 (en) 2018-11-30 2018-11-30 TEST PLATFORM FOR BLOCK CHAIN NETWORKS

Publications (2)

Publication Number Publication Date
JP2020502621A JP2020502621A (ja) 2020-01-23
JP6727435B2 true JP6727435B2 (ja) 2020-07-22

Family

ID=66100019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019521722A Active JP6727435B2 (ja) 2018-11-30 2018-11-30 ブロックチェーンネットワーク用テストプラットフォーム

Country Status (8)

Country Link
US (1) US11210203B2 (ja)
EP (1) EP3549022B1 (ja)
JP (1) JP6727435B2 (ja)
KR (1) KR102225973B1 (ja)
CN (1) CN110291506B (ja)
PH (1) PH12019500867A1 (ja)
SG (1) SG11201903544SA (ja)
WO (1) WO2019072288A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097467B (zh) * 2019-05-05 2021-04-13 华中科技大学 一种针对智能合约安全性和稳定性的侧链测试系统和方法
CN110471849B (zh) * 2019-08-09 2022-10-14 南京邮电大学 区块链资源管理测试方法及系统、存储介质和终端
CN110493080B (zh) * 2019-08-19 2021-12-14 腾讯科技(深圳)有限公司 一种区块链节点监控方法、装置及电子设备和存储介质
CN111737104B (zh) * 2019-10-25 2024-10-18 北京沃东天骏信息技术有限公司 区块链网络服务平台及其测试用例共享方法、存储介质
CN111373402B (zh) 2019-11-08 2022-03-25 支付宝(杭州)信息技术有限公司 轻量去中心化应用平台
SG11202010736YA (en) * 2019-11-08 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd System and method for blockchain-based decentralized application development
US11836071B2 (en) 2019-12-10 2023-12-05 Hitachi, Ltd. Method and apparatus creating test environments for blockchain systems
CN111158645B (zh) * 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
EP4128107A4 (en) * 2020-03-30 2023-11-15 Hitachi, Ltd. METHOD AND DEVICE FOR MAINTAINING PRIVATE DATA USING A CONSORTIUM BLOCKCHAIN
CN111459825B (zh) * 2020-04-03 2023-10-31 银清科技有限公司 支付业务的区块链应用系统、方法及装置
CN111478829B (zh) * 2020-06-24 2020-10-30 支付宝(杭州)信息技术有限公司 区块链网络的压力测试方法及装置、系统
CN112910724B (zh) * 2020-06-24 2022-08-09 支付宝(杭州)信息技术有限公司 区块链网络的压力测试方法及装置、系统
CN111475501B (zh) * 2020-06-24 2020-10-30 支付宝(杭州)信息技术有限公司 区块链网络的数据清理方法及装置
US20220091966A1 (en) * 2020-09-22 2022-03-24 Mastercontrol, Inc. Systems and methods for facilitating software validation within a production environment
US11652742B2 (en) * 2020-10-16 2023-05-16 Microsoft Technology Licensing, Llc Ghost routing
KR102338756B1 (ko) * 2020-11-17 2021-12-14 한국과학기술원 블록 데이터를 공유하는 블록체인 네트워크의 시뮬레이션 방법 및 이를 이용하는 시스템
CN112650494A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 用于开发智能合约的在线ide的搭建方法及装置
US12086057B2 (en) 2021-01-23 2024-09-10 Dido Solutions, Inc. Distributed immutable data object testing
US12095924B2 (en) * 2021-09-30 2024-09-17 Oracle International Corporation System and method for generating blockchain token support from a set of declarations
CN114218776A (zh) * 2021-12-03 2022-03-22 北京星途探索科技有限公司 一种基于区块链的分布式仿真实现方法
CN114422409A (zh) * 2021-12-17 2022-04-29 深圳壹账通智能科技有限公司 区块链网络的测试方法、装置、设备及存储介质
WO2023191644A1 (en) * 2022-03-31 2023-10-05 Xero Limited Method, program, and apparatus for controlling access to a distributed shared ledger
KR102703825B1 (ko) * 2022-06-29 2024-09-05 포항공과대학교 산학협력단 공유로그 기반 솔리디티 스마트 컨트랙트 실행 방법 및 장치
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11816021B1 (en) * 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811563B2 (en) * 2012-09-17 2017-11-07 NetSuite Inc. System and method for recursively iterating over a loosely associated data structure
US9740760B2 (en) * 2014-04-11 2017-08-22 Bank Of America Corporation Method for tracking differences between production and development databases to perform an automatic synchronization
KR20150118813A (ko) * 2014-04-15 2015-10-23 삼성전자주식회사 햅틱 정보 운용 방법 및 이를 지원하는 전자 장치
US11042878B2 (en) * 2016-01-19 2021-06-22 Priv8Pay, Inc. Network node authentication
US10489278B2 (en) * 2016-05-16 2019-11-26 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework with entitlements
CN108011741B (zh) * 2016-10-28 2020-07-17 富士通株式会社 用于模拟和测试分布式网络的区块链的方法和系统
US9934138B1 (en) * 2016-12-07 2018-04-03 International Business Machines Corporation Application testing on a blockchain
WO2018112940A1 (zh) * 2016-12-23 2018-06-28 深圳前海达闼云端智能科技有限公司 区块链节点的业务执行方法、装置及节点设备
US10318979B2 (en) 2016-12-26 2019-06-11 International Business Machines Corporation Incentive-based crowdvoting using a blockchain
US11611445B2 (en) 2017-02-17 2023-03-21 Nokia Technologies Oy Changing smart contracts recorded in block chains
US10579368B2 (en) * 2017-03-10 2020-03-03 Salesforce.Com, Inc. Blockchain version control systems
CN108073513A (zh) * 2017-04-21 2018-05-25 富士通株式会社 对基于区块链的智能合约进行测试的装置和方法
US10541886B2 (en) 2017-05-24 2020-01-21 International Business Machines Corporation Decentralized change management based on peer devices using a blockchain
US20190132350A1 (en) * 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
AU2018364999A1 (en) * 2017-11-10 2020-05-28 Digital Asset (Switzerland) GmbH Method and apparatus for execution of atomic transactions
US10733176B2 (en) * 2017-12-04 2020-08-04 International Business Machines Corporation Detecting phantom items in distributed replicated database
CN108170590B (zh) * 2017-12-12 2021-08-24 北京大学深圳研究生院 一种区块链系统的测试系统和方法
CN108881363A (zh) * 2018-01-03 2018-11-23 上海指旺信息科技有限公司 基于区块链的点对点个人信息共享平台及方法
CN108256354B (zh) * 2018-01-29 2022-02-22 张天 一种基于试验数据的存储方法及存储介质
US20190306173A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Alert smart contracts configured to manage and respond to alerts related to code
CN108712276A (zh) 2018-04-19 2018-10-26 上海分布信息科技有限公司 基于区块链技术的共识网络管理方法、装置、设备及存储介质
CN108763058A (zh) * 2018-04-24 2018-11-06 苏州同济区块链研究院有限公司 一种区块链测评系统
CN108628745A (zh) * 2018-05-03 2018-10-09 深圳市牛鼎丰科技有限公司 应用程序的跟踪记录系统、方法、计算机设备和存储介质
US10972279B2 (en) * 2018-06-07 2021-04-06 International Business Machines Corporation Efficient validation for blockchain
CN108833398B (zh) 2018-06-08 2020-12-15 深圳智链未来科技有限公司 一种区块链智能合约更新方法、装置及设备
US20200162263A1 (en) * 2018-11-15 2020-05-21 Eleven01 International Limited System and method of validation of block chain by secondary chain having incentivization and insurance coverage powered by proof of work

Also Published As

Publication number Publication date
WO2019072288A3 (en) 2019-09-19
PH12019500867A1 (en) 2019-12-02
WO2019072288A2 (en) 2019-04-18
US20190251018A1 (en) 2019-08-15
JP2020502621A (ja) 2020-01-23
EP3549022B1 (en) 2021-08-18
CN110291506B (zh) 2023-08-18
KR102225973B1 (ko) 2021-03-11
CN110291506A (zh) 2019-09-27
EP3549022A2 (en) 2019-10-09
EP3549022A4 (en) 2019-12-11
US11210203B2 (en) 2021-12-28
SG11201903544SA (en) 2019-05-30
KR20200067115A (ko) 2020-06-11

Similar Documents

Publication Publication Date Title
JP6727435B2 (ja) ブロックチェーンネットワーク用テストプラットフォーム
CN110622192B (zh) 区块链网络中的功能即服务(faas)平台
CN109408373B (zh) 智能合约的测试方法、计算机可读存储介质及测试终端
KR102151893B1 (ko) 탈중앙화 결정을 사용하는 블록체인 스마트 계약 업데이트
Morris Infrastructure as code: managing servers in the cloud
Erder et al. Continuous architecture: sustainable architecture in an agile and cloud-centric world
Pacheco Microservice Patterns and Best Practices: Explore patterns like CQRS and event sourcing to create scalable, maintainable, and testable microservices
AU2017101623A4 (en) Methods and Systems for providing a platform for Code-Free Blockchain Application and Smart Contract Development
Bandara et al. Patterns for blockchain data migration
US20210149880A1 (en) Systems and methods for extendable smart contracts in distributed ledger technology
US11379204B2 (en) Staging service
CN109478148A (zh) 基于工作流程的对象析构
Bandara et al. Patterns for blockchain migration
US20230089662A1 (en) Cloud migration for legacy on-premises process code
Shrivastava et al. Solutions Architect's Handbook: kick-start your solutions architect career by learning architecture design principles and strategies
Rosso et al. Production Kubernetes
Annett Working with Legacy Systems: A practical guide to looking after and maintaining the systems we inherit
Rosenbaum Serverless computing in Azure with. NET
Shrivastava et al. Solutions Architect's Handbook: Kick-start your career as a solutions architect by learning architecture design principles and strategies
US11966723B2 (en) Automatic management of applications in a containerized environment
Bhola et al. Identification of Software Design Pattern and Deployment Strategies for AWS RDS Using Pattern for Relational Database
Bulavko Banking System
Graham Serverless Computing with Amazon Web Services
Clapa et al. Professional Cloud Architect Google Cloud Certification Guide: Build a solid foundation in Google Cloud Platform to achieve the most lucrative IT certification
Bernátek Migrating company applications and services to the cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190621

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200630

R150 Certificate of patent or registration of utility model

Ref document number: 6727435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250