高橋  花子

高橋 花子

1652850540

CouchDBとLevelDB:状態データベースオプションの比較

Hyperledger Fabricは、エンタープライズブロックチェーンソリューションおよびアプリケーションの開発に使用される、オープンソースの許可されたブロックチェーンフレームワークです。Hyperledger Fabricプロジェクトは、Hyperledger内の主要なブロックチェーンプロジェクトの1つであり、業界を超えたブロックチェーンテクノロジーを進歩させるためにLinuxFoundationによって2015年に開始されたマルチプロジェクトの共同作業です。現在、Hyperledger Fabricには、120,000を超える貢献組織、15,000を超えるエンジニアの貢献者が協力してプロジェクトを推進しています。

Hyperledger Fabricはモジュラー(プラグアンドプレイ)アーキテクチャを備えており、毎秒1,000トランザクション(TPS)を超えるトランザクションに到達でき、20,000TPSにアップグレードできます。Hyperledger Fabricは、他のブロックチェーンテクノロジーとは異なり、企業による採用を容易にする特定の機能セットも提供します。これらの機能は次のとおりです。

Hyperledger Fabricは多くの実装が行われており、銀行や金融、国際貿易、モノのインターネットなどの業界で広く使用されています。Hyperledger Fabricは、承認者、コミッター、データベースなど、多くのコンポーネントで構成されています。

HyperledgerFabricネットワークで対話するためのオプション

Hyperledger Fabricネットワークで対話するには、チェーンコード(スマートコントラクトとも呼ばれます)が使用されます。これらのスマートコントラクトは、Go、Node.js、Javaなどのさまざまなプログラミング言語で記述できます。

Hyperledger Fabricは、チェーンコードによって実行されたトランザクションの状態をデータベースに保存します。HyperledgerFabricネットワークによって保存されるレコードには主に2つのタイプがあります。

  • トランザクションログ:これは、Hyperledger Fabricネットワークのブロックチェーンの側面であり、HyperledgerFabricネットワークの現在の状態をもたらしたすべてのトランザクションの記録で構成されます。トランザクションログに保存されるデータは不変であり、LevelDBデータベースに保存されます
  • 世界の状態:これは、特定の時点での元帳の現在の値です。デフォルトでは、FabricネットワークのメインデータベースはLevelDBデータベースであり、特定のトランザクションが完了したときにのみデータが入力されます。ただし、CouchDBデータベースに置き換えることができます

この記事では、CouchDBデータベースとLevelDBデータベースのどちらをワールドステートデータベースとして選択するかについて説明します。

楽しみ!

PostgreSQLやMySQLのようなデータベースを使ってみませんか?

Hyperledger Fabricは、LevelDBとCouchDBのみをサポートし、PostgreSQL、MongoDB、MySQLなどのデータベースはサポートしません。このHyperledgerフォーラムでの議論では、プラグ可能なデータベースのサポートを提供するには、ネットワークとデータベース自体に多くの変更を加える必要があると述べています。プロジェクトは、当面の間、Hyperledgerの開発パイプラインから削除されました。

ただし、状態データベースとしてPostgreSQLなどのデータベースを設定する方法はまだあります。これらの手順に従うことで、Fabricプロジェクトをフォークし、 PostgreSQL、MySQL、MongoDBなどのデータベースをプラグインできます。このIBMの例は、HyperledgerFabricプロジェクトでPostgreSQLをセットアップするために使用できる方法も示しています。

LevelDBとは何ですか?

LevelDBデータベースは、キーと値のペアを格納できる高速データベースです。LevelDBデータベースはSanjayGhemawatとJeffDeanによってGoogleで作成され、現在HyperledgerFabricがトランザクションログを保存するために使用している唯一のデータベースです。前述のように、これはHyperledgerFabricにワールド状態を格納するために使用されるデフォルトのデータベースでもあります。

LevelDBのキーと値のペアは、任意のバイト配列に格納されます。LevelDBは、、、および複合キークエリ、つまりKey、、、およびのみをサポートします。Key rangePut(key, value)GET(key, value)Delete(key)

LevelDBはSQLデータベースではないため、SQLクエリ、インデックス、またはリレーショナルデータモデルはサポートされていません。

LevelDBの利点

  • LevelDBは、CouchDBと比較してオーバーヘッドが少ない、シンプルで高速なデータベースです。
  • データは保存され、キーでマッピングされます
    • 、、、などPut(key, value)の単純な操作を実行できるため、LevelDBの使用が簡単になります。GET(Key, Value)Delete(Key)
  • LevelDBは、データ、スナップショット、およびアトミックバッチでの変更に対する順方向および逆方向の反復をサポートします

LevelDBの制限

  • インデックスとクエリはサポートされていません
  • Put(key, value)、、GET(key, value)やDelete(key)などの単純な操作のみが可能です。
  • SQLデータベースではないため、リレーショナルデータモデルの使い慣れた機能はありません。データはキーと値のペアでのみ保存できます
  • LevelDBデータベースからの大規模なデータセットのクエリは、複雑なクエリとインデックスが許可されていないため、非効率的で複雑です。

CouchDBとは何ですか?

CouchDBデータベースは、Erlangに実装されたオープンソースのドキュメント指向データベースであり、JSON形式でデータを収集して保存します。Hyperledger Fabricユーザーは、デフォルトのLevelDBワールドステートデータベースをCouchDBデータベースに置き換えることができます。これは、利用可能な唯一の代替手段でもあります。

CouchDBは、保存されたJSONコンテンツの豊富なクエリを可能にするNoSQLデータベースです。CouchDBデータベースのデフォルトのクエリ言語はJavaScriptであり、データはJSON形式でスキーマを設定せずに保存できます。

CouchDBはインデックスとページネーションをサポートしています。LevelDBデータベースと同様に、キーに基づいてクエリを実行することもできます。

CouchDBの利点

  • CouchDBではJSONクエリとインデックスが可能であるため、LevelDBよりもHyperledgerFabricネットワークの監査とレポートの要件を満たすことが容易になります。
  • ドキュメント指向データベースとして、CouchDBを使用すると、データを配列または辞書としてデータベースに保存できます。
  • CouchDBデータはHTTPURIを介して公開されます。これにより、データに対してHTTP操作(、、、)を実行できるようにGETなりますDELETEPUTPOST
  • CouchDBを使用すると、チェーンコードの大規模なデータセットをインデックスでより効率的かつ柔軟にクエリできます。

CouchDBの制限

  • CouchDBは、HyperledgerFabricネットワークと並行して別個のデータベースとして実行されます
  • ネットワークを実行するには、データベースの管理、セットアップ、構成などの面で、より多くのコミットメントが必要です。

次のHyperledgerFabricプロジェクトの状態データベースを選択する

状態データベースを選択する前に、Hyperledger Fabricは、Hyperledger Fabricネットワークの起動後にデータベースを変更できないため、データベースを決定する必要があることを知っておく必要があります。

トランザクションの量が少ない単純なHyperledgerFabricプロジェクトを実行している場合、LevelDBの使いやすさと速度により、使用するのが非常に望ましいです。

ただし、より複雑なプロジェクトの場合は、CouchDBデータベースを使用することをお勧めします。CouchDBは、キーに基づいてデータを取得および設定するなど、LevelDBデータベースのすべての機能を備えていますが、JSON形式でのデータの保存、インデックス、クエリの発行、ページネーションなどの追加機能へのアクセスも提供します。データの操作が簡単になります。

CouchDBが提供する機能により、大量のトランザクションを伴うHyperledgerFabricネットワークの管理が容易になります。CouchDBを使用すると、HyperledgerFabricネットワークを実行している最新の組織で必要とされる監査とレポートの要件を簡単に完了することができます。

結論

この記事では、Hyperledger Fabric、CouchDB、およびLevelDBで使用可能なワールドステートデータベースオプションについて説明しました。各データベースの利点と制限について説明し、次のHyperledgerFabricプロジェクト用にデータベースを選択する方法について説明しました。

ソース:https ://blog.logrocket.com/couchdb-vs-leveldb-comparing-state-database-options/ 

#leveldb #couchdb #hyperledger #fabric 

What is GEEK

Buddha Community

CouchDBとLevelDB:状態データベースオプションの比較
高橋  花子

高橋 花子

1652850540

CouchDBとLevelDB:状態データベースオプションの比較

Hyperledger Fabricは、エンタープライズブロックチェーンソリューションおよびアプリケーションの開発に使用される、オープンソースの許可されたブロックチェーンフレームワークです。Hyperledger Fabricプロジェクトは、Hyperledger内の主要なブロックチェーンプロジェクトの1つであり、業界を超えたブロックチェーンテクノロジーを進歩させるためにLinuxFoundationによって2015年に開始されたマルチプロジェクトの共同作業です。現在、Hyperledger Fabricには、120,000を超える貢献組織、15,000を超えるエンジニアの貢献者が協力してプロジェクトを推進しています。

Hyperledger Fabricはモジュラー(プラグアンドプレイ)アーキテクチャを備えており、毎秒1,000トランザクション(TPS)を超えるトランザクションに到達でき、20,000TPSにアップグレードできます。Hyperledger Fabricは、他のブロックチェーンテクノロジーとは異なり、企業による採用を容易にする特定の機能セットも提供します。これらの機能は次のとおりです。

Hyperledger Fabricは多くの実装が行われており、銀行や金融、国際貿易、モノのインターネットなどの業界で広く使用されています。Hyperledger Fabricは、承認者、コミッター、データベースなど、多くのコンポーネントで構成されています。

HyperledgerFabricネットワークで対話するためのオプション

Hyperledger Fabricネットワークで対話するには、チェーンコード(スマートコントラクトとも呼ばれます)が使用されます。これらのスマートコントラクトは、Go、Node.js、Javaなどのさまざまなプログラミング言語で記述できます。

Hyperledger Fabricは、チェーンコードによって実行されたトランザクションの状態をデータベースに保存します。HyperledgerFabricネットワークによって保存されるレコードには主に2つのタイプがあります。

  • トランザクションログ:これは、Hyperledger Fabricネットワークのブロックチェーンの側面であり、HyperledgerFabricネットワークの現在の状態をもたらしたすべてのトランザクションの記録で構成されます。トランザクションログに保存されるデータは不変であり、LevelDBデータベースに保存されます
  • 世界の状態:これは、特定の時点での元帳の現在の値です。デフォルトでは、FabricネットワークのメインデータベースはLevelDBデータベースであり、特定のトランザクションが完了したときにのみデータが入力されます。ただし、CouchDBデータベースに置き換えることができます

この記事では、CouchDBデータベースとLevelDBデータベースのどちらをワールドステートデータベースとして選択するかについて説明します。

楽しみ!

PostgreSQLやMySQLのようなデータベースを使ってみませんか?

Hyperledger Fabricは、LevelDBとCouchDBのみをサポートし、PostgreSQL、MongoDB、MySQLなどのデータベースはサポートしません。このHyperledgerフォーラムでの議論では、プラグ可能なデータベースのサポートを提供するには、ネットワークとデータベース自体に多くの変更を加える必要があると述べています。プロジェクトは、当面の間、Hyperledgerの開発パイプラインから削除されました。

ただし、状態データベースとしてPostgreSQLなどのデータベースを設定する方法はまだあります。これらの手順に従うことで、Fabricプロジェクトをフォークし、 PostgreSQL、MySQL、MongoDBなどのデータベースをプラグインできます。このIBMの例は、HyperledgerFabricプロジェクトでPostgreSQLをセットアップするために使用できる方法も示しています。

LevelDBとは何ですか?

LevelDBデータベースは、キーと値のペアを格納できる高速データベースです。LevelDBデータベースはSanjayGhemawatとJeffDeanによってGoogleで作成され、現在HyperledgerFabricがトランザクションログを保存するために使用している唯一のデータベースです。前述のように、これはHyperledgerFabricにワールド状態を格納するために使用されるデフォルトのデータベースでもあります。

LevelDBのキーと値のペアは、任意のバイト配列に格納されます。LevelDBは、、、および複合キークエリ、つまりKey、、、およびのみをサポートします。Key rangePut(key, value)GET(key, value)Delete(key)

LevelDBはSQLデータベースではないため、SQLクエリ、インデックス、またはリレーショナルデータモデルはサポートされていません。

LevelDBの利点

  • LevelDBは、CouchDBと比較してオーバーヘッドが少ない、シンプルで高速なデータベースです。
  • データは保存され、キーでマッピングされます
    • 、、、などPut(key, value)の単純な操作を実行できるため、LevelDBの使用が簡単になります。GET(Key, Value)Delete(Key)
  • LevelDBは、データ、スナップショット、およびアトミックバッチでの変更に対する順方向および逆方向の反復をサポートします

LevelDBの制限

  • インデックスとクエリはサポートされていません
  • Put(key, value)、、GET(key, value)やDelete(key)などの単純な操作のみが可能です。
  • SQLデータベースではないため、リレーショナルデータモデルの使い慣れた機能はありません。データはキーと値のペアでのみ保存できます
  • LevelDBデータベースからの大規模なデータセットのクエリは、複雑なクエリとインデックスが許可されていないため、非効率的で複雑です。

CouchDBとは何ですか?

CouchDBデータベースは、Erlangに実装されたオープンソースのドキュメント指向データベースであり、JSON形式でデータを収集して保存します。Hyperledger Fabricユーザーは、デフォルトのLevelDBワールドステートデータベースをCouchDBデータベースに置き換えることができます。これは、利用可能な唯一の代替手段でもあります。

CouchDBは、保存されたJSONコンテンツの豊富なクエリを可能にするNoSQLデータベースです。CouchDBデータベースのデフォルトのクエリ言語はJavaScriptであり、データはJSON形式でスキーマを設定せずに保存できます。

CouchDBはインデックスとページネーションをサポートしています。LevelDBデータベースと同様に、キーに基づいてクエリを実行することもできます。

CouchDBの利点

  • CouchDBではJSONクエリとインデックスが可能であるため、LevelDBよりもHyperledgerFabricネットワークの監査とレポートの要件を満たすことが容易になります。
  • ドキュメント指向データベースとして、CouchDBを使用すると、データを配列または辞書としてデータベースに保存できます。
  • CouchDBデータはHTTPURIを介して公開されます。これにより、データに対してHTTP操作(、、、)を実行できるようにGETなりますDELETEPUTPOST
  • CouchDBを使用すると、チェーンコードの大規模なデータセットをインデックスでより効率的かつ柔軟にクエリできます。

CouchDBの制限

  • CouchDBは、HyperledgerFabricネットワークと並行して別個のデータベースとして実行されます
  • ネットワークを実行するには、データベースの管理、セットアップ、構成などの面で、より多くのコミットメントが必要です。

次のHyperledgerFabricプロジェクトの状態データベースを選択する

状態データベースを選択する前に、Hyperledger Fabricは、Hyperledger Fabricネットワークの起動後にデータベースを変更できないため、データベースを決定する必要があることを知っておく必要があります。

トランザクションの量が少ない単純なHyperledgerFabricプロジェクトを実行している場合、LevelDBの使いやすさと速度により、使用するのが非常に望ましいです。

ただし、より複雑なプロジェクトの場合は、CouchDBデータベースを使用することをお勧めします。CouchDBは、キーに基づいてデータを取得および設定するなど、LevelDBデータベースのすべての機能を備えていますが、JSON形式でのデータの保存、インデックス、クエリの発行、ページネーションなどの追加機能へのアクセスも提供します。データの操作が簡単になります。

CouchDBが提供する機能により、大量のトランザクションを伴うHyperledgerFabricネットワークの管理が容易になります。CouchDBを使用すると、HyperledgerFabricネットワークを実行している最新の組織で必要とされる監査とレポートの要件を簡単に完了することができます。

結論

この記事では、Hyperledger Fabric、CouchDB、およびLevelDBで使用可能なワールドステートデータベースオプションについて説明しました。各データベースの利点と制限について説明し、次のHyperledgerFabricプロジェクト用にデータベースを選択する方法について説明しました。

ソース:https ://blog.logrocket.com/couchdb-vs-leveldb-comparing-state-database-options/ 

#leveldb #couchdb #hyperledger #fabric