CENNZnetでバリデータノードを設定する方法
このガイドでは、CENNZnet上でバリデータノードを設定する方法を説明します。 具体的には、dockerやシステム管理者のスキルがあればできる、ノンプログラミングな方法でバリデータノードをセットアップする方法です。
CENNZnetでバリデータノードを設定するには2つの方法があります。
1. CENNZnet APIの使用
2. CENNZnetポータルの利用 (https://cennznet.io/)
API方式では、JavaScriptのプログラミングスキルが必要です。 プロセスを自動化することができるので、複数のバリデータをより簡単に設定することができます。 CENNZnetのAPIを使ってプログラム的にバリデータを設定するには、こちらのWikiにある技術文書を参照してください。
CENNZnetポータル方式は、コーディングスキルに関係なく誰にでも実行可能で、短時間で完了します。
条件:
· コマンドラインの使用に慣れている
· ドッカーまたはシステム管理者の経験
CENNZnet.ioポータルを使ったバリデータノードの設定
ここでは、以下の手順を視覚的に説明しています。
Step 1: バリデータノードの起動
バリデータのノードを起動するには2つの方法があります。
1. 新しいノードを立ち上げる: こちらの方が処理が早いですが、ネットワークの状況によっては同期が終わるまで数日待つ必要があります。
2. スナップショットからノードを起動する: このためには、スナップショット(ノードの状態の完全なコピー)をダウンロードする必要があり、現在約50Gの容量が必要です。 スナップショットをダウンロードしたら、すでに同期されているノードを起動することができます。
フレッシュノードの起動
ターミナルで以下のコマンドを実行すると、バリデータとしてノードを起動し、CENNZnet Mainnet(Azalea)に参加することができます。
このコマンドは、このドキュメントで説明されているすべてのステップを完了するまで、ブロックを作成したり、バリデーションに参加したりすることはありません。
スナップショットからのノードの起動
1. バリデータノードの最新アーカイブをこちらからダウンロードしてください。
2. アーカイブを解凍してください。
3. 後述のコマンドを編集して実行します。
Step 2: ノードが同期するのを待ちます
ノードは、ベストブロック番号がターゲットブロック番号と同じ、もしくは近い場合、同期を終了します。 以下はノードの出力例です。
INFO ⚙️ Syncing 21.2 bps, target=#1140132 (1 peers), best: #532405 (0xfad8…07ea), finalized #531968 (0x1a24…d249), ⬇ 7.3kiB/s ⬆ 60 B/s
Step 3: 資金をステーキング
バリデータになるためには、最低基準額である10,000CENNZをステーキングにてロックする必要があります。これは、CENNZの量をステーキングシステムに入れるボンディング取引を使って行われます。
ボンディング取引の際には、コントローラーアカウントを設定し、ステーキング報酬を受け取るアカウントを指定することもできます。
1. CENNZnet.ioにアクセスします。
2. Advanced->Extrinsicsを選択します。
3. 最初の行では、stash account(ステーキングしたいCENNZを保有するアカウント)を選択します。
4. 2列目で “Staking “と “Bond “を選択します。
5. “controller”フィールドで、コントローラアカウントを選択します:バリデータのステーキングを管理するアカウントです。 コントローラーはスタッシュアカウントと同じものを使用できますが、セキュリティ上の観点から、別のコントローラーアカウントを使用することをお勧めします。
6. ステーキングするCENNZの量を設定します。
7. “pay”フィールドで、ステーキングリワードを受け取るアカウントを選択します。 デフォルトでは、ステーキングの報酬はスタッシュアカウントに戻ります。 ここでは、デフォルトの設定を別のアカウントに置き換えることができます。
スタッシュとコントローラーアカウントの詳細については、こちらのGithub Wikiのテクニカルドキュメントをご参照ください。
Step 4: セッションキー
セッションキーは、コントローラアカウントが実行中のノードを代表していることを証明するもので、2つのアカウントを安全に接続して検証するプロセスを行います。
セッションキーを要求するためには、実行中のバリデータノードと、スタッシュアカウントを代行するコントローラアカウントをリンクする必要があります。 コントローラアカウントは、スタッシュに代わっていくつかのセッションキーを要求するトランザクションを行います。
セッションキーはいつでもこのプロセスを使ってローテーションすることができます。
セッションキーの要求には2つのステップがあります。
1. 新しいセッションキーの生成
2. セッションキーの設定
Step 4.1 新しいセッションキーの生成
· ターミナルで次のコマンドを実行します。
curl \-H "Content-Type: application/json" \-d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params": []}' localhost:9933
· 次のステップで使用するために、”result “の値をコピーします。 これが新しいセッションキーです。 必ずセッションキー全体をコピーしてください。 文字列全体をコピーするには、ページを拡大する必要があるかもしれません。
Step 4.2 セッションキーの設定
1. CENNZnet.ioにアクセスします。
2. Advanced->Extrinsicsを選択します。
3. 最初の行で、ステップ3で選択したコントローラアカウントを選択します。
4. “session” を選択し“setKeys”を選択します。
5. キーを前のステップで得た値に設定します。
6. “proof”はデフォルトに設定しておいてください。
7. Submit Transactionをクリックします。
Step 5: バリデートの意思表示
⚠️ 注意: このアクションを開始する前に、バリデータノードが同期してセッションキーが設定されていることを確認してください。 これに失敗するとスラッシュが発生します。バリデータノードがネットワーク上でその役割を果たせなくなるからです。
注意:選挙期間が終了している場合は、有効化の意思表示はできません。 通常、選挙は期間の最後の10分で閉じられます。 エラー “staking.CallNotAllowed “が表示された場合は、そのままお待ちいただき、次のステーキング期間に再度お試しください。
バリデーションの意思を伝える際に、コントローラアカウントはバリデータ候補プールに参加するためのトランザクションを送信します。 これにより、あなたのバリデータが次のステーキング期間にノミネートされます。そのためには以下の手順を踏んでください。
1. CENNZnet.ioにアクセスします。
2. Advanced->Extrinsicsを選択します。
3. 最初の行で、ステップ3で選択したコントローラアカウントを選択します。
4. 2列目で “Staking “と “validate “を選択します。
5. “commission”欄には、バリデータが受け取る報酬の額であるコミッションを設定します。 残りの報酬は、あなたの推薦者の間で共有されます。 この量は、parts-per-billionで表され、16進数に変換されます。
コミッションの値は、Javascriptのページで計算することができます。
const commission = 20; // Percentconst perbill = 1_000_000_000; // Baseconst commissionPerBill = (commission/100)*perbill;const commissionEncoded = api.registry.createType("Perbill", commissionPerBill);console.log(`For ${commissionEncoded.toHuman()} commission`);console.log(`Enter ${commissionEncoded.toHex()}`);
おめでとうございます!やりましたね🎉 これで、CENNZnet上でバリデータノードが動作するようになりました。
バリデーティングを止める方法
バリデーティングを停止するには、Chillメソッドを呼び出す必要があります。Chillメソッドは、現在のステーキング期間の後にバリデーターが選出されるのを停止します。 バリデータノードの冷却が完了したら、安全にオフラインにして、必要に応じて解除することができます。
chillメソッドを呼び出すには
1. CENNZnet.ioにアクセスします。
2. N Staking->My Stakeを開きます。
3. お使いのバリデータのエントリを見つけ、歯車をクリックすると、Manage stakeウィンドウが開きます。
4. Manage stakeウィンドウで Chillアクションを選択します。
お困りですか?
こちらのCENNZnet DiscordチャンネルのValidatorsチャンネルでは、質問をしたり、迅速なサポートを受けることができます。
また、CENNZnetのバリデータについては、こちらのバリデータFAQをご覧ください。