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

推薦する

ブロックチェーンを語る(I):最初の夢

人々を最も興奮させるトピックは何でしょうか? ——「ブロックチェーン」など、聞いたことのない新しいも...

弁護士郭志豪:注目!仮想通貨量的裁定取引、「信託犯罪幇助」の疑いで大量捜査

最近、湖北省洪湖市公安局が取引所でBTCを使って「マネーロンダリング」を行い、情報ネットワークの犯罪...

北京大学の董暁英氏:デジタル経済の最大の課題は、伝統的な企業の変革である

中国国営ラジオ天津6月29日ニュース(記者易傳) 2016年夏季ダボス会議では、インダストリー4.0...

強気相場はまだ終わっていないが、底を打つには長い時間がかかるだろう

過去1週間、暗号通貨市場はトランプ大統領の選挙勝利以来最大の調整を経験した。ビットコインはわずか12...

ウォール街の幹部らは、デジタル通貨業界に参入するために転職している。彼らは狂っているのか?

今週、ニューヨーク州のデジタル通貨規制法「BitLicense」が発効したことを受けて、ビットコイン...

BitPayとIngenicoが提携し、2,700万の加盟店にビットコイン決済を可能にする

ビットコイン決済プロセッサーの BitPay は、より多くの商店がターミナル決済アプリを通じてビット...

西安 + ブロックチェーン = ?答えを知るために古代都市西安へお越しください!

ブロックチェーン分散ストレージ業界の将来について議論するために、古代都市西安に来てください。西安 +...

ビットコインとブロックチェーンのスタートアップ:OTC市場が証券取引所を上回る

最近まで、ブロックチェーン技術に取り組む開発者にとって、NASDAQ とニューヨーク証券取引所が主な...

Bitcoin Core 0.13.1が正式にリリースされ、Segregated Witnessは来月中旬に有効化される予定

Bitcoin Core 0.13.1 が本日正式にリリースされ、待望の Bitcoin Core ...

諦めから本当に買うまで:Three Arrows Capitalの態度転換の背後にあるイーサリアム発展の謎

著者 |梁文慧11月20日、Three Arrows Capitalの共同創設者であるZhu Su氏...

ノルウェーの仮想通貨マイニング施設、爆破予告を受けて一時閉鎖の可能性

thelocalによると、ノルウェーのビットコイン採掘会社Kryptovaultが運営する工場は騒音...

テラ生態系再生計画に関する人気の提案

度重なる低迷とデススパイラルを経て、テラの復活計画が議題に上がり、さまざまな意見が出ている。 5月1...

中国紙幣デジタル通貨案が北京で審査通過、ICBC、ファーウェイなどが会議に参加

2016年7月22日、北京モバイル金融産業連盟第1回理事会第2回会議が中国農業銀行本店で開催されまし...