php以太坊(受EIP-1159影响的RPC API「以太坊」)
EIP-1159升级了以太坊的交易定价机制,将gasPrice分为base和tip两部分。EIP-1159 不能兼容之前的版本,因此将导致硬分叉。包含EIP-1159升级的分叉被称为伦敦分叉, 大约在8月4日发生。在这篇文章中,我们将介绍EIP-1159造成的以太坊JSON RPC API变化。
用自己熟悉的语言学习 以太坊开发 : Java Php Python 。Net / C# Golang Node。JS Flutter / Dart
eth1。0-apis仓库 没有版本号,因此很难跟踪 EIP-1159引发的JSON RPC API变化。比特币行情下面是我们找出的API变化清单。
EIP-1559引入了一种新的交易类型(0x02)并在区块头加入一个新的字段(baseFeePerGas)。 总体来说,任何返回交易或区块的RPC API都会在EIP-1159生效后受到影响。
下面的API调用受到EIP-1159的影响,标记*的表明该API及其变化形式都受到影响:
eth_call
eth_call涉及到显著的修改,具体描述参见这里。
eth_getBlockBy*
在伦敦分叉后的区块中会增加一个新的字段 baseFeePerGas 。
eth_getRawTransaction*
在伦敦分叉后可能反馈RPL编码的EIP-1159交易。
eth_getTransactionBy*
gasPrice now interpreted as XXX (update after infra call)
EIP-1559交易将添加两个新的字段:maxPriorityFeePerGas 和 maxFeePerGas 。
eth_getTransactionReceipt
在交易收据中将添加一个新的字段 effectiveGasPrice 。在伦敦分叉前,该字段 的值与 gasPrice相等;在伦敦分叉后,该字段的值等于实际的gas价格。计算过程 根据交易是否为EIP-1159交易而有所不同。
eth_getUncleBy*
在伦敦分叉后的区块中将增加一个新的字段 baseFeePerGas 。
eth_sendTransaction
支持EIP-1559交易字段 maxPriorityFeePerGas 和 maxFeePerGas 。节点软件需要计算这两个 字段的合理值,如果在输入数据中不包含的话。旧式交易依然还可以通过设置gasPrice来发送。
eth_estimateGas
伦敦分叉后,需要指定 gasPrice 或 maxFeePerGas 和 maxPriorityFeePerGas 。在伦敦分叉前, 可以省略 gasPrice,因为可以设置为0。但EIP-1559生效后,需要考虑baseFeePerGas,手续费 必须要能够支付基准手续费。
eth_sendRawTransaction
这个API目前支持RLP编码的EIP-1159交易。
eth_feeHistory
这个API是EIP-1559引入的,它返回交易手续费的历史数据。关于此API的更多信息可以查看这里。
需要指出的是,GETH为了此API支持hex编码值与整数的转换,会引入不兼容的更新。具体参见这里。
原文链接:http!//blog。hubwiz。com/2021/08/01/EIP-1159-json-rpc-changes/
","content_hash"!"61e91238
评论