본문으로 건너뛰기

검증인 생성 가이드

이 가이드는 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자의 영숫자로 구성된 이름을 선택합니다.
  • 웹사이트: 검증인에 대한 추가 정보가 포함된 웹사이트의 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를 얻을 수 있습니다.

로컬 키의 경우:

${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입니다.

커미션​

검증자 생성 양식의 수수료 설정 화면

  • 비율: 검증인의 수수료율입니다.
  • 최대 비율: 검증인이 설정할 수 있는 최대 커미션 비율입니다.
  • 최대 변경률: 검증인이 매 에포크(1일)마다 설정할 수 있는 최대 변경률입니다.
자기위임​

검증자 생성 양식의 자가 위임 설정 화면

  • 자체 위임 금액: 검증인 생성 시 위임할 금액입니다. 입력할 최소 숫자는 2001입니다. 최소 자체 위임 금액은 2000BOT이고 데드 주소로 잠그려면 추가로 1BOT이 필요합니다.

3. 양식 제출​

필수 정보를 모두 입력한 후 제출 버튼을 클릭하여 거래를 제출하세요.

참고: 이 단계를 완료해도 노드가 활성 유효성 검사기가 된다는 보장은 없습니다. 선택은 전체 BOT 지분을 반영하는 순위를 기반으로 하며 상위 N개 노드만 활성 검증자로 선택됩니다. 숫자 N은 StakeHubContract(0x0000000000000000000000000000000000002002) 내의 "maxElectedValidators" 매개변수에 의해 결정됩니다.