何かを理解するには、それを分解して元に戻すことが、実践的な作業でどのように機能するかを理解し、各コンポーネントが何をするかを理解するための最も簡単な方法です。 この記事では主にブロックチェーンインスタンスの構築方法を書き、ソースコードはここにあり、ダニエル・ヴァン・フライメンによって開発されました。 詳細なチュートリアルはこちら(https://hackernoon.com/learn-blockchains-by-building-one-117428612f46)にあり、この記事は簡単なセットアップと実行にすぎません。
まず、基本的なLinux環境が必要ですが、WSL Ubuntuでのみテストしましたが、次の手順は他のLinux🛠との互換性が保証されていませんが、WSL Ubuntuは間違いなく問題ありません。
WSLのインストールについては詳しく書きませんが、オンラインチュートリアルがたくさんありますが、WSLに設定できない場合は、この記事を参照してください。
システムがインストールされたら、APIインタラクション用のhttpツールも必要になります。
{% BTN https://www.getpostman.com/apps, Postman 公式サイト, ダウンロード fa-lg fa-fw %}
このプロジェクトにはPython 3.6+が必要であり、FlaskライブラリとRequestsライブラリに依存しています。 システムに付属のPythonバージョンがわからない場合は、次のコマンドを使用して「python -v」、ubuntuにはpython3が付属しているため、Flaskとリクエストをインストールするだけで済みます。
ピップインストールフラスコ== 0.12.2リクエスト== 2.18.4
pipがインストールされていない場合:
sudo apt install python3-pip
githubにアクセスしてソースコードをダウンロードするか、私のバックアップサイトからダウンロードできます。
#下载源码 カール-O https://down.tstrs.me/blockchain/blockchain.py #运行 python3 blockchain.py
次の出力は正常です。
しかし、このようなエラーが表示された場合:
次のコマンドを使用してエラーを修正し、再実行できます。
PIP3フラスコを取り付ける
正常に動作している場合は、完全なブロックチェーンが構築されます。 次のステップは、ブロックチェーンの使用方法です。
郵便配達員で採掘するように 'http://localhost:5000/mine' を要求します ({% ラベル success@GET %}):
リクエスト 'http://localhost:5000/transactions/new' ({% ラベル info@POST %}) で取引リクエストを作成します。
postman 要求 'http://localhost:5000/chain' を使用して、すべてのブロック情報 ({% ラベル success@GET %}) を取得します。
この時点で、トランザクションをマイニングして受け入れるための基本的なブロックチェーンはすでにありますが、ブロックチェーンシステムは分散されているため、すべてのノードチェーンを一貫性のあるものにするにはどうすればよいですか?
まず、どのノードが隣接しているかを知らせる必要があり、各ノードはネットワーク内の他のノードの記録を保持します。 ノードが他のノードと異なるチェーンを持つ場合、競合が発生するため、「このネットワークで最も長いチェーンが最も権威がある」というルールを策定し、このルールを使用してネットワーク内のノード間で合意に達する必要があります。
ノードを別のマシンで実行することも、現在のマシンの異なるポートで 2 つのインスタンスを実行することもできます。 私が使用した方法は後者でした:
#获取另一个脚本该脚本端口5001.もちろん、自分でコピーを作成してポートを変更することもできますが、ポートを設定するには、blockchain.py ファイルの最後の行の「port=」の後の番号を変更するだけです。 カール-O https://down.tstrs.me/blockchain/blockchain1.py python3 blockchain1.py
したがって、新しいノードを登録するために、 'http://127.0.0.1:5000'と 'http://127.0.0.1:5001'の2つのノードがあります。
郵便配達員を使用して 'http://127.0.0.1:5001/nodes/request' を要求します ({% ラベル info@POST %}):
{ "ノード": ["http://127.0.0.1:5000"] }
返された情報は図に示されます (つまり、ノードが正常に追加されました)。
次に、ノード0でいくつかの新しいブロックを掘り下げて、チェーンが長くなることを確認します。 次に、ノード1でコンセンサスアルゴリズム '/nodes/resolve'を呼び出します({%ラベルsuccess@GET%})。
ショートチェーンはコンセンサスアルゴリズムに置き換えられます。
ブロックチェーンは確かにとても楽しいですが、短いチェーンが長いチェーンに置き換えられ、誰かがビットコインのジェネシスブロックからハードフォークを開始し、オフラインを実行して現在の高さを超えると、再突入ネットワークが元のチェーンに取って代わるのではないでしょうか? しかし、この計算能力は想像を絶するものであり、量子コンピューターが登場する前は、このようなデジタル通貨や暗号通貨は非常に安全だと思っていました。
リファレンス
-EOF-
結局のところ、ベータ システムをアップグレードしないでください。
DDNSサービスをカスタマイズし,超高速解析を行う.
Web サイトのトラフィック(トラフィック)とは、一般的に Web サイトへのアクセス数を指し、Web サイトにアクセスしたユーザーの数や、ユーザーが閲覧した Web ページの数などの指標を表すために使用されます。
SaltyLeo からの 10 月のゴシップ
さまざまな使用シナリオに対応するために、さまざまなグラフィックス カードを切り替えます。
目次
人気タグ
その他の言語
サイト情報