跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 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"

让这个页面变得更好