ビットコイン ブロックチェーン開発の初心者向けガイド (パート 2)

ビットコイン ブロックチェーン開発の初心者向けガイド (パート 2)

この記事では、Docker コンテナーを使用して、一般的に使用されている Ubuntu 14.04 オペレーティング システム上の開発テスト環境として、プライベート ノードの Bitcoin テスト ネットワーク (bitcoin-testnet) をすばやくインストールして構成します。また、Node.js を例として使用して、Bitcoin ウォレット ノードによって提供される RPC インターフェイス サービスを呼び出して、特定の Bitcoin 関連のアカウントおよびトランザクション操作を実装する方法を説明します。

RPC (リモート プロシージャ コール) は、基盤となるネットワーク テクノロジを理解していなくても、ネットワーク経由でリモート コンピュータ プログラムにサービスを要求するプロトコルです。
Bitcoin wiki ページ (https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)) を見ると、Node.js 以外にも Bitcoin の RPC を呼び出すことができる言語が多数あることがわかります。この記事の内容を参考にして、特定の実験に適した言語を選択してください。
上記の Web ページでは、Bitcoin RPC によって呼び出すことができるコマンドのリストをさらに読んで理解することもできます (https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list)。

Ubuntu 14.04 オペレーティング システムと Node.js のインストール方法については、必要に応じて、前の記事「初心者から上級者まで学ぶビットコイン ブロックチェーン開発ガイド 1」のインストール手順を参照してください (http://www.8btc.com/blockchain_develope_lesson_1)。

1. Dockerオペレーティング環境をインストールする

1. apt-get コマンドを使用して、Docker コンテナ サポート ソフトウェアをインストールします。

$ sudo apt-get をインストール docker.io

2. ソフトリンクを作成する
$sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

3. Dockerのバージョンを確認する
$ docker –バージョン
「Docker バージョン 1.6.2、ビルド 7c8fca2」のようなメッセージが表示された場合、Ubuntu 14.04 に Docker が正常にインストールされたことを意味します。

Docker のインストール方法と実行方法の詳細については、オンラインで検索するか、次のページを参照してください: 「Docker First Try」(http://my.oschina.net/lamciuloeng/blog/226107)

2. Bitcoinテストネットワーク(bitcoin-testnet)をインストールして実行する

1. Bitcoinテストネットワーク(bitcoin-testnet)のDockerイメージをダウンロードする
$ sudo docker pull freewil/bitcoin-testnet-box

2. Dockerイメージを実行する
$ sudo docker run -t -i -p 19001:19001 -p 19011:19011 freewil/bitcoin-testnet-box

注: 上記のコマンドのポート 19001 と 19011 は、2 つのノードに RPC サービスを提供するように構成されています。

3. Docker ランタイム環境に入ったら、次のコマンドを入力して Bitcoin テスト ネットワークを開始します。
$ 開始する
起動が成功すると、2 つの Bitcoin テスト ウォレット ノードがシミュレートされ、ローカルで実行されて、プライベート Bitcoin テスト ネットワークが形成されます。

テスト ネットワーク ノードのステータス情報を表示するには、次のコマンドを入力します。
$ getinfo を実行する

表示されるプロンプト情報は次のとおりです。中国語版ではいくつかの重要な情報が説明されています。
bitcoin-cli -datadir=1 ge​​tinfo //最初のウォレットノードの情報
{
「バージョン」: 120100,
"プロトコルバージョン": 70012,
「ウォレットバージョン」: 60000,
“balance”: 0.00000000, //最初のウォレットノードのアカウント残高、最初は0
"blocks": 0, //生成されたブロックの数。初期起動は0です。さらにコマンドを使用して、ブロックデータの生成をシミュレートできます。「timeoffset」:0、
「接続」: 1,
"プロキシ": ""、
「難易度」: 4.656542373906925e-10,
「テストネット」: 偽、
"キープール最古": 1467253951,
"キープールサイズ": 101,
「ペイトランザクション手数料」: 0.00000000,
「リレー料金」: 0.00001000,
「エラー」: 「」
}
bitcoin-cli -datadir=2 getinfo //2番目のウォレットノードの情報
{
「バージョン」: 120100,
"プロトコルバージョン": 70012,
「ウォレットバージョン」: 60000,
「残高」: 0.00000000,
「ブロック」: 0,
"タイムオフセット": 0,
「接続」: 1,
"プロキシ": ""、
「難易度」: 4.656542373906925e-10,
「テストネット」: 偽、
"キープール最古": 1467253951,
"キープールサイズ": 101,
「ペイトランザクション手数料」: 0.00000000,
「リレー料金」: 0.00001000,
「エラー」: 「」
}
4. ブロックチェーン データを初期化してテストする<br/>Docker 実行ウィンドウに次のコマンドを入力して、さらなるプログラム例のための基本的なブロックチェーン データを初期化して作成します。
注: 公式の Bitcoin ネットワーク環境では、新しいブロックを生成するのに平均約 10 分かかります。ただし、特別なテストネット環境では、簡単なコマンド制御によりブロックを瞬時に一括生成できるため、プログラムの開発やテストに便利です。

生成する
//説明: 新しいブロックレコードの生成をシミュレートします

BLOCKS=200 を生成する
//説明: 200個の新しいブロックレコードの生成をシミュレートします

getinfo を作成する
//説明: 残高情報を含む最新のウォレットステータスを確認します。最初のウォレット ノードのアカウント残高が 5050.00000000 BTC に変更されたことがわかります。これは、シミュレートされたブロック マイニングによって生成されたテスト ビットコインです。

送信元1 アドレス=mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ 金額=10
//説明: 指定されたテストウォレットアドレスに 10 BTC を転送します。コマンド内のテスト転送アドレス「mkiytxYA6kxUC8iTnzLPgMfCphnz91zRfZ」は、後続のテスト プログラム例に必要なテスト ウォレット アドレスに対応していることに注意してください。

BLOCKS=10 を生成する
//説明: 上記の転送トランザクションが十分に確認されていることを確認するために、10個の新しいブロックレコードの生成をシミュレートします。

getinfo を作成する
//説明: 残高情報を含む最新のウォレットステータスを確認します。最初のウォレット ノードのアカウント残高が 5539.99996160 BTC に変わったことがわかります。これは、10 BTC と少額のマイナー手数料がトランザクションに費やされたことを意味します。

3. Node.jsのRPCサポートライブラリをインストールする
よく使用される Node.js RPC サポート ライブラリは多数あります。ここではオープンソース プロジェクト kapitalize を選択します。

Ubuntu デスクトップで新しいターミナル コマンド ライン インターフェイスを開き、次のコマンドを入力してインストールします。
$ npm インストール kapitalize

Kapitalize オープンソース プロジェクトの詳細については、https://github.com/shamoons/Kapitalize を参照してください。


4. サンプルプログラムを実行する

次のサンプル コードをコピーしてテスト環境に保存し (ファイル名を RpcTestnet.js として保存)、コマンド ラインに次のコマンドを入力して実行し、実行結果を確認します。
ノード RpcTestnet.js

注: テスト コードを実行するたびに、Docker ランタイム環境のコマンド ラインに「make generate BLOCKS=10」と入力して、新しいブロック レコードの生成をシミュレートし、テスト コードによって生成されたトランザクション レコードを効果的に確認する必要があります。

サンプル プログラム RpcTestnet.js のソース コードは次のとおりです (ソース コード ファイルはここからダウンロードできます)。

/************************ サンプルコードの開始点****************************/

/******************** サンプルコードの終了************************/
このプログラムに基づいて、ビットコイン プロトコルをさらに理解した後、RPC インターフェイスを呼び出して、特定のビジネス ニーズを満たす特定のトランザクション データ パケット (マルチ署名データなど) の構築など、より複雑な機能をさらに開発できます。これについては今後詳しく紹介する予定です。


<<:  Brexit により人民元が下落しますが、これはビットコインにとってのチャンスが増えることを意味しますか?

>>:  イーサリアムがTheDAOで失敗したくないのであれば、スマートコントラクトと管理の問題を解決するのが正しい道だ

推薦する

空売り業者の不意を突かれ、ビットコインは短期間で47,000ドルを突破し、20か月ぶりの高値に達した

米国のスポットビットコインETFの承認をめぐる感情に後押しされ、ビットコインは月曜日の米国株取引セッ...

Bitmain初の「Visit ANTBOX」イベントが大盛況のうちに終了、マイナーが現地で体験

最近、Bitmainは初のオフラインイベント「Visit ANTBOX」を開催しました。数十人の鉱山...

エネルギーを大量に消費するビットコイン採掘は内モンゴルからカザフスタンやアメリカへ移行するのでしょうか?

仮想通貨のマイニングは内モンゴルから完全に移転される可能性がある。マイニングファームとマイニングマシ...

急成長中のFilecoinエコシステム:その真の価値を理解する

Filecoin の支持者から寄せられる質問の中には、決して避けることのできないトピックが 1 つあ...

政府が高額紙幣を廃止したため、インドの取引所ではビットコインが12%近くのプレミアムで取引されている

インド政府が最近、高額紙幣1,000ルピー紙幣と500ルピー紙幣を廃止する措置を取ったことで、インド...

出品方法が決定しました! Coinbaseが直接上場を発表

大手暗号通貨取引所コインベースは木曜日、公式ブログで、直接上場を通じて株式を公開する予定であると発表...

ビットコイン決済会社が李嘉誠の投資を認める

李嘉誠は伝統的な事業を分離する一方で、新しい技術にも注目することを忘れなかった。海外メディアの報道に...

暗号通貨トレーダーとして、なぜ私は米国株式市場を毎日心配しているのでしょうか?

「ビットコインはデジタルゴールドだ。」 「ビットコインは株などの他の資産に固定されていません。」 ...

強気相場のスローガンに注意、列車から投げ出されないよう注意

注目を集めた訴訟を除けば、2023年のほとんどは暗号通貨にとってほとんど何も起こらない年だった。市場...

マイクロソフトがコンセンサス 2016 ブロックチェーン ハッカソンを開催

クレイジー解説: Blockchain Hackathon 2016 コンセンサス カンファレンスは...

周小川は再び中央銀行デジタル通貨について語るが、FRB議長はBTCが米ドルに取って代わると語る

サウスチャイナ・モーニング・ポストの昨日の報道によると、中国人民銀行前総裁の周小川氏は、中国はデジタ...

カナダの「洪水シーズン」規制当局は鉱山の電力使用に関する新たな規則を推進

カナダのケベック州のエネルギー規制当局であるRegie de l'energieは、暗号通貨...

コインゾーントレンド: 今週のビッグデータに基づくビットコインの価格動向 (2017-02-13)

通貨の価格は狭い範囲で変動するため、ポジションを開く際には注意が必要です。 1. 市場動向<b...

風と波に乗るグループリーダー - Hilamg が分散型組織エコシステムを構築する方法

ホストオレンジ:みなさんこんにちは! ~説教の司会者、オレンジです!江湖伝道会の第36回生放送です。...