ビットコイン ブロックチェーン開発の初心者向けガイド (パート 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で失敗したくないのであれば、スマートコントラクトと管理の問題を解決するのが正しい道だ

推薦する

Grayscale Research レポート: Ordinals はビットコインの新たな可能性を引き出すことができるか?

ビットコインは誕生以来、従来の「金融層」取引のやり方さえも変える可能性がある革命的な技術として歓迎さ...

ビットコイン対金:どちらがインフレに打ち勝てるか?

金とビットコインはともに今年、過去最高値を記録したが、その急激な上昇は2022年6月にインフレがピー...

ノースカロライナ州が電子通貨法を制定、仮想通貨送金が急増

ノースカロライナ州は、電子マネー新興企業に対する規則を明確にするために、送金業者に関する法律を改正し...

呉氏は毎週の採掘情報:0313-0320

1. 3月12日の成都カンファレンスで、ビットメインは、マイニング業務に油圧冷却技術を統合し、最大...

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

下降トレンドは反転するので、短期的には大きなポジションを保有しないでください。 1. 市場動向<...

ビットコインの永遠のリスクと中国の金融安全保障

2017年9月4日午後、中国人民銀行と他の7つの省庁は共同で「トークン発行と資金調達におけるリスク防...

Lighthouse Survey: Eth2.0 の設計にはこれらの問題がある

出典: Mediumアキール・モハメッド編纂者:秦暁峰出典: デイリー・プラネットEthereum ...

フィリピン証券取引所は承認後に暗号通貨取引所になることを望んでいる

CNNフィリピンの報道によると、フィリピン証券取引所(PSE)は、同国の規制当局が待望の規制を発表し...

ユニコーンと投資家がブロックチェーンを狙う

クレイジーな解説: 旅行宿泊サービスプラットフォームのAirbnbによるChangeTipの買収は、...

香港の男性が車内でビットコインを取引し、現金300万ドルを奪われる

1月5日、複数の香港メディアが報じたところによると、香港・柴湾の男性が4日夜、車の中で南アジア人と仮...

内モンゴル発展改革委員会:仮想通貨「マイニング」企業の問題に関する苦情や報告を受け付ける特別プラットフォームが設​​立される

BlockBeatsによると、5月19日、内モンゴル発展改革委員会は仮想通貨「マイニング」企業に関す...

ソーラープラザがブロックチェーングリーンエネルギーの未来を照らす

ソーラープラザは、余剰電力を最大限に活用し、仲介業者の高い仲介コストを回避するために、ブロックチェー...

Huobi.comとOKCoinがすべての仮想通貨事業を停止。プラットフォーム管理者は一時的に北京を離れることが許可されていない

ビットコインなどの仮想通貨取引所が2つの拠点を維持するかどうかという疑問がついに明らかになり、中国は...

2020年のビットコイン半減期前夜、マイニング業界は生死を賭けた賭けに直面

2019年末、鉱山労働者たちは苦境に立たされていた。ビットコインの価格が下がり、多数のマイニングマシ...

CoinFox、2016年に最も有望なブロックチェーン使用事例トップ5を発表

ブロックチェーンはメディアで大いに宣伝されていますが、この分散型台帳の実際の使用例を理解するのは困難...