こんにちは、Stakedの渡辺創太です。Substrateでブロックチェーンとアプリケーションを作ってみようと思います。Web3 SummitでGavin Woodが新品のマックを持ってきて0からSubstrate上にブロックチェーンを作っていましたが、それを参考にしています。
事前作業
こちらは当たり前ですが、npmとnodeの最新版はインストールしておきましょう。Substrateを動かすにはRustといくつかのディペンデンシーをインストールしておく必要がありますが、こちらは以下のコードでインストールできます。 `curl https://getsubstrate.io -sSf | bash` 時間が結構かかります。次に、Substrate UIをインストールしてきます。
substrate-ui-new substrate
Substrate UIと同じディレクトリでSubstrateのnode templateもインストールしておきます。
substrate-node-new substrate-node-template sota
sotaのところには自分の名前を入れてください。
ノードを起動するために、substrate-node-template
内で
./target/release/substrate-node-template --dev
を実行します。
走っているコードを見てみると、versionやblockの数などがわかります。Local Node Addressは/ip4/0.0.0.0/tcp/30333/p2p/QmWH6NCm78tbgGuuH6MmzGvuwhxCRoMT1agrpNzumFshEi
となっていますが、これ多分、libp2pですね。
プロトコルの拡張性が高いのか。
— Sota Watanabe (渡辺創太) (@WatanabeSota) February 11, 2019
“Why libp2p?” by @tomaka17 https://t.co/PIezUBGARJ
![20180915133806.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F327904%2Fe4de2868-0112-1dfb-d796-ad25c78fb801.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=dc5bdac8983e144d43a1ce269d84ce68)
Stackはこういう仕組みになっています。
ここまでできたら、先程インストールしたsubstrate-ui
のディレクトリーに移動しnpm run dev
コマンドを実行します。この際に、別のタブでブロックの掘削を同時に行っておく必要があります。こんな感じになるはずです。
その後、http://localhost:8000/にアクセスします。
ここで自分で作成したチェーンとやりとりをすることができます。
ネットワークに他のプレーヤーを追加する
独自環境を構築したので、現時点では参加者は自分1人です。ここに別の参加者を加えたいと思います。git clone https://github.com/paritytech/substrate
で、Substrateのインストールを行います。
現在ファイルは3つです。インストールしたsubstrateのファイル内にsubkey
というファイルがあるので、その中で、
$ subkey restore Alice
を実行するとAliceのKey情報が入手できます。
![Screen Shot 2019-02-12 at 15.00.54.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F327904%2F8a04b177-fac4-6016-d51d-93c8c3a14075.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0999159ccc492cf2fe79610d00c0e3e8)
これをlocalhost:8000
のインターフェース上で入力することでAliceを加えることができます。
![Screen Shot 2019-02-12 at 15.05.31.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F327904%2F73119351-4b35-ad3f-7199-6aa80e5fa201.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f3280bc36f06cf4b6f28f0918b90a6bf)
追加しました。
これでAliceのWalletからDefaultのWalletにunitsを送信することができます。
![Screen Shot 2019-02-12 at 15.06.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F327904%2Fae97c671-55c0-f697-8fed-a10b5fa97e67.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=dcce3dabb393acaab58321469f427969)
Source:大本のビデオはこちらを参考にしてください。