Solana RPC HTTP 메소드

Solana 노드는 JSON-RPC 2.0 명세를 사용하여 HTTP 요청을 수락합니다.

JavaScript 애플리케이션의 경우, Solana 노드와 상호작용하기 위한 RPC 메소드의 편리한 인터페이스로 @solana/web3.js 라이브러리를 사용하세요. Solana 노드에 PubSub 연결을 위해서는 Websocket API를 사용하세요.

RPC HTTP 엔드포인트

기본 포트: 8899

요청 형식

JSON-RPC 요청을 하려면 Content-Type: application/json 헤더와 함께 HTTP POST 요청을 보내세요. JSON 요청 데이터는 4개의 필드를 포함해야 합니다:

  • jsonrpc: <string> - "2.0"로 설정
  • id: <string | number | null> - 클라이언트에서 생성된 요청의 고유 식별자. 일반적으로 문자열이나 숫자이며, null도 기술적으로 허용되지만 권장하지 않음
  • method: <string> - 호출할 메소드가 포함된 문자열
  • params: <array> - 순서가 지정된 매개변수 값의 JSON 배열

curl을 사용한 예시:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

응답 출력은 다음 필드를 포함하는 JSON 객체입니다:

  • jsonrpc: <string> - 요청 명세와 일치
  • id: <number> - 요청 식별자와 일치
  • result: <array|number|object|string> - 요청된 데이터 또는 성공 확인

단일 POST의 데이터로 JSON-RPC 요청 객체 배열을 전송하여 요청을 일괄적으로 보낼 수 있습니다.

요청 예시

commitment 매개변수는 params 배열의 마지막 요소로 포함되어야 합니다:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

정의

  • Hash: 데이터 청크의 SHA-256 해시.
  • Pubkey: Ed25519 키 쌍의 공개 키.
  • Transaction: 클라이언트 keypair가 서명한 Solana 명령 목록으로, 해당 작업을 승인합니다.
  • Signature: 명령을 포함한 트랜잭션의 페이로드 데이터에 대한 Ed25519 서명. 이는 트랜잭션을 식별하는 데 사용될 수 있습니다.

상태 확인

JSON RPC API는 아니지만, RPC HTTP 엔드포인트에서의 GET /health는 로드 밸런서나 다른 네트워크 인프라가 사용할 수 있는 상태 확인 메커니즘을 제공합니다. 이 요청은 항상 HTTP 200 OK 응답을 반환하며, 본문은 "ok", "behind" 또는 "unknown" 중 하나입니다:

  • ok: 노드가 최신 클러스터 확인 slot으로부터 HEALTH_CHECK_SLOT_DISTANCE slot 이내에 있음
  • behind { distance }: 노드가 최신 클러스터 확인 slot으로부터 distance slot 이상 뒤쳐져 있음(여기서 distance > HEALTH_CHECK_SLOT_DISTANCE)
  • unknown: 노드가 클러스터와의 관계에서 자신의 위치를 확인할 수 없음

Is this page helpful?

목차

페이지 편집