Skip to content

Commit 3d3a594

Browse files
Cleanup the version package (#4465)
Signed-off-by: Stephen Buttolph <stephen@avalabs.org> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 9ab9857 commit 3d3a594

33 files changed

+219
-530
lines changed

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

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
},

node/beacon_manager_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ func TestBeaconManager_DataRace(t *testing.T) {
5656

5757
for _, nodeID := range validatorIDs {
5858
go func() {
59-
b.Connected(nodeID, version.CurrentApp, constants.PrimaryNetworkID)
60-
b.Connected(nodeID, version.CurrentApp, ids.GenerateTestID())
59+
b.Connected(nodeID, version.Current, constants.PrimaryNetworkID)
60+
b.Connected(nodeID, version.Current, ids.GenerateTestID())
6161
}()
6262
}
6363
wg.Wait()

node/node.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func New(
148148
}
149149

150150
logger.Info("initializing node",
151-
zap.Stringer("version", version.CurrentApp),
151+
zap.Stringer("version", version.Current),
152152
zap.String("commit", version.GitCommit),
153153
zap.Stringer("nodeID", n.ID),
154154
zap.Stringer("stakingKeyType", tlsCert.PublicKeyAlgorithm),
@@ -760,7 +760,7 @@ func (n *Node) initDatabase() error {
760760
case leveldb.Name:
761761
// Prior to v1.10.15, the only on-disk database was leveldb, and its
762762
// files went to [dbPath]/[networkID]/v1.4.5.
763-
dbFolderName = version.CurrentDatabase.String()
763+
dbFolderName = version.CurrentDatabase
764764
case pebbledb.Name:
765765
dbFolderName = "pebble"
766766
default:
@@ -1360,7 +1360,7 @@ func (n *Node) initInfoAPI() error {
13601360

13611361
service, err := info.NewService(
13621362
info.Parameters{
1363-
Version: version.CurrentApp,
1363+
Version: version.Current,
13641364
NodeID: n.ID,
13651365
NodePOP: pop,
13661366
NetworkID: n.Config.NetworkID,

snow/engine/avalanche/bootstrap/bootstrapper_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,11 @@ func newConfig(t *testing.T) (Config, ids.NodeID, *enginetest.Sender, *vertextes
9797
"",
9898
prometheus.NewRegistry(),
9999
nil,
100-
version.CurrentApp,
100+
version.Current,
101101
)
102102
require.NoError(err)
103103

104-
p2pTracker.Connected(peer, version.CurrentApp)
104+
p2pTracker.Connected(peer, version.Current)
105105

106106
return Config{
107107
AllGetsServer: avaGetHandler,

snow/engine/common/tracker/peers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestPeers(t *testing.T) {
2424
p.OnValidatorAdded(nodeID, nil, ids.Empty, 5)
2525
require.Zero(p.ConnectedWeight())
2626

27-
require.NoError(p.Connected(t.Context(), nodeID, version.CurrentApp))
27+
require.NoError(p.Connected(t.Context(), nodeID, version.Current))
2828
require.Equal(uint64(5), p.ConnectedWeight())
2929

3030
p.OnValidatorWeightChanged(nodeID, 5, 10)

snow/engine/snowman/bootstrap/bootstrapper_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func newConfig(t *testing.T) (Config, ids.NodeID, *enginetest.Sender, *blocktest
7474
startupTracker := tracker.NewStartup(tracker.NewPeers(), totalWeight/2+1)
7575
vdrs.RegisterSetCallbackListener(ctx.SubnetID, startupTracker)
7676

77-
require.NoError(startupTracker.Connected(t.Context(), peer, version.CurrentApp))
77+
require.NoError(startupTracker.Connected(t.Context(), peer, version.Current))
7878

7979
snowGetHandler, err := getter.New(vm, sender, ctx.Log, time.Second, 2000, ctx.Registerer)
8080
require.NoError(err)
@@ -88,7 +88,7 @@ func newConfig(t *testing.T) (Config, ids.NodeID, *enginetest.Sender, *blocktest
8888
)
8989
require.NoError(err)
9090

91-
peerTracker.Connected(peer, version.CurrentApp)
91+
peerTracker.Connected(peer, version.Current)
9292

9393
var halter common.Halter
9494

@@ -198,8 +198,8 @@ func TestBootstrapperStartsOnlyIfEnoughStakeIsConnected(t *testing.T) {
198198
vdr0 := ids.GenerateTestNodeID()
199199
require.NoError(peers.AddStaker(ctx.SubnetID, vdr0, nil, ids.Empty, startupAlpha/2))
200200

201-
peerTracker.Connected(vdr0, version.CurrentApp)
202-
require.NoError(bs.Connected(t.Context(), vdr0, version.CurrentApp))
201+
peerTracker.Connected(vdr0, version.Current)
202+
require.NoError(bs.Connected(t.Context(), vdr0, version.Current))
203203

204204
require.NoError(bs.Start(t.Context(), 0))
205205
require.False(frontierRequested)
@@ -208,8 +208,8 @@ func TestBootstrapperStartsOnlyIfEnoughStakeIsConnected(t *testing.T) {
208208
vdr := ids.GenerateTestNodeID()
209209
require.NoError(peers.AddStaker(ctx.SubnetID, vdr, nil, ids.Empty, startupAlpha))
210210

211-
peerTracker.Connected(vdr, version.CurrentApp)
212-
require.NoError(bs.Connected(t.Context(), vdr, version.CurrentApp))
211+
peerTracker.Connected(vdr, version.Current)
212+
require.NoError(bs.Connected(t.Context(), vdr, version.Current))
213213
require.True(frontierRequested)
214214
}
215215

@@ -378,7 +378,7 @@ func TestBootstrapperEmptyResponse(t *testing.T) {
378378

379379
// Add another peer to allow a new node to be selected. A new node should be
380380
// sampled if the prior response was empty.
381-
bs.PeerTracker.Connected(ids.GenerateTestNodeID(), version.CurrentApp)
381+
bs.PeerTracker.Connected(ids.GenerateTestNodeID(), version.Current)
382382

383383
require.NoError(bs.Ancestors(t.Context(), requestedNodeID, requestID, nil)) // respond with empty
384384
require.NotEqual(requestedNodeID, peerID)
@@ -653,7 +653,7 @@ func TestBootstrapNoParseOnNew(t *testing.T) {
653653
require.NoError(err)
654654
startupTracker := tracker.NewStartup(tracker.NewPeers(), totalWeight/2+1)
655655
peers.RegisterSetCallbackListener(ctx.SubnetID, startupTracker)
656-
require.NoError(startupTracker.Connected(t.Context(), peer, version.CurrentApp))
656+
require.NoError(startupTracker.Connected(t.Context(), peer, version.Current))
657657

658658
snowGetHandler, err := getter.New(vm, sender, ctx.Log, time.Second, 2000, ctx.Registerer)
659659
require.NoError(err)
@@ -682,7 +682,7 @@ func TestBootstrapNoParseOnNew(t *testing.T) {
682682
)
683683
require.NoError(err)
684684

685-
peerTracker.Connected(peer, version.CurrentApp)
685+
peerTracker.Connected(peer, version.Current)
686686

687687
config := Config{
688688
Haltable: &common.Halter{},

snow/engine/snowman/engine_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func setup(t *testing.T, config Config) (ids.NodeID, validators.Manager, *engine
7474

7575
vdr := ids.GenerateTestNodeID()
7676
require.NoError(config.Validators.AddStaker(config.Ctx.SubnetID, vdr, nil, ids.Empty, 1))
77-
require.NoError(config.ConnectedValidators.Connected(t.Context(), vdr, version.CurrentApp))
77+
require.NoError(config.ConnectedValidators.Connected(t.Context(), vdr, version.Current))
7878
config.Validators.RegisterSetCallbackListener(config.Ctx.SubnetID, config.ConnectedValidators)
7979

8080
sender := &enginetest.Sender{T: t}

0 commit comments

Comments
 (0)