メインコンテンツまでスキップ

バリデータ作成ガイド

このガイドでは、BOT Chain で新しいバリデータを作成するプロセスの概要を説明します。 BOT ステーキング dApp は、BOT Chain でバリデータを作成および管理するための公式ツールです。

用語

  • オペレーターアドレス: 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)。