Releases: ava-labs/subnet-evm
v0.7.7
This version is backwards compatible to v0.7.0. It is optional, but encouraged.
AvalancheGo Compatibility
The plugin version is updated to 42 and is compatible with AvalancheGo version v1.13.3.
Breaking changes
- None
Updates
- Updated AvalancheGo dependency to v1.13.3
What's Changed
- Demoted unnecessary error log in
core/txpool/legacypool.go
to warning, displaying unexpected but valid behavior - Added maximum number of addresses (1000) to be queried in a single filter by @ceyonur in #1644
- Use
state-history
eth config flag to designate the number of recent states queryable by @alarso16 in #1642
Full Changelog: v0.7.5...v0.7.7
v0.7.5
This version is backwards compatible to v0.7.0. It is optional, but encouraged.
AvalancheGo Compatibility
The plugin version is updated to 41 and is compatible with AvalancheGo version v1.13.2.
Breaking changes
- Removed static API handler and functions:
subnetevm.decodeGenesis
,subnetevm.buildGenesis
Updates
- Updated AvalancheGo dependency to v1.13.2
- Updated libevm dependency to v1.13.14-0.3.0.rc.1
What's Changed
- Update avalanchego version to v1.13.2-rc.0 by @StephenButtolph in #1597
- chore(plugin/evm/customtypes): use upstream RLPHash function (#918) by @ceyonur in #1601
- Remove static service by @ceyonur in #1602
- Reduce custom types by @ceyonur in #1603
- Simplfy vm tests by @ceyonur in #1605
- Fix log structuring by @ceyonur in #1606
- Remove handler special case by @ceyonur in #1604
- build: Update
libevm
tov1.13.14-0.3.0.rc.1
(#1017) by @ceyonur in #1608 - chore: release v0.7.5 by @ceyonur in #1609
Full Changelog: v0.7.4...v0.7.5
v0.7.4
This version is backwards compatible to v0.7.0. It is optional, but encouraged.
AvalancheGo Compatibility
The plugin version is updated to 40 and is compatible with AvalancheGo version v1.13.1.
Breaking changes
- Updated dockerhub image name to
avaplatform/subnet-evm_avalanchego
and tags to accommodate the new versioning scheme: {subnet-evm version}_{avalanchego version} (#1566)
Features
- Major refactor to use
libevm
for EVM execution, database access, types & chain configuration. This improves maintainability and enables keeping up with upstream changes more easily. (#1501) - Wrapped database with
corruptabledb
to prevent corruption of the database. (#1565) - Updated golang version to 1.23.9 (#1577)
Fixes
- Fixed a bug in mempool where the min fee was not updated after restart (#1594)
What's Changed
- use libevm: params, core/vm, eth/tracers/* + some of core/types by @darioush in #1380
- libevm phase 2: Use libevm statedb from upstream by @darioush in #1421
- refactor: params/extras (coreth a7f7061) by @darioush in #1430
- chore(core): split out code in state_processor.go and state_processor_test.go by @qdm12 in #1442
- chore(core/types): remove
Blocks
'sTimestamp()
method by @qdm12 in #1429 - update libevm branch with master branch by @qdm12 in #1484
- chore(deps): use libevm avalanchego based on
v1.12.3-rc.1.0
by @qdm12 in #1514 - chore(metrics): use libevm metrics package by @qdm12 in #1508
- update libevm branch with coreth's libevm branch commits by @qdm12 in #1502
- fix(cd): goreleaser picks non-rc tag and uses workflow config by @qdm12 in #1544
- chore(ci): simplify monitoring configuration (re-apply #1440) by @qdm12 in #1545
- update libevm branch with master branch by @qdm12 in #1543
- fix(all): critical fixes to the libevm branch by @qdm12 in #1551
- libevm phase 2.5 by @qdm12 in #1501
- chore(ci): bump github/codeql-action from 3.28.13 to 3.28.15 by @dependabot in #1557
- docs(readme): add release badge by @Lubov66 in #1511
- docs(readme): add license badge by @operagxsasha in #1444
- wrap corruptable db by @ceyonur in #1565
- Docker image combined tag by @ceyonur in #1566
- Fix docker image push by @ceyonur in #1571
- chore(all): use upstream protocol params by @qdm12 in #1563
- chore(all): minor changes post-libevm merge by @qdm12 in #1552
- chore(github): dependabot ignore some actions and Go modules by @qdm12 in #1527
- docs: add releasing readme document by @qdm12 in #1538
- bump avalanchego to 6e04bc0ac1d3 by @ceyonur in #1577
- use avago db factory to create new databases by @ceyonur in #1567
- Update CODEOWNERS by @ceyonur in #1582
- updated link Subnet-EVM API by @navillanueva in #1588
- remove request parse check in network forwarding (#977) by @ceyonur in #1593
- set minfee from state on mempool init by @ceyonur in #1594
- Releases/v0.7.4 rc.0 by @ceyonur in #1592
New Contributors
- @Lubov66 made their first contribution in #1511
- @operagxsasha made their first contribution in #1444
- @navillanueva made their first contribution in #1588
Full Changelog: v0.7.3...v0.7.4
v0.7.3
This version is backwards compatible to v0.7.0. It is optional, but encouraged.
AvalancheGo Compatibility
The plugin version is unchanged at 39 and is compatible with AvalancheGo version v1.13.0.
Breaking changes
eth_getProof
calls for historical state will be rejected by default (#1494: 4e5b9d8)- 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-window
which defines the number of blocks before the last accepted block which should be accepted for state proof queries, or set to0
to accept any block number state query (previous behavior). - On
pruning
nodes: 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 (
Features
- Add
Fortuna
upgrade as optional and defaulting to anil
timestamp (#1494, #1498) - Docker images Debian base upgraded from Bullseye (11) to Bookworm (12) (#1497)
- AvalancheGo version upgraded from
v1.12.3-0.20250218154446-f1ec9a13b90a
tov1.13.0
- plugin/evm/client: add
NewClientWithURL
function (#1509)
Fixes
Documentation
- plugin/evm: add local API docs (#1513)
- 2023 Least Authority Audit (#1499)
- precompile/contracts/warp:
- simulator: fix wrong flag name
staking-enabled
->--sybil-protection-enabled=false
(#1476) - typo fixes (#1491, #1506)
Full Changelog: v0.7.2...v0.7.3
v0.7.2
This version is backwards compatible to v0.7.0. It is optional, but strongly encouraged as it's fixing an important bug in uptime tracking.
AvalancheGo Compatibility
The plugin version is unchanged at 39 and is compatible with AvalancheGo version v1.12.2.
Updates
- Fixed concurrency issue in validators/uptime manager
- Bump golang version to v1.23.6
- Bump golangci-lint to v1.63 and add linters
What's Changed
- pin goreleaser v2.5.1 by @darioush in #1439
- chore: Bump avalanchego to master by @darioush in #1443
- chore(ci): use go.mod version and remove unused lint.sh by @ceyonur in #1456
- update ubuntu 20.04 to 22.04 by @ceyonur in #1464
- use ctx in validatorsManager by @ceyonur in #1465
- fix multiarch docker binary build by @ceyonur in #1461
- chore: fix some comments by @chuangjinglu in #1431
- bump version to v0.7.2 by @ceyonur in #1467
Full Changelog: v0.7.1...v0.7.2
v0.7.1
This release focuses on code quality improvements and post-Etna cleanups.
Compatibility
The plugin version is updated to 39 and is compatible with AvalancheGo version v1.12.2.
Updates
- Moved client type and structs to new
plugin/evm/client
package - Fixed statedb improper copy issue
- Limited the maximum number of query-able rewardPercentile by 100 in
eth_feeHistory
API - Refactored
trie_prefetcher.go
to be structurally similar to upstream - Removed deprecated legacy gossip handler and metrics
- Removed unnecessary locks in mempool
What's Changed
- chore: fix some function names in comment by @guqicun in #1405
- Fix Typos in Documentation by @Dimitrolito in #1404
- mark flaky: TestTimedUnlock by @darioush in #1411
- bump avalanchego to master (updates x/crypto) by @darioush in #1410
- chore(ci): remove
check-latest: true
to ensure the specified Go version by @qdm12 in #1414 - refactor trie_prefetcher to be similar to upstream structurally by @darioush in #1395
- add validators pkg readme by @ceyonur in #1398
- add multiatch docker build to support arm by @ceyonur in #1417
- chore(all): simplify mocks generation by @qdm12 in #1413
- Coreth sync by @ceyonur in #1418
- bump versions by @ceyonur in #1419
- docs(readme): fix build and tests workflow badge link by @Radovenchyk in #1425
- docs(readme): fix link to Avalanche documentation by @Radovenchyk in #1423
- deprecate avago keystore by @arturrez in #1426
- refactor: align accounts/abi/bind with coreth+upstream by @darioush in #1427
- sync coreth changes up to 3148809 by @darioush in #1434
- Remove legacy gossip by @alarso16 in #1435
- Reduce magic numbers in dynamic fees by @StephenButtolph in #1437
- bump avalanchego to v1.12.2 by @ceyonur in #1436
- remove current state lock by @ceyonur in #1438
New Contributors
- @guqicun made their first contribution in #1405
- @Dimitrolito made their first contribution in #1404
- @qdm12 made their first contribution in #1414
- @Radovenchyk made their first contribution in #1425
- @arturrez made their first contribution in #1426
- @alarso16 made their first contribution in #1435
Full Changelog: v0.7.0...v0.7.1
v0.7.0
This release focuses on Etna version updates and PebbleDB performance improvements.
Compatibility
The plugin version is unchanged at 38 and is compatible with AvalancheGo version v1.12.0/v12.0-fuji.
Subnet-EVM v0.6.12 and v0.7.0 versions are both compatible with AvalancheGo Etna version (v1.12.0).
Etna/Cancun Activation
Etna activation is currently set for 12 PM ET (5 PM UTC) on Monday, December 16th, 2024 on Mainnet.
Etna will active the Cancun network upgrade in EVM. Following EIPs will be activated with Etna/Cancun:
- EIP-4844: BLOBHASH opcode
- EIP-7516: BLOBBASEFEE opcode
- EIP-1153: Transient storage
- EIP-5656: MCOPY opcode
- EIP-6780: SELFDESTRUCT only in same transaction
Note blob transactions from EIP-4844 are excluded and blocks containing them will still be considered invalid.
More info can be found in ACP-131.
Updated
- Changed default PebbleDB write option from
Sync
toNoSync
- Bumped AvalancheGo dependency version to v1.12.0
Fixed
- Fixed Standalone DB close on shutdown.
What's Changed
- specify arm64 version in goreleaser by @darioush in #1392
- bump to latest avago by @ceyonur in #1394
- chore: fix problematic const name and some typos in comment by @mountcount in #1400
- chore: fix some function names in interface comment by @chuangjinglu in #1397
- bump avago to v1.12.0 by @ceyonur in #1402
- close database on shutdown by @ceyonur in #1403
- bump versions by @ceyonur in #1406
New Contributors
- @mountcount made their first contribution in #1400
- @chuangjinglu made their first contribution in #1397
Full Changelog: v0.6.12...v0.7.0
v0.6.12
This release focuses on Uptime Tracking and Etna compatibility.
Compatibility
The plugin version is changed at 38 and is compatible with AvalancheGo versions v1.11.13 and v1.12.0-fuji.
This version (v0.6.12) can be used for both new AvalancheGo v1.11.13 release and v1.12.0-fuji Pre-release. Backward compatibility changes based on the AvalancheGo version accompanying this version.
For AvalancheGo-v1.11.x versions, Subnet-EVM v0.6.12 is backwards compatible to v0.6.0 and it is optional.
For AvalancheGo-v1.12.x (including v1.12.0-fuji), Etna activation introduces non-backward compatible changes.
Updates
- Refactored the warp backend and implemented the ACP-118 handler to increase the compatibility with relayers and VMs
- Added
acceptedBlockDB
,metadataDB
,warpDB
,validatorsDB
inspections forinspect-database
flag - Added Uptime Tracking to Subnet-EVM that can track Subnet/L1 validators and their uptimes
- Added new
ValidatorUptime
warp message type and verification to verify and sign requested validator uptimes
APIs
- Added new
validators
handler (ext/bc/<blockchainID>/validators
) andvalidators.getCurrentValidators
API method
Configs
- Added
validators-api-enabled
to chain config for enabling/disabling the Validators API handler. Default istrue
Fixes
- Fixed the VersionDB for MetadataDB and AcceptedBlockDB (PR #1375)
- Removed the unused shared memory and fixed persisting the VersionDB for Standalone DBs (PR #1383)
Etna/Cancun Activation
Etna activation is currently set only for Fuji at 11 AM ET (4 PM UTC) on Monday, November 25th, 2024 on the Fuji testnet. Etna will active the Cancun network upgrade in EVM. Following EIPs will be activated with Etna/Cancun:
- EIP-4844: BLOBHASH opcode
- EIP-7516: BLOBBASEFEE opcode
- EIP-1153: Transient storage
- EIP-5656: MCOPY opcode
- EIP-6780: SELFDESTRUCT only in same transaction
Note blob transactions from EIP-4844 are excluded and blocks containing them will still be considered invalid.
More info can be found in ACP-131.
What's Changed
- Use acp 118 handler by @ceyonur in #1359
- Validator state by @ceyonur in #1371
- tests: fix use of require.EventuallyWithT by @darioush in #1376
- use verdb in accepted and metadb by @ceyonur in #1375
- Pausable uptime manager by @ceyonur in #1372
- move interfaces to separate pkgs by @ceyonur in #1379
- add released.md and template by @ceyonur in #1373
- remove shared memory from precompiles and accept by @ceyonur in #1383
- Uptime tracking by @ceyonur in #1263
- Uptime tracking api by @ceyonur in #1374
- Sign validator uptime warp msg by @ceyonur in #1367
- Use startimestamp by @ceyonur in #1386
- add db inspect by @ceyonur in #1382
- Refactor uptime tracking by @ceyonur in #1388
- rename sov to l1validator by @ceyonur in #1387
- bump avago to v1.11.13-rc.1 by @ceyonur in #1389
Full Changelog: v0.6.11...v0.6.12
v0.6.11
This release focuses on Standalone DB and database configs.
This version is backwards compatible to v0.6.0. It is optional, but encouraged.
The plugin version is unchanged at 37 and is compatible with AvalancheGo versions v1.11.12.
Updates
- Added Standalone DB creation in chain data directory (
~/.avalanchego/chainData/{chain-ID}/db/
). Subnet-EVM will create seperate databases for chains by default if there is no accepted blocks previously (#1354) - Refactored Warp Backend to support new payload types (#1292)
- Refactored TrieDB reference root configuration (#1366)
- Bumped AvalancheGo dependency to v1.11.12
- Bumped minimum Golang version to v1.22.8
Configs
- Added following new database options:
"use-standalone-database"
(bool
): If true it enables creation of standalone database. If false it uses the GRPC Database provided by AvalancheGo. Default is nil and creates the standalone database only if there is no accepted block in the AvalancheGo database (node has not accepted any blocks for this chain)"database-type"
(string
): Specifies the type of database to use. Must be one ofpebbledb
,leveldb
ormemdb
. memdb is an in-memory, non-persisted database. Default ispebbledb
"database-config-file"
(string
): Path to the database config file. Config file is changed for every database type. See docs for available configs per database type. Ignored if --config-file-content is specified"database-config-file-content"
(string
): As an alternative todatabase-config-file
, it allows specifying base64 encoded database config content"database-path"
(string
): Specifies the directory to which the standalone database is persisted. Defaults to "$HOME/.avalanchego/chainData/{chainID}
""database-read-only"
(bool
) : Specifies if the standalone database should be a read-only type. Defaults to false
Fixes
- Fixed Eth upgrade mapping with Avalanche upgrades in genesis (#1356)
- Fixed transaction size tracking in worker environment (#1358)
- Fixed a rare case of VM's shutting down ends up panicking in RPC server (#1361)
What's Changed
- [testing] Fix image build validation for unmerged avalanchego commit by @marun in #1349
- windows ci: remove cr before comparing to known_flakes.txt by @darioush in #1319
- fix ci: linux ci doesn't have dos2unix by @darioush in #1352
- set timestamps in chain config by @darioush in #1353
- fix setting eth upgrades in genesis storedcfg by @darioush in #1356
- uptime: update avalanchego dep branch by @ceyonur in #1348
- track env size by @ceyonur in #1358
- stop RPC servers in shutdown by @darioush in #1361
- Types and refactoring for ACP-77 ValidatorUptime messages by @darioush in #1292
- remove memsize by @darioush in #1365
- fix chainID in TestWaitDeployedCornerCases by @darioush in #1364
- use triedb config for reference root by @darioush in #1366
- Fix stale link by @yacovm in #1368
- add standalone dbs and configs by @ceyonur in #1354
- bump versions by @ceyonur in #1370
New Contributors
Full Changelog: v0.6.10...v0.6.11
v0.6.10
Subnet-EVM v0.6.10 includes a bug fix in CalcBaseFee
that will only impact subnets with extreme dynamic fee configurations. All subnets are strongly advised to update as a matter of caution, but should not see any issues if they are not actively changing their dynamic fee configuration and have not seen an issue already.
This version is backwards compatible to v0.6.0.
The plugin version is unchanged at 37 and is compatible with AvalancheGo versions v1.11.11.
Fix
- Fixes a bug in block building caused by #1342
What's Changed
- nit: peer/network.go: remove refs to cross chain in comments by @darioush in #1333
- update known_flakes.txt by @darioush in #1332
- Coreth nits by @ceyonur in #1336
- params: add BerlinBlock, LondonBlock, ShanghaiTime by @darioush in #1337
- fix modifying common.Big1 by @ceyonur in #1343
- improve readability by removing extra var by @ceyonur in #1345
- prepare for release v0.6.10 by @ceyonur in #1346
Full Changelog: v0.6.9...v0.6.10