본문으로 건너뛰기

검증인 생성 가이드

이 가이드는 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" 매개변수에 의해 결정됩니다.