RPC API 참조
Savitri Network는 HTTP를 통해 JSON-RPC 2.0 API를 제공합니다. 모든 요청은 / 또는 /rpc에 POST로 전송됩니다.
연결
- 기본 엔드포인트:
http://127.0.0.1:8545/rpc - 프로토콜: JSON-RPC 2.0 (REST 엔드포인트 없음)
- TLS: RPC 서버에서 종료되지 않습니다. 운영 환경에서는 역방향 프록시(nginx, Caddy)를 사용하세요.
- CORS: 기본적으로
localhost및127.0.0.1출처로 제한됩니다.
요청 속도 제한
| 한도 | 값 |
|---|---|
| 전체 | 초당 200 요청 |
| IP별 | 초당 50 요청 |
| 최대 배치 크기 | 100 요청 |
| 최대 본문 크기 | 1 MB |
한도를 초과하면 HTTP 429 (너무 많은 요청)가 반환됩니다.
요청 형식
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [],
"id": 1
}
매개변수는 위치 배열 또는 명명된 객체로 전달할 수 있습니다.
배치 요청
단일 HTTP 요청에서 여러 호출을 처리하기 위해 요청 배열을 전송합니다:
[
{"jsonrpc": "2.0", "method": "savitri_blockNumber", "params": [], "id": 1},
{"jsonrpc": "2.0", "method": "savitri_health", "params": [], "id": 2}
]
배치당 최대 100 요청.
오류 코드
| 코드 | 의미 |
|---|---|
| -32700 | 파싱 오류 (유효하지 않은 JSON) |
| -32600 | 유효하지 않은 요청 (JSON-RPC 2.0 아님) |
| -32601 | 메서드 없음 |
| -32602 | 유효하지 않은 매개변수 |
| -32603 | 내부 서버 오류 |
| -32001 | 리소스 없음 |
| -32002 | 서비스 불가 (스토리지/멤풀) |
| -32003 | 미구현 |
메서드 참조
체인 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
chain_getBlockHeight | [] | 현재 블록 높이 조회 |
savitri_blockNumber | [] | chain_getBlockHeight 별칭 |
chain_getBlock | [height] | 높이로 블록 조회 |
savitri_getBlockByHeight | [height] | chain_getBlock 별칭 |
chain_getBlockByNumber | [height] | 높이로 블록 조회 |
chain_getBlockByHash | [hash] | 해시로 블록 조회 (최근 1000블록 스캔) |
chain_getLatestBlock | [] | 최신 블록 조회 |
chain_getChainInfo | [] | 체인 메타데이터 조회 (id, 이름, 높이, 버전) |
savitri_getBlockHash | [height] | 지정 높이의 블록 해시 조회 |
트랜잭션 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
tx_sendTransaction | [raw_tx_hex] | 서명된 트랜잭션 전송 |
savitri_sendRawTransaction | [raw_tx_hex] | tx_sendTransaction 별칭 |
tx_getTransaction | [hash] | 해시로 트랜잭션 조회 |
savitri_getTransaction | [hash] | tx_getTransaction 별칭 |
tx_getTransactionReceipt | [hash] | 상태와 함께 트랜잭션 영수증 조회 |
tx_getTransactionsByBlock | [height] | 블록의 모든 트랜잭션 조회 |
tx_getPendingTransactions | [] | 멤풀의 대기 트랜잭션 목록 |
계정 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
account_getAccount | [address] | 잔액 및 논스 조회 |
savitri_getAccount | [address] | account_getAccount 별칭 |
account_getBalance | [address] | 잔액만 조회 |
account_getNonce | [address] | 논스만 조회 |
account_getTokenBalance | [address, token_id] | 토큰 잔액 조회 |
네트워크 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
net_version | [] | 네트워크 버전 조회 |
net_peerCount | [] | 연결된 피어 수 조회 |
net_listening | [] | 노드가 수신 중인지 확인 |
net_peers | [] | 점수와 함께 연결된 피어 목록 |
net_nodeInfo | [] | 노드 정보 조회 (id, 모드, 피어, 높이) |
멤풀 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
mempool_getSize | [] | 대기 및 큐 카운트 조회 |
mempool_getPendingTransactions | [] | 대기 트랜잭션 목록 |
mempool_getTransactionStatus | [hash] | 트랜잭션이 멤풀에 있는지 확인 |
합의 / PoU 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
pou_getConsensusState | [] | 로컬 PoU 점수, 리더, 에포크 조회 |
savitri_pouLocal | [] | pou_getConsensusState 별칭 |
savitri_pouPeers | [] | 모든 피어 PoU 점수 조회 |
pou_getValidators | [] | 점수와 함께 검증자 목록 |
pou_getStakeInfo | [address] | 주소별 스테이킹 정보 조회 |
pou_getEpochInfo | [] | 현재 에포크 세부 정보 조회 |
savitri_pouGroups | [] | PoU 그룹 목록 (masternode만) |
savitri_pouMasternodes | [] | masternode 목록 (masternode만) |
savitri_pouGroupNodes | [group_id] | 그룹의 노드 목록 (masternode만) |
토큰 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
token_getTokenInfo | [token_id] | 토큰 메타데이터 조회 (이름, 심볼, 소수점, 공급량) |
token_getTokenBalance | [address, token_id] | 토큰 잔액 조회 |
token_getTokenTransfers | [token_id] | 전송 이력 조회 |
유틸리티 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
savitri_health | [] | 상태 확인 (status, service, mode) |
savitri_protocolVersion | [] | 프로토콜 버전 조회 |
savitri_syncing | [] | 동기화 상태 조회 (현재/최고 블록) |
savitri_gasPrice | [] | 현재 가스 가격 조회 |
savitri_estimateGas | [] | 트랜잭션 가스 추정 |
savitri_faucetClaim | [address] | 테스트넷 토큰 요청 (5 SAVT) |
Monolith 메서드
| 메서드 | 매개변수 | 설명 |
|---|---|---|
savitri_getMonolithHead | [] | 최신 monolith 메타데이터 조회 |
savitri_getMonolithsForRange | [start, end] | 높이 범위의 monolith 조회 |
savitri_getMonolith | [monolith_id] | 전체 monolith 블록 조회 |
응답 유형
각 응답 객체의 상세 JSON 스키마는 응답 유형을 참조하세요.