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編碼值與整數的轉換,會引入不兼容的更新,具體參見這里,
原文鏈接:受EIP-1159影響的JSON RPC API — 匯智網
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/291554.html
標籤:區塊鏈
