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

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></bigchaindb.core.bigchain>

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

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 までご連絡ください。
Python vs. C:重要な違​​いを理解しますPython vs. C:重要な違​​いを理解しますApr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python vs. C:プロジェクトのためにどの言語を選択しますか?Python vs. C:プロジェクトのためにどの言語を選択しますか?Apr 21, 2025 am 12:17 AM

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

Pythonの目標に到達する:毎日2時間のパワーPythonの目標に到達する:毎日2時間のパワーApr 20, 2025 am 12:21 AM

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間の最大化:効果的なPython学習戦略2時間の最大化:効果的なPython学習戦略Apr 20, 2025 am 12:20 AM

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

PythonとCのどちらかを選択:あなたに適した言語PythonとCのどちらかを選択:あなたに適した言語Apr 20, 2025 am 12:20 AM

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. C:プログラミング言語の比較分析Python vs. C:プログラミング言語の比較分析Apr 20, 2025 am 12:14 AM

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

1日2時間:Python学習の可能性1日2時間:Python学習の可能性Apr 20, 2025 am 12:14 AM

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Python vs. C:曲線と使いやすさの学習Python vs. C:曲線と使いやすさの学習Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール