バリデータ作成ガイド
このガイドでは、BOT Chain で新しいバリデータを作成するプロセスの概要を説明します。 BOT ステーキング dApp は、BOT Chain でバリデータを作成および管理するための公式ツールです。
- テストネット: https://staking.bohr.life
- メインネット: https://staking.botchain.ai
用語
- オペレーターアドレス: BOT のバリデーター情報を作成および変更するためのアドレス。ステーキング dApp に接続するときは、このアドレスを使用する必要があります。対応するアカウントには、バリデータの作成と取引手数料の支払いのために 2001 BOT 以上にする必要があります。
- コンセンサス アドレス: バリデーターのノードの一意のアドレス。新しいブロックをマイニングする際のコンセンサス エンジンに使用されます。オペレーターのアドレスとは異なる必要があります。ビーコンチェーン上に既存のバリデーターが作成されている場合、古いコンセンサスアドレスは再利用できないため、新しいコンセンサスアドレスを作成する必要があります。
- 投票アドレス: 高速ファイナリティ投票に使用されるアドレス。ビーコンチェーン上に既存のバリデーターが作成されている場合、古い投票アドレスは再利用できないため、新しいものを作成する必要があります。
- BLS 証明: 投票アドレスの所有権を検証する BLS 署名。
- ID: 新しいバリデーターをビーコン チェーンの既存のバリデーターに関連付けます。これは、デリゲート者がステークを移行するときに便利です。デリゲート者は、同じバリデーターオペレーターによって実行されている新しいバリデーターがあることを知ることができます。古いバリデータを移行する場合を除き、選択可能なものです。
手順
1. dAppに接続する
オペレーターアドレスを使用してステーキング dApp に接続してください。このステップでは、MetaMask、および WalletConnect オプションを使用できます。次のステップに進む前に、アカウントに 2001 BOT を超えていることを確認してください。
2. フォームに記入する
dApp に移動し、ページの右中央にある [検証者になる] ボタンを選択して、作成プロセスを開始します。
バリデーターを作成するには、次の情報が必要です。
基本情報

[Create Validator] ページで次の詳細を入力する必要があります。
- バリデータ名: 特殊文字を除く 3 ~ 9 文字の英数字で構成される名前を選択します。
- Web サイト: バリデーターに関する追加情報を含むウェブサイトの URL を入力します。
- 説明: バリデーターの簡単な説明。
アドレス

次のアドレスが必要です:
- コンセンサスアドレス: バリデーターのノードの一意のアドレス。
- 投票アドレス: 高速ファイナリティ投票に使用されるアドレス。
- BLS 証明: 投票アドレスの所有権を検証する BLS 署名。
- ID: 新しいバリデーターをビーコン チェーンの既存のバリデーターに関連付けます。古いバリデータを移行する場合を除き、これはオプションです。
コンセンサスアドレスを生成
注: マシンのプラットフォームに基づいて正しいバイナリをダウンロードしていることを確認してください。たとえば、MacOS を使用している場合は、geth_mac ファイルをダウンロードする必要があります。以下では、簡単にするためにバイナリを geth と呼びます。
マイニング用の新しいアカウントを作成するには、次のコマンドを使用してアカウントのパスワードを設定してください。
geth account new --datadir ${DATA_DIR}
- DATA_DIR: キー ストア ファイルを保存するディレクトリ。
このコマンドは、パブリックアドレス (つまり、コンセンサス アドレス) と秘密キーへのパスを返します。キーファイルをバックアップしてください。
コンセンサスアドレスの例は 0x4b3FFeDb3470D441448BF18310cAd868Cf0F44B5 です。
マイニング用のアカウントをすでにお持ちの場合は、シードフレーズを使用してアカウントを復元できます。
geth account import --datadir ${DATA_DIR}
ビーコンチェーンでバリデーターを作成した場合は、コンセンサス アドレスに別のバリデーターを使用してください。
投票アドレスと BLS 証明を生成する
新しい BLS アカウントを作成するには、次のコマンドを使用してください。
geth bls account new --datadir ${DATA_DIR}
- DATA_DIR: キー ストア ファイルを保存するディレクトリ。
すでに投票キーをお持ちの場合は、次のコマンドを使用して、BLS ウォレットを作成し、キーファイルを使用してそれを復元してください。
geth bls account import ${KEY_FILE} --datadir ${DATA_DIR}
- DATA_DIR: BLS アカウントを復元するためのバックアップファイル。
次に、次のコマンドを実行すると、投票アドレスを取得できます。
geth bls account list --datadir ${DATA_DIR}
アドレスの例は、b5fe571aa1b39e33c2735a184885f737a59ba689177f297cba67da94bea5c23dc71fd4deefe2c0d2d21851eb11081f69 です。
次に、下記のコマンドを実行して bls 証明を取得できます。
geth bls account generate-proof --chain-id ${BOT_CHAIN_ID} ${OPEATOR_ADDRESS} ${VOTE_ADDRESS}
- BOTCHAINID: BOT メインネットの場合は 677、BOT テストネットの場合は 968。
- OPEATOR_ADDRESS: 新しいバリデーターのオペレーターとして認識されるアカウントのアドレス。
- VOTE_ADDRESS: 最後の手順で作成した投票アドレス。
証明の例は下記のとおりです。 0xaf762123d031984f5a7ae5d46b98208ca31293919570f51ae2f0a03069c5e8d6d47b775faba94d88dbbe591c51c537d 718a743b9069e63b698ba1ae15d9f6bf7018684b0a860a46c812716117a59c364e841596c3f0a484ae40a1178130b76a5
IDを作成
注: マシンのプラットフォームに基づいて正しいバイナリをダウンロードしていることを確認してください。たとえば、MacOS を使用している場合は、macos_binary.zip ファイルをダウンロードする必要があります。解凍すると、botcli (mainet 用) と tbotcli (testnet 用) が見つかります。以下では、簡単のためにバイナリを botcli と呼びます。
アカウントを設定
ニーモニックがある場合は、次のコマンドを実行してアカウントをインポートできます。
${workspace}/bin/botcli keys add <your-account-name> --recover --home ${HOME}/.botcli
Enter a passphrase for your key:
Repeat the passphrase:
リカバリシードフレーズを入力してください: このアカウントのパスワードを設定し、ニーモニックを入力するように求められます。その後、アカウント情報を取得します。
${workspace}/bin/botcli: botcli バイナリ実行可能ファイルへのパス。テストネットの場合は、代わりに tbotcli を使用する必要があります。${HOME}: アカウント情報を保存するフォルダー。
または、台帳をお持ちの場合は、次のコマンドを実行してアカウントをインポートできます。
${workspace}/bin/botcli keys add <your-account-name> --ledger --index ${index} --home ${HOME}/.botcli
${workspace}/bin/botcli: botcli バイナリ実行可能ファイルへのパス。テストネットの場合は、代わりに tbotcli を使用する必要があります。${HOME}: アカウント情報を保存するフォルダー。${index}: インポートする勘定科目のインデックス。
ID を取得
アカウントがインポートされた後、次のコマンドを実行して ID を取得できます。
ローカルキーの場合:
${workspace}/bin/botcli \ validator-ownership \ sign-validator-ownership \ --bot-operator-address ${NEW_VALIDATOR_OPERATOR_ADDR_ON_BOT} \ --from ${ACCOUNT_NAME} \ --chain-id ${BOT_CHAIN_ID} \
元帳キーの場合:
${workspace}/bin/botcli \ validator-ownership \ sign-validator-ownership \ --bot-operator-address ${NEW_VALIDATOR_OPERATOR_ADDR_ON_BOT} \ --from ${BOT_OPERATOR_NAME} \ --chain-id ${CHAIN_ID} \ --ledger
${workspace}/bin/botcli: botcli バイナリ実行可能ファイルへのパス。テストネットの場合は、代わりに tbotcli を使用する必要があります。--to ${NEWVALIDATOROPERATORADDRON_BOT}: 新しいバリデーター オペレーターのアドレスがマップされる BOT アドレスを指定します。--from ${ACCOUNT_NAME}: 署名を実行するアカウント名を指定します。アカウントは、ビーコンチェーン上に作成されたバリデーターのオペレーターである必要があります。
そして、次のような出力を取得します。
TX JSON: {"type":"auth/StdTx","value":{"msg":[{"type":"migrate/ValidatorOwnerShip","value":{"bot_operator_address":"RXN7r5XZlaljqzp8msZvx6Y6124="}}],"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"Ahr+LlBMLgiUFkP75kIuJW1YHrsTy39GeOdV+IaTREDN"},"signature":"AL5mj52s0+tcdoEb6c6PAmqBixuv3XEmrLW3Y1kvUeYgG3RqVvWU/dIVcfxiHHwLGXlcn0X1v00jFrpLIsxtqA==","account_number":"0","sequence":"0"}],"memo":"","source":"0","data":null}}
Sign Message: {"account_number":"0","chain_id":"Bot-GGG-Ganges","data":null,"memo":"","msgs":[{"bot_operator_address":"0x45737baf95d995a963ab3a7c9ac66fc7a63ad76e"}],"sequence":"0","source":"0"}
Sign Message Hash: 0x8f7179e7969e497b5f3c006535e55c2fa5bea5d118a8008eddce3fccd1675673
Signature: 0x00be668f9dacd3eb5c76811be9ce8f026a818b1bafdd7126acb5b763592f51e6201b746a56f594fdd21571fc621c7c0b19795c9f45f5bf4d2316ba4b22cc6da8
PubKey: 0x021afe2e504c2e08941643fbe6422e256d581ebb13cb7f4678e755f886934440cd
署名は、BOT Chain で作成された古いバリデーターと関連付けるための ID です。
手数料

- Rate: バリデーターの手数料率。
- 最大レート: バリデーターが設定できる最大手数料レート。
- 最大変更レート: バリデーターがエポック (1 日) ごとに設定できる最大変更レート。
自己デリゲート

- 自己デリゲート金額: バリデータ作成時にデリゲートする金額。入力する最小数は 2001 です。最小自己デリゲート量は 2000 BOT、デッド アドレスにロックするための追加の 1 BOT です。
3. フォームの送信
必要な情報をすべて入力したら、[送信] ボタンをクリックして取引を送信します。
注: これらの手順を完了しても、ノードがアクティブなバリデーターになるとは限りません。選択は、合計 BOT ステークを反映するランキングに基づいて行われ、上位 N ノードのみがアクティブなバリデータとして選択されます。数値 N は、StakeHubContract 内の「maxElectedValidators」パラメーターによって決定されます (0x000000000000000000000000000000000002002)。