EIP-1159影响的JSON RPC API以太坊

Posted 新缸中之脑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EIP-1159影响的JSON 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编码值与整数的转换,会引入不兼容的更新。具体参见这里


原文链接:受EIP-1159影响的JSON RPC API — 汇智网

以上是关于EIP-1159影响的JSON RPC API以太坊的主要内容,如果未能解决你的问题,请参考以下文章

通过Nginx用密码保护以太坊JSON-RPC API

以太坊RPC机制与API实例

Geth RPC API中文文档

以太坊json rpc

金钱难寐,大盗独行——以太坊 JSON-RPC 接口多种盗币手法大揭秘

以太坊可用RPC节点列表