[Hello Sui] #1. Sui Cli 설치하기

이 글은 Hello Sui 시리즈의 1번째 글입니다.

1.png

개요

Sui는 확장성과 고성능을 목표로 설계된 Layer 1 블록체인입니다. 암호화, 데이터 저장, 검증, 접근 제어 등 애플리케이션 개발에 필요한 기본 요소들을 네이티브로 제공하며, Layer 2 체인이나 오프체인 솔루션 없이도 탈중앙화 애플리케이션을 구축할 수 있습니다.

Sui의 특징은 다른 블록체인과 달리 객체 중심(Object-Centric) 모델을 사용한다는 것입니다. 네트워크의 모든 항목은 객체(Object)이고 각 객체는 고유한 온체인 ID를 가집니다. 트랜잭션은 객체를 입력으로 받아 기존 객체를 변경하거나 새 객체를 생성합니다. Sui에서 객체를 생성하고 트랜잭션을 제출하는 등 애플리케이션을 개발하려면, 먼저 Sui CLI를 설치해야 합니다. Sui CLI는 주소 및 잔액 관리, 스마트 컨트랙트 빌드 및 배포, 네트워크 정보 조회 등의 기능을 제공합니다.

이 글에서는 Sui CLI를 설치하고, Client를 설정하고, Address를 생성한 뒤 Faucet으로 테스트 토큰을 받는 과정을 순서대로 살펴보겠습니다.


Sui Cli 설치

Suiup

Sui CLI는 suiup을 이용한 설치를 권장합니다. macOS / Linux는 아래 명령어로 suiup을 먼저 설치합니다.

curl -sSfL https://raw.githubusercontent.com/Mystenlabs/suiup/main/install.sh | sh

설치 후 아래 명령어로 Sui를 설치합니다.

suiup install sui

macOS에서는 Homebrew로도 설치할 수 있습니다.

brew install sui

Windows는 Chocolatey를 사용합니다.

choco install sui

설치 후 아래 명령어로 정상 설치 여부를 확인할 수 있습니다.

sui --version

Default Configuration

suiup으로 sui를 설치하면 sui는 기본적으로 ~/.sui/sui_config/client.yaml 파일에 기본 설정을 저장합니다. 이 파일에는 아래 항목들이 정의됩니다.

  • Network environment: Mainnet, Testnet, Devnet, Localnet 네트워크 접속 정보
  • Active environment: CLI 명령어가 대상으로 할 현재 활성 네트워크
  • Active address: 트랜잭션 및 조회에 사용할 Sui 주소
  • Keystore location: 주소의 개인키(Private Key)가 저장된 경로

Sui Client

설치 후 아래 명령어를 실행하면 Sui Client를 초기 설정할 수 있습니다.

sui client

최초 실행 시 client.yaml 파일 생성 여부를 묻는 프롬프트가 나타납니다.

No sui config found in `~/.sui/sui_config/client.yaml`, create one [Y/n]?

y를 입력하면 연결할 네트워크 RPC URL을 입력하라는 프롬프트가 이어집니다. 기본값으로 Testnet에 연결하려면 Enter를 누릅니다.

설정이 완료되면 ~/.sui/sui_config/client.yaml 파일이 생성되며, 여기에 활성 네트워크, 활성 주소, 키스토어 경로 등이 저장됩니다.

주의: 설정 중 생성되는 복구 구문(Recovery Phrase)은 CLI 히스토리가 삭제되면 찾을 수 없기 때문에 반드시 안전하게 보관해야 합니다.


Sui Address

Sui Address는 블록체인 네트워크 상의 고유한 주소입니다. Address를 통해 토큰을 보유하거나 NFT 같은 객체를 소유하고, 트랜잭션을 제출하거나 스마트 컨트랙트와 상호작용할 수 있습니다.

모든 Sui Address는 32바이트 식별자로, 0x 접두사가 붙은 16진수로 표시됩니다.

0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331

Address는 공개키(Public Key)의 암호화 해시 값으로 생성되며, 각 공개키에는 대응하는 개인키(Private Key)가 존재합니다.

새 Address 생성

아래 명령어로 새 Address를 생성합니다.

sui client new-address ed25519

키 생성 방식은 세 가지 중 선택할 수 있습니다.

  • ed25519: 작은 키 사이즈와 서명 방식
  • secp256k1: ECDSA 기반의 키 생성 방식
  • secp256r1: 무작위 곡선을 사용한 키 생성 방식

명령어 실행 시 아래와 같이 새 Address와 복구 구문(Recovery Phrase)이 출력됩니다.

Generated new key pair for address with scheme "ed25519"
[0xb9c83a8b40d3263c9ba40d551514fbac1f8c12e98a4005a0dac072d3549c2442]
Secret Recovery Phrase : [cap wheat many line human lazy few solid bored proud speed grocery]

주의: Recovery Phrase는 한 번만 표시됩니다. 키에 대한 접근을 잃었을 때 복구하는 유일한 수단이므로 반드시 안전하게 보관하세요.


Address 확인

생성된 Address 목록은 아래 명령어로 확인할 수 있습니다.

sui client addresses

현재 활성 Address만 확인하려면 아래 명령어를 사용합니다.

sui client active-address

활성 Address를 변경하려면 아래 명령어를 사용합니다.

sui client switch --address <ADDRESS>

Get Sui Token

Sui 네트워크에서 트랜잭션을 제출하려면 가스비(Gas Fee)로 사용할 SUI 토큰이 필요합니다. 개발을 위해서는 무료로 제공되는 Testnet과 Devnet의 토큰이 필요합니다.

Faucet 웹사이트

https://faucet.sui.io 에 접속해서 주소를 입력하고 네트워크를 선택한 뒤 "Request SUI" 버튼을 클릭합니다. 현재 활성 Address는 아래 명령어로 확인할 수 있습니다.

sui client active-address

cURL

아래 명령어로 직접 Faucet API를 호출할 수도 있습니다.

ADDRESS=$(sui client active-address)
NETWORK=testnet
curl --location --request POST "https://faucet.${NETWORK}.sui.io/v2/gas" \
--header "Content-Type: application/json" \
--data-raw "{\"FixedAmountRequest\": {\"recipient\": \"${ADDRESS}\"}}"

잔액 확인

토큰을 받은 후 아래 명령어로 잔액을 확인할 수 있습니다.

sui client balance

References

전체 목차:

  1. [Hello Sui] #1. Sui Cli 설치하기
  2. [Hello Sui] #2. Smart Contract 배포하기
  3. [Hello Sui] #3. Frontend 연결하기