php以太坊(受EIP-1159影响的RPC API「以太坊」)

  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交易将添加两个新的字段:maxPriorityFeePerGasmaxFeePerGas

  

eth_getTransactionReceipt

在交易收据中将添加一个新的字段 effectiveGasPrice 。在伦敦分叉前,该字段 的值与 gasPrice相等;在伦敦分叉后,该字段的值等于实际的gas价格。计算过程 根据交易是否为EIP-1159交易而有所不同。

  

eth_getUncleBy*

在伦敦分叉后的区块中将增加一个新的字段 baseFeePerGas

  

eth_sendTransaction

支持EIP-1559交易字段 maxPriorityFeePerGasmaxFeePerGas 。节点软件需要计算这两个 字段的合理值,如果在输入数据中不包含的话。旧式交易依然还可以通过设置gasPrice来发送。

  

eth_estimateGas

伦敦分叉后,需要指定 gasPricemaxFeePerGasmaxPriorityFeePerGas 。在伦敦分叉前, 可以省略 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

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论