Hello World — Savitri에서의 첫 번째 트랜잭션
이 튜토리얼은 처음부터 Savitri 테스트넷에서 첫 번째 트랜잭션을 전송하는 과정을 안내합니다. 본인에게 맞는 경로를 선택하세요.
| 경로 | 대상 | 시간 | 사전 요구사항 |
|---|---|---|---|
| A. 브라우저 Wallet | 크립토 사용자 | 2분 | Chrome/Brave |
| B. 모바일 앱 | 모바일 사용자 | 3분 | iOS 또는 Android |
| C. 데스크탑 인스톨러 | 비기술적 사용자 | 5분 | Windows 또는 macOS |
| D. Docker (개발자) | 개발자 | 5분 | Docker 설치됨 |
| E. 소스에서 빌드 | Rust 개발자 | 15분 | Rust 1.82+ |
A. 브라우저 Wallet
시간: 2분
-
Chrome 웹 스토어에서 Savitri Wallet 확장 프로그램 설치
-
확장 프로그램을 열고 Wallet 생성 클릭
-
12단어 시드 구문을 적어두고 안전하게 보관
-
Wallet이 자동으로 Savitri 테스트넷에 연결됨
-
파우셋에서 테스트넷 토큰 받기:
- Wallet 열기
- 테스트넷 토큰 요청 클릭
- 확인을 위해 10초 대기
-
첫 번째 트랜잭션 전송:
- 전송 클릭
- 임의의 테스트넷 주소 입력 (또는 wallet에 표시된 예시 주소 사용)
- 금액 입력 (예: 10 SAVI)
- 확인 클릭
-
Wallet의 기록 탭에서 트랜잭션 확인
완료했습니다. Savitri에서 wallet을 만들고, 토큰을 받고, 트랜잭션을 전송했습니다.
B. 모바일 앱
시간: 3분
-
Savitri 앱 다운로드:
-
앱을 열고 새 Wallet 만들기 탭
-
시드 구문을 안전하게 저장
-
앱이 테스트넷에 연결되고 백그라운드에서 경량 노드를 시작
-
받기를 탭하여 wallet 주소 확인
-
파우셋을 탭하여 무료 SAVI 테스트넷 받기
-
전송 탭 → 수신자 주소 입력 → 금액 입력 → 확인
-
활동에 트랜잭션이 표시되는 것 확인
추가: 노드 탭으로 이동하여 lightnode 상태, 연결된 피어, PoU 점수를 확인하세요.
C. 데스크탑 인스톨러
시간: 5분
-
인스톨러 다운로드:
-
인스톨러를 실행하고 마법사를 따릅니다 (안내가 있는 15단계)
-
노드 유형 선택:
- Lightnode (처음 사용자에게 권장) — 최소 리소스
- Masternode — 전체 검증자 (8GB+ RAM 필요)
-
인스톨러가 노드 바이너리를 다운로드하고, 키를 생성하며, 모든 것을 설정
-
노드 시작 클릭 — 노드가 테스트넷에 연결됨
-
Wallet 탭 → Wallet 만들기 → 시드 구문 저장
-
파우셋 클릭 → 테스트넷 토큰 받기
-
전송 클릭 → 수신자 입력 → 금액 입력 → 확인
-
대시보드 탭에서 실시간 메트릭 확인: 블록 높이, 피어, PoU 점수
D. Docker (개발자)
시간: 5분
사전 요구사항
- Docker 설치됨 (Docker 다운로드)
1단계: Lightnode 시작
docker run -d --name savitri-node \
-p 4001:4001 -p 8545:8545 -p 9090:9090 \
savitri/lightnode:testnet
2단계: 실행 확인
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getBlockHeight","params":[],"id":1}'
예상 응답:
{"jsonrpc":"2.0","result":{"height":12345},"id":1}
3단계: Wallet 생성
# 새 키 쌍 생성
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"wallet_create","params":[],"id":2}'
반환된 주소와 개인 키를 저장하세요.
4단계: 테스트넷 토큰 받기
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"faucet_request","params":["YOUR_ADDRESS"],"id":3}'
5단계: 잔액 확인
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"account_getBalance","params":["YOUR_ADDRESS"],"id":4}'
6단계: 트랜잭션 전송
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tx_send",
"params":{
"from":"YOUR_ADDRESS",
"to":"RECIPIENT_ADDRESS",
"amount":"1000000000000000000",
"private_key":"YOUR_PRIVATE_KEY"
},
"id":5
}'
금액은 wei (18 소수점) 단위입니다. 1000000000000000000 = 1 SAVI.
7단계: 전체 로컬 테스트넷 실행 (선택 사항)
git clone --recurse-submodules https://github.com/Savitri-Network/savitri-network.git
cd savitri-network/savitri-testnet
docker-compose up -d
이 명령은 2개의 masternode, 1개의 lightnode, 1개의 guardian, Prometheus, Grafana를 시작합니다.
- Grafana 대시보드: http://localhost:3000
- Prometheus 메트릭: http://localhost:9090
- RPC (masternode 1): http://localhost:8545
- RPC (masternode 2): http://localhost:8546
- RPC (lightnode): http://localhost:8547
E. 소스에서 빌드
시간: 15분
사전 요구사항
# macOS
brew install rustup cmake ninja llvm openssl zstd lz4 ccache protobuf
rustup install stable
# Ubuntu / Debian
sudo apt install build-essential pkg-config clang llvm-dev libclang-dev \
cmake ninja-build libssl-dev zlib1g-dev liblz4-dev libzstd-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows — C++ 워크로드 + Windows SDK가 포함된 Visual Studio Build Tools 설치
1단계: 클론 및 빌드
git clone --recurse-submodules https://github.com/Savitri-Network/savitri-network.git
cd savitri-network
# Lightnode 빌드
cargo build --release -p savitri-lightnode
2단계: 노드 시작
./target/release/lightnode \
--listen-port 4001 \
--tx-interval-secs 2 \
--block-interval-secs 10 \
--max-block-txs 32 \
--bootstrap <PEER_ID>@/ip4/<TESTNET_IP>/tcp/4002
현재 테스트넷 부트스트랩 주소는 설정 참조에서 확인하세요.
3단계: 키 생성
cargo build --release -p savitri-sdk
./target/release/key_generator
공개 키 (주소)와 개인 키가 반환됩니다.
4단계: RPC를 통해 트랜잭션 전송
curl -s http://localhost:8545 -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"tx_send",
"params":{
"from":"YOUR_ADDRESS",
"to":"RECIPIENT_ADDRESS",
"amount":"1000000000000000000",
"private_key":"YOUR_PRIVATE_KEY"
},
"id":1
}'
5단계: 토큰 배포 (선택 사항)
전체 튜토리얼 참조: SAVITRI-20 토큰 배포
다음 단계
| 목표 | 리소스 |
|---|---|
| 아키텍처 이해 | 아키텍처 개요 |
| 토큰 배포 | 토큰 배포 튜토리얼 |
| 검증자 (masternode) 실행 | 노드 유형 |
| SDK로 개발 | SDK 개요 |
| RPC API 탐색 | RPC 메서드 참조 |
| 커뮤니티 참여 | Discord |
| 토크노믹스 읽기 | 토큰 할당 |
| 전체 문서 | docs.savitrinetwork.com |