世界一と噂されるCARDANOのステークプールを立てる ～ TestNet セルフノード編 #セルフノードの起動


こんにちは！
[サトー＠CARDANOステーキングプール](https://qiita.com/Kenichi_Sato)です。今日は、「カルダノブロックチェーン アドレスの設定」について書いていきます。


（注）**「世界一と噂されるCARDANOのステークプールを立てる ～ TestNet セルフノード編」**の 記事は、次の記事で構成されています。
1. [世界一と噂されるCARDANOのステークプールを立てる ～ セルフノードのインストール](https://qiita.com/Kenichi_Sato/items/3b3bdabe93dbb276d8c6)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ セルフノードの起動](https://qiita.com/Kenichi_Sato/items/e6143352f44190f0bdae)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ アドレスの設定](https://qiita.com/Kenichi_Sato/items/71c13d7cdd281f0cea84)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ 送金トランザクションの実行](https://qiita.com/Kenichi_Sato/items/6818d12ec2c507c86102)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ ステークプールの作成](https://qiita.com/Kenichi_Sato/items/7e1e83094e69aef6f5e1)

#1.はじめに

2019年10月18日現在、カルダノ ブロックチェーン プロジェクトは、カルダノネットワークを分散化するためのステップとして「Shelley（シェリー）」の開発を行っています。
開発にあたって「Shelley（シェリー）」は、以下の3段階のマイルストーンが設定されています。
　・セルフノードの実装とホスティング
　・ネットワークテスト
　・インセンティブステージ
今回は、「セルフノードの実装とホスティング」のステップにおける「セルフノードの起動」について行った結果をまとめました。セルフノードを起動する手順は、ブートストラップの前処理を行ったあと、jormungandrノードを起動します。

「セルフノードの起動」の前に、「セルフノードのインストール」（#URLリンク）を行う必要があります。

##1-1. 環境
Windows10 Pro
Ubuntu 18.04.3 LTS

##1-2.構成
self_nodeのフォルダを作成し、self_nodeのフォルダにセルフノードをインストール実施している。　参考：「セルフノードのインストール」

![2019-10-20_15h26_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/60e44103-bba5-7ffd-bac6-ecff76459729.png)


#2.具体的な手順

##2-1.スクリプトファイルによるブートストラップ

作業用のディレクトリを作成
![2019-10-20_15h35_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/352472c3-b406-293a-f71f-14cd453257c1.png)

セルフノードを開始するbootstrap script スクリプトファイルを実行する。

```
 ~/self_node/jormungandr/scripts/bootstrap
```
![2019-10-20_15h44_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/096b29ce-3643-55a1-dace-bea2ff34011c.png)

スクリプト実行のパラメータ
-p : REST api のポートを設定します。デフォルト値は、8443
-b : Ouroborous BFT コンセンサス モードで開始します。デバッグ目的に適しています。スロットは10秒間続くことが保証されています。
-g : Ouroboros Genesis コンセンサス モードで開始します。新しいプロトコルです。スロット時間は可変です。
 
＜参考＞Shellyアップブレードにおける コンセンサスプロトコルのロードマップ
https://forum.cardano.org/t/cardano-1-5-daedalus-0-13-0-cardano-sl-3-0-0/21456

正常に起動すると次の画面が表示されます。
![2019-10-20_15h46_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/ede73406-65ad-fc6b-2164-6e1a83427ae9.png)


スクリプト実行によって以下のファイルが生成されます。
![2019-10-20_16h57_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/b1707ba0-d0bd-b7ed-4a7f-99babf851fe1.png)
生成されるファイルの説明
block-0.bin : genesis.yamlをエンコードしたファイル
config.yaml : ブロックチェーンノードの構成オプションを設定するファイル。ネットワーク化の際により設定が意味をなす。
create-account-and-delegate.sh : ステークの委任先アカウントを作成するスクリプトファイル
faucet-send-certificate.sh : ステークを委任する際に利用するスクリプトファイル
faucet-send-money.sh : 蛇口から別の口座に送金します。
genesis.yaml :ブロックチェーンの構成オプションを設定するファイル.
initial-configuration.txt:tee コマンドの使用により画面の内容をテキストに保存しておくことで、後ほど各値を確認する際に便利になる。
~/self_node/jormungandr/scripts/bootstrap | tee initial-configuration.txt
pool-secret1.yaml : ステークプールの構成ファイル（この場合１つのステークプールのみあります。）

##2-1.コマンドを使用してjormungandrノードを起動
```

jormungandr --genesis-block ./block-0.bin --config ./config.yaml --secret ./pool-secret1.yaml &> my_node.log &
```
![2019-10-20_17h41_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/f84d4b62-978c-a84a-7b45-8a0cb3ef9664.png)

起動時に設定したログファイル（my_node.log）の中身を確認
![2019-10-20_17h42_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/24030e8c-de1e-395c-1448-12188c79d634.png)


jcli rest v0　commandで、fauclsent アカウントの状況を確認することができます。

```

jcli rest v0 account get $FAUCET_ACCOUNT -h  http://127.0.0.1:8443/api
```

$FAUCET_ACCOUNTには、initial-configuration.txtファイルを確認して、faucet accountを設定します。

![2019-10-20_17h47_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469763/3888a80e-8fa9-ec3e-1216-f0ea302df756.png)

counter:このアカウントを使用して実行されたトランザクションの数
delegation:アカウントが委任するステークプール識別子です。
  　　　　　委任証明書がない場合、この値は設定されない可能性があります
  　　　　　このアカウントに関連付けて送信されます。
value:アカウントの現在の残高

#３.最後に

今回は、カルダノ ブロックチェーン 「セルフノードの起動」について実行した結果をまとめてみました。ブロックチェーンの概要は言葉で理解していたつもりでしたが、こうやって実際に動かしてみて、起動時に使う設定ファイルの中身を確認することで、さらにブロックチェーンの理解を深めることができました。尚、最初に私が実行したjormungandr のバージョンはv0.3.3でしたが、v0.6.5（2019/10/18 現在の最新）でも動作確認ができています。

＜参考記事＞
https://github.com/input-output-hk/jormungandr
※現在は、ネットワーク化のステップについて開発が進められています。今回、実行したセルフノードに関する記事は削除されています。（2019/10/18 現在）


（注）**「世界一と噂されるCARDANOのステークプールを立てる ～ TestNet セルフノード編」**の 記事は、次の記事で構成されています。

1. [世界一と噂されるCARDANOのステークプールを立てる ～ セルフノードのインストール](https://qiita.com/Kenichi_Sato/items/3b3bdabe93dbb276d8c6)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ セルフノードの起動](https://qiita.com/Kenichi_Sato/items/e6143352f44190f0bdae)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ アドレスの設定](https://qiita.com/Kenichi_Sato/items/71c13d7cdd281f0cea84)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ 送金トランザクションの実行](https://qiita.com/Kenichi_Sato/items/6818d12ec2c507c86102)
1. [世界一と噂されるCARDANOのステークプールを立てる ～ ステークプールの作成](https://qiita.com/Kenichi_Sato/items/7e1e83094e69aef6f5e1)