검증자는 온체인에 등록되고 스테이크를 본딩한 동기화된 풀 노드입니다. 먼저 노드를 설치하고 동기화한 다음, 스테이킹 프리컴파일(0x0000000000000000000000000000000000000800)에서 createValidator를 호출하여 등록합니다. 이 페이지에서는 등록 단계를 다룹니다. 노드 자체에 대해서는 노드 설치하기와 노드 구성을 참조하세요.
사전 요구사항
- 메인넷(Chain ID
988)에서 완전히 동기화된 풀 노드. 노드 설치하기 참조. ~/.stabled/config/config.toml에서double_sign_check_height가2또는 그 이상으로 설정됨.- 프리컴파일 호출에 사용되는
cast를 위한 Foundry 설치. - 검증자의 EVM 주소에 USDT0로 입금된 스테이킹 금액.
진행하기 전에 노드가 따라잡았는지 확인하세요. catching_up은 반드시 false여야 합니다.
curl -s localhost:26657/status | jq '.result.sync_info.catching_up'false1단계: 검증자 키 준비
오퍼레이터 계정을 생성한 다음, createValidator에 필요한 두 가지 값인 합의 공개 키(base64)와 검증자의 EVM 주소를 읽습니다.
# Create the validator operator account
stabled keys add validator
# Consensus public key (base64) — save this
stabled comet show-validator | jq .key
# Derive the validator's EVM address (0x form)
stabled keys parse $(stabled keys show validator -a)"AbCd...base64PubKey...=="
# ...
# then, evm address is 0xCAEA59C7476C87D0FF6BE6F04DA207601D5BE7D02단계: 환경 설정
# Staking precompile contract address
export STAKING_ADDRESS="0x0000000000000000000000000000000000000800"
# Mainnet EVM RPC
export RPC_URL="https://rpc.stable.xyz"
# Your operator private key and validator EVM address
export PRIVATE_KEY="your_private_key_here"
export VALIDATOR_ADDRESS="0xYourValidatorAddress"
# Consensus pubkey from Step 1
export PUBKEY="AbCd...base64PubKey...=="
# Self-delegation amount in wei (18 decimals). 1000000000000000000 = 1 token
export AMOUNT="1000000000000000000"3단계: 검증자 생성
스테이킹 프리컴파일에서 createValidator를 호출합니다. 이 함수는 description 튜플, commissionRates 튜플, 최소 자기 위임, 검증자 주소, 합의 공개 키, 그리고 본딩 금액을 받습니다. cast로 인코딩하여 전송하세요.
# createValidator(
# (moniker, identity, website, securityContact, details),
# (rate, maxRate, maxChangeRate),
# minSelfDelegation, validatorAddress, pubkey, value
# )
cast send "$STAKING_ADDRESS" \
"createValidator((string,string,string,string,string),(uint256,uint256,uint256),uint256,address,string,uint256)" \
"(\"My Validator\",\"keybase-id\",\"https://example.com\",\"security@example.com\",\"My validator description\")" \
"(100000000000000000,200000000000000000,10000000000000000)" \
"1000000000000000000" \
"$VALIDATOR_ADDRESS" \
"$PUBKEY" \
"$AMOUNT" \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY"transactionHash 0x4f...c2
status 1 (success)커미션 튜플은 (rate, maxRate, maxChangeRate)이며, 각각 18자리 소수로 스케일됩니다. 예제는 10% 비율(100000000000000000), 20% 상한선, 그리고 1% 최대 일일 변경률을 설정합니다. maxRate와 maxChangeRate는 생성 시 고정되며 나중에 수정할 수 없습니다. 성공적인 호출은 CreateValidator 이벤트를 발생시킵니다. 모든 필드에 대해서는 스테이킹 프리컴파일 레퍼런스를 참조하세요.
4단계: 검증
스테이킹 프리컴파일에서 다시 읽어 검증자가 등록되고 본딩되었는지 확인한 다음, 블록에 서명하고 있는지 확인하세요.
# Read your validator's on-chain record
cast call "$STAKING_ADDRESS" \
"validator(address)" "$VALIDATOR_ADDRESS" \
--rpc-url "$RPC_URL"
# Confirm the node reports validator info
curl -s localhost:26657/status | jq '.result.validator_info'# validator() returns the moniker, tokens, commission, and a bonded status (3)
# validator_info shows your consensus address with non-zero voting power자기 위임 추가
생성 후 자신의 검증자에 더 많은 스테이크를 본딩하려면, 동일한 프리컴파일에서 delegate를 호출하세요.
cast send "$STAKING_ADDRESS" \
"delegate(address,address,uint256)" \
"$VALIDATOR_ADDRESS" "$VALIDATOR_ADDRESS" "$AMOUNT" \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY"status 1 (success)등록 후
검증자를 건강하게 유지하고 네트워크 업그레이드에 대비하세요:
- 노드 모니터링하기의 Prometheus 및 Grafana 스택으로 서명과 누락된 블록을 모니터링하세요.
- 업그레이드 높이를 놓치지 않도록 업그레이드를 자동화하세요. 노드 설치하기와 노드 업그레이드하기의 Cosmovisor 설정을 참조하세요.
- 노드 문제 해결하기로 문제를 진단하세요(동기화되지 않음, 서명하지 않음).
다음 권장 사항
- 스테이킹 프리컴파일 레퍼런스 — 전체 createValidator, delegate, editValidator 시그니처와 구조체를 찾아보세요.
- 노드 구성 — 등록하기 전에 double_sign_check_height 및 기타 검증자 핵심 구성을 설정하세요.
- 노드 모니터링하기 — 서명, 누락된 블록, 리소스 사용량을 추적하여 슬래시 전에 문제를 포착하세요.
- 검증자 데이터 인덱싱하기 — 검증자가 활성화되면 온체인에서 스테이크, 가동 시간, 투표 이력을 읽으세요.

