Skip to content

Commit 536e573

Browse files
committed
validators: replacing NodeID with GenericNodeID p2
1 parent 85bb0a2 commit 536e573

Some content is hidden

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

60 files changed

+545
-429
lines changed

chains/manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1355,7 +1355,7 @@ func (m *manager) registerBootstrappedHealthChecks() error {
13551355
if !m.IsBootstrapped(constants.PlatformChainID) {
13561356
return "node is currently bootstrapping", nil
13571357
}
1358-
if !validators.Contains(m.Validators, constants.PrimaryNetworkID, m.NodeID) {
1358+
if !validators.Contains(m.Validators, constants.PrimaryNetworkID, ids.GenericNodeIDFromNodeID(m.NodeID)) {
13591359
return "node is not a primary network validator", nil
13601360
}
13611361

ids/node_id_generic.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import (
1414
)
1515

1616
var (
17-
EmptyGenericNodeID = GenericNodeID{}
17+
EmptyGenericNodeID = GenericNodeID{
18+
id: string(EmptyNodeID[:]),
19+
}
1820

1921
_ utils.Sortable[GenericNodeID] = (*GenericNodeID)(nil)
2022
)

network/example_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ type testAggressiveValidatorSet struct {
6262
validators.Set
6363
}
6464

65-
func (*testAggressiveValidatorSet) Contains(ids.NodeID) bool {
65+
func (*testAggressiveValidatorSet) Contains(ids.GenericNodeID) bool {
6666
return true
6767
}
6868

network/network.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ func (n *network) Connected(nodeID ids.NodeID) {
468468
// peer is a validator/beacon.
469469
func (n *network) AllowConnection(nodeID ids.NodeID) bool {
470470
return !n.config.RequireValidatorToConnect ||
471-
validators.Contains(n.config.Validators, constants.PrimaryNetworkID, n.config.MyNodeID) ||
471+
validators.Contains(n.config.Validators, constants.PrimaryNetworkID, ids.GenericNodeIDFromNodeID(n.config.MyNodeID)) ||
472472
n.WantsConnection(nodeID)
473473
}
474474

@@ -807,7 +807,7 @@ func (n *network) WantsConnection(nodeID ids.NodeID) bool {
807807
}
808808

809809
func (n *network) wantsConnection(nodeID ids.NodeID) bool {
810-
return validators.Contains(n.config.Validators, constants.PrimaryNetworkID, nodeID) ||
810+
return validators.Contains(n.config.Validators, constants.PrimaryNetworkID, ids.GenericNodeIDFromNodeID(nodeID)) ||
811811
n.manuallyTrackedIDs.Contains(nodeID)
812812
}
813813

@@ -862,7 +862,7 @@ func (n *network) getPeers(
862862
continue
863863
}
864864

865-
isValidator := validators.Contains(n.config.Validators, subnetID, nodeID)
865+
isValidator := validators.Contains(n.config.Validators, subnetID, ids.GenericNodeIDFromNodeID(nodeID))
866866
// check if the peer is allowed to connect to the subnet
867867
if !allower.IsAllowed(nodeID, isValidator) {
868868
continue
@@ -906,7 +906,7 @@ func (n *network) samplePeers(
906906
}
907907

908908
peerID := p.ID()
909-
isValidator := subnetValidators.Contains(peerID)
909+
isValidator := subnetValidators.Contains(ids.GenericNodeIDFromNodeID(peerID))
910910
// check if the peer is allowed to connect to the subnet
911911
if !allower.IsAllowed(peerID, isValidator) {
912912
return false
@@ -1345,7 +1345,7 @@ func (n *network) NodeUptime(subnetID ids.ID) (UptimeResult, error) {
13451345
return UptimeResult{}, errSubnetNotExist
13461346
}
13471347

1348-
myStake := validators.GetWeight(n.config.MyNodeID)
1348+
myStake := validators.GetWeight(ids.GenericNodeIDFromNodeID(n.config.MyNodeID))
13491349
if myStake == 0 {
13501350
return UptimeResult{}, errNotValidator
13511351
}
@@ -1363,7 +1363,7 @@ func (n *network) NodeUptime(subnetID ids.ID) (UptimeResult, error) {
13631363
peer, _ := n.connectedPeers.GetByIndex(i)
13641364

13651365
nodeID := peer.ID()
1366-
weight := validators.GetWeight(nodeID)
1366+
weight := validators.GetWeight(ids.GenericNodeIDFromNodeID(nodeID))
13671367
if weight == 0 {
13681368
// this is not a validator skip it.
13691369
continue

network/network_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,12 @@ func newFullyConnectedTestNetwork(t *testing.T, handlers []router.InboundHandler
223223
}
224224

225225
beacons := validators.NewSet()
226-
require.NoError(beacons.Add(nodeIDs[0], nil, ids.GenerateTestID(), 1))
226+
require.NoError(beacons.Add(ids.GenericNodeIDFromNodeID(nodeIDs[0]), nil, ids.GenerateTestID(), 1))
227227

228228
primaryVdrs := validators.NewSet()
229229
primaryVdrs.RegisterCallbackListener(&gossipTrackerCallback)
230230
for _, nodeID := range nodeIDs {
231-
require.NoError(primaryVdrs.Add(nodeID, nil, ids.GenerateTestID(), 1))
231+
require.NoError(primaryVdrs.Add(ids.GenericNodeIDFromNodeID(nodeID), nil, ids.GenerateTestID(), 1))
232232
}
233233

234234
vdrs := validators.NewManager()
@@ -405,7 +405,7 @@ func TestTrackVerifiesSignatures(t *testing.T) {
405405

406406
network := networks[0].(*network)
407407
nodeID, tlsCert, _ := getTLS(t, 1)
408-
require.NoError(validators.Add(network.config.Validators, constants.PrimaryNetworkID, nodeID, nil, ids.Empty, 1))
408+
require.NoError(validators.Add(network.config.Validators, constants.PrimaryNetworkID, ids.GenericNodeIDFromNodeID(nodeID), nil, ids.Empty, 1))
409409

410410
_, err := network.Track(ids.EmptyNodeID, []*ips.ClaimedIPPort{{
411411
Cert: staking.CertificateFromX509(tlsCert.Leaf),
@@ -449,12 +449,12 @@ func TestTrackDoesNotDialPrivateIPs(t *testing.T) {
449449
}
450450

451451
beacons := validators.NewSet()
452-
require.NoError(beacons.Add(nodeIDs[0], nil, ids.GenerateTestID(), 1))
452+
require.NoError(beacons.Add(ids.GenericNodeIDFromNodeID(nodeIDs[0]), nil, ids.GenerateTestID(), 1))
453453

454454
primaryVdrs := validators.NewSet()
455455
primaryVdrs.RegisterCallbackListener(&gossipTrackerCallback)
456456
for _, nodeID := range nodeIDs {
457-
require.NoError(primaryVdrs.Add(nodeID, nil, ids.GenerateTestID(), 1))
457+
require.NoError(primaryVdrs.Add(ids.GenericNodeIDFromNodeID(nodeID), nil, ids.GenerateTestID(), 1))
458458
}
459459

460460
vdrs := validators.NewManager()
@@ -529,7 +529,7 @@ func TestDialDeletesNonValidators(t *testing.T) {
529529

530530
primaryVdrs := validators.NewSet()
531531
for _, nodeID := range nodeIDs {
532-
require.NoError(primaryVdrs.Add(nodeID, nil, ids.GenerateTestID(), 1))
532+
require.NoError(primaryVdrs.Add(ids.GenericNodeIDFromNodeID(nodeID), nil, ids.GenerateTestID(), 1))
533533
}
534534

535535
networks := make([]Network, len(configs))
@@ -547,7 +547,7 @@ func TestDialDeletesNonValidators(t *testing.T) {
547547
}
548548

549549
beacons := validators.NewSet()
550-
require.NoError(beacons.Add(nodeIDs[0], nil, ids.GenerateTestID(), 1))
550+
require.NoError(beacons.Add(ids.GenericNodeIDFromNodeID(nodeIDs[0]), nil, ids.GenerateTestID(), 1))
551551

552552
primaryVdrs.RegisterCallbackListener(&gossipTrackerCallback)
553553

@@ -613,7 +613,7 @@ func TestDialDeletesNonValidators(t *testing.T) {
613613
time.Sleep(50 * time.Millisecond)
614614

615615
network := networks[1].(*network)
616-
require.NoError(primaryVdrs.RemoveWeight(nodeIDs[0], 1))
616+
require.NoError(primaryVdrs.RemoveWeight(ids.GenericNodeIDFromNodeID(nodeIDs[0]), 1))
617617
require.Eventually(
618618
func() bool {
619619
network.peersLock.RLock()

network/peer/gossip_tracker_callback.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,34 @@ type GossipTrackerCallback struct {
2424
// OnValidatorAdded adds [validatorID] to the set of validators that can be
2525
// gossiped about
2626
func (g *GossipTrackerCallback) OnValidatorAdded(
27-
nodeID ids.NodeID,
27+
genericNodeID ids.GenericNodeID,
2828
_ *bls.PublicKey,
2929
txID ids.ID,
3030
_ uint64,
3131
) {
32+
nodeID, err := ids.NodeIDFromGenericNodeID(genericNodeID)
33+
if err != nil {
34+
panic(err)
35+
}
3236
vdr := ValidatorID{
3337
NodeID: nodeID,
3438
TxID: txID,
3539
}
3640
if !g.GossipTracker.AddValidator(vdr) {
3741
g.Log.Error("failed to add a validator",
38-
zap.Stringer("nodeID", nodeID),
42+
zap.Stringer("nodeID", &genericNodeID),
3943
zap.Stringer("txID", txID),
4044
)
4145
}
4246
}
4347

4448
// OnValidatorRemoved removes [validatorID] from the set of validators that can
4549
// be gossiped about.
46-
func (g *GossipTrackerCallback) OnValidatorRemoved(nodeID ids.NodeID, _ uint64) {
50+
func (g *GossipTrackerCallback) OnValidatorRemoved(genericNodeID ids.GenericNodeID, _ uint64) {
51+
nodeID, err := ids.NodeIDFromGenericNodeID(genericNodeID)
52+
if err != nil {
53+
panic(err)
54+
}
4755
if !g.GossipTracker.RemoveValidator(nodeID) {
4856
g.Log.Error("failed to remove a validator",
4957
zap.Stringer("nodeID", nodeID),
@@ -53,4 +61,4 @@ func (g *GossipTrackerCallback) OnValidatorRemoved(nodeID ids.NodeID, _ uint64)
5361

5462
// OnValidatorWeightChanged does nothing because PeerList gossip doesn't care
5563
// about validator weights.
56-
func (*GossipTrackerCallback) OnValidatorWeightChanged(ids.NodeID, uint64, uint64) {}
64+
func (*GossipTrackerCallback) OnValidatorWeightChanged(ids.GenericNodeID, uint64, uint64) {}

network/peer/peer.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -852,9 +852,10 @@ func (p *peer) handleVersion(msg *p2p.Version) {
852852
clockDifference := math.Abs(float64(msg.MyTime) - float64(myTime))
853853

854854
p.Metrics.ClockSkew.Observe(clockDifference)
855+
generidNodeID := ids.GenericNodeIDFromNodeID(p.id)
855856

856857
if clockDifference > p.MaxClockDifference.Seconds() {
857-
if p.Beacons.Contains(p.id) {
858+
if p.Beacons.Contains(generidNodeID) {
858859
p.Log.Warn("beacon reports out of sync time",
859860
zap.Stringer("nodeID", p.id),
860861
zap.Uint64("peerTime", msg.MyTime),
@@ -883,7 +884,7 @@ func (p *peer) handleVersion(msg *p2p.Version) {
883884
p.version = peerVersion
884885

885886
if p.VersionCompatibility.Version().Before(peerVersion) {
886-
if p.Beacons.Contains(p.id) {
887+
if p.Beacons.Contains(generidNodeID) {
887888
p.Log.Info("beacon attempting to connect with newer version. You may want to update your client",
888889
zap.Stringer("nodeID", p.id),
889890
zap.Stringer("beaconVersion", peerVersion),

network/throttling/inbound_msg_byte_throttler.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ func (t *inboundMsgByteThrottler) Acquire(ctx context.Context, msgSize uint64, n
131131
// Take as many bytes as we can from [nodeID]'s validator allocation.
132132
// Calculate [nodeID]'s validator allocation size based on its weight
133133
vdrAllocationSize := uint64(0)
134-
weight := t.vdrs.GetWeight(nodeID)
134+
genericNodeID := ids.GenericNodeIDFromNodeID(nodeID)
135+
weight := t.vdrs.GetWeight(genericNodeID)
135136
if weight != 0 {
136137
vdrAllocationSize = uint64(float64(t.maxVdrBytes) * float64(weight) / float64(t.vdrs.Weight()))
137138
}

network/throttling/inbound_msg_byte_throttler_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestInboundMsgByteThrottlerCancelContextDeadlock(t *testing.T) {
2626
}
2727
vdrs := validators.NewSet()
2828
vdr := ids.GenerateTestNodeID()
29-
require.NoError(vdrs.Add(vdr, nil, ids.Empty, 1))
29+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr), nil, ids.Empty, 1))
3030

3131
throttler, err := newInboundMsgByteThrottler(
3232
logging.NoLog{},
@@ -55,8 +55,8 @@ func TestInboundMsgByteThrottlerCancelContext(t *testing.T) {
5555
vdrs := validators.NewSet()
5656
vdr1ID := ids.GenerateTestNodeID()
5757
vdr2ID := ids.GenerateTestNodeID()
58-
require.NoError(vdrs.Add(vdr1ID, nil, ids.Empty, 1))
59-
require.NoError(vdrs.Add(vdr2ID, nil, ids.Empty, 1))
58+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr1ID), nil, ids.Empty, 1))
59+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr2ID), nil, ids.Empty, 1))
6060

6161
throttler, err := newInboundMsgByteThrottler(
6262
logging.NoLog{},
@@ -113,8 +113,8 @@ func TestInboundMsgByteThrottler(t *testing.T) {
113113
vdrs := validators.NewSet()
114114
vdr1ID := ids.GenerateTestNodeID()
115115
vdr2ID := ids.GenerateTestNodeID()
116-
require.NoError(vdrs.Add(vdr1ID, nil, ids.Empty, 1))
117-
require.NoError(vdrs.Add(vdr2ID, nil, ids.Empty, 1))
116+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr1ID), nil, ids.Empty, 1))
117+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr2ID), nil, ids.Empty, 1))
118118

119119
throttler, err := newInboundMsgByteThrottler(
120120
logging.NoLog{},
@@ -330,7 +330,7 @@ func TestSybilMsgThrottlerMaxNonVdr(t *testing.T) {
330330
}
331331
vdrs := validators.NewSet()
332332
vdr1ID := ids.GenerateTestNodeID()
333-
require.NoError(vdrs.Add(vdr1ID, nil, ids.Empty, 1))
333+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr1ID), nil, ids.Empty, 1))
334334
throttler, err := newInboundMsgByteThrottler(
335335
logging.NoLog{},
336336
"",
@@ -377,7 +377,7 @@ func TestMsgThrottlerNextMsg(t *testing.T) {
377377
}
378378
vdrs := validators.NewSet()
379379
vdr1ID := ids.GenerateTestNodeID()
380-
require.NoError(vdrs.Add(vdr1ID, nil, ids.Empty, 1))
380+
require.NoError(vdrs.Add(ids.GenericNodeIDFromNodeID(vdr1ID), nil, ids.Empty, 1))
381381
nonVdrNodeID := ids.GenerateTestNodeID()
382382

383383
maxVdrBytes := config.VdrAllocSize + config.AtLargeAllocSize

network/throttling/inbound_resource_throttler.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ func (t *systemThrottler) Acquire(ctx context.Context, nodeID ids.NodeID) {
137137
for {
138138
now := t.Clock.Time()
139139
// Get target usage for this node.
140-
target := t.targeter.TargetUsage(nodeID)
140+
genericNodeID := ids.GenericNodeIDFromNodeID(nodeID)
141+
target := t.targeter.TargetUsage(genericNodeID)
141142
// Get actual usage for this node.
142143
usage := t.tracker.Usage(nodeID, now)
143144
if usage <= target {

0 commit comments

Comments
 (0)