This version is backwards compatible to v1.15.0. It is optional, but encouraged.
The plugin version is unchanged at 47 and is compatible with version v1.15.2.
APIs
- Added a
Gas-Usedheader to C-Chain/rpcresponses with the total gas used by every completedeth_callin the request. admin.lockProfileand continuous profiling now writelock.profilein the binary pprof format, like the CPU and memory profiles.
Configs
- Added
--profile-continuous-mutex-fraction(default1, which keeps the existing behavior) to set the mutex profile fraction used by continuous profiling. Set it to0to stop recording mutex contention, or tonto sample 1 of every n events. - Added the
filterAPI to the C-Chainapisoption. It serves the polling filter methods (eth_newFilter,eth_newBlockFilter,eth_newPendingTransactionFilter,eth_getFilterChanges,eth_getFilterLogs,eth_uninstallFilter), which moved out ofsubscription. It is enabled by default. A config that setsapismust addfilterto keep serving these methods. - Added the
logsAPI to the C-Chainapisoption. It serveseth_getLogs, which moved out ofsubscription. It is enabled by default. A config that setsapismust addlogsto keep servingeth_getLogs.
Metrics
- SAE state sync scores peers separately for each sync protocol, so
avalanche_evm_p2p_peer_tracker_{num_tracked_peers,num_responsive_peers,average_bandwidth}are replaced by one set per protocol:avalanche_evm_p2p_peer_tracker_<protocol>_*with<protocol>one ofleaf,code,blockorcchain_leaf.
Fixes
- Fixed C-Chain log queries (
eth_getLogs,eth_getFilterLogs) failing withfailed to get logs for block #Nwhen the range reached an accepted block that had not yet executed. Range queries now stop at the last executed block, andblockHashqueries for an unexecuted block returnunknown block. - Fixed
admin.stopCPUProfilerleaving mutex profiling enabled, which kept recording mutex contention until the node restarted. - Fixed the C-Chain block builder ordering pending transactions inconsistently. Transactions could be out of effective gas tip order, and a sender's later nonce could come before an earlier one, which left it out of the block.
- Fixed
UnmarshalTextimplementations which prevented usage of jsonv2 (default in Go 1.27).
What's Changed
- fix(saevm): hide unexecuted blocks from the log filter system by @JonathanOppenheimer in #6223
- refactor(acp176): delete
vms/evm/acp176by @JonathanOppenheimer in #6182 - Stage v1.15.3 release by @StephenButtolph in #6235
- fix(profiler): write the lock profile in the binary pprof format by @felipemadero in #6228
- feat(profiler): make the continuous profiling mutex fraction configurable by @felipemadero in #6227
- fix(tests/reexecute): defer chaos test recovery and correct start-block docs by @JonathanOppenheimer in #6220
- Remove deprecated client functions by @StephenButtolph in #6239
- [ci] Enable race detection for Bazel unit test job on PR and merge group triggers by @maru-ava in #6240
- chore(saevm): delete test helpers and proxytime.ConvertMilliseconds without callers by @JonathanOppenheimer in #6162
- refactor(graft/coreth): remove params constants by @alarso16 in #6189
- fix(profiler): disable mutex profiling when the CPU profiler stops by @felipemadero in #6229
- docs(admin): explain when admin.lockProfile has data by @felipemadero in #6230
- test(sync): Panic for mid-trie roots by @alarso16 in #6241
- feat(vms/saevm/network): give each sync protocol its own peer tracker by @powerslider in #6072
- Skip tmpnet collection if tmpnet did not start by @joshua-kim in #6242
- perf(saevm/cchain): verify atomic txs against the last executed state by @JonathanOppenheimer in #6245
- [ci] Ensure caching for go unit test job by @maru-ava in #6025
- fix(saevm/cchain): report unexecuted atomic txs as not found by @JonathanOppenheimer in #6246
- Remove goleak exception by @StephenButtolph in #6251
- refactor(cchain): move extstate out of coreth by @JonathanOppenheimer in #6133
- refactor(extstate): use uint256 for asset balances by @JonathanOppenheimer in #6252
- refactor(coreth): remove precompile config and modules registry by @JonathanOppenheimer in #6254
- refactor(coreth): shrink warp.Config to a plain struct by @JonathanOppenheimer in #6257
- bump canoto version to v19 by @samliok in #6271
- chore: remove error from predicate parsing by @alarso16 in #6272
- refactor: Rewrite coreth params by @alarso16 in #6184
- [ci] Migrate binary-building jobs to bazel for better caching by @maru-ava in #6152
- feat(sae/rpc): report
eth_callgas used in aGas-Usedresponse header by @SayanKar in #6060 - feat(saevm): split polling filter methods into a separate
filterAPI by @JonathanOppenheimer in #6236 - fix(merkle/sync): keep the first fatal sync error by @powerslider in #6273
- Disable Multipath TCP by @StephenButtolph in #6278
- Bump Simplex Version by @samliok in #6269
- refactor(cchain): move the EVM hooks out of coreth by @rahulmutt-ava in #6137
- test(cchain): regression for delegatecall by @alarso16 in #6279
- fix(saevm/txgossip): merge pending txs by sender instead of sorting by @JonathanOppenheimer in #6250
- Add a Capacity to Signature Aggregator Channel by @samliok in #6283
- Simplify Writing File Perms by @samliok in #6284
- feat(l1s): Port genesis by @alarso16 in #6015
- refactor(cb58): add extra argument for Decode by @rahulmutt-ava in #6286
- refactor(coreth): drop predicate plumbing for Warp messages by @JonathanOppenheimer in #6259
- Fix UnmarshalText implementations by @StephenButtolph in #6297
- chore: migrate from firewood-go-ethhash to firewood-go by @RodrigoVillar in #6285
- Update free disk space action by @StephenButtolph in #6298
New Contributors
Full Changelog: v1.15.2...v1.15.3