EIP-7805 引入了 Engine API 的修改,扩展了 engine_newPayloadV5 方法的参数列表,新增了 engine_getInclusionListV1 和 engine_updatePayloadWithInclusionListV1 方法,并更新了先前版本的方法,以支持 FOCIL (Fork Choice Inclusion List) 有效负载的处理。
EIP-7805 中引入的 Engine API 变更。
本规范基于并扩展了 Engine API - Osaka 规范。
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- 不要编辑本节,请重新运行 doctoc 以更新 -->
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
| 名称 | 值 |
|---|---|
MAX_BYTES_PER_INCLUSION_LIST |
uint64(8192) = 2**13 |
方法参数列表通过 inclusionList 扩展。
engine_newPayloadV5executionPayload: ExecutionPayloadV3.expectedBlobVersionedHashes: Array of DATA, 32 字节 - 用于验证的预期 blob versioned hashes 数组。parentBeaconBlockRoot: DATA, 32 字节 - 父信标块的根。executionRequests: Array of DATA - 执行层触发的请求列表。每个列表元素都是一个 requests 字节数组,由 EIP-7685 定义。每个元素的第一个字节是 request_type,其余字节是 request_data。列表的元素必须按 request_type 升序排列。具有空 request_data 的元素必须从列表中排除。inclusionList: Array of DATA - 交易对象数组,每个对象是一个字节列表 (DATA),表示 EIP-2718 中定义的 TransactionType || TransactionPayload 或 LegacyTransaction。请参阅 engine_newPayloadV4 的响应。
此方法遵循与 engine_newPayloadV4 相同的规范,但有以下更改:
inclusionList 中有任何交易不属于 executionPayload,即使它们可以附加到 executionPayload 的末尾,客户端软件必须返回 {status: INVALID_INCLUSION_LIST, latestValidHash: null, validationError: null}。engine_getInclusionListV1parentHash: DATA, 32 字节 - 应该在其上构建返回的 inclusion list 的父哈希。inclusionList: Array of DATA - 交易对象数组,每个对象是一个字节列表 (DATA),表示 EIP-2718 中定义的 TransactionType || TransactionPayload 或 LegacyTransaction。客户端软件必须根据 mempool 的本地视图和配置规范提供 inclusion list 的交易列表。
客户端软件必须提供一个上限为 MAX_BYTES_PER_INCLUSION_LIST 的交易列表。
客户端软件不得在提供的列表中包含任何 blob transaction。
engine_updatePayloadWithInclusionListV1payloadId: DATA, 8 字节 - payload 构建过程的标识符。inclusionList: inclusionList: Array of DATA - 交易对象数组,每个对象是一个字节列表 (DATA),表示 EIP-2718 中定义的 TransactionType || TransactionPayload 或 LegacyTransaction。payloadId: DATA|null, 8 字节 - payload 构建过程的标识符或 null给定 payloadId,客户端软件必须使用 inclusionList 更新 payload 构建过程。除非交易在 payload 末尾包含失败,否则必须是 execution payload 的一部分。
客户端软件在更新 execution payload 时应该忽略 inclusionList 中存在的任何 blob transactions。
本文档定义了 Prague API 应如何处理 FOCIL payload。
对于以下方法:
必须添加验证:
timestamp 大于或等于 FOCIL 激活时间戳,则客户端软件必须返回 -38005: Unsupported fork 错误。
- 原文链接: github.com/jihoonsong/ex...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!