Releases: bpx-chain/bpx-execution-client
Releases · bpx-chain/bpx-execution-client
1.3.0
BPX Execution Client 1.3.0 2024-01-19
Added
- For EIP-4844 'Shard Blob Transactions', this release contains basic type definitions and state transition logic (not used on mainnet yet)
- Implemented an entirely new mempool -- the blobpool -- for EIP-4844 transactions (not used on mainnet yet)
- EIP-6780: 'SELFDESTRUCT only in same transaction' (not used on mainnet yet)
- EIP-5656: 'MCOPY instruction' (not used on mainnet yet)
- EIP-1153: 'Transient storage opcodes' (not used on mainnet yet)
evm blocktest
can now output structured logs- Geth will now configure GOMAXPROCS based on CPU quota settings. This should improve efficiency when running in Docker containers with a CPU core limit applied.
- An IPv6 listening address for can now be configured for HTTP/WS
- JSON transactions now have a
yParity
fields, as mandated by the RPC API spec - Legacy transactions now have a
chainID
field in RPC responses, like all other transaction types eth_estimateGas
now supports state overrides likeeth_call
eth_estimateGas
now handles internal chain reorgs more correctlydebug_storageRangeAt
now takes a block hash or number as parameter- The new
debug_getTrieFlushInterval
method reports the internal state saving interval - Structured EVM logs returned by tracing now contain the
returnData
- GraphQL now supports withdrawals (EIP-4895)
- The RPC client has multiple new ways to test whether the transport supports real time subscriptions
- fsync is now enabled for pebble database writes
- The keystore has improved verification of keys loaded from disk
- Per-level metrics are now available for LevelDB
- The p2p networking layer has learned to announce alternate ports returned by UPnP/NAT-PMP
- Networking initialization now really disables all discovery when
--nodiscover
is used - We now provide additional metrics around p2p dialing, making it possible to measure the efficieny of peer discovery
- It is now possible to configure certain discovery internals for experimentation
- Index transactions even if no blocks are received
- Expose Geth version metadata into the metrics
- Optimise eth_estimateGas to do fewer runs
- Add
eth_getBlockReceipts
RPC API call - Support unpacking Solidity panic events
- Reject GraphQL block queries where both number and hash is specified
- Optimise logging library to avoid expensive call stack lookups
Changed
geth --dev
now simulates a PoST-based chaineth_getProof
is slight more efficient, and will now return a response in the canonical encoding even for off-spec input parameterseth_getTransactionReceipt
now returnsnull
when the transaction is not available. It used return an error in that case.- The RPC server now enforces limits on batch requests and responses. This is a potentially breaking change.
If you use batch requests with geth, and also use the go-ethereum RPC client library, we strongly recommend updating your go-ethereum library dependency as well. The new client version handles invalid batch responses way better than before. - Function calls timed by metrics will now run even if metrics are disabled
Node.Attach
no longer returns an error. This is a breaking Go API change.- All block creation activity is now paused while the node is syncing
- Discovery bootstrap nodes will now be filtered by the netrestrict setting, like all other nodes
- Metrics names used by the blobpool have been changed to be compatible with Prometheus
- Increase batch limits for RPC calls on the authenticated endpoint
Removed
- Block headers returned by RPC no longer report a non-standard
size
field - Geth no longer uses a 'clean cache file' to persist internal caches across restarts. While persistent cache added a small performance boost right after startup, it could cause obscure issues in certain restart scenarios.
- Obsolete parts of the LES protocol implementation, which is currently non-functional, have been removed
- On UNIX-like OSes, package rpc no longer uses cgo
- Building no longer fails when
.DS_Store
files exist in unexpected locations
Fixed
- A crash in the prestate tracer is resolved
- A serious memory leak related to database writes in snap sync is fixed in this release
- Large transactions (> 4kB) are no longer broadcasted to peers. This resolves a potential network congestion issue
- A crash related to leveldb metrics is resolved
- Two minor bugs in the transaction pool are resolved in this release
- The p2p server now properly tracks all peer goroutines
- The downloader no longer accumulates goroutines/memory while processing reorgs
- A very rare crash related to peer connection tracking is resolved
- On macOS, a build warning related to libusb is resolved
- An obscure build issue related to the NDEBUG C macro is resolved
- The c-kzg-4844 and blst libraries have been updated, hopefully fixing some build issues
- Fix forkid computation for genesis-merged non-zero timestamp networks
- Fix a potential data race in the websocket ping/pong mechanism
- Fix js tracers to return the gas price in base 16, not base 10
- Fix finalized block number in dev (
--dev
) mode
1.2.0
BPX Execution Client 1.2.0 2023-07-18
bpx-geth removedb
command before starting the client, or delete the entire ~/.bpx/execution
/ C:\Users\YourUserName\.bpx\execution
folder
Added
- Add block overrides to eth_call
Changed
- Changed default database backend from LevelDB to Pebble if no existing database is found
- In GraphQL API, all numeric values are now encoded as hex strings
Removed
- Removed support for proof-of-work based private chains
Fixed
- Do not ignore null address while iterative dump
- Fix flatCallTracer crasher
- Prevent pebble shutdown-panic
- Make websocket use default "HTTP_PROXY" by default
- Make eth_estimateGas use latest block by default
- Add txHash field on txTraceResult
- Fix crash on querying finalized block