OKTC(OKX Chain)作为高性能的区块链网络,提供了全面的JSON-RPC接口,允许开发者与区块链进行交互。本文将详细介绍OKTC支持的JSON-RPC方法、命名空间及其具体使用方法,帮助开发者高效构建去中心化应用。
网络端点与基本信息
主网端点
OKTC主网的链ID为 0x42(十进制66),JSON-RPC服务可通过以下端点访问:
https://exchainrpc.okex.org/第三方服务提供商
除了官方端点,开发者也可选择可靠的第三方RPC服务提供商,以获得更稳定的服务或额外的功能支持。
核心JSON-RPC方法概览
OKTC兼容以太坊的JSON-RPC标准,支持大多数常用的方法。以下表格按命名空间分类,列出了所有支持与不支持的方法:
| 方法名 | 命名空间 | 是否支持 | 说明 |
|---|---|---|---|
web3_clientVersion | Web3 | 支持 | 获取Web3客户端版本 |
web3_sha3 | Web3 | 支持 | 计算给定数据的Keccak-256哈希 |
net_version | Net | 支持 | 返回当前网络ID |
net_peerCount | Net | 不支持 | - |
eth_protocolVersion | Eth | 支持 | 返回以太坊协议版本 |
eth_syncing | Eth | 支持 | 返回同步状态信息 |
eth_gasPrice | Eth | 支持 | 返回当前Gas价格(OKT计价) |
| ... | ... | ... | ... |
提示:区块高度参数可以输入为十六进制字符串、"earliest"、"latest"或"pending"。
启动HTTP JSON-RPC服务
推荐使用 curl 命令与HTTP JSON-RPC服务进行交互。例如,查询当前区块高度:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' https://exchainrpc.okex.org/此外,你也可以使用Geth客户端。请从官方地址下载或从源码构建。
常用方法详解
Web3方法
web3_clientVersion
返回当前Web3客户端的版本信息。
示例请求:
{
"jsonrpc": "2.0",
"method": "web3_clientVersion",
"params": [],
"id": 1
}web3_sha3
返回给定数据的Keccak-256哈希值(非标准SHA3-256)。
参数:
data:要计算哈希的数据
示例请求:
{
"jsonrpc": "2.0",
"method": "web3_sha3",
"params": ["0x68656c6c6f20776f726c64"],
"id": 1
}Eth方法
eth_gasPrice
返回当前的Gas价格,以OKT为单位。
示例请求:
{
"jsonrpc": "2.0",
"method": "eth_gasPrice",
"params": [],
"id": 1
}eth_getBalance
返回指定账户地址在特定区块高度的余额。
参数:
address:账户地址blockNumber:区块高度
示例请求:
{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"],
"id": 1
}eth_sendTransaction
发送交易从指定账户到另一个账户。
参数:
交易对象包含:
from:发送方地址(20字节)to:接收方地址(20字节,创建合约时可选)gas:Gas限制(可选,默认90000)gasPrice:Gas价格(可选)value:转账金额data:合约字节码或方法签名和参数nonce:随机数(可选)
WebSocket方法
eth_subscribe
使用JSON-RPC通知订阅特定事件,允许客户端等待事件而不是轮询查询。
参数:
subscriptionName:订阅名称optionalArguments:可选参数
eth_unsubscribe
使用订阅ID取消事件订阅。
参数:
subscriptionId:订阅ID
个人账户方法
personal_newAccount
生成新私钥并将其存储在密钥库目录中,密钥文件使用给定密码加密。
参数:
passphrase:密码
personal_unlockAccount
从密钥库解密指定地址的密钥。
参数:
address:账户地址passphrase:密码duration:解锁持续时间(可选)
交易池方法
txpool_content
返回当前等待包含在下一个区块中的所有交易的详细信息。
txpool_inspect
以文本格式返回交易池中所有交易的摘要信息。
txpool_status
返回当前等待包含在下一个区块中的交易数量。
常见问题
OKTC支持哪些JSON-RPC方法?
OKTC支持大多数以太坊标准的JSON-RPC方法,包括web3、net、eth、personal和txpool命名空间中的核心方法。具体支持情况请参考上文中的详细表格。
如何查询OKTC上的账户余额?
使用eth_getBalance方法,传入账户地址和区块高度参数(如"latest")即可查询指定账户在特定区块的余额。
OKTC的Gas价格如何获取?
通过调用eth_gasPrice方法可以获取当前网络的Gas价格,返回值为以OKT计价的Gas价格。
如何发送原始签名交易?
使用eth_sendRawTransaction方法可以发送已签名的原始交易数据,这通常用于离线签名场景。
OKTC支持事件订阅吗?
是的,通过WebSocket的eth_subscribe方法可以订阅新区块、待处理交易等事件,避免频繁轮询。
交易池信息如何查询?
OKTC提供了txpool_content、txpool_inspect和txpool_status三个方法,用于查询交易池中的详细交易信息、摘要信息和交易数量统计。
通过本文介绍的JSON-RPC方法,开发者可以充分利用OKTC区块链的功能,构建强大的去中心化应用。建议在实际开发中结合具体业务需求,选择合适的方法进行调用和优化。