풀노드 실행 방법
Sui 풀노드를 실행하는데 아래의 두가지 방법이 있습니다.
본 문서에서는 쉽게 따라할 수 있는 Docker 를 통해서 실행하는 방법을 권장드리며 이를 위주로 설명드리겠습니다.
풀노드 실행을 위한 소프트웨어 설치
Docker 를 통해서 Sui 풀노드를 실행하기 위해서 우리는 아래의 소프트웨어를 설치합니다.
docker 및 docker-compose 설치에 필요한 유틸리티를 다운받기 위해 아래의 명령어를 실행합니다.
Copy sudo apt install apt-transport-https ca-certificates curl software-properties-common
Docker 설치
docker 리포지토리에 접근하기 위한 키 생성 설정
Copy curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
패키지 매니저가 docker 설치 시, 설치 위치를 알기 위한 repository 추가
Copy sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
위에서 추가한 repository를 위해서 업데이트
docker 설치
Copy sudo apt install docker-ce
docker 설치가 잘 되었는지 확인합니다
Copy sudo systemctl status docker
아래와 같이 출력되면 잘 설치 되었다고 판단합니다
Docker Compose 설치
최신 버전을 공식 Repository 에서 확인합니다.
문서 작성 기준 v2.6.1 이 최신이므로 아래의 명령어를 통해 설치합니다
Copy sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
(선택) 버전이 다른 경우 아래의 명령어와 같이 <최신 버전명> 부분에 버전명을 기입해서 실행해주세요.
아니라면, 아래의 명령어는 무시해주세요
Copy sudo curl -L "https://github.com/docker/compose/releases/download/<최신 버전명>/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
docker-compose 를 실행이 가능하게 설정합니다
Copy sudo chmod +x /usr/local/bin/docker-compose
docker-compose가 잘 설치되었는지 아래 명령어를 통해 확인합니다
아래와 같이 출력되면 정상적으로 설치되었다고 판단합니다
Copy $ docker-compose -v
Docker Compose version v2.6.1
Docker 권한 부여하기
아래 명령어를 통해 권한 부여
Copy sudo groupadd docker \
&& sudo usermod -aG docker $USER \
&& newgrp docker
Sui 풀노드 실행하기
가장 최근 업데이트된 내용은 공식 홈페이지 를 기반으로 합니다. 따라서, 업데이트 내용과 차이가 있을 수 있습니다.
Sui 풀노드 실행하기 위해서는 아래의 명령어를 통해 Sui 노드 관련 설정들을 다운로드 합니다.
Copy mkdir -p ~/devnet \
&& wget https://raw.githubusercontent.com/MystenLabs/sui/devnet/docker/fullnode/docker-compose.yaml -P ~/devnet \
&& wget https://github.com/MystenLabs/sui/raw/main/crates/sui-config/data/fullnode-template.yaml -P ~/devnet \
&& wget https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob -P ~/devnet
위 명령어 실행 후, devnet 디렉토리에는 아래의 3가지 파일이 있어야 합니다.
풀노드 API 접근 허용
아래 명령어를 통해 API 접근을 허용합니다.
Copy cd ~/devnet
sed -i 's/127.0.0.1/0.0.0.0/' fullnode-template.yaml
풀노드 실행하기
아래의 명령어를 통해 Sui 풀노드를 실행해주세요.
풀노드 작동 확인
아래의 명령어를 통해 Sui 풀노드가 잘 실행 되는지 확인합니다.
결과
Copy CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d26352d61303 mysten/sui-node:stable "/usr/local/bin/sui-…" 3 minutes ago Up 3 minutes 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9184->9184/tcp, :::9184->9184/tcp devnet-fullnode-1
최근 5개의 트랜잭션을 가져와서 확인합니다.
Copy curl --location --request POST 'http://127.0.0.1:9000/' \
--header 'Content-Type: application/json' \
--data-raw '{ "jsonrpc":"2.0", "id":1, "method":"sui_getRecentTransactions", "params":[5] }' | jq
결과
Copy $ curl --location --request POST 'http://127.0.0.1:9000/' \
--header 'Content-Type: application/json' \
--data-raw '{ "jsonrpc":"2.0", "id":1, "method":"sui_getRecentTransactions", "params":[5] }' | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 389 100 310 100 79 53337 13592 --:--:-- --:--:-- --:--:-- 77800
{
"jsonrpc": "2.0",
"result": [
[
17404,
"ASFePe8TI+aGbosg94Gc2Dw6nYSPQaAPWFwuxuz6n5s="
],
[
17405,
"wr+VaXY6xuZcBDC1N8/pz0DP50aY4kynzIND2guZs/A="
],
[
17406,
"cDY5V2h4cgwxD4DX01dDs+fsB5ql2vEBcagslYEtJpM="
],
[
17407,
"jNNwzR48O5Ou06WcuN32WDgHUP2xGSVw9I8OTlzRBqY="
],
[
17408,
"JLia63qW7vtlEYMBSdNZ1mjFjDHBQdV72EbDtZSYPF4="
]
],
"id": 1
}