ERC-7617: Web3 URL 中 ERC-5219 模式的 Chunk 支持
在 ERC-5219 解析模式中,添加获取由多个 chunk 组成的 Web3 URL 资源的能力
Authors | Qi Zhou (@qizhou), Nicolas Deschildre (@nand2) |
---|---|
Created | 2024-02-08 |
Discussion Link | https://ethereum-magicians.org/t/erc-5219-resolve-mode/14088 |
Requires | EIP-5219, EIP-6944 |
摘要
在 ERC-6860 web3://
标准的上下文中,此 ERC 扩展了 ERC-6944 解析模式:此标准定义了一个新的可选 web3-next-chunk
HTTP 头部,由 request()
调用返回,其中包含一个指向资源数据的下一个数据 chunk 的 web3://
URL。 Chunk 被流式传输到 web3://
客户端,并且循环直到 web3-next-chunk
头部不再存在。
动机
以太坊 RPC 端点具有 gas 限制,当服务大型内容时可能会达到该限制。 通过添加分块功能,我们增加了服务任意大小内容的可能性。
规范
在 ERC-6944 解析模式中,此标准引入了新的可选 web3-next-chunk
HTTP 头部,该头部将在 ERC-6944 中定义的 request ()
方法的 headers
KeyValue
数组中返回。
头部的值可以是完整的 web3://
URL,也可以是相对的 URL。目标智能合约必须使用 ERC-6944 解析模式。
当处理初始 request()
调用的结果时,该协议立即将 HTTP 状态代码、HTTP 头部和正文返回给 web3://
客户端。 如果存在 web3-next-chunk
头部,则解析该 URL。 如果 URL 无效,或者目标智能合约未使用 ERC-6944 解析模式,则 HTTP 数据流传输以错误结束。 否则,它将调用 request()
方法,忽略返回的 statusCode
,将 body
数据作为下一个数据 chunk 发送,如果再次存在 web3-next-chunk
头部,则循环直到不再存在。
理由
选择使用指向下一个 chunk 的头部,因为它不需要更改 ERC-6944 request()
接口,并且在头部中使用 web3://
URL 为提供下一个 chunk 的方式增加了灵活性。
安全注意事项
未发现任何安全注意事项。
版权
在 CC0 下放弃版权及相关权利。
Citation
Please cite this document as:
Qi Zhou (@qizhou), Nicolas Deschildre (@nand2), "ERC-7617: Web3 URL 中 ERC-5219 模式的 Chunk 支持 [DRAFT]," Ethereum Improvement Proposals, no. 7617, February 2024. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7617.