跳至主要內容
本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。 (Crowdin translation page, Contributing guide)

JSON-RPC 應用程序接口

端點節點提供 JSON-RPC 應用程序接口。 啟用/禁用 API 的方法如下。 有關詳細的 API 規範,請參閱 JSON-RPC APIs

注意:通過 HTTP (rpc) 或 WebSocket (ws) 接口提供 API 會讓每個 訪問可以訪問此接口的 API(DApp、瀏覽器標籤等)。 請注意啟用哪些應用程序接口 。 默認情況下,Kaia 通過 IPC("ipc")接口啟用所有 API,但對於 "rpc "和 "ws",必須顯式啟用所需模塊。

啟用應用程序接口

從命令行

要通過 Kaia RPC 端點提供 API,請使用 --${interface}api 命令行參數指定它們,其中 ${interface} 可以是 HTTP 端點的 rpc 或 WebSocket 端點的 ws

ipc` 通過 unix 套接字(Unix)或命名管道(Windows)端點提供所有 API,無需任何標記。

您可以啟動一個 Kaia 節點,其中包含您要添加的特定 API,就像下面的示例一樣。 但請記住,一旦啟動節點,就無法更改 API。

示例)啟動 Kaia 節點並啟用kaianet模塊:


$ ken --rpcapi klay,net --rpc --{other options}

必須使用 --rpc 標記顯式啟用 HTTP RPC 接口。

使用配置

請更新 Configuration File 中的 RPC_ENABLERPC_APIWS_ENABLEWS_API 屬性。

查詢已啟用的應用程序接口

要確定一個接口提供哪些 API,可以調用 modules JSON-RPC 方法。 以 為例,通過rpc接口:

IPC


$ ken attach --datadir<DATA_DIR>
歡迎訪問 Kaia JavaScript 控制檯!
instance:Kaia/vX.X.X/XXXX-XXXX/goX.X.X
datadir:/var/kend/data
modules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0
>

將在控制檯輸出中列出所有啟用的模塊。


模塊: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0

HTTP


$ curl -H "Content-Type: application/json" --data '{"jsonrpc": "2.0", "method": "rpc_modules", "params":[], "id":1}' https://public-en-kairos.node.kaia.io

將顯示所有已啟用的模塊,包括版本號:


{
"jsonrpc":"2.0",
"id":1,
"result":{
"admin":"1.0",
"debug":"1.0",
"klay":"1.0",
"miner":"1.0",
"net":"1.0",
"personal":"1.0",
"rpc":"1.0",
"txpool":"1.0",
"web3":"1.0"
}
}

禁用不安全的調試 API

某些調試命名空間 API 不安全/不適合向公眾開放。 我們建議您只向授權用戶提供調試命名空間 API。 但是,如果您想維護公共 EN 並向公眾提供調試命名空間 API, ,我們強烈建議您設置rpc.unsafe-debug.disable標誌,這將禁用不安全/不適合向公眾開放的 API ,並只啟用調試命名空間 API 的子集。

啟用的應用程序接口如下:

  • 虛擬機跟蹤API,但功能有限(只允許使用預定義跟蹤器。 參見參數/跟蹤選項)。
  • debug_dumpBlock, debug_dumpStateTrie, debug_getBlockRlp, debug_getModifiedAccountsByHash, debug_getModifiedAccountsByNumber, debug_getBadBlocks, debug_getModifiedStorageNodesByNumber
  • debug_metrics

要設置 "rpc.unsafe-debug.disable "標誌,請在 "kend.conf "文件中添加以下一行。


ADDITIONAL="$ADDITIONAL --rpc.unsafe-debug.disable"

讓這個頁面變得更好