diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7552ac424d19..aca756dee9de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,19 +117,20 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Run e2e tests - uses: ./.github/actions/run-monitored-tmpnet-cmd - with: - run: ./scripts/run_task.sh test-upgrade - artifact_prefix: upgrade - prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }} - prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }} - prometheus_username: ${{ secrets.PROMETHEUS_USERNAME || '' }} - prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }} - loki_url: ${{ secrets.LOKI_URL || '' }} - loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }} - loki_username: ${{ secrets.LOKI_USERNAME || '' }} - loki_password: ${{ secrets.LOKI_PASSWORD || '' }} + # TODO: Reactivate test once v1.14.0 is published + # - name: Run e2e tests + # uses: ./.github/actions/run-monitored-tmpnet-cmd + # with: + # run: ./scripts/run_task.sh test-upgrade + # artifact_prefix: upgrade + # prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }} + # prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }} + # prometheus_username: ${{ secrets.PROMETHEUS_USERNAME || '' }} + # prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }} + # loki_url: ${{ secrets.LOKI_URL || '' }} + # loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }} + # loki_username: ${{ secrets.LOKI_USERNAME || '' }} + # loki_password: ${{ secrets.LOKI_PASSWORD || '' }} Lint: runs-on: ubuntu-latest steps: diff --git a/RELEASES.md b/RELEASES.md index 375382da23a7..7ce0042b754f 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -2,9 +2,42 @@ ## Pending +## [v1.14.0-fuji](https://github.com/ava-labs/avalanchego/releases/tag/v1.14.0-fuji) + +**Please note that this release is unable to run mainnet - and will display "mainnet is not supported" if attempted to run with a mainnet configuration.** + +This release schedules the activation of the following Avalanche Community Proposals (ACPs): +- [ACP-181](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/181-p-chain-epoched-views/README.md) P-Chain Epoched Views +- [ACP-204](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/204-precompile-secp256r1/README.md) Precompile for secp256r1 Curve Support +- [ACP-226](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/226-dynamic-minimum-block-times/README.md) Dynamic Minimum Block Times + +The ACPs in this upgrade go into effect at 11 AM ET (3 PM UTC) on Wednesday, October 29th, 2025 on the Fuji testnet. + +**All Fuji nodes must upgrade before 11 AM ET, October 29th 2025.** + +### LibEVM Hook Registration + +This release includes changes for how EVM modifications are registered with libevm. For consumers of avalanchego as a library, manual registration of libevm callbacks is now required. + +The plugin version is updated to `44` all plugins must update to be compatible. + +### APIs + +- Added support for specifying multiple `Avalanche-Api-Route` headers for more complex routing. +- Added proposervm gRPC, connectrpc, and jsonrpc APIs for `GetProposedHeight` and `GetCurrentEpoch`. + - The gRPC and connectrpc APIs are routed by adding a second `Avalanche-Api-Route` header with the value `proposervm`. + - The jsonrpc APIs are added to all chains with the base endpoint `/proposervm`. +- Added platformvm `platform.GetAllValidatorsAt` API. + ### Configs -- Changed default block delay for L1s (other than Primary Network) to 0. +- Changed default `proposerMinBlockDelay` for L1s (other than Primary Network) to 0. + +### Fixes + +- Improved bootstrapping ETA predications. + +**Full Changelog**: https://github.com/ava-labs/avalanchego/compare/v1.13.5...v1.14.0-fuji ## [v1.13.5](https://github.com/ava-labs/avalanchego/releases/tag/v1.13.5) diff --git a/config/config.go b/config/config.go index 82a8bd4540e6..a7328ead1fd0 100644 --- a/config/config.go +++ b/config/config.go @@ -1254,6 +1254,10 @@ func GetNodeConfig(v *viper.Viper) (node.Config, error) { return node.Config{}, err } + if nodeConfig.NetworkID == constants.MainnetID { + return node.Config{}, errors.New("mainnet is not supported") + } + // Database nodeConfig.DatabaseConfig, err = getDatabaseConfig(v, nodeConfig.NetworkID) if err != nil { diff --git a/network/test_network.go b/network/test_network.go index 405ee00f9839..74d33ed16f0c 100644 --- a/network/test_network.go +++ b/network/test_network.go @@ -222,7 +222,7 @@ func NewTestNetwork( return NewNetwork( cfg, - upgrade.GetConfig(cfg.NetworkID).FortunaTime, // Must be updated for each network upgrade + upgrade.GetConfig(cfg.NetworkID).GraniteTime, // Must be updated for each network upgrade msgCreator, metrics, log, diff --git a/node/node.go b/node/node.go index dc057ff7e22c..0bf6a14ad30a 100644 --- a/node/node.go +++ b/node/node.go @@ -629,7 +629,7 @@ func (n *Node) initNetworking(reg prometheus.Registerer) error { n.Net, err = network.NewNetwork( &n.Config.NetworkConfig, - n.Config.UpgradeConfig.FortunaTime, + n.Config.UpgradeConfig.GraniteTime, n.msgCreator, reg, n.Log, diff --git a/proto/README.md b/proto/README.md index f5cc50e143f3..f54fdd6b90f1 100644 --- a/proto/README.md +++ b/proto/README.md @@ -1,6 +1,6 @@ # Avalanche gRPC -Now Serving: **Protocol Version 43** +Now Serving: **Protocol Version 44** Protobuf files are hosted at [https://buf.build/ava-labs/avalanche](https://buf.build/ava-labs/avalanche) and diff --git a/upgrade/upgrade.go b/upgrade/upgrade.go index 33471a8d37b0..06feb20ac48a 100644 --- a/upgrade/upgrade.go +++ b/upgrade/upgrade.go @@ -59,7 +59,7 @@ var ( DurangoTime: time.Date(2024, time.February, 13, 16, 0, 0, 0, time.UTC), EtnaTime: time.Date(2024, time.November, 25, 16, 0, 0, 0, time.UTC), FortunaTime: time.Date(2025, time.March, 13, 15, 0, 0, 0, time.UTC), - GraniteTime: UnscheduledActivationTime, + GraniteTime: time.Date(2025, time.October, 29, 15, 0, 0, 0, time.UTC), GraniteEpochDuration: 5 * time.Minute, } Default = Config{ @@ -78,7 +78,7 @@ var ( DurangoTime: InitiallyActiveTime, EtnaTime: InitiallyActiveTime, FortunaTime: InitiallyActiveTime, - GraniteTime: UnscheduledActivationTime, + GraniteTime: InitiallyActiveTime, GraniteEpochDuration: 30 * time.Second, } diff --git a/utils/constants/acps.go b/utils/constants/acps.go index c6655e4a683f..0aaf4bb149d8 100644 --- a/utils/constants/acps.go +++ b/utils/constants/acps.go @@ -26,6 +26,9 @@ var ( 125, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/125-basefee-reduction/README.md 131, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/131-cancun-eips/README.md 151, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/151-use-current-block-pchain-height-as-context/README.md + + // Fortuna: + 176, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/176-dynamic-evm-gas-limit-and-price-discovery-updates/README.md ) // CurrentACPs is the set of ACPs that are currently, at the time of @@ -33,11 +36,15 @@ var ( // // See: https://github.com/orgs/avalanche-foundation/projects/1 CurrentACPs = set.Of[uint32]( - 176, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/176-dynamic-evm-gas-limit-and-price-discovery-updates/README.md + 181, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/181-p-chain-epoched-views/README.md + 204, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/204-precompile-secp256r1/README.md + 226, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/226-dynamic-minimum-block-times/README.md ) // ScheduledACPs are the ACPs included into the next upgrade. ScheduledACPs = set.Of[uint32]( - 176, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/176-dynamic-evm-gas-limit-and-price-discovery-updates/README.md + 181, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/181-p-chain-epoched-views/README.md + 204, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/204-precompile-secp256r1/README.md + 226, // https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/226-dynamic-minimum-block-times/README.md ) ) diff --git a/version/compatibility.json b/version/compatibility.json index 88fdfecda0b0..9bb934bc7e3a 100644 --- a/version/compatibility.json +++ b/version/compatibility.json @@ -1,4 +1,7 @@ { + "44": [ + "v1.14.0" + ], "43": [ "v1.13.4", "v1.13.5" diff --git a/version/constants.go b/version/constants.go index 88ab607982b0..36b54b8fd557 100644 --- a/version/constants.go +++ b/version/constants.go @@ -15,15 +15,15 @@ const ( // RPCChainVMProtocol should be bumped anytime changes are made which // require the plugin vm to upgrade to latest avalanchego release to be // compatible. - RPCChainVMProtocol uint = 43 + RPCChainVMProtocol uint = 44 ) // These are globals that describe network upgrades and node versions var ( Current = &Semantic{ Major: 1, - Minor: 13, - Patch: 5, + Minor: 14, + Patch: 0, } CurrentApp = &Application{ Name: Client, @@ -34,13 +34,13 @@ var ( MinimumCompatibleVersion = &Application{ Name: Client, Major: 1, - Minor: 13, + Minor: 14, Patch: 0, } PrevMinimumCompatibleVersion = &Application{ Name: Client, Major: 1, - Minor: 12, + Minor: 13, Patch: 0, }