ホームページ バックエンド開発 Python チュートリアル ブロックチェーンとBigChainDBを使用したデータストレージの管理

ブロックチェーンとBigChainDBを使用したデータストレージの管理

Feb 23, 2025 am 08:52 AM

Managing Data Storage with Blockchain and BigchainDB

コアポイント

  • Ascribeは、ビットコインブロックチェーンを使用してデジタルアートワークの一意の識別を記録し、NOSQLデータベース(RethinkDB)とブロックチェーンレイヤーを組み合わせてBigChainDBを作成します。この組み合わせは、コントロール、資産追跡、セキュリティレベルを強化し、NOSQLデータベースユーザーにとって特に魅力的です。
  • BigChainDBは、ブロックチェーン層のために完全に分散化されていると主張しています。また、NOSQLデータベースでしばしば欠落している機能であるトランザクションサポートも追加されます。このサポートにより、ブロックチェーンレイヤーを介して基礎となるNOSQLデータベースに書き込むときにデータベースの変更が発生することが保証されます。
  • BigChainDBは、現在のNOSQLおよび分散データベースの不足しているギャップを埋めることができます。これにより、効果的なビジネスまたはユースケースが提供される場合があります。ブロックチェーン愛好家の場合、完全に分散化されたアプリケーションスタックの課題を達成し、アプリケーションの開発、展開、維持の方法を変更する可能性があります。

ビットコインの将来は不明ですが、それが依存する基礎となる技術 - ブロックチェーン - は多くの産業やプロジェクトを完全に変え、より多くのアプリケーションが出現しようとしています。

Ascribeは、ビットコインブロックチェーンを使用して、デジタルアートワークの限られた数の一意の識別子を記録する説得力のあるスタートアップです。したがって、この「コピー」の数が限られているため、それらは追跡可能で、説明責任があり(できれば)より高い価値があります。

この方法を使用する際に、主にビットコインブロックチェーン自体に由来する技術的な問題が発生したと考えられています。すべてを書くのは遅く、費用がかかり(現在は時間あたり80セント)、毎日のエントリと総書き込み容量が限られています。また、典型的なスケーラブルなデータベース手法に反して、ノードを追加してもパフォーマンスが向上しておらず、実際のクエリ言語はありません。これにより、ビットコインブロックチェーンに基づくビジネス拡大が課題になります。

しかし、ブロックチェーンの概念は強力な概念であり、その使用と正当性は過去数年にわたって増加しており、大規模な銀行でさえ、彼らがこの概念に触発された技術を開発していることを発表しました。

Ascribeは、2つの利点を組み合わせて、実証済みのNOSQLデータベース(RethinkDB)を採用し、ブロックチェーンレイヤーを追加して、制御、資産追跡、および追加のセキュリティレベルを強化することを決定しました。

このテクノロジーの組み合わせは、NOSQLデータベースユーザーにとって特に魅力的です。これは、データベースの変更が「トランザクション」が発生したことを確実にするのに役立っていたNOSQLデータベースサポートがほとんどないためです。 BigChainDBは、ブロックチェーンレイヤーを介して基礎となるNOSQLデータベースに書き込むことにより、トランザクションサポートを追加します。

BigChainDBは、ブロックチェーン層のために完全に分散化されていると主張しています。分散したNOSQLデータベースの多くは分散化されていると主張していますが、多くの場合、擬似マスター/スレーブ設定があります。

bigchaindbとその依存関係のインストール

BigChainDBをインストールする方法はいくつかあります。最初にDocker画像を試しましたが、いくつかの接続の問題に遭遇し、Pythonパッケージが最も信頼できることがわかりました。

  1. rethinkdbをインストールし、他のMacユーザーには、利用可能な自家製パッケージもあります。
  2. Python 3.4をインストールします。
  3. PIP付きBigChainDBをインストール - sudo pipインストールbigchaindb
  4. rethinkdbを使用してrethinkdbを開始します
  5. BigChainDB StartでBigChainDBを開始すると、コンテンツも設定されます。
  6. http:// server_ip:58080/でbigchaindb(実際にはrethinkdb ui)を開きます。

簡単な例 - メッセージの割り当てと追跡

BigChainDBの主要なユースケースの1つ(およびなぜ作成したのか)は資産を追跡することです。そのため、Pythonで簡単な例を作成しましょう。最初にターミナルで次のコマンドを実行します。

pip install bigchaindb
bigchaindb configure
bigchaindb show-config
ログイン後にコピー
新しいファイルを作成します

app.py これにより、BigChainDBライブラリをインポートし、新しいオブジェクトを作成し、作成したばかりの設定ファイルを使用して接続します。

from bigchaindb import Bigchain
b = Bigchain()
print(b)
ログイン後にコピー
次に、Pythonアプリケーションを実行します:

のようなものが表示されるはずです。これはすべてが問題ないことを教えてくれます。
python app.py
ログイン後にコピー

以下を追加してください:<bigchaindb.core.bigchain at 0x...>

これにより、データベースにアクセスするためのユーザーと関連キーが作成されます。追加のセキュリティレベルを覚えておいてください。次に、データベースに書き込むためのペイロードを作成し、必要なキーを割り当てて書き込みます。

from bigchaindb import Bigchain
import time

b = Bigchain()

spuser_priv, spuser_pub = b.generate_keys()
print("User Created")

digital_asset_payload = {'msg': 'This is my special message just for you'}

tx = b.create_transaction(b.me, spuser_pub, None, 'CREATE', payload=digital_asset_payload)
print("Transaction Written")

tx_signed = b.sign_transaction(tx, b.me_private)
b.write_transaction(tx_signed)
print ("Transaction Written to BC, now waiting")

time.sleep(10)

tx_retrieved = b.get_transaction(tx_signed['id'])
print(tx_retrieved)
ログイン後にコピー
ブロックチェーンレイヤーからデータベースへの新しいトランザクションが何秒かかります。コードは10秒間待機し、レコードを取得して印刷します。次のようなものが表示されるはずです:

あなたは今、あなたが一人の人にアクセスできるようにしたいという特別なメッセージを持っています:

{
  "signature": '304502205...',
  "id": "0f442bcf4a42...",
  "transaction": {
      "timestamp": "1457104938.430521",
      "data": {
        "hash": "b32779e57...",
        "payload": {
          "msg": "This is my special message just for you"
        }
      },
      "operation": "CREATE",
      "current_owner": "hFJKYk2...",
      "new_owner": "26pdiQTTx...", 
      "input": None
    }
  }
}
ログイン後にコピー

これにより、2番目のユーザーが作成され、特別なメッセージのトランザクションIDを取得して2番目のユーザーに転送します。 BigChainDBのブロックチェーンレイヤーにより、ユーザーとコードが同じ操作を2回実行できなくなります。上記のコードをもう一度実行しようとすると、二重の支出例外がスローされます。

...
print("Now to transfer")

spuser2_priv, spuser2_pub = b.generate_keys()
print("Second User Created")

tx_transfer = b.create_transaction(spuser_pub, spuser2_pub, tx_retrieved['id'], 'TRANSFER')
print("Transfer Created")

tx_transfer_signed = b.sign_transaction(tx_transfer, spuser_priv)
b.write_transaction(tx_transfer_signed)
print ("Transaction Written to BC, now waiting")

time.sleep(15)

tx_transfer_retrieved = b.get_transaction(tx_transfer_signed['id'])
print("Transferred")
print(tx_transfer_retrieved)
ログイン後にコピー
この例は、BigChainDBがRethinkDBにどのように追加されるかのほんの一部を示しており、完全なリストがこちらで入手できます。

http endpoint

現在、BigChainDBで利用できる唯一のクライアントライブラリはPythonであり、より多くのライブラリがあるかもしれませんが、同時に、限られたHTTPエンドポイントを使用して既存のトランザクションを照会できます。

https://www.php.cn/link/6eea81fa0417b0068e614074225a9daf

または次の方法を使用して新しいトランザクションを書きます:

https://www.php.cn/link/f8b64946ebc86a5e23e1605a2943210c

次のペイロードを追加します。ここでは、作成できるさまざまなタイプのトランザクションに合わせて操作を変更できます。 分散型の将来のコンポーネント

ブロックチェーンの起源を無視して、BigChainDBは、現在のNOSQLおよび分散データベースに欠落している多数の機能を提供します。この事実だけでも、試してみる理由であり、有効なビジネス/ユースケースを提供する場合があります。 あなたの間のブロックチェーン愛好家の場合、それはまた、完全な分散型アプリケーションスタックのパズルを完成させます。理論的には、アプリケーション用のイーサリアム、ファイルシステム用のIPF、およびデータストレージ用のBigChainDBがあります。これらのコンポーネントは、アプリケーションの開発、展開、維持の非常に異なる方法の段階を設定し、魅力的な未来を作成します。以下のコメントでこれについてのコメントを聞いてみたいと思います。

(この部分は記事のコンテンツの単純な要約と語り直されたものであり、擬似オリジナリティのカテゴリーに該当しないため、FAQパーツはここで省略されています。)

以上がブロックチェーンとBigChainDBを使用したデータストレージの管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現とは何ですか? 正規表現とは何ですか? Mar 20, 2025 pm 06:25 PM

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

人気のあるPythonライブラリとその用途は何ですか? 人気のあるPythonライブラリとその用途は何ですか? Mar 21, 2025 pm 06:46 PM

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

See all articles