尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

EIP-3091 区块浏览器 API 路由标准:为多链世界统一交易、区块、账户与代币链接

EIP-3091 区块浏览器 API 路由标准:为多链世界统一交易、区块、账户与代币链接 EIP-3091 区块浏览器 API 路由标准为多链世界统一交易、区块、账户与代币链接【免费下载链接】EIPsThe Ethereum Improvement Proposal repository项目地址: https://gitcode.com/GitHub_Trending/ei/EIPs导读EIP-3091Block Explorer API Routes是 EIPs 仓库 中定义的一份 Standards Track / Interface 类提案其核心目标是为区块链浏览器Block Explorer的网页链接制定统一的 API 路由规范使得钱包与 DApp 在跳转区块、交易、账户与代币页面时不再依赖各家浏览器各自为政的 URL 格式。阅读本文后你将掌握 EIP-3091 规定的四类标准化路由模式、其与wallet_updateEthereumChainEIP-2015中blockExplorerUrl字段的衔接关系以及如何在现有浏览器或钱包项目中以最小的成本重定向即可对齐这一规范。提案背景与动机随着公链生态的扩张和 Layer 2 解决方案的涌现钱包与 DApp 在向用户展示链上数据时通常会把交易、账户等链接到区块浏览器网页。然而不同浏览器之间这些链接端点的 URL 格式并不一致有的浏览器用/tx/TX_HASH表示交易页有的则使用/transaction/TX_HASH区块页可能同时存在/block/HEIGHT与/block/HASH两种形式。EIP-3091 的动机部分明确指出链的多样性与 Layer 2 方案的增加让维护一致的用户体验变得越来越困难。每当钱包或 DApp 需要接入一条新链或新的 Layer 2 方案时都要为不同浏览器的不同端点格式编写适配代码成本随链的数量线性上升。对链接端点进行标准化可以显著改善钱包与区块浏览器之间的互操作性。规范四类标准化路由EIP-3091 的核心规范非常精简要求区块浏览器针对以下四类数据使用统一的 URL 路由数据类型标准化路由模板路径参数说明区块BlocksBLOCK_EXPLORER_URL/block/BLOCK_HASH_OR_HEIGHTBLOCK_HASH_OR_HEIGHT区块哈希或区块高度块号交易TransactionsBLOCK_EXPLORER_URL/tx/TX_HASHTX_HASH交易哈希账户AccountsBLOCK_EXPLORER_URL/address/ACCOUNT_ADDRESSACCOUNT_ADDRESS账户地址代币TokensBLOCK_EXPLORER_URL/token/TOKEN_ADDRESSTOKEN_ADDRESS代币合约地址其中BLOCK_EXPLORER_URL为区块浏览器的根域名或前缀路径完整示例https://explorer.example.com/block/0x1234...cdef # 按哈希访问区块 https://explorer.example.com/block/15000000 # 按高度访问区块 https://explorer.example.com/tx/0xabcd...9876 # 访问交易详情 https://explorer.example.com/address/0x0000...0001 # 访问账户页面 https://explorer.example.com/token/0x1111...2222 # 访问代币页面一个值得注意的设计细节是区块页面同时接受区块哈希与区块高度块号两种参数。这是因为在钱包与 DApp 的交互场景中用户可能只知道块号例如在链上交易确认提示中也可能持有某个具体区块的哈希例如在深度排查时标准路由需要同时兼容两者才能覆盖实际使用场景。Rationale为什么选择这些路径提案的 Rationale 部分只有一句话却点明了设计的关键取舍本提案选用的路径特意与现存大多数区块浏览器保持兼容。也就是说/block/、/tx/、/address/、/token/这四个路径前缀并非凭空发明而是从当时已广泛部署的浏览器如 Etherscan 系及其衍生品的实际 URL 结构归纳而来。采用跟随主流而非另起炉灶的策略意味着存量浏览器改动极小多数浏览器已经天然兼容这些路由无需任何代码改动即可声明符合 EIP-3091钱包接入成本低钱包只需维护链 ID → 浏览器根 URL的映射然后在根 URL 后拼接统一路径即可生成所有类型的跳转链接生态阻力最小标准化提案的成功率与采纳成本成反比与现状高度一致的规范更容易被各方接受。这一设计哲学与 EIP-2015 中blockExplorerUrl字段的思路一脉相承——在该提案的EthereumChainSwitchRequest接口中钱包通过blockExplorerUrl声明某条链的浏览器入口配合 EIP-3091 的路由约定钱包即可从只知道浏览器根地址推导出任意资源的完整链接interface EthereumChainSwitchRequest { chainId: string; // 0x 前缀的 EIP-155 链 ID chainName?: string; rpcUrls?: string[]; nativeCurrency?: NativeCurrencyData; blockExplorerUrl?: string; // 区块浏览器根 URL }当钱包通过wallet_updateEthereumChain切换到新链时只需拿到blockExplorerUrl例如https://explorer.example.com再依据 EIP-3091 拼接/tx/TX_HASH、/address/ACCOUNT_ADDRESS等路径即可为用户提供一致的浏览器跳转体验无需为每条链硬编码浏览器特有的 URL 模板。向后兼容性用重定向完成过渡EIP-3091 的向后兼容方案极为务实不兼容的区块浏览器可以使用重定向redirect将其现有路由指向本规范定义的新路由。具体来说若某浏览器原本使用/transaction/HASH展示交易则在采纳 EIP-3091 后可配置一条 HTTP 301/302 重定向/transaction/HASH → /tx/HASH这样既保持了旧链接可能已被大量外部页面、文档或社交网络引用的可访问性又让新链接符合统一标准。对于服务端实现这通常只需在反向代理Nginx、Caddy、Cloudflare Workers 等中增加少量 rewrite 规则对于使用以太坊生态常见浏览器框架如 Blockscout 等基于 Elixir/Phoenix 或类似 MVC 框架的浏览器的项目则等价于在路由层声明上述四个路径并指向对应控制器。在 eip-template.md 中EIP 模板要求所有提案必须阐述向后兼容问题及应对措施EIP-3091 正是通过重定向兜底这一低成本方案满足该要求。安全考虑EIP-3091 的 Security Considerations 章节明确标注为None无。这符合该提案的性质它仅定义了 URL 路径的命名约定本身不引入任何链上状态变更、不触发网络请求、不解析用户输入因此不存在直接的安全攻击面。不过从实现角度可以推断安全责任实际落在了下游实现者身上链接生成方钱包/DApp拼接路径时应对输入做规范化处理避免把恶意构造的字符串如路径穿越片段直接拼入 URL浏览器服务端对BLOCK_HASH_OR_HEIGHT、TX_HASH、ACCOUNT_ADDRESS、TOKEN_ADDRESS等参数应做格式校验如哈希长度与十六进制字符集校验防止异常输入进入数据库查询或日志系统浏览器前端渲染外部传入的地址与哈希时应使用文本转义防范 XSS。这些是 URL 路由类功能的通用安全实践与 EIP-3091 规范本身无冲突。在生态中的定位与现状EIP-3091 的元数据位于 EIPS/eip-3091.md 的 front matter记录了以下关键信息字段值EIP 编号3091标题Block Explorer API Routes作者Pedro Gomes (pedrouid)、ligi (ligi)讨论地址Ethereum Magicianseip-3091-block-explorer-api-routes 主题状态Stagnant停滞类型Standards Track类别Interface创建日期2020-11-02按照 README.md 的分类说明Interface 类 EIP 用于标准化以太坊的接口决定用户与应用程序如何与区块链交互——区块浏览器的链接路由正是典型的应用与链上数据交互的接口层。而Stagnant状态意味着该提案在合理时间窗口内未取得足够进展已不再活跃推进但正如其 Rationale 所述由于所选路径与主流浏览器现状天然一致该规范描述的 URL 约定事实上已成为社区事实标准后续接入新链的钱包与浏览器在实践中普遍沿用了这一模式。仓库同时提示EIPs 与 ERCs 已拆分管理新提案尤其 ERC 类别应转向新的 ercs 仓库本仓库继续承载既有 EIP 的历史记录与规范文本。所有 EIP 文档包括本文引用的 EIP-3091、EIP-2015、EIP-155均以 CC0 协议放弃版权见 LICENSE.md允许自由引用与实现。实战如何对齐 EIP-3091无论你是区块浏览器维护者还是钱包/DApp 开发者对齐 EIP-3091 的成本都极低作为区块浏览器确认自身路由是否已支持/block/、/tx/、/address/、/token/四个前缀对不支持的旧路径配置 HTTP 重定向到新路径确保/block/能同时接受区块哈希与区块高度两种参数形式。作为钱包/DApp在链配置中维护blockExplorerUrl字段参考 EIP-2015 的EthereumChainSwitchRequest结构生成链接时统一拼接blockExplorerUrl /tx/ txHash、blockExplorerUrl /address/ address、blockExplorerUrl /token/ tokenAddress、blockExplorerUrl /block/ blockHashOrHeight对chainId等参数遵循 EIP-155 的0x前缀约定确保跨链场景下浏览器入口与链身份一一对应。总结EIP-3091 用四条路由规则为多链生态中钱包/ DApp → 区块浏览器的跳转链路提供了最小可用的互操作标准/block/、/tx/、/address/、/token/。它没有引入复杂的协议机制而是选择与主流浏览器现状对齐并允许不兼容者通过重定向过渡。虽然提案本身处于 Stagnant 状态但其路径约定已成为生态事实标准并与 EIP-2015 的blockExplorerUrl机制形成天然互补——前者定义链接长什么样后者定义浏览器入口从哪里来。对于任何面向多链场景的浏览器与钱包工程这套约定都是值得对齐的最低成本互操作基线。【免费下载链接】EIPsThe Ethereum Improvement Proposal repository项目地址: https://gitcode.com/GitHub_Trending/ei/EIPs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表