컨텐츠로 건너뛰기

RPC API

시작하기

SASEUL 노드에는 HTTP 또는 HTTPS를 통해 접근할 수 있으며, GET 또는 POST 메소드에서 RPC를 사용할 수 있습니다.

GET 방식인 경우, 쿼리 문자열에 요청 파라미터를 제공합니다.
  • URL: {host}/{RPC_API_NAME}?{요청 파라미터}
POST 방식인 경우, 폼 데이터에 키-값 형식으로 요청 파라미터를 제공합니다.
  • URL: {host}/{RPC_API_NAME}
  • 본문: {요청 파라미터}

기본 작업

Ping

  • URL: {host}/ping

SASEUL 노드가 활성 상태인지 확인합니다.

반환 값
{
"code": 200,
"data": []
}

정보

  • URL: {host}/info

SASEUL 노드의 프로세스 상태와 최신 메인 및 리소스 블록 정보를 가져옵니다.

반환 값
{
"code": 200,
"data": {
"chain_maker_policy": true,
"resource_miner_policy": true,
"peer_searcher_policy": true,
"collector_policy": true,
"mining": false,
"last_block": {
...
},
"last_resource_block": {
...
}
}
}

트래커 작업

Peer

  • URL: {host}/peer

네트워크상의 노드 목록을 가져옵니다. 이 노드들은 SASEUL 노드와 연관되어 있습니다.

요청 파라미터
파라미터요구사항타입최대길이설명
register선택사항Boolean(int)대상 노드에 자신을 등록하도록 요청할지 여부를 결정합니다.
host선택사항String’register’ 변수가 true인 경우, 등록하기 위해 호스트 변수를 입력합니다.
authentication선택사항Boolean(int)대상 노드의 네트워크 정보를 요청합니다.
height선택사항Int’authentication’ 변수가 true인 경우, 등록될 검증 블록 번호를 추가합니다.
반환 값
{
"code": 200,
"data": {
"peers": {
...
},
"known_hosts": [
...
],
"node": {
...
}
},
"register": true,
"registerResult": true,
"authentication": true
}

라운드 작업

Round

  • URL: {host}/round

특정 블록 높이의 정보를 가져옵니다.

요청 파라미터
파라미터요구사항타입최대길이설명
chain_type선택사항Stringmain
height선택사항int최근 블록의 높이
반환 값
{
"code": 200,
"data": {
"block": {
...
},
"sync_limit": 40362,
"timestamp": 1656048496844843
}
}

Broadcast

  • URL: {host}/broadcast

현재 라운드의 합의 정보를 가져옵니다.

요청 파라미터
파라미터요구사항타입최대길이설명
chain_type선택사항Stringmain
round_key선택사항String최신 블록 해시(block_hash)
반환 값
{
"code": 200,
"data": {
"transactions": {
...
},
"chunks": {
...
},
"hypotheses": {
...
}
}
}

스마트 계약 및 요청

Request

  • 현재 노드에 저장된 데이터를 기반으로 스마트 계약의 메서드를 실행하고 정보를 표시합니다.
요청 파라미터
파라미터요구사항타입최대길이설명
request필수String{“type”:“<method_name>”, …}
public_key선택사항String""
signature선택사항String""
예시
Terminal window
curl -X POST main.saseul.net/request --data 'request={"type":"GetBalance","address":"<address>"}'

RawRequest

  • 현재 노드에 저장된 데이터를 기반으로 스마트 계약의 메서드를 실행하고 정보를 표시합니다.
  • 등록된 요청 코드를 원시 데이터로 실행합니다.
요청 파라미터
파라미터요구사항타입최대길이설명
body필수Object{“request”:{“type”:“<method_name>”, …}, “public_key”:…}
예시
Terminal window
curl -X POST main.saseul.net/rawrequest --data '{"request":{"type":"GetBalance","address":"<address>"}}'

SendTransaction

  • 스마트 계약의 메서드를 실행하여 트랜잭션을 생성하고 이를 방송합니다.
요청 파라미터
파라미터요구사항타입최대길이설명
transaction필수String{“type”:“<method_name>”, …}
public_key선택사항String""
signature선택사항String""
예시
Terminal window
curl -X POST main.saseul.net/sendtransaction --data \
'transaction={"type":"Send","to":"<address>","amount":"<amount>"}&public_key=<public_key>&signature=<signature>'

SendRawTransaction

  • 스마트 계약의 메서드를 실행하여 트랜잭션을 생성하고 이를 방송합니다.
  • 등록된 계약 코드를 원시 데이터로 실행합니다.
요청 파라미터
파라미터요구사항타입최대길이설명
body필수String{“transaction”:{“type”:“<method_name>”, …}, “public_key”:…}
예시
Terminal window
curl -X POST main.saseul.net/sendrawtransaction --data \
'{"transaction":{"type":"Send","to":"<address>","amount":"<amount>"},"public_key":"<public_key>","signature":"<signature>"}'