본문으로 건너뛰기

validator 배포 및 구성

Sui의 validators는 풀 노드보다 더 많은 작업을 수행할 수 있는 특수한 validator 노드를 실행한다. Validators는 stake/staking, 가스 가격 reference, tallying rules에 사용된다.

Validator requirements

Sui validator를 실행하려면 Sui validator 노드를 설정하고 구성해야 한다. 수행해야 하는 구체적인 단계는 다음과 같다:

  1. Sui를 설치하고 구성한다.
  2. port와 프로토콜 설정을 구성한다.
  3. 키 management를 구성한다.
  4. 스토리지를 구성한다.
  5. software를 업데이트한다.
  6. 네트워크와 상호작용하기 위한 on-chain commands를 실행한다.
  7. 가스 가격 조사를 업데이트한다.
  8. 다른 validators에 보고한다.

하드웨어 요구 사항

Sui validator 노드를 실행하기 위한 권장 최소 하드웨어 사양은 다음과 같다:

  • CPU: 물리 코어 24개(또는 가상 코어 48개)
  • Memory: 128 GB
  • 스토리지: 4 TB NVME
  • 네트워크: 1 Gbps

Validator staking pool requirements

There are minimum staking requirements a validator must satisfy to become active and to stay in the active validator set.

Stake requirements

The Sui network is rolling out SIP-39, which will significantly lower the barrier to entry for validators. Instead of requiring a minimum amount of SUI tokens, validators will need a minimum amount of voting power.

When fully rolled out, SIP-39 will mean the following validator requirements:

  • A validator candidate must accrue at least 3 voting power before they can request to join the validator set.
  • If an active validator's stake falls below 2 voting power, they have seven epochs of grace period to gain back the stake before being removed from the validator set.
  • If an active validator's stake falls below 1 voting power, they are removed from the validator set at the end of the current epoch boundary. Sui uses 24-hour epochs.

For more information on voting power, see Understanding the voting power formula.

Want to be a Sui validator?

If you have the required stake and plan to operate a validator on Sui, your participation is welcome and Sui is committed to supporting your onboarding. Kindly complete this form to be added to our Validator Discord and keep up with upcoming validator releases and technical support.

validator 노드에서 stake/staking을 설정하려면 다음을 수행한다:

  1. 후보가 되기 위해 request_add_validator_candidate를 호출한다. 이 호출은 on-chain validator 정보를 생성하고 delegators가 기여할 수 있는 staking pool을 초기화한다.

  2. 이전 단계에서 생성한 validator staking pool에 staking하여 30M SUI를 확보한다. validator의 주소로 request_add_stake를 호출한다(이 값은 staking pool ID와 동일하지 않다).

  3. validator가 pending validator가 되도록 request_add_validator를 호출한다. 다음 에포크에 validator set에 합류한다. 다음 에포크 전에 validator를 세워 두어야 에포크가 바뀔 때 네트워크에 참여할 수 있다.

validator 노드 보상을 참조한다.

배포

Sui 노드는 여러 방식으로 배포할 수 있다.

  1. Docker Hub에서 제공하는 사전 빌드된 container images를 사용한다.

  2. 다음 방법 중 하나로 가져올 수 있는 S3의 사전 빌드된 linux/amd64 binaries를 사용한다:

$ wget https://releases.sui.io/$SUI_SHA/sui-node
$ curl https://releases.sui.io/$SUI_SHA/sui-node -o sui-node

또는 source에서 직접 build하려면 다음을 사용한다:

$ git clone https://github.com/MystenLabs/sui.git && cd sui
$ git checkout [SHA|BRANCH|TAG]
$ cargo build --release --bin sui-node

validator 배포에 대한 자세한 내용은 Sui for Node Operators 가이드를 참고한다.

구성

다음 배포 옵션에 대한 구성 guides가 제공된다:

sui-node는 예를 들어 다음과 같이 인수로 전달되는 단일 구성 파일로 실행된다:

$ ./sui-node --config-path /opt/sui/config/validator.yaml

validator 구성에 대한 자세한 내용은 Sui for Node Operators 가이드를 참고한다.

구성 templates는 Validator를 참고한다.

연결성

sui-node는 기본적으로 다음 ports를 사용한다:

프로토콜/portreachabilitypurpose
TCP/8080InboundValidator/트랜잭션 interface
TCP/8081Inbound/outboundConsensus interface
UDP/8084Inbound/outboundPeer-to-peer 상태 동기화 interface
TCP/8443Outbound메트릭 pushing
TCP/9184Localhost메트릭 scraping

validator를 성공적으로 실행하려면 특정 프로토콜(TCP/UDP)을 포함해 8080-8084 ports가 설명한 대로 열려 있는 것이 중요하다.

네트워크 버퍼

Sui validator networks에 대한 load testing 결과 Linux의 기본 네트워크 buffer 크기는 너무 작을 수 있다. 다음 두 방법 중 하나를 사용해 이를 늘릴 것을 권장한다.

옵션 1: /etc/sysctl.d/ 사용

sysctl 전용 새 sui-node 파일에 이 설정을 추가하거나 기존 파일에 덧붙인다. 이렇게 수정하면 system 재시작 후에도 유지된다.

sysctl용 새 sui-node 파일을 생성한다:

$ sudo nano /etc/sysctl.d/100-sui-node.conf

필요하다면 기존 설정을 덮어쓰면서 다음 줄을 파일에 추가한다:

net.core.rmem_max = 104857600
net.core.wmem_max = 104857600
net.ipv4.tcp_rmem = 8192 262144 104857600
net.ipv4.tcp_wmem = 8192 262144 104857600

다음 재시작 전에 즉시 설정을 적용한다:

$ sudo sysctl --system

옵션 2: sysctl 명령 사용

이 수정은 system 재시작 후 유지되지 않는다. 따라서 host가 재시작할 때마다 명령을 다시 실행해야 한다.

$ sudo sysctl -w net.core.wmem_max=104857600
$ sudo sysctl -w net.core.rmem_max=104857600
$ sudo sysctl -w net.ipv4.tcp_rmem="8192 262144 104857600"
$ sudo sysctl -w net.ipv4.tcp_wmem="8192 262144 104857600"

검증

system 설정이 성공적으로 업데이트되었는지 확인하려면 다음 명령의 출력을 확인한다:

$ sudo sysctl -a | egrep [rw]mem