- Removes
avax.versionAPI - Removes
customethclientpackage in favor ofethclientpackage and temporary type registrations (WithTempRegisteredLibEVMExtras)- Also removes blockHook extension in
ethclientpackage.
- Also removes blockHook extension in
- Enables Firewood to run with pruning disabled.
- This change modifies the filepath of Firewood and any nodes using Firewood will need to resync.
- Removed deprecated flags
coreth-admin-api-enabled,coreth-admin-api-dir,tx-regossip-frequency,tx-lookup-limit. Useadmin-api-enabled,admin-api-dir,regossip-frequency,transaction-historyinstead. - Enabled RPC batch limits by default, and configurable with
batch-request-limitandbatch-max-response-size. - ACP-226 (Granite):
- Set expected block gas cost to 0 in Granite network upgrade, removing block gas cost requirements for block building.
- Add
timeMilliseconds(Unix uint64) timestamp to block header for Granite upgrade. - Add
min-delay-target(uint64) flag to node configs. - Add
minDelayExcess(uint64) to block header for Granite upgrade. - Add minimum block building delays to conform the block builder to ACP-226 requirements.
- Add minimum delay verification.
- Update go version to 1.24.9
- Updated gas price estimation to use median of transactions in the last 20 seconds/40 blocks instead of estimation with block gas cost:
- Changed default percentile from 60 to 40
- This impacts
eth_suggestGasPriceandeth_suggestGasTipCap,eth_suggestPriceOptions,eth_maxPriorityFeePerGas,eth_gasPriceAPIs
- Removed legacy warp message handlers in favor of ACP-118 SDK handlers.
- Use
state-historyeth config flag to designate the number of recent states queryable. - Added maximum number of addresses (1000) to be queried in a single filter.
- Moves atomic operations from plugin/evm to plugin/evm/atomic and wraps the plugin/evm/VM in
atomicvmto separate the atomic operations from the EVM execution. - Demoted unnecessary error log in
core/txpool/legacypool.goto warning, displaying unexpected but valid behavior. - Removed the
snowman-api-enabledflag and the corresponding API implementation. - Enable experimental
state-schemeflag to specify Firewood as a state database. - Added prometheus metrics for Firewood if it is enabled and expensive metrics are being used.
- Disable incompatible APIs for Firewood.
- Major refactor to use
libevmfor EVM execution, database access, types & chain configuration. This improves maintainability and enables keeping up with upstream changes more easily. - Add metrics for ACP-176
- Removed the
"price-options-max-base-fee"config flag - Removed extra type support in "ethclient.BlockByHash", "ethclient.BlockByNumber".
- Moved extra types returned in
ethclientpackage to a new packageplugin/evm/customethclientwhich supports the same functionality asethclientbut with the new types registered in header and block.
-
Bump golang version to v1.23.6
-
Bump golangci-lint to v1.63 and add linters
-
Implement ACP-176
-
Add
GasTargetto the chain config to allow modifying the chain'sGasTargetbased on the ACP-176 rules -
Added
eth_suggestPriceOptionsAPI to suggest gas prices (slow, normal, fast) based on the current network conditions -
Added
"price-options-slow-fee-percentage","price-options-fast-fee-percentage","price-options-max-base-fee", and"price-options-max-tip"config flags to configure the neweth_suggestPriceOptionsAPI
- Removed deprecated
ExportKey,ExportAVAX,Export,ImportKey,ImportAVAX,ImportAPIs - IMPORTANT:
eth_getProofcalls for historical state will be rejected by default.- On archive nodes (
"pruning-enabled": false): queries for historical proofs for state older than approximately 24 hours preceding the last accepted block will be rejected by default. This can be adjusted with the new optionhistorical-proof-query-windowwhich defines the number of blocks before the last accepted block which should be accepted for state proof queries, or set to0to accept any block number state query (previous behavior). - On
pruningnodes: queries for proofs past the tip buffer (32 blocks) will be rejected. This is in support of moving to a path based storage scheme, which does not support historical state proofs.
- On archive nodes (
- Remove API eth_getAssetBalance that was used to query ANT balances (deprecated since v0.10.0)
- Remove legacy gossip handler and metrics (deprecated since v0.10.0)
- Refactored trie_prefetcher.go to be structurally similar to upstream.
- Minor version update to correspond to avalanchego v1.12.0 / Etna.
- Remove unused historical opcodes CALLEX, BALANCEMC
- Remove unused pre-AP2 handling of genesis contract
- Fix to track tx size in block building
- Test fixes
- Update go version to 1.22
- Update geth dependency to v1.13.14
- eupgrade: lowering the base fee to 1 nAVAX
- eupgrade/cancun: verify no blobs in header
- Supports ACP-118 message types
- Gets network upgrade timestamps from avalanchego
- Remove cross-chain handlers
- Add EUpgrade base definitions
- Remove Block Status
- Fix and improve "GetBlockIDAtHeight"
- Bump golang version requirement to 1.21.12
- Bump AvalancheGo to v1.11.10-prerelease
- rpc: truncate call error data logs
- logging: remove path prefix (up to coreth@version/) from logged file names.
- cleanup: removes pre-Durango scripts
- Bump AvalancheGo to v1.11.7
- Bump golang version requirement to 1.21.12
- Switches timestamp log back to "timestamp" (as was before v0.13.4)
- Add missing fields to "toCallArg"
- Fix state sync ETA overflow
- Fix state sync crash bug
- Fixes snapshot use when state sync was explicitly enabled
- Fixes v0.13.3 locking regression in async snapshot generation
- Update go-ethereum to v1.13.8
- Bump AvalancheGo to v1.11.6
- Bump golang version requirement to 1.21.10
- "timestamp" in logs is changed to "t"
- Update go-ethereum to v1.13.2
- Bump AvalancheGo to v1.11.5
- Bump golang version requirement to 1.21.9
- Respect local flag in legacy tx pool
- Disable blobpool
- Testing improvements
- Integrate stake weighted gossip selection
- Update go-ethereum to v1.12.2
- Force precompile modules registration in ethclient
- Bump Avalanchego to v1.11.3
- Bump AvalancheGo to v1.11.2
- Remove Legacy Gossipper
- Tune default gossip parameters
- Bump AvalancheGo to v1.11.1
- Bump minimum Go version to 1.21.7
- Add more error messages to warp backend
- Add support for off-chain warp messages
- Add support for getBlockReceipts RPC API
- Fix issue with state sync for large blocks
- Migrating Push Gossip to avalanchego network SDK handlers
- Add concurrent prefetching of trie nodes during block processing
- Add
skip-tx-indexingflag to disable transaction indexing and unindexing - Update acceptor tip before sending chain events to subscribers
- Add soft cap on total block data size for state sync block requests
- Bump AvalancheGo to v1.10.15
- Fix crash in prestate tracer on memory read
- Bump AvalancheGo to v1.10.14
- Remove lock options from HTTP handlers
- Fix deadlock in
eth_getLogswhen matcher session hits a missing block - Replace Kurtosis E2E tests with avctl test framework
- Add P2P SDK Pull Gossip to mempool
- Fix hanging requests on shutdown that could cause ungraceful shutdown
- Increase batch size writing snapshot diff to disk
- Migrate geth changes from v1.11.4 through v1.12.0
- Bump AvalancheGo dependency to v1.10.10
- Fix API handler crash for
lookupStateinprestatetracer - Fix API handler crash for LOG edge cases in the
callTracer - Fix regression in
eth_getLogsserving request for blocks containing no Ethereum transactions - Export
CalculateDynamicFee
- Migrate go-ethereum changes through v1.11.4
- Downgrade API error log from
WarntoInfo
- Increase default trie dirty cache size from 256MB to 512MB
- Bump AvalancheGo dependency to v1.10.1
- Improve block building logic
- Use shorter ctx while reading snapshot to serve state sync requests
- Remove proposer activation time from gossiper
- Fail outstanding requests on shutdown
- Make state sync request sizes configurable
- Increase C-Chain block gas limit to 15M in Cortina
- Add Mainnet and Fuji Cortina Activation timestamps
- Downgrade SetPreference log from warn to debug
- Fix shutdown hanging during state sync
- Add pre-check for imported UTXOs
- Fix bug in
BadBlockReasonoutput to display error string correctly - Update golangci-lint version to v1.51.2
- Enable state sync by default when syncing from an empty database
- Increase block gas limit to 15M for Cortina Network Upgrade
- Add back file tracer endpoint
- Add back JS tracer
- Bump AvalancheGo to v1.9.6
- Add support for eth_call over VM2VM messaging
- Add config flags for tx pool behavior
- Add config option to perform database inspection on startup
- Add configurable transaction indexing to reduce disk usage
- Add special case to allow transactions using Nick's Method to bypass API level replay protection
- Add counter metrics for number of accepted/processed logs
- Improve header and logs caching using maximum accepted depth cache
- Add counter for number of processed and accepted transactions
- Wait for state sync goroutines to complete on shutdown
- Bump go-ethereum dependency to v1.10.26
- Increase soft cap on transaction size limits
- Add back isForkIncompatible checks for all existing forks
- Clean up Apricot Phase 6 code
- Add trie clean cache journaling to disk to improve processing time on restart
- Fix regression where snapshot could be marked as stale by async acceptor during block processing
- Add fine-grained block processing metrics
- Add cache size config parameters for
trie-clean-cache,trie-dirty-cache,trie-dirty-commit-target, andsnapshot-cache - Increase default
trie-clean-cachesize from 256 MB to 512 MB - Increase default
snapshot-cachesize from 128 MB to 256 MB - Add optional flag to skip chain config upgrade check on startup (allows VM to start after missing a network upgrade)
- Make Avalanche blockchainID (separate from EVM ChainID) available within the EVM
- Record block height when performing state sync
- Add support for VM-to-VM messaging
- Move
eth_getChainConfigunder theBlockChainAPI - Simplify block builder timer logic to a simple retry delay
- Add Opentelemetry support
- Simplify caching logic for gas price estimation
- Update Chain Config compatibility check to compare against last accepted block timestamp
- Bump go-ethereum dependency to v1.10.25
- Add Banff activation times for Mainnet and Fuji for October 18 4pm UTC and October 3 2pm UTC respectively
- Banff cleanup
- Deprecate Native Asset Call and Native Asset Balance
- Deprecate Import/Export of non-AVAX Avalanche Native Tokens via Atomic Transactions
- Add failure reason to bad block API
- Migrate to go-ethereum v1.10.23
- Add API to fetch Chain Config
- Fix bug in
codeToFetchdatabase accessors that caused an error when starting/stopping state sync - Bump go-ethereum version to v1.10.21
- Update gas price estimation to limit lookback window based on block timestamps
- Add metrics for processed/accepted gas
- Simplify syntactic block verification
- Ensure statedb errors during block processing are logged
- Remove deprecated gossiper/block building logic from pre-Apricot Phase 4
- Add marshal function for duration to improve config output
- Add optional JSON logging
- Bump minimum go version to v1.18.1
- Add interface for supporting stateful precompiles
- Remove legacy code format from the database
- Enable expensive metrics by default
- Fix atomic trie sync bug that could result in storing incorrect metadata
- Update state sync metrics to use counter for number of items received
- Bump go-ethereum dependency to v1.10.20
- Update API names used to enable services in
eth-apiconfig flag. Prior names are supported but deprecated, please update your configuration accordingly - Optimizes state sync by parallelizing trie syncing
- Adds
eth_syncingAPI for compatibility. Note: This API is only accessible after bootstrapping and always returns"false", since the node will no longer be syncing at that point. - Adds metrics to atomic transaction mempool
- Adds metrics for incoming/outgoing mempool gossip
- Bump go-ethereum dependency to v1.10.18
- Parallelize state sync code fetching
- Deprecated CB58 format for API calls
- Add peer bandwidth tracking to optimize state sync message routing
- Fix leaf request handler bug to ensure the handler delivers a valid range proof
- Remove redundant proof keys from leafs response message format
- Improve state sync request retry logic
- Improve state sync handler metrics
- Improve state sync ETA
- Improve state sync leaf request serving by optimistically reading leaves from snapshot
- Add acceptor queue within
core/blockchain.go - Cap size of TrieDB dirties cache during block acceptance to reduce commit size at 4096 block interval
- Refactor state sync block fetching
- Improve state sync metrics
- Add beta support for fast sync
- Bump trie tip buffer size to 32
- Fix bug in metrics initialization
- Fix deadlock bug on shutdown causing historical re-generation on restart
- Add API endpoint to fetch running VM Config
- Add AvalancheGo custom log formatting to C-Chain logs
- Deprecate support for JS Tracer
- Reduced log level of snapshot regeneration logs
- Enabled atomic tx replacement with higher gas fees
- Parallelize trie index re-generation
- Optimize FeeHistory API
- Add protection to prevent accidental corruption of archival node trie index
- Add capability to restore complete trie index on best effort basis
- Round up fastcache sizes to utilize all mmap'd memory in chunks of 64MB
- Migrate go-ethereum v1.10.16 changes
- Increase FeeHistory maximum historical limit to improve MetaMask UI on C-Chain
- Enable chain state metrics
- Add support for offline pruning
- Refactor VM networking layer
- Enable metrics by default
- Mark RPC call specific metrics as expensive
- Add Abigen support for native asset call precompile
- Fix bug in BLOCKHASH opcode during traceBlock
- Fix bug in handling updated chain config on startup