diff --git a/network/network.go b/network/network.go index 86abac4..bce1216 100644 --- a/network/network.go +++ b/network/network.go @@ -105,6 +105,7 @@ type network struct { serverUpgrader Upgrader clientUpgrader Upgrader vdrs validators.Set // set of current validators in the AVAnet + beacons validators.Set // set of beacons in the AVAnet router router.Router // router must be thread safe nodeID uint32 @@ -159,6 +160,7 @@ func NewDefaultNetwork( serverUpgrader, clientUpgrader Upgrader, vdrs validators.Set, + beacons validators.Set, router router.Router, ) Network { return NewNetwork( @@ -174,6 +176,7 @@ func NewDefaultNetwork( serverUpgrader, clientUpgrader, vdrs, + beacons, router, defaultInitialReconnectDelay, defaultMaxReconnectDelay, @@ -207,6 +210,7 @@ func NewNetwork( serverUpgrader, clientUpgrader Upgrader, vdrs validators.Set, + beacons validators.Set, router router.Router, initialReconnectDelay, maxReconnectDelay time.Duration, @@ -236,6 +240,7 @@ func NewNetwork( serverUpgrader: serverUpgrader, clientUpgrader: clientUpgrader, vdrs: vdrs, + beacons: beacons, router: router, nodeID: rand.Uint32(), initialReconnectDelay: initialReconnectDelay, diff --git a/network/network_test.go b/network/network_test.go index 0fd7053..c230402 100644 --- a/network/network_test.go +++ b/network/network_test.go @@ -197,6 +197,7 @@ func TestNewDefaultNetwork(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net) @@ -280,6 +281,7 @@ func TestEstablishConnection(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -297,6 +299,7 @@ func TestEstablishConnection(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) @@ -419,6 +422,7 @@ func TestDoubleTrack(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -436,6 +440,7 @@ func TestDoubleTrack(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) @@ -559,6 +564,7 @@ func TestDoubleClose(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -576,6 +582,7 @@ func TestDoubleClose(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) @@ -704,6 +711,7 @@ func TestRemoveHandlers(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -721,6 +729,7 @@ func TestRemoveHandlers(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) @@ -858,6 +867,7 @@ func TestTrackConnected(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -875,6 +885,7 @@ func TestTrackConnected(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) @@ -999,6 +1010,7 @@ func TestTrackConnectedRace(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net0) @@ -1016,6 +1028,7 @@ func TestTrackConnectedRace(t *testing.T) { serverUpgrader, clientUpgrader, vdrs, + vdrs, handler, ) assert.NotNil(t, net1) diff --git a/network/peer.go b/network/peer.go index 409d7f6..cf2f37f 100644 --- a/network/peer.go +++ b/network/peer.go @@ -470,8 +470,13 @@ func (p *peer) version(msg Msg) { } if p.net.version.Before(peerVersion) { - p.net.log.Info("peer attempting to connect with newer version %s. You may want to update your client", - peerVersion) + if p.net.beacons.Contains(p.id) { + p.net.log.Info("beacon attempting to connect with newer version %s. You may want to update your client", + peerVersion) + } else { + p.net.log.Debug("peer attempting to connect with newer version %s. You may want to update your client", + peerVersion) + } } if err := p.net.version.Compatible(peerVersion); err != nil { diff --git a/node/node.go b/node/node.go index e281d58..b24d414 100644 --- a/node/node.go +++ b/node/node.go @@ -93,6 +93,9 @@ type Node struct { // Net runs the networking stack Net network.Network + // this node's initial connections to the network + beacons validators.Set + // current validators of the network vdrs validators.Manager @@ -165,6 +168,7 @@ func (n *Node) initNetworking() error { serverUpgrader, clientUpgrader, defaultSubnetValidators, + n.beacons, n.Config.ConsensusRouter, ) @@ -278,6 +282,14 @@ func (n *Node) initNodeID() error { return nil } +// Create the IDs of the peers this node should first connect to +func (n *Node) initBeacons() { + n.beacons = validators.NewSet() + for _, peer := range n.Config.BootstrapPeers { + n.beacons.Add(validators.NewValidator(peer.ID, 1)) + } +} + // Create the vmManager and register the following vms: // AVM, Simple Payments DAG, Simple Payments Chain // The Platform VM is registered in initStaking because @@ -360,11 +372,6 @@ func (n *Node) initChains() error { return err } - beacons := validators.NewSet() - for _, peer := range n.Config.BootstrapPeers { - beacons.Add(validators.NewValidator(peer.ID, 1)) - } - genesisBytes, err := genesis.Genesis(n.Config.NetworkID) if err != nil { return err @@ -376,7 +383,7 @@ func (n *Node) initChains() error { SubnetID: platformvm.DefaultSubnetID, GenesisData: genesisBytes, // Specifies other chains to create VMAlias: platformvm.ID.String(), - CustomBeacons: beacons, + CustomBeacons: n.beacons, }) return nil @@ -551,6 +558,8 @@ func (n *Node) Initialize(Config *Config, logger logging.Logger, logFactory logg return fmt.Errorf("problem initializing staker ID: %w", err) } + n.initBeacons() + // Start HTTP APIs n.initAPIServer() // Start the API Server n.initKeystoreAPI() // Start the Keystore API