跳到主要内容

OXN 专属方法

除标准以太坊 JSON-RPC 表面外,OXN 暴露少量用于构造加密调用与查询 enclave 状态的方法。它们通常由 SDK 消费,而非应用代码直接调用。

拉取 enclave 公钥

构造加密调用需要当前 enclave 的 X25519 公钥。SDK 自动拉取;底层方法为需要直接使用的工具暴露。

具体方法名与响应格式随运行时版本变化。撰写时,enclave 公钥通过一个 wrapper 方法提供,返回:

{
"public_key": "0x...",
"checksum": "0x...",
"signature": "0x...",
"expiration": 12345
}
  • public_key——当前 enclave 的 32 字节 X25519 公钥。
  • checksum——enclave 二进制的 measurement。
  • signature——运行时对密钥材料的签名。
  • expiration——密钥轮换之后的区块高度。

自管加密的客户端验证签名,用 public_key 加密直到 expiration

签名查询提交

签名查询是特化的 eth_call,调用者签名在 view 函数内填充 msg.sender。机制:

  1. 客户端构造 call data。
  2. 客户端在会话密钥下加密。
  3. 客户端用 EVM 私钥对加密 payload 附上签名。
  4. 客户端通过 eth_call 用特殊标记的信封提交。
  5. Enclave 验证签名、设置 msg.sender、执行。

SDK 透明处理步骤 2–4。原始 wire 格式用同一个 eth_call 方法——签名查询由信封结构识别。

Attestation 与 enclave 信息

返回当前 enclave 认证 quote 的方法(供想直接验证 TEE 保证的客户端)可能会暴露。多数应用开发不需要它们。

共识层方法

对原生 oxn1… 地址空间的操作通过共识层 JSON-RPC 端点(独立命名空间)。它们被 OXN 网页钱包的 deposit/withdraw 流程和验证人工具使用。应用级 dApp 通常不需要它们;需要时参考 Oasis SDK 文档。

Batch 与流水线模式

对读密集工作负载,能 batch 就 batch:

[
{ "jsonrpc": "2.0", "method": "eth_getBlockByNumber", "params": ["latest", false], "id": 1 },
{ "jsonrpc": "2.0", "method": "eth_gasPrice", "params": [], "id": 2 },
{ "jsonrpc": "2.0", "method": "eth_getBalance", "params": ["0x...", "latest"], "id": 3 }
]

Batching 摊销 TLS 握手与连接开销。

下一步