JSON-RPC APIs
본 장에서는 Klaytn API 사용법에 대해 알아봅니다. Toolkit API를 제외한 다른 대부분의 API들은 원격 프로토콜 (RPC, 웹소켓)과 Klaytn 자바스크립트 콘솔을 지원합니다. 본 내용은 ken
을 예시로 들어 작성되었으나 대부분의 API는 kcn
과 kpn
에서도 마찬가지로 사용할 수 있습니다.
참고: 몇몇 API가 원격 프로토콜과 Klaytn 자바스크립트 콘솔을 지원하지 않기 때문에 원격 프로토콜에서 사용 가능한 API를 위주로 다루고 있습니다. 그 외 API는 추후에 문서화될 예정입니다.
API 활성화
Klaytn RPC 엔드포인트를 통해 API를 제공하려면 커맨드라인의 --${interface}api
인자를 통해 지정해주세요. 즉 ${interface}
을 HTTP 엔드포인트의 경우 rpc
으로, 웹소켓 엔드포인트의 경우 ws
로 설정해주세요.
ipc
는 플래그 없이 unix 소켓 (Unix) 또는 명명된 파이프 (Windows) 엔드포인트를 통한 API를 제공합니다.
아래 예시처럼 추가하고자 하는 특정 API와 함께 Klaytn 노드를 실행할 수 있습니다. 하지만 노드를 시작한 이후에는 API를 변경할 수 없다는 점을 유의해주세요.
예시) klay
와 net
모듈을 활성화하며 Klaytn 노드 실행하기
HTTP RPC 인터페이스는 --rpc
플래그를 사용해 명시적으로 활성화해야 합니다.
참고: HTTP (rpc
) 또는 웹소켓 (ws
) 인터페이스를 통한 API를 제공하는 것은 인터페이스 (DApp, 브라우저 탭 등)에 접근할 수 있는 누구에게나 API에 접근할 수 있도록 하는 것입니다. 활성화한 API들에 대해 주의하세요. 기본적으로 Klaytn에서는 IPC (ipc
) 인터페이스를 통한 모든 API가 활성화되어 있지만, rpc
와 ws
의 경우 모듈을 직접 활성화해야 합니다.
modules
JSON-RPC 메서드를 호출하여 인터페이스가 제공하는 API를 확인하세요. 예를 들어 rpc
인터페이스의 경우 다음과 같습니다.
IPC
HTTP
위 명령은 버전 번호를 포함하여 모든 활성화된 모듈을 제공합니다.
Disabling unsafe debug APIs
Some debug namespace APIs are unsafe/unappropriate to be opened to public. We recommend you to provide the debug namespace APIs to authorized users only. However, if you want to maintain a public EN and provide debug namespace APIs to the public, we strongly recommend you to set the rpc.unsafe-debug.disable
flag which will disable APIs that are unsafe/unappropriate to be opened to the public and enable only a subset of the debug namespace APIs.
All other debug namespace APIs EXCEPT FOR the following APIs are restricted with rpc.unsafe-debug.disable
flag:
VM Tracing APIs, however with limited functionality (only pre-defined tracers are allowed)
debug_dumpBlock, debug_dumpStateTrie, debug_getBlockRlp, debug_getModifiedAccountsByHash, debug_getModifiedAccountsByNumber, debug_getBadBlocks, debug_getModifiedStorageNodesByNumber
debug_metrics
To set the rpc.unsafe-debug.disable
flag, append the following line in the kend.conf
file.
Last updated