如果输入数据里的签名与任意一个预定义的函数相匹配,Etherscan 都能解码 input data。 input data 的大小有没有什么限制? 既有,也没有。以太坊协议没有为 input data 的长度设固定的上限,但 input data 也消耗 gas。单个区块可用的 Gas 数量是有上限的,在本文撰写时是 800 万(译者注:原文撰写于 2019 年 2 月,在 2021 年 4 月,已经上升到 1500 万)。每一个 0 字节(0x00)都要消耗 4 gas,而非零的字节要消耗 68 gas。一笔标准的 ETH 转账事务要消耗 21000 单位 gas,所以,如果不考虑调用合约的交易,当前 input data 的最大长度是 2 MB(全部由 0 组成),或者全部用非零字节的话,就是 0.12 MB。因为 input data 不会只有零,也不会一个 0 也没有,所以实际的大小会在两者之间。 如果你想看实时的 区块 Gas 上限,可以看 ETHStats.net。 - 特定区块的 Gas 上限 - 只需将鼠标停留在 “Gas Limit” 部分的某个区块上,就可以看到其 Gas 上限。 更多信息 合约 ABI 规范ERC-20 Token 标准以太坊虚拟机参考 以太坊黄皮书Solidity 文档(完) (文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取) 原文链接: https://blog.mycrypto.com/why-do-we-need-transaction-data-/ 作者: Maarten Zuidhoorn 翻译: 阿剑 (责任编辑:admin) |