Skip to content

Commit 22000c2

Browse files
committed
Merge branch 'master' into rodrigo/generic-vm-reexecution
2 parents ced37fe + 3d3a594 commit 22000c2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+2897
-1005
lines changed

.github/workflows/ci.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,19 +117,20 @@ jobs:
117117
runs-on: ubuntu-latest
118118
steps:
119119
- uses: actions/checkout@v4
120-
- name: Run e2e tests
121-
uses: ./.github/actions/run-monitored-tmpnet-cmd
122-
with:
123-
run: ./scripts/run_task.sh test-upgrade
124-
artifact_prefix: upgrade
125-
prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }}
126-
prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }}
127-
prometheus_username: ${{ secrets.PROMETHEUS_USERNAME || '' }}
128-
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
129-
loki_url: ${{ secrets.LOKI_URL || '' }}
130-
loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }}
131-
loki_username: ${{ secrets.LOKI_USERNAME || '' }}
132-
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
120+
# TODO: Reactivate test once v1.14.0 is published
121+
# - name: Run e2e tests
122+
# uses: ./.github/actions/run-monitored-tmpnet-cmd
123+
# with:
124+
# run: ./scripts/run_task.sh test-upgrade
125+
# artifact_prefix: upgrade
126+
# prometheus_url: ${{ secrets.PROMETHEUS_URL || '' }}
127+
# prometheus_push_url: ${{ secrets.PROMETHEUS_PUSH_URL || '' }}
128+
# prometheus_username: ${{ secrets.PROMETHEUS_USERNAME || '' }}
129+
# prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
130+
# loki_url: ${{ secrets.LOKI_URL || '' }}
131+
# loki_push_url: ${{ secrets.LOKI_PUSH_URL || '' }}
132+
# loki_username: ${{ secrets.LOKI_USERNAME || '' }}
133+
# loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
133134
Lint:
134135
runs-on: ubuntu-latest
135136
steps:

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,11 @@ AvalancheGo support tiers:
224224
| :----------: | :--------------: | :-----------: |
225225
| amd64 | Linux | 1 |
226226
| arm64 | Linux | 2 |
227-
| amd64 | Darwin | 2 |
227+
| arm64 | Darwin | 2 |
228+
| amd64 | Darwin | Not supported |
228229
| amd64 | Windows | Not supported |
229230
| arm | Linux | Not supported |
230231
| i386 | Linux | Not supported |
231-
| arm64 | Darwin | Not supported |
232232

233233
To officially support a new platform, one must satisfy the following requirements:
234234

RELEASES.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,40 @@
22

33
## Pending
44

5+
## [v1.14.0](https://github.com/ava-labs/avalanchego/releases/tag/v1.14.0)
6+
7+
This release schedules the activation of the following Avalanche Community Proposals (ACPs):
8+
- [ACP-181](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/181-p-chain-epoched-views/README.md) P-Chain Epoched Views
9+
- [ACP-204](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/204-precompile-secp256r1/README.md) Precompile for secp256r1 Curve Support
10+
- [ACP-226](https://github.com/avalanche-foundation/ACPs/blob/main/ACPs/226-dynamic-minimum-block-times/README.md) Dynamic Minimum Block Times
11+
12+
The ACPs in this upgrade go into effect at 11 AM ET (4 PM UTC) on Wednesday, November 19th, 2025 on Mainnet.
13+
14+
**All Mainnet nodes must upgrade before 11 AM ET, November 19th 2025.**
15+
16+
The plugin version is updated to `44`; all plugins must update to be compatible.
17+
18+
### LibEVM Hook Registration
19+
20+
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.
21+
22+
### APIs
23+
24+
- Added support for specifying multiple `Avalanche-Api-Route` headers for more complex routing.
25+
- Added proposervm gRPC, connectrpc, and jsonrpc APIs for `GetProposedHeight` and `GetCurrentEpoch`.
26+
- The gRPC and connectrpc APIs are routed by adding a second `Avalanche-Api-Route` header with the value `proposervm`.
27+
- The jsonrpc APIs are added to all chains with the base endpoint `/proposervm`.
28+
- Added platformvm `platform.GetAllValidatorsAt` API.
29+
530
### Configs
631

7-
- Changed default block delay for L1s (other than Primary Network) to 0.
32+
- Changed default `proposerMinBlockDelay` for L1s (other than Primary Network) to 0.
33+
34+
### Fixes
35+
36+
- Improved bootstrapping ETA predictions.
37+
38+
**Full Changelog**: https://github.com/ava-labs/avalanchego/compare/v1.13.5...v1.14.0
839

940
## [v1.13.5](https://github.com/ava-labs/avalanchego/releases/tag/v1.13.5)
1041

api/info/service.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func (i *Info) GetNodeVersion(_ *http.Request, _ *struct{}, reply *GetNodeVersio
140140
}
141141

142142
reply.Version = i.Version.String()
143-
reply.DatabaseVersion = version.CurrentDatabase.String()
143+
reply.DatabaseVersion = version.CurrentDatabase
144144
reply.RPCProtocolVersion = json.Uint32(version.RPCChainVMProtocol)
145145
reply.GitCommit = version.GitCommit
146146
reply.VMVersions = vmVersions

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ require (
2121
github.com/DataDog/zstd v1.5.2
2222
github.com/StephenButtolph/canoto v0.17.2
2323
github.com/antithesishq/antithesis-sdk-go v0.3.8
24-
github.com/ava-labs/coreth v0.15.5-0.20251022172030-6c57d8ace537
24+
github.com/ava-labs/coreth v0.16.0-rc.0
2525
github.com/ava-labs/libevm v1.13.15-0.20251016142715-1bccf4f2ddb2
2626
github.com/ava-labs/subnet-evm v0.8.0-fuji-rc.0.0.20251028200304-b91527f73c61
2727
github.com/btcsuite/btcd/btcutil v1.1.3

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV
7171
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
7272
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
7373
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
74-
github.com/ava-labs/coreth v0.15.5-0.20251022172030-6c57d8ace537 h1:M173eUWGlvAbf9Q0M+WwYaNdUp6X1uZ5s/u9O9hZM+g=
75-
github.com/ava-labs/coreth v0.15.5-0.20251022172030-6c57d8ace537/go.mod h1:4+gR+5AJjqsw1Pw3O3tpwJG6DRmFBzGGZtFv8iRML2k=
74+
github.com/ava-labs/coreth v0.16.0-rc.0 h1:nPvkDbxaH8N9f/wQe7B+IGMhPISMuW5CU0cDYuU8iCw=
75+
github.com/ava-labs/coreth v0.16.0-rc.0/go.mod h1:uGr1C7BP0+dWhvsIouhuH0yCyI8YDgS6sfEFIExs0iI=
7676
github.com/ava-labs/firewood-go-ethhash/ffi v0.0.13 h1:obPwnVCkF5+B2f8WbTepHj0ZgiW21vKUgFCtATuAYNY=
7777
github.com/ava-labs/firewood-go-ethhash/ffi v0.0.13/go.mod h1:gsGr1ICjokI9CyPaaRHMqDoDCaT1VguC/IyOTx6rJ14=
7878
github.com/ava-labs/libevm v1.13.15-0.20251016142715-1bccf4f2ddb2 h1:hQ15IJxY7WOKqeJqCXawsiXh0NZTzmoQOemkWHz7rr4=

network/peer/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type Config struct {
3333
InboundMsgThrottler throttling.InboundMsgThrottler
3434
Network Network
3535
Router router.InboundHandler
36-
VersionCompatibility version.Compatibility
36+
VersionCompatibility *version.Compatibility
3737
MyNodeID ids.NodeID
3838
// MySubnets does not include the primary network ID
3939
MySubnets set.Set[ids.ID]

network/peer/peer.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ func (p *peer) writeMessages() {
528528
return
529529
}
530530

531-
myVersion := p.VersionCompatibility.Version()
531+
myVersion := p.VersionCompatibility.Current
532532
knownPeersFilter, knownPeersSalt := p.Network.KnownPeers()
533533

534534
_, areWeAPrimaryNetworkValidator := p.Validators.GetValidator(constants.PrimaryNetworkID, p.MyNodeID)
@@ -709,12 +709,12 @@ func (p *peer) sendNetworkMessages() {
709709
// changes. It's called when sending a Ping rather than in a validator set
710710
// callback to avoid signature verification on the P-chain accept path.
711711
func (p *peer) shouldDisconnect() bool {
712-
if err := p.VersionCompatibility.Compatible(p.version); err != nil {
712+
if !p.VersionCompatibility.Compatible(p.version) {
713713
p.Log.Debug(disconnectingLog,
714714
zap.String("reason", "version not compatible"),
715715
zap.Stringer("nodeID", p.id),
716+
zap.Stringer("myVersion", p.VersionCompatibility.Current),
716717
zap.Stringer("peerVersion", p.version),
717-
zap.Error(err),
718718
)
719719
return true
720720
}
@@ -897,13 +897,14 @@ func (p *peer) handleHandshake(msg *p2p.Handshake) {
897897
Patch: int(msg.Client.GetPatch()),
898898
}
899899

900-
if p.VersionCompatibility.Version().Before(p.version) {
900+
if myVersion := p.VersionCompatibility.Current; myVersion.Compare(p.version) < 0 {
901901
log := p.Log.Debug
902902
if _, ok := p.Beacons.GetValidator(constants.PrimaryNetworkID, p.id); ok {
903903
log = p.Log.Info
904904
}
905905
log("peer attempting to connect with newer version. You may want to update your client",
906906
zap.Stringer("nodeID", p.id),
907+
zap.Stringer("myVersion", myVersion),
907908
zap.Stringer("peerVersion", p.version),
908909
)
909910
}

network/peer/peer_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -405,15 +405,15 @@ func TestShouldDisconnect(t *testing.T) {
405405
VersionCompatibility: version.GetCompatibility(upgrade.InitiallyActiveTime),
406406
Validators: validators.NewManager(),
407407
},
408-
version: version.CurrentApp,
408+
version: version.Current,
409409
},
410410
expectedPeer: &peer{
411411
Config: &Config{
412412
Log: logging.NoLog{},
413413
VersionCompatibility: version.GetCompatibility(upgrade.InitiallyActiveTime),
414414
Validators: validators.NewManager(),
415415
},
416-
version: version.CurrentApp,
416+
version: version.Current,
417417
},
418418
expectedShouldDisconnect: false,
419419
},
@@ -436,7 +436,7 @@ func TestShouldDisconnect(t *testing.T) {
436436
}(),
437437
},
438438
id: peerID,
439-
version: version.CurrentApp,
439+
version: version.Current,
440440
},
441441
expectedPeer: &peer{
442442
Config: &Config{
@@ -455,7 +455,7 @@ func TestShouldDisconnect(t *testing.T) {
455455
}(),
456456
},
457457
id: peerID,
458-
version: version.CurrentApp,
458+
version: version.Current,
459459
},
460460
expectedShouldDisconnect: false,
461461
},
@@ -478,7 +478,7 @@ func TestShouldDisconnect(t *testing.T) {
478478
}(),
479479
},
480480
id: peerID,
481-
version: version.CurrentApp,
481+
version: version.Current,
482482
txIDOfVerifiedBLSKey: txID,
483483
},
484484
expectedPeer: &peer{
@@ -498,7 +498,7 @@ func TestShouldDisconnect(t *testing.T) {
498498
}(),
499499
},
500500
id: peerID,
501-
version: version.CurrentApp,
501+
version: version.Current,
502502
txIDOfVerifiedBLSKey: txID,
503503
},
504504
expectedShouldDisconnect: false,
@@ -522,7 +522,7 @@ func TestShouldDisconnect(t *testing.T) {
522522
}(),
523523
},
524524
id: peerID,
525-
version: version.CurrentApp,
525+
version: version.Current,
526526
ip: &SignedIP{},
527527
},
528528
expectedPeer: &peer{
@@ -542,7 +542,7 @@ func TestShouldDisconnect(t *testing.T) {
542542
}(),
543543
},
544544
id: peerID,
545-
version: version.CurrentApp,
545+
version: version.Current,
546546
ip: &SignedIP{},
547547
},
548548
expectedShouldDisconnect: true,
@@ -566,7 +566,7 @@ func TestShouldDisconnect(t *testing.T) {
566566
}(),
567567
},
568568
id: peerID,
569-
version: version.CurrentApp,
569+
version: version.Current,
570570
ip: &SignedIP{
571571
BLSSignature: must(blsKey.SignProofOfPossession([]byte("wrong message"))),
572572
},
@@ -588,7 +588,7 @@ func TestShouldDisconnect(t *testing.T) {
588588
}(),
589589
},
590590
id: peerID,
591-
version: version.CurrentApp,
591+
version: version.Current,
592592
ip: &SignedIP{
593593
BLSSignature: must(blsKey.SignProofOfPossession([]byte("wrong message"))),
594594
},
@@ -614,7 +614,7 @@ func TestShouldDisconnect(t *testing.T) {
614614
}(),
615615
},
616616
id: peerID,
617-
version: version.CurrentApp,
617+
version: version.Current,
618618
ip: &SignedIP{
619619
BLSSignature: must(blsKey.SignProofOfPossession((&UnsignedIP{}).bytes())),
620620
},
@@ -636,7 +636,7 @@ func TestShouldDisconnect(t *testing.T) {
636636
}(),
637637
},
638638
id: peerID,
639-
version: version.CurrentApp,
639+
version: version.Current,
640640
ip: &SignedIP{
641641
BLSSignature: must(blsKey.SignProofOfPossession((&UnsignedIP{}).bytes())),
642642
},

network/test_network.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ func NewTestNetwork(
222222

223223
return NewNetwork(
224224
cfg,
225-
upgrade.GetConfig(cfg.NetworkID).FortunaTime, // Must be updated for each network upgrade
225+
upgrade.GetConfig(cfg.NetworkID).GraniteTime, // Must be updated for each network upgrade
226226
msgCreator,
227227
metrics,
228228
log,

0 commit comments

Comments
 (0)