From e16b655c903d97f375072b2ec6e237d650f8584c Mon Sep 17 00:00:00 2001 From: Alberto Benegiamo Date: Fri, 15 Sep 2023 15:57:01 +0200 Subject: [PATCH] wip: turning NodeIDs into GenericNodeIDs --- go.mod | 2 +- go.sum | 4 +- peer/client.go | 12 +- peer/network.go | 38 +++--- peer/network_test.go | 128 +++++++++---------- peer/peer_tracker.go | 32 ++--- plugin/evm/gossiper.go | 4 +- plugin/evm/gossiper_atomic_gossiping_test.go | 12 +- plugin/evm/gossiper_eth_gossiping_test.go | 4 +- plugin/evm/message/block_request.go | 2 +- plugin/evm/message/code_request.go | 2 +- plugin/evm/message/handler.go | 24 ++-- plugin/evm/message/handler_test.go | 12 +- plugin/evm/message/leafs_request.go | 2 +- plugin/evm/message/leafs_request_test.go | 10 +- plugin/evm/message/message.go | 6 +- plugin/evm/message/request.go | 2 +- plugin/evm/syncervm_test.go | 14 +- plugin/evm/tx_gossip_test.go | 36 +++--- plugin/evm/vm.go | 16 +-- plugin/evm/vm_test.go | 2 +- sync/client/client.go | 8 +- sync/client/client_test.go | 46 +++---- sync/client/mock_client.go | 6 +- sync/client/mock_network.go | 12 +- sync/handlers/block_request.go | 2 +- sync/handlers/block_request_test.go | 4 +- sync/handlers/code_request.go | 2 +- sync/handlers/code_request_test.go | 2 +- sync/handlers/handler.go | 8 +- sync/handlers/leafs_request.go | 2 +- sync/handlers/leafs_request_test.go | 2 +- 32 files changed, 224 insertions(+), 234 deletions(-) diff --git a/go.mod b/go.mod index 41f76ccdd9..73b17466e6 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/VictoriaMetrics/fastcache v1.10.0 - github.com/ava-labs/avalanchego v1.10.10-rc.4 + github.com/ava-labs/avalanchego v1.10.10-rc.4.0.20230915153312-765a716b3af5 github.com/cespare/cp v0.1.0 github.com/cockroachdb/pebble v0.0.0-20230209160836-829675f94811 github.com/davecgh/go-spew v1.1.1 diff --git a/go.sum b/go.sum index 2f4e0e5b4c..599f715836 100644 --- a/go.sum +++ b/go.sum @@ -55,8 +55,8 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/ava-labs/avalanchego v1.10.10-rc.4 h1:1oxQf1boQDliJspfGBqsYsqg91d4F3qiFTnwnp+EruY= -github.com/ava-labs/avalanchego v1.10.10-rc.4/go.mod h1:BN97sZppDSvIMIfEjrLTjdPTFkGLkb0ISJHEcoxMMNk= +github.com/ava-labs/avalanchego v1.10.10-rc.4.0.20230915153312-765a716b3af5 h1:vC6YhUmsTgGu5T43P6Inth20H4EtKebS4uNpQDenvxA= +github.com/ava-labs/avalanchego v1.10.10-rc.4.0.20230915153312-765a716b3af5/go.mod h1:ktWtdp5jBjXgLOq/Cm3l2IcNGlrcKvFdokABy8NtP/w= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= diff --git a/peer/client.go b/peer/client.go index 6a002d0e38..24f887b79e 100644 --- a/peer/client.go +++ b/peer/client.go @@ -23,11 +23,11 @@ type NetworkClient interface { // node version greater than or equal to minVersion. // Returns response bytes, the ID of the chosen peer, and ErrRequestFailed if // the request should be retried. - SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.NodeID, error) + SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.GenericNodeID, error) // SendAppRequest synchronously sends request to the selected nodeID // Returns response bytes, and ErrRequestFailed if the request should be retried. - SendAppRequest(nodeID ids.NodeID, request []byte) ([]byte, error) + SendAppRequest(nodeID ids.GenericNodeID, request []byte) ([]byte, error) // SendCrossChainRequest sends a request to a specific blockchain running on this node. // Returns response bytes, and ErrRequestFailed if the request failed. @@ -38,7 +38,7 @@ type NetworkClient interface { // TrackBandwidth should be called for each valid request with the bandwidth // (length of response divided by request time), and with 0 if the response is invalid. - TrackBandwidth(nodeID ids.NodeID, bandwidth float64) + TrackBandwidth(nodeID ids.GenericNodeID, bandwidth float64) } // client implements NetworkClient interface @@ -59,7 +59,7 @@ func NewNetworkClient(network Network) NetworkClient { // node version greater than or equal to minVersion. // Returns response bytes, the ID of the chosen peer, and ErrRequestFailed if // the request should be retried. -func (c *client) SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.NodeID, error) { +func (c *client) SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.GenericNodeID, error) { waitingHandler := newWaitingResponseHandler() nodeID, err := c.network.SendAppRequestAny(minVersion, request, waitingHandler) if err != nil { @@ -74,7 +74,7 @@ func (c *client) SendAppRequestAny(minVersion *version.Application, request []by // SendAppRequest synchronously sends request to the specified nodeID // Returns response bytes and ErrRequestFailed if the request should be retried. -func (c *client) SendAppRequest(nodeID ids.NodeID, request []byte) ([]byte, error) { +func (c *client) SendAppRequest(nodeID ids.GenericNodeID, request []byte) ([]byte, error) { waitingHandler := newWaitingResponseHandler() if err := c.network.SendAppRequest(nodeID, request, waitingHandler); err != nil { return nil, err @@ -104,6 +104,6 @@ func (c *client) Gossip(gossip []byte) error { return c.network.Gossip(gossip) } -func (c *client) TrackBandwidth(nodeID ids.NodeID, bandwidth float64) { +func (c *client) TrackBandwidth(nodeID ids.GenericNodeID, bandwidth float64) { c.network.TrackBandwidth(nodeID, bandwidth) } diff --git a/peer/network.go b/peer/network.go index a5aa4b1393..66b5a51a86 100644 --- a/peer/network.go +++ b/peer/network.go @@ -46,10 +46,10 @@ type Network interface { // node version greater than or equal to minVersion. // Returns the ID of the chosen peer, and an error if the request could not // be sent to a peer with the desired [minVersion]. - SendAppRequestAny(minVersion *version.Application, message []byte, handler message.ResponseHandler) (ids.NodeID, error) + SendAppRequestAny(minVersion *version.Application, message []byte, handler message.ResponseHandler) (ids.GenericNodeID, error) // SendAppRequest sends message to given nodeID, notifying handler when there's a response or timeout - SendAppRequest(nodeID ids.NodeID, message []byte, handler message.ResponseHandler) error + SendAppRequest(nodeID ids.GenericNodeID, message []byte, handler message.ResponseHandler) error // Gossip sends given gossip message to peers Gossip(gossip []byte) error @@ -76,14 +76,14 @@ type Network interface { // TrackBandwidth should be called for each valid request with the bandwidth // (length of response divided by request time), and with 0 if the response is invalid. - TrackBandwidth(nodeID ids.NodeID, bandwidth float64) + TrackBandwidth(nodeID ids.GenericNodeID, bandwidth float64) } // network is an implementation of Network that processes message requests for // each peer in linear fashion type network struct { lock sync.RWMutex // lock for mutating state of this Network struct - self ids.NodeID // NodeID of this node + self ids.GenericNodeID // NodeID of this node requestIDGen uint32 // requestID counter used to track outbound requests outstandingRequestHandlers map[uint32]message.ResponseHandler // maps avalanchego requestID => message.ResponseHandler activeAppRequests *semaphore.Weighted // controls maximum number of active outbound requests @@ -110,7 +110,7 @@ type network struct { closed utils.Atomic[bool] } -func NewNetwork(router *p2p.Router, appSender common.AppSender, codec codec.Manager, crossChainCodec codec.Manager, self ids.NodeID, maxActiveAppRequests int64, maxActiveCrossChainRequests int64) Network { +func NewNetwork(router *p2p.Router, appSender common.AppSender, codec codec.Manager, crossChainCodec codec.Manager, self ids.GenericNodeID, maxActiveAppRequests int64, maxActiveCrossChainRequests int64) Network { return &network{ router: router, appSender: appSender, @@ -134,10 +134,10 @@ func NewNetwork(router *p2p.Router, appSender common.AppSender, codec codec.Mana // the request will be sent to any peer regardless of their version. // Returns the ID of the chosen peer, and an error if the request could not // be sent to a peer with the desired [minVersion]. -func (n *network) SendAppRequestAny(minVersion *version.Application, request []byte, handler message.ResponseHandler) (ids.NodeID, error) { +func (n *network) SendAppRequestAny(minVersion *version.Application, request []byte, handler message.ResponseHandler) (ids.GenericNodeID, error) { // Take a slot from total [activeAppRequests] and block until a slot becomes available. if err := n.activeAppRequests.Acquire(context.Background(), 1); err != nil { - return ids.EmptyNodeID, errAcquiringSemaphore + return ids.EmptyGenericNodeID, errAcquiringSemaphore } n.lock.Lock() @@ -147,12 +147,12 @@ func (n *network) SendAppRequestAny(minVersion *version.Application, request []b } n.activeAppRequests.Release(1) - return ids.EmptyNodeID, fmt.Errorf("no peers found matching version %s out of %d peers", minVersion, n.peers.Size()) + return ids.EmptyGenericNodeID, fmt.Errorf("no peers found matching version %s out of %d peers", minVersion, n.peers.Size()) } // SendAppRequest sends request message bytes to specified nodeID, notifying the responseHandler on response or failure -func (n *network) SendAppRequest(nodeID ids.NodeID, request []byte, responseHandler message.ResponseHandler) error { - if nodeID == ids.EmptyNodeID { +func (n *network) SendAppRequest(nodeID ids.GenericNodeID, request []byte, responseHandler message.ResponseHandler) error { + if nodeID == ids.EmptyGenericNodeID { return fmt.Errorf("cannot send request to empty nodeID, nodeID=%s, requestLen=%d", nodeID, len(request)) } @@ -173,7 +173,7 @@ func (n *network) SendAppRequest(nodeID ids.NodeID, request []byte, responseHand // Releases active requests semaphore if there was an error in sending the request // Returns an error if [appSender] is unable to make the request. // Assumes write lock is held -func (n *network) sendAppRequest(nodeID ids.NodeID, request []byte, responseHandler message.ResponseHandler) error { +func (n *network) sendAppRequest(nodeID ids.GenericNodeID, request []byte, responseHandler message.ResponseHandler) error { if n.closed.Get() { n.activeAppRequests.Release(1) return nil @@ -185,7 +185,7 @@ func (n *network) sendAppRequest(nodeID ids.NodeID, request []byte, responseHand requestID := n.nextRequestID() n.outstandingRequestHandlers[requestID] = responseHandler - nodeIDs := set.NewSet[ids.NodeID](1) + nodeIDs := set.NewSet[ids.GenericNodeID](1) nodeIDs.Add(nodeID) // Send app request to [nodeID]. @@ -317,7 +317,7 @@ func (n *network) CrossChainAppResponse(ctx context.Context, respondingChainID i // returns error if the requestHandler returns an error // sends a response back to the sender if length of response returned by the handler is >0 // expects the deadline to not have been passed -func (n *network) AppRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, request []byte) error { +func (n *network) AppRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, deadline time.Time, request []byte) error { if n.closed.Get() { return nil } @@ -357,7 +357,7 @@ func (n *network) AppRequest(ctx context.Context, nodeID ids.NodeID, requestID u // Error returned by this function is expected to be treated as fatal by the engine // If [requestID] is not known, this function will emit a log and return a nil error. // If the response handler returns an error it is propagated as a fatal error. -func (n *network) AppResponse(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error { +func (n *network) AppResponse(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, response []byte) error { log.Debug("received AppResponse from peer", "nodeID", nodeID, "requestID", requestID) handler, exists := n.markRequestFulfilled(requestID) @@ -378,7 +378,7 @@ func (n *network) AppResponse(ctx context.Context, nodeID ids.NodeID, requestID // - request times out before a response is provided // error returned by this function is expected to be treated as fatal by the engine // returns error only when the response handler returns an error -func (n *network) AppRequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error { +func (n *network) AppRequestFailed(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32) error { log.Debug("received AppRequestFailed from peer", "nodeID", nodeID, "requestID", requestID) handler, exists := n.markRequestFulfilled(requestID) @@ -444,7 +444,7 @@ func (n *network) Gossip(gossip []byte) error { // AppGossip is called by avalanchego -> VM when there is an incoming AppGossip from a peer // error returned by this function is expected to be treated as fatal by the engine // returns error if request could not be parsed as message.Request or when the requestHandler returns an error -func (n *network) AppGossip(_ context.Context, nodeID ids.NodeID, gossipBytes []byte) error { +func (n *network) AppGossip(_ context.Context, nodeID ids.GenericNodeID, gossipBytes []byte) error { var gossipMsg message.GossipMessage if _, err := n.codec.Unmarshal(gossipBytes, &gossipMsg); err != nil { log.Debug("could not parse app gossip", "nodeID", nodeID, "gossipLen", len(gossipBytes), "err", err) @@ -456,7 +456,7 @@ func (n *network) AppGossip(_ context.Context, nodeID ids.NodeID, gossipBytes [] } // Connected adds the given nodeID to the peer list so that it can receive messages -func (n *network) Connected(_ context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error { +func (n *network) Connected(_ context.Context, nodeID ids.GenericNodeID, nodeVersion *version.Application) error { log.Debug("adding new peer", "nodeID", nodeID) n.lock.Lock() @@ -476,7 +476,7 @@ func (n *network) Connected(_ context.Context, nodeID ids.NodeID, nodeVersion *v } // Disconnected removes given [nodeID] from the peer list -func (n *network) Disconnected(_ context.Context, nodeID ids.NodeID) error { +func (n *network) Disconnected(_ context.Context, nodeID ids.GenericNodeID) error { log.Debug("disconnecting peer", "nodeID", nodeID) n.lock.Lock() defer n.lock.Unlock() @@ -532,7 +532,7 @@ func (n *network) Size() uint32 { return uint32(n.peers.Size()) } -func (n *network) TrackBandwidth(nodeID ids.NodeID, bandwidth float64) { +func (n *network) TrackBandwidth(nodeID ids.GenericNodeID, bandwidth float64) { n.lock.Lock() defer n.lock.Unlock() diff --git a/peer/network_test.go b/peer/network_test.go index 7a6228ca45..6ddc965e68 100644 --- a/peer/network_test.go +++ b/peer/network_test.go @@ -57,7 +57,7 @@ var ( ) func TestNetworkDoesNotConnectToItself(t *testing.T) { - selfNodeID := ids.GenerateTestNodeID() + selfNodeID := ids.GenerateTestGenericNodeID() n := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), nil, nil, nil, selfNodeID, 1, 1) assert.NoError(t, n.Connected(context.Background(), selfNodeID, defaultPeerVersion)) assert.EqualValues(t, 0, n.Size()) @@ -68,7 +68,7 @@ func TestRequestAnyRequestsRoutingAndResponse(t *testing.T) { senderWg := &sync.WaitGroup{} var net Network sender := testAppSender{ - sendAppRequestFn: func(nodes set.Set[ids.NodeID], requestID uint32, requestBytes []byte) error { + sendAppRequestFn: func(nodes set.Set[ids.GenericNodeID], requestID uint32, requestBytes []byte) error { nodeID, _ := nodes.Pop() senderWg.Add(1) go func() { @@ -79,7 +79,7 @@ func TestRequestAnyRequestsRoutingAndResponse(t *testing.T) { }() return nil }, - sendAppResponseFn: func(nodeID ids.NodeID, requestID uint32, responseBytes []byte) error { + sendAppResponseFn: func(nodeID ids.GenericNodeID, requestID uint32, responseBytes []byte) error { senderWg.Add(1) go func() { defer senderWg.Done() @@ -94,10 +94,10 @@ func TestRequestAnyRequestsRoutingAndResponse(t *testing.T) { codecManager := buildCodec(t, HelloRequest{}, HelloResponse{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 16, 16) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 16, 16) net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager}) client := NewNetworkClient(net) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() assert.NoError(t, net.Connected(context.Background(), nodeID, defaultPeerVersion)) requestMessage := HelloRequest{Message: "this is a request"} @@ -138,9 +138,9 @@ func TestRequestRequestsRoutingAndResponse(t *testing.T) { senderWg := &sync.WaitGroup{} var net Network var lock sync.Mutex - contactedNodes := make(map[ids.NodeID]struct{}) + contactedNodes := make(map[ids.GenericNodeID]struct{}) sender := testAppSender{ - sendAppRequestFn: func(nodes set.Set[ids.NodeID], requestID uint32, requestBytes []byte) error { + sendAppRequestFn: func(nodes set.Set[ids.GenericNodeID], requestID uint32, requestBytes []byte) error { nodeID, _ := nodes.Pop() lock.Lock() contactedNodes[nodeID] = struct{}{} @@ -154,7 +154,7 @@ func TestRequestRequestsRoutingAndResponse(t *testing.T) { }() return nil }, - sendAppResponseFn: func(nodeID ids.NodeID, requestID uint32, responseBytes []byte) error { + sendAppResponseFn: func(nodeID ids.GenericNodeID, requestID uint32, responseBytes []byte) error { senderWg.Add(1) go func() { defer senderWg.Done() @@ -169,16 +169,16 @@ func TestRequestRequestsRoutingAndResponse(t *testing.T) { codecManager := buildCodec(t, HelloRequest{}, HelloResponse{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 16, 16) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 16, 16) net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager}) client := NewNetworkClient(net) - nodes := []ids.NodeID{ - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), + nodes := []ids.GenericNodeID{ + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), } for _, nodeID := range nodes { assert.NoError(t, net.Connected(context.Background(), nodeID, defaultPeerVersion)) @@ -197,7 +197,7 @@ func TestRequestRequestsRoutingAndResponse(t *testing.T) { for i := 0; i < totalCalls; i++ { nodeIdx = (nodeIdx + 1) % (len(nodes)) nodeID := nodes[nodeIdx] - go func(wg *sync.WaitGroup, nodeID ids.NodeID) { + go func(wg *sync.WaitGroup, nodeID ids.GenericNodeID) { defer wg.Done() requestBytes, err := message.RequestToBytes(codecManager, requestMessage) assert.NoError(t, err) @@ -223,7 +223,7 @@ func TestRequestRequestsRoutingAndResponse(t *testing.T) { } // ensure empty nodeID is not allowed - _, err := client.SendAppRequest(ids.EmptyNodeID, []byte("hello there")) + _, err := client.SendAppRequest(ids.EmptyGenericNodeID, []byte("hello there")) assert.Error(t, err) assert.Contains(t, err.Error(), "cannot send request to empty nodeID") } @@ -235,7 +235,7 @@ func TestAppRequestOnShutdown(t *testing.T) { called bool ) sender := testAppSender{ - sendAppRequestFn: func(nodes set.Set[ids.NodeID], requestID uint32, requestBytes []byte) error { + sendAppRequestFn: func(nodes set.Set[ids.GenericNodeID], requestID uint32, requestBytes []byte) error { wg.Add(1) go func() { called = true @@ -249,9 +249,9 @@ func TestAppRequestOnShutdown(t *testing.T) { codecManager := buildCodec(t, HelloRequest{}, HelloResponse{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) client := NewNetworkClient(net) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() require.NoError(t, net.Connected(context.Background(), nodeID, defaultPeerVersion)) requestMessage := HelloRequest{Message: "this is a request"} @@ -272,13 +272,13 @@ func TestAppRequestOnShutdown(t *testing.T) { func TestRequestMinVersion(t *testing.T) { callNum := uint32(0) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() codecManager := buildCodec(t, TestMessage{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) var net Network sender := testAppSender{ - sendAppRequestFn: func(nodes set.Set[ids.NodeID], reqID uint32, messageBytes []byte) error { + sendAppRequestFn: func(nodes set.Set[ids.GenericNodeID], reqID uint32, messageBytes []byte) error { atomic.AddUint32(&callNum, 1) assert.True(t, nodes.Contains(nodeID), "request nodes should contain expected nodeID") assert.Len(t, nodes, 1, "request nodes should contain exactly one node") @@ -298,7 +298,7 @@ func TestRequestMinVersion(t *testing.T) { } // passing nil as codec works because the net.AppRequest is never called - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 16) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 16) client := NewNetworkClient(net) requestMessage := TestMessage{Message: "this is a request"} requestBytes, err := message.RequestToBytes(codecManager, requestMessage) @@ -342,10 +342,10 @@ func TestOnRequestHonoursDeadline(t *testing.T) { var net Network responded := false sender := testAppSender{ - sendAppRequestFn: func(nodes set.Set[ids.NodeID], reqID uint32, message []byte) error { + sendAppRequestFn: func(nodes set.Set[ids.GenericNodeID], reqID uint32, message []byte) error { return nil }, - sendAppResponseFn: func(nodeID ids.NodeID, reqID uint32, message []byte) error { + sendAppResponseFn: func(nodeID ids.GenericNodeID, reqID uint32, message []byte) error { responded = true return nil }, @@ -361,9 +361,9 @@ func TestOnRequestHonoursDeadline(t *testing.T) { processingDuration: 500 * time.Millisecond, } - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) net.SetRequestHandler(requestHandler) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() requestHandler.response, err = marshalStruct(codecManager, TestMessage{Message: "hi there"}) assert.NoError(t, err) @@ -383,7 +383,7 @@ func TestGossip(t *testing.T) { codecManager := buildCodec(t, HelloGossip{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() var clientNetwork Network wg := &sync.WaitGroup{} sentGossip := false @@ -401,7 +401,7 @@ func TestGossip(t *testing.T) { } gossipHandler := &testGossipHandler{} - clientNetwork = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + clientNetwork = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) clientNetwork.SetGossipHandler(gossipHandler) assert.NoError(t, clientNetwork.Connected(context.Background(), nodeID, defaultPeerVersion)) @@ -424,11 +424,11 @@ func TestHandleInvalidMessages(t *testing.T) { codecManager := buildCodec(t, HelloGossip{}, TestMessage{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() requestID := uint32(1) sender := testAppSender{} - clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) clientNetwork.SetGossipHandler(message.NoopMempoolGossipHandler{}) clientNetwork.SetRequestHandler(&testRequestHandler{}) @@ -473,11 +473,11 @@ func TestNetworkPropagatesRequestHandlerError(t *testing.T) { codecManager := buildCodec(t, TestMessage{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() requestID := uint32(1) sender := testAppSender{} - clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) clientNetwork.SetGossipHandler(message.NoopMempoolGossipHandler{}) clientNetwork.SetRequestHandler(&testRequestHandler{err: errors.New("fail")}) // Return an error from the request handler @@ -517,7 +517,7 @@ func TestCrossChainAppRequest(t *testing.T) { }, } - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) net.SetCrossChainRequestHandler(&testCrossChainHandler{codec: crossChainCodecManager}) client := NewNetworkClient(net) @@ -572,7 +572,7 @@ func TestCrossChainRequestRequestsRoutingAndResponse(t *testing.T) { codecManager := buildCodec(t, TestMessage{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) net.SetCrossChainRequestHandler(&testCrossChainHandler{codec: crossChainCodecManager}) client := NewNetworkClient(net) @@ -632,7 +632,7 @@ func TestCrossChainRequestOnShutdown(t *testing.T) { } codecManager := buildCodec(t, TestMessage{}) crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{}) - net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1) + net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyGenericNodeID, 1, 1) client := NewNetworkClient(net) exampleCrossChainRequest := ExampleCrossChainRequest{ @@ -656,17 +656,17 @@ func TestCrossChainRequestOnShutdown(t *testing.T) { func TestNetworkAppRequestAfterShutdown(t *testing.T) { require := require.New(t) - net := NewNetwork(nil, nil, nil, nil, ids.EmptyNodeID, 1, 0) + net := NewNetwork(nil, nil, nil, nil, ids.EmptyGenericNodeID, 1, 0) net.Shutdown() - require.NoError(net.SendAppRequest(ids.GenerateTestNodeID(), nil, nil)) - require.NoError(net.SendAppRequest(ids.GenerateTestNodeID(), nil, nil)) + require.NoError(net.SendAppRequest(ids.GenerateTestGenericNodeID(), nil, nil)) + require.NoError(net.SendAppRequest(ids.GenerateTestGenericNodeID(), nil, nil)) } func TestNetworkCrossChainAppRequestAfterShutdown(t *testing.T) { require := require.New(t) - net := NewNetwork(nil, nil, nil, nil, ids.EmptyNodeID, 0, 1) + net := NewNetwork(nil, nil, nil, nil, ids.EmptyGenericNodeID, 0, 1) net.Shutdown() require.NoError(net.SendCrossChainRequest(ids.GenerateTestID(), nil, nil)) @@ -676,10 +676,10 @@ func TestNetworkCrossChainAppRequestAfterShutdown(t *testing.T) { func TestSDKRouting(t *testing.T) { require := require.New(t) sender := &testAppSender{ - sendAppRequestFn: func(s set.Set[ids.NodeID], u uint32, bytes []byte) error { + sendAppRequestFn: func(s set.Set[ids.GenericNodeID], u uint32, bytes []byte) error { return nil }, - sendAppResponseFn: func(id ids.NodeID, u uint32, bytes []byte) error { + sendAppResponseFn: func(id ids.GenericNodeID, u uint32, bytes []byte) error { return nil }, } @@ -697,18 +697,18 @@ func TestSDKRouting(t *testing.T) { nil, networkCodec, crossChainCodec, - ids.EmptyNodeID, + ids.EmptyGenericNodeID, 1, 1, ) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() foobar := append([]byte{byte(protocol)}, []byte("foobar")...) err = network.AppRequest(context.Background(), nodeID, 0, time.Time{}, foobar) require.NoError(err) require.True(handler.appRequested) - err = network.AppResponse(context.Background(), ids.GenerateTestNodeID(), 0, foobar) + err = network.AppResponse(context.Background(), ids.GenerateTestGenericNodeID(), 0, foobar) require.ErrorIs(err, p2p.ErrUnrequestedResponse) err = network.AppRequestFailed(context.Background(), nodeID, 0) @@ -742,8 +742,8 @@ func buildCrossChainRequest(codec codec.Manager, msg message.CrossChainRequest) type testAppSender struct { sendCrossChainAppRequestFn func(ids.ID, uint32, []byte) error sendCrossChainAppResponseFn func(ids.ID, uint32, []byte) error - sendAppRequestFn func(set.Set[ids.NodeID], uint32, []byte) error - sendAppResponseFn func(ids.NodeID, uint32, []byte) error + sendAppRequestFn func(set.Set[ids.GenericNodeID], uint32, []byte) error + sendAppResponseFn func(ids.GenericNodeID, uint32, []byte) error sendAppGossipFn func([]byte) error } @@ -755,15 +755,15 @@ func (t testAppSender) SendCrossChainAppResponse(_ context.Context, chainID ids. return t.sendCrossChainAppResponseFn(chainID, requestID, appResponseBytes) } -func (t testAppSender) SendAppGossipSpecific(context.Context, set.Set[ids.NodeID], []byte) error { +func (t testAppSender) SendAppGossipSpecific(context.Context, set.Set[ids.GenericNodeID], []byte) error { panic("not implemented") } -func (t testAppSender) SendAppRequest(_ context.Context, nodeIDs set.Set[ids.NodeID], requestID uint32, message []byte) error { +func (t testAppSender) SendAppRequest(_ context.Context, nodeIDs set.Set[ids.GenericNodeID], requestID uint32, message []byte) error { return t.sendAppRequestFn(nodeIDs, requestID, message) } -func (t testAppSender) SendAppResponse(_ context.Context, nodeID ids.NodeID, requestID uint32, message []byte) error { +func (t testAppSender) SendAppResponse(_ context.Context, nodeID ids.GenericNodeID, requestID uint32, message []byte) error { return t.sendAppResponseFn(nodeID, requestID, message) } @@ -775,7 +775,7 @@ type HelloRequest struct { Message string `serialize:"true"` } -func (h HelloRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { +func (h HelloRequest) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { // casting is only necessary for test since RequestHandler does not implement anything at the moment return handler.(TestRequestHandler).HandleHelloRequest(ctx, nodeID, requestID, &h) } @@ -788,7 +788,7 @@ type GreetingRequest struct { Greeting string `serialize:"true"` } -func (g GreetingRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { +func (g GreetingRequest) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { // casting is only necessary for test since RequestHandler does not implement anything at the moment return handler.(TestRequestHandler).HandleGreetingRequest(ctx, nodeID, requestID, &g) } @@ -806,8 +806,8 @@ type GreetingResponse struct { } type TestRequestHandler interface { - HandleHelloRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request *HelloRequest) ([]byte, error) - HandleGreetingRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request *GreetingRequest) ([]byte, error) + HandleHelloRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request *HelloRequest) ([]byte, error) + HandleGreetingRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request *GreetingRequest) ([]byte, error) } type HelloGreetingRequestHandler struct { @@ -815,11 +815,11 @@ type HelloGreetingRequestHandler struct { codec codec.Manager } -func (h *HelloGreetingRequestHandler) HandleHelloRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request *HelloRequest) ([]byte, error) { +func (h *HelloGreetingRequestHandler) HandleHelloRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request *HelloRequest) ([]byte, error) { return h.codec.Marshal(message.Version, HelloResponse{Response: "Hi"}) } -func (h *HelloGreetingRequestHandler) HandleGreetingRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request *GreetingRequest) ([]byte, error) { +func (h *HelloGreetingRequestHandler) HandleGreetingRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request *GreetingRequest) ([]byte, error) { return h.codec.Marshal(message.Version, GreetingResponse{Greet: "Hey there"}) } @@ -827,7 +827,7 @@ type TestMessage struct { Message string `serialize:"true"` } -func (t TestMessage) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { +func (t TestMessage) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler message.RequestHandler) ([]byte, error) { return handler.(*testRequestHandler).handleTestRequest(ctx, nodeID, requestID, &t) } @@ -839,7 +839,7 @@ type HelloGossip struct { Msg string `serialize:"true"` } -func (h HelloGossip) Handle(handler message.GossipHandler, nodeID ids.NodeID) error { +func (h HelloGossip) Handle(handler message.GossipHandler, nodeID ids.GenericNodeID) error { return handler.HandleEthTxs(nodeID, message.EthTxsGossip{}) } @@ -854,16 +854,16 @@ func (h HelloGossip) Bytes() []byte { type testGossipHandler struct { received bool - nodeID ids.NodeID + nodeID ids.GenericNodeID } -func (t *testGossipHandler) HandleAtomicTx(nodeID ids.NodeID, msg message.AtomicTxGossip) error { +func (t *testGossipHandler) HandleAtomicTx(nodeID ids.GenericNodeID, msg message.AtomicTxGossip) error { t.received = true t.nodeID = nodeID return nil } -func (t *testGossipHandler) HandleEthTxs(nodeID ids.NodeID, msg message.EthTxsGossip) error { +func (t *testGossipHandler) HandleEthTxs(nodeID ids.GenericNodeID, msg message.EthTxsGossip) error { t.received = true t.nodeID = nodeID return nil @@ -877,7 +877,7 @@ type testRequestHandler struct { err error } -func (r *testRequestHandler) handleTestRequest(ctx context.Context, _ ids.NodeID, _ uint32, _ *TestMessage) ([]byte, error) { +func (r *testRequestHandler) handleTestRequest(ctx context.Context, _ ids.GenericNodeID, _ uint32, _ *TestMessage) ([]byte, error) { r.calls++ select { case <-time.After(r.processingDuration): @@ -921,12 +921,12 @@ type testSDKHandler struct { appRequested bool } -func (t *testSDKHandler) AppGossip(ctx context.Context, nodeID ids.NodeID, gossipBytes []byte) error { +func (t *testSDKHandler) AppGossip(ctx context.Context, nodeID ids.GenericNodeID, gossipBytes []byte) error { // TODO implement me panic("implement me") } -func (t *testSDKHandler) AppRequest(ctx context.Context, nodeID ids.NodeID, deadline time.Time, requestBytes []byte) ([]byte, error) { +func (t *testSDKHandler) AppRequest(ctx context.Context, nodeID ids.GenericNodeID, deadline time.Time, requestBytes []byte) ([]byte, error) { t.appRequested = true return nil, nil } diff --git a/peer/peer_tracker.go b/peer/peer_tracker.go index 8070005ca6..8d26439ba0 100644 --- a/peer/peer_tracker.go +++ b/peer/peer_tracker.go @@ -42,23 +42,23 @@ type peerInfo struct { // to new peers with an exponentially decaying probability. // Note: is not thread safe, caller must handle synchronization. type peerTracker struct { - peers map[ids.NodeID]*peerInfo // all peers we are connected to + peers map[ids.GenericNodeID]*peerInfo // all peers we are connected to numTrackedPeers metrics.Gauge - trackedPeers set.Set[ids.NodeID] // peers that we have sent a request to + trackedPeers set.Set[ids.GenericNodeID] // peers that we have sent a request to numResponsivePeers metrics.Gauge - responsivePeers set.Set[ids.NodeID] // peers that responded to the last request they were sent - bandwidthHeap utils_math.AveragerHeap // tracks bandwidth peers are responding with + responsivePeers set.Set[ids.GenericNodeID] // peers that responded to the last request they were sent + bandwidthHeap utils_math.AveragerHeap // tracks bandwidth peers are responding with averageBandwidthMetric metrics.GaugeFloat64 averageBandwidth utils_math.Averager } func NewPeerTracker() *peerTracker { return &peerTracker{ - peers: make(map[ids.NodeID]*peerInfo), + peers: make(map[ids.GenericNodeID]*peerInfo), numTrackedPeers: metrics.GetOrRegisterGauge("net_tracked_peers", nil), - trackedPeers: make(set.Set[ids.NodeID]), + trackedPeers: make(set.Set[ids.GenericNodeID]), numResponsivePeers: metrics.GetOrRegisterGauge("net_responsive_peers", nil), - responsivePeers: make(set.Set[ids.NodeID]), + responsivePeers: make(set.Set[ids.GenericNodeID]), bandwidthHeap: utils_math.NewMaxAveragerHeap(), averageBandwidthMetric: metrics.GetOrRegisterGaugeFloat64("net_average_bandwidth", nil), averageBandwidth: utils_math.NewAverager(0, bandwidthHalflife, time.Now()), @@ -80,12 +80,12 @@ func (p *peerTracker) shouldTrackNewPeer() bool { return rand.Float64() < newPeerProbability } -// getResponsivePeer returns a random [ids.NodeID] of a peer that has responded +// getResponsivePeer returns a random [ids.GenericNodeID] of a peer that has responded // to a request. -func (p *peerTracker) getResponsivePeer() (ids.NodeID, utils_math.Averager, bool) { +func (p *peerTracker) getResponsivePeer() (ids.GenericNodeID, utils_math.Averager, bool) { nodeID, ok := p.responsivePeers.Peek() if !ok { - return ids.NodeID{}, nil, false + return ids.EmptyGenericNodeID, nil, false } averager, ok := p.bandwidthHeap.Remove(nodeID) if ok { @@ -95,7 +95,7 @@ func (p *peerTracker) getResponsivePeer() (ids.NodeID, utils_math.Averager, bool return nodeID, peer.bandwidth, true } -func (p *peerTracker) GetAnyPeer(minVersion *version.Application) (ids.NodeID, bool) { +func (p *peerTracker) GetAnyPeer(minVersion *version.Application) (ids.GenericNodeID, bool) { if p.shouldTrackNewPeer() { for nodeID := range p.peers { // if minVersion is specified and peer's version is less, skip @@ -111,7 +111,7 @@ func (p *peerTracker) GetAnyPeer(minVersion *version.Application) (ids.NodeID, b } } var ( - nodeID ids.NodeID + nodeID ids.GenericNodeID ok bool random bool averager utils_math.Averager @@ -130,12 +130,12 @@ func (p *peerTracker) GetAnyPeer(minVersion *version.Application) (ids.NodeID, b return p.trackedPeers.Peek() } -func (p *peerTracker) TrackPeer(nodeID ids.NodeID) { +func (p *peerTracker) TrackPeer(nodeID ids.GenericNodeID) { p.trackedPeers.Add(nodeID) p.numTrackedPeers.Update(int64(p.trackedPeers.Len())) } -func (p *peerTracker) TrackBandwidth(nodeID ids.NodeID, bandwidth float64) { +func (p *peerTracker) TrackBandwidth(nodeID ids.GenericNodeID, bandwidth float64) { peer := p.peers[nodeID] if peer == nil { // we're not connected to this peer, nothing to do here @@ -162,7 +162,7 @@ func (p *peerTracker) TrackBandwidth(nodeID ids.NodeID, bandwidth float64) { } // Connected should be called when [nodeID] connects to this node -func (p *peerTracker) Connected(nodeID ids.NodeID, nodeVersion *version.Application) { +func (p *peerTracker) Connected(nodeID ids.GenericNodeID, nodeVersion *version.Application) { if peer := p.peers[nodeID]; peer != nil { // Peer is already connected, update the version if it has changed. // Log a warning message since the consensus engine should never call Connected on a peer @@ -185,7 +185,7 @@ func (p *peerTracker) Connected(nodeID ids.NodeID, nodeVersion *version.Applicat } // Disconnected should be called when [nodeID] disconnects from this node -func (p *peerTracker) Disconnected(nodeID ids.NodeID) { +func (p *peerTracker) Disconnected(nodeID ids.GenericNodeID) { p.bandwidthHeap.Remove(nodeID) p.trackedPeers.Remove(nodeID) p.numTrackedPeers.Update(int64(p.trackedPeers.Len())) diff --git a/plugin/evm/gossiper.go b/plugin/evm/gossiper.go index 0f7d1a287d..6ea275ceb5 100644 --- a/plugin/evm/gossiper.go +++ b/plugin/evm/gossiper.go @@ -420,7 +420,7 @@ func NewGossipHandler(vm *VM, stats GossipReceivedStats) *GossipHandler { } } -func (h *GossipHandler) HandleAtomicTx(nodeID ids.NodeID, msg message.AtomicTxGossip) error { +func (h *GossipHandler) HandleAtomicTx(nodeID ids.GenericNodeID, msg message.AtomicTxGossip) error { log.Trace( "AppGossip called with AtomicTxGossip", "peerID", nodeID, @@ -476,7 +476,7 @@ func (h *GossipHandler) HandleAtomicTx(nodeID ids.NodeID, msg message.AtomicTxGo return nil } -func (h *GossipHandler) HandleEthTxs(nodeID ids.NodeID, msg message.EthTxsGossip) error { +func (h *GossipHandler) HandleEthTxs(nodeID ids.GenericNodeID, msg message.EthTxsGossip) error { log.Trace( "AppGossip called with EthTxsGossip", "peerID", nodeID, diff --git a/plugin/evm/gossiper_atomic_gossiping_test.go b/plugin/evm/gossiper_atomic_gossiping_test.go index 6ded11967b..04a53a1055 100644 --- a/plugin/evm/gossiper_atomic_gossiping_test.go +++ b/plugin/evm/gossiper_atomic_gossiping_test.go @@ -26,7 +26,7 @@ func TestMempoolAtmTxsIssueTxAndGossiping(t *testing.T) { defer func() { assert.NoError(vm.Shutdown(context.Background())) }() - assert.NoError(vm.Connected(context.Background(), ids.GenerateTestNodeID(), nil)) + assert.NoError(vm.Connected(context.Background(), ids.GenerateTestGenericNodeID(), nil)) // Create conflicting transactions importTxs := createImportTxOptions(t, vm, sharedMemory) @@ -90,7 +90,7 @@ func TestMempoolAtmTxsAppGossipHandling(t *testing.T) { assert.NoError(vm.Shutdown(context.Background())) }() - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() var ( txGossiped int @@ -105,7 +105,7 @@ func TestMempoolAtmTxsAppGossipHandling(t *testing.T) { txGossiped++ return nil } - sender.SendAppRequestF = func(context.Context, set.Set[ids.NodeID], uint32, []byte) error { + sender.SendAppRequestF = func(context.Context, set.Set[ids.GenericNodeID], uint32, []byte) error { txRequested = true return nil } @@ -177,7 +177,7 @@ func TestMempoolAtmTxsAppGossipHandlingDiscardedTx(t *testing.T) { txGossiped++ return nil } - sender.SendAppRequestF = func(context.Context, set.Set[ids.NodeID], uint32, []byte) error { + sender.SendAppRequestF = func(context.Context, set.Set[ids.GenericNodeID], uint32, []byte) error { txRequested = true return nil } @@ -196,7 +196,7 @@ func TestMempoolAtmTxsAppGossipHandlingDiscardedTx(t *testing.T) { // Gossip the transaction to the VM and ensure that it is not added to the mempool // and is not re-gossipped. - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() msg := message.AtomicTxGossip{ Tx: tx.SignedBytes(), } @@ -214,7 +214,7 @@ func TestMempoolAtmTxsAppGossipHandlingDiscardedTx(t *testing.T) { // Gossip the transaction that conflicts with the originally // discarded tx and ensure it is accepted into the mempool and gossipped // to the network. - nodeID = ids.GenerateTestNodeID() + nodeID = ids.GenerateTestGenericNodeID() msg = message.AtomicTxGossip{ Tx: conflictingTx.SignedBytes(), } diff --git a/plugin/evm/gossiper_eth_gossiping_test.go b/plugin/evm/gossiper_eth_gossiping_test.go index ae36e793e8..0355244541 100644 --- a/plugin/evm/gossiper_eth_gossiping_test.go +++ b/plugin/evm/gossiper_eth_gossiping_test.go @@ -260,7 +260,7 @@ func TestMempoolEthTxsAppGossipHandling(t *testing.T) { txRequested bool ) sender.CantSendAppGossip = false - sender.SendAppRequestF = func(context.Context, set.Set[ids.NodeID], uint32, []byte) error { + sender.SendAppRequestF = func(context.Context, set.Set[ids.GenericNodeID], uint32, []byte) error { txRequested = true return nil } @@ -282,7 +282,7 @@ func TestMempoolEthTxsAppGossipHandling(t *testing.T) { msgBytes, err := message.BuildGossipMessage(vm.networkCodec, msg) assert.NoError(err) - nodeID := ids.GenerateTestNodeID() + nodeID := ids.GenerateTestGenericNodeID() err = vm.AppGossip(context.Background(), nodeID, msgBytes) assert.NoError(err) assert.False(txRequested, "tx should not be requested") diff --git a/plugin/evm/message/block_request.go b/plugin/evm/message/block_request.go index f1f353f2f7..0dc3d4b3d6 100644 --- a/plugin/evm/message/block_request.go +++ b/plugin/evm/message/block_request.go @@ -30,7 +30,7 @@ func (b BlockRequest) String() string { ) } -func (b BlockRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler RequestHandler) ([]byte, error) { +func (b BlockRequest) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler RequestHandler) ([]byte, error) { return handler.HandleBlockRequest(ctx, nodeID, requestID, b) } diff --git a/plugin/evm/message/code_request.go b/plugin/evm/message/code_request.go index cd1ffef844..0079168c64 100644 --- a/plugin/evm/message/code_request.go +++ b/plugin/evm/message/code_request.go @@ -28,7 +28,7 @@ func (c CodeRequest) String() string { return fmt.Sprintf("CodeRequest(Hashes=%s)", strings.Join(hashStrs, ", ")) } -func (c CodeRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler RequestHandler) ([]byte, error) { +func (c CodeRequest) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler RequestHandler) ([]byte, error) { return handler.HandleCodeRequest(ctx, nodeID, requestID, c) } diff --git a/plugin/evm/message/handler.go b/plugin/evm/message/handler.go index ad8f766521..5aaec360a8 100644 --- a/plugin/evm/message/handler.go +++ b/plugin/evm/message/handler.go @@ -19,18 +19,18 @@ var ( // GossipHandler handles incoming gossip messages type GossipHandler interface { - HandleAtomicTx(nodeID ids.NodeID, msg AtomicTxGossip) error - HandleEthTxs(nodeID ids.NodeID, msg EthTxsGossip) error + HandleAtomicTx(nodeID ids.GenericNodeID, msg AtomicTxGossip) error + HandleEthTxs(nodeID ids.GenericNodeID, msg EthTxsGossip) error } type NoopMempoolGossipHandler struct{} -func (NoopMempoolGossipHandler) HandleAtomicTx(nodeID ids.NodeID, msg AtomicTxGossip) error { +func (NoopMempoolGossipHandler) HandleAtomicTx(nodeID ids.GenericNodeID, msg AtomicTxGossip) error { log.Debug("dropping unexpected AtomicTxGossip message", "peerID", nodeID) return nil } -func (NoopMempoolGossipHandler) HandleEthTxs(nodeID ids.NodeID, msg EthTxsGossip) error { +func (NoopMempoolGossipHandler) HandleEthTxs(nodeID ids.GenericNodeID, msg EthTxsGossip) error { log.Debug("dropping unexpected EthTxsGossip message", "peerID", nodeID) return nil } @@ -41,10 +41,10 @@ func (NoopMempoolGossipHandler) HandleEthTxs(nodeID ids.NodeID, msg EthTxsGossip // on this struct. // Also see GossipHandler for implementation style. type RequestHandler interface { - HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) - HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) - HandleBlockRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request BlockRequest) ([]byte, error) - HandleCodeRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, codeRequest CodeRequest) ([]byte, error) + HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) + HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) + HandleBlockRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request BlockRequest) ([]byte, error) + HandleCodeRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, codeRequest CodeRequest) ([]byte, error) } // ResponseHandler handles response for a sent request @@ -58,19 +58,19 @@ type ResponseHandler interface { type NoopRequestHandler struct{} -func (NoopRequestHandler) HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) { +func (NoopRequestHandler) HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) { return nil, nil } -func (NoopRequestHandler) HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) { +func (NoopRequestHandler) HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest LeafsRequest) ([]byte, error) { return nil, nil } -func (NoopRequestHandler) HandleBlockRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, request BlockRequest) ([]byte, error) { +func (NoopRequestHandler) HandleBlockRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, request BlockRequest) ([]byte, error) { return nil, nil } -func (NoopRequestHandler) HandleCodeRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, codeRequest CodeRequest) ([]byte, error) { +func (NoopRequestHandler) HandleCodeRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, codeRequest CodeRequest) ([]byte, error) { return nil, nil } diff --git a/plugin/evm/message/handler_test.go b/plugin/evm/message/handler_test.go index 2c1c4a6aef..a9820391b5 100644 --- a/plugin/evm/message/handler_test.go +++ b/plugin/evm/message/handler_test.go @@ -15,12 +15,12 @@ type CounterHandler struct { AtomicTx, EthTxs int } -func (h *CounterHandler) HandleAtomicTx(ids.NodeID, AtomicTxGossip) error { +func (h *CounterHandler) HandleAtomicTx(ids.GenericNodeID, AtomicTxGossip) error { h.AtomicTx++ return nil } -func (h *CounterHandler) HandleEthTxs(ids.NodeID, EthTxsGossip) error { +func (h *CounterHandler) HandleEthTxs(ids.GenericNodeID, EthTxsGossip) error { h.EthTxs++ return nil } @@ -31,7 +31,7 @@ func TestHandleAtomicTx(t *testing.T) { handler := CounterHandler{} msg := AtomicTxGossip{} - err := msg.Handle(&handler, ids.EmptyNodeID) + err := msg.Handle(&handler, ids.EmptyGenericNodeID) assert.NoError(err) assert.Equal(1, handler.AtomicTx) assert.Zero(handler.EthTxs) @@ -43,7 +43,7 @@ func TestHandleEthTxs(t *testing.T) { handler := CounterHandler{} msg := EthTxsGossip{} - err := msg.Handle(&handler, ids.EmptyNodeID) + err := msg.Handle(&handler, ids.EmptyGenericNodeID) assert.NoError(err) assert.Zero(handler.AtomicTx) assert.Equal(1, handler.EthTxs) @@ -54,9 +54,9 @@ func TestNoopHandler(t *testing.T) { handler := NoopMempoolGossipHandler{} - err := handler.HandleAtomicTx(ids.EmptyNodeID, AtomicTxGossip{}) + err := handler.HandleAtomicTx(ids.EmptyGenericNodeID, AtomicTxGossip{}) assert.NoError(err) - err = handler.HandleEthTxs(ids.EmptyNodeID, EthTxsGossip{}) + err = handler.HandleEthTxs(ids.EmptyGenericNodeID, EthTxsGossip{}) assert.NoError(err) } diff --git a/plugin/evm/message/leafs_request.go b/plugin/evm/message/leafs_request.go index 8338c4db36..5f77ffbdd2 100644 --- a/plugin/evm/message/leafs_request.go +++ b/plugin/evm/message/leafs_request.go @@ -56,7 +56,7 @@ func (l LeafsRequest) String() string { ) } -func (l LeafsRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler RequestHandler) ([]byte, error) { +func (l LeafsRequest) Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler RequestHandler) ([]byte, error) { switch l.NodeType { case StateTrieNode: return handler.HandleStateTrieLeafsRequest(ctx, nodeID, requestID, l) diff --git a/plugin/evm/message/leafs_request_test.go b/plugin/evm/message/leafs_request_test.go index fab4d4fa0b..557e8b7127 100644 --- a/plugin/evm/message/leafs_request_test.go +++ b/plugin/evm/message/leafs_request_test.go @@ -164,7 +164,7 @@ func TestLeafsRequestValidation(t *testing.T) { } for name, test := range tests { t.Run(name, func(t *testing.T) { - _, _ = test.request.Handle(context.Background(), ids.GenerateTestNodeID(), 1, mockRequestHandler) + _, _ = test.request.Handle(context.Background(), ids.GenerateTestGenericNodeID(), 1, mockRequestHandler) test.assertResponse(t) mockRequestHandler.reset() }) @@ -180,22 +180,22 @@ type mockHandler struct { handleCodeRequestCalled bool } -func (m *mockHandler) HandleStateTrieLeafsRequest(context.Context, ids.NodeID, uint32, LeafsRequest) ([]byte, error) { +func (m *mockHandler) HandleStateTrieLeafsRequest(context.Context, ids.GenericNodeID, uint32, LeafsRequest) ([]byte, error) { m.handleStateTrieCalled = true return nil, nil } -func (m *mockHandler) HandleAtomicTrieLeafsRequest(context.Context, ids.NodeID, uint32, LeafsRequest) ([]byte, error) { +func (m *mockHandler) HandleAtomicTrieLeafsRequest(context.Context, ids.GenericNodeID, uint32, LeafsRequest) ([]byte, error) { m.handleAtomicTrieCalled = true return nil, nil } -func (m *mockHandler) HandleBlockRequest(context.Context, ids.NodeID, uint32, BlockRequest) ([]byte, error) { +func (m *mockHandler) HandleBlockRequest(context.Context, ids.GenericNodeID, uint32, BlockRequest) ([]byte, error) { m.handleBlockRequestCalled = true return nil, nil } -func (m *mockHandler) HandleCodeRequest(context.Context, ids.NodeID, uint32, CodeRequest) ([]byte, error) { +func (m *mockHandler) HandleCodeRequest(context.Context, ids.GenericNodeID, uint32, CodeRequest) ([]byte, error) { m.handleCodeRequestCalled = true return nil, nil } diff --git a/plugin/evm/message/message.go b/plugin/evm/message/message.go index c8c80a0343..8464258f8d 100644 --- a/plugin/evm/message/message.go +++ b/plugin/evm/message/message.go @@ -33,14 +33,14 @@ type GossipMessage interface { fmt.Stringer // Handle this gossip message with the gossip handler. - Handle(handler GossipHandler, nodeID ids.NodeID) error + Handle(handler GossipHandler, nodeID ids.GenericNodeID) error } type AtomicTxGossip struct { Tx []byte `serialize:"true"` } -func (msg AtomicTxGossip) Handle(handler GossipHandler, nodeID ids.NodeID) error { +func (msg AtomicTxGossip) Handle(handler GossipHandler, nodeID ids.GenericNodeID) error { return handler.HandleAtomicTx(nodeID, msg) } @@ -52,7 +52,7 @@ type EthTxsGossip struct { Txs []byte `serialize:"true"` } -func (msg EthTxsGossip) Handle(handler GossipHandler, nodeID ids.NodeID) error { +func (msg EthTxsGossip) Handle(handler GossipHandler, nodeID ids.GenericNodeID) error { return handler.HandleEthTxs(nodeID, msg) } diff --git a/plugin/evm/message/request.go b/plugin/evm/message/request.go index 6b5831f9df..6283f9c1c7 100644 --- a/plugin/evm/message/request.go +++ b/plugin/evm/message/request.go @@ -18,7 +18,7 @@ type Request interface { // Handle allows `Request` to call respective methods on handler to handle // this particular request type - Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, handler RequestHandler) ([]byte, error) + Handle(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, handler RequestHandler) ([]byte, error) } // BytesToRequest unmarshals the given requestBytes into Request object diff --git a/plugin/evm/syncervm_test.go b/plugin/evm/syncervm_test.go index dab0fd505a..159fe4fe79 100644 --- a/plugin/evm/syncervm_test.go +++ b/plugin/evm/syncervm_test.go @@ -83,7 +83,7 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) { syncableInterval: 256, stateSyncMinBlocks: 50, // must be less than [syncableInterval] to perform sync syncMode: block.StateSyncStatic, - responseIntercept: func(syncerVM *VM, nodeID ids.NodeID, requestID uint32, response []byte) { + responseIntercept: func(syncerVM *VM, nodeID ids.GenericNodeID, requestID uint32, response []byte) { lock.Lock() defer lock.Unlock() @@ -117,7 +117,7 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) { syncDisabledVM := &VM{} appSender := &commonEng.SenderTest{T: t} appSender.SendAppGossipF = func(context.Context, []byte) error { return nil } - appSender.SendAppRequestF = func(ctx context.Context, nodeSet set.Set[ids.NodeID], requestID uint32, request []byte) error { + appSender.SendAppRequestF = func(ctx context.Context, nodeSet set.Set[ids.GenericNodeID], requestID uint32, request []byte) error { nodeID, hasItem := nodeSet.Pop() if !hasItem { t.Fatal("expected nodeSet to contain at least 1 nodeID") @@ -205,7 +205,7 @@ func TestStateSyncToggleEnabledToDisabled(t *testing.T) { } // override [serverVM]'s SendAppResponse function to trigger AppResponse on [syncerVM] - vmSetup.serverAppSender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error { + vmSetup.serverAppSender.SendAppResponseF = func(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, response []byte) error { if test.responseIntercept == nil { go syncReEnabledVM.AppResponse(ctx, nodeID, requestID, response) } else { @@ -240,7 +240,7 @@ func TestVMShutdownWhileSyncing(t *testing.T) { syncableInterval: 256, stateSyncMinBlocks: 50, // must be less than [syncableInterval] to perform sync syncMode: block.StateSyncStatic, - responseIntercept: func(syncerVM *VM, nodeID ids.NodeID, requestID uint32, response []byte) { + responseIntercept: func(syncerVM *VM, nodeID ids.GenericNodeID, requestID uint32, response []byte) { lock.Lock() defer lock.Unlock() @@ -358,7 +358,7 @@ func createSyncServerAndClientVMs(t *testing.T, test syncTest) *syncVMSetup { syncerVM.atomicTrie.(*atomicTrie).commitInterval = test.syncableInterval // override [serverVM]'s SendAppResponse function to trigger AppResponse on [syncerVM] - serverAppSender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error { + serverAppSender.SendAppResponseF = func(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, response []byte) error { if test.responseIntercept == nil { go syncerVM.AppResponse(ctx, nodeID, requestID, response) } else { @@ -378,7 +378,7 @@ func createSyncServerAndClientVMs(t *testing.T, test syncTest) *syncVMSetup { ) // override [syncerVM]'s SendAppRequest function to trigger AppRequest on [serverVM] - syncerAppSender.SendAppRequestF = func(ctx context.Context, nodeSet set.Set[ids.NodeID], requestID uint32, request []byte) error { + syncerAppSender.SendAppRequestF = func(ctx context.Context, nodeSet set.Set[ids.GenericNodeID], requestID uint32, request []byte) error { nodeID, hasItem := nodeSet.Pop() require.True(hasItem, "expected nodeSet to contain at least 1 nodeID") err := serverVM.AppRequest(ctx, nodeID, requestID, time.Now().Add(1*time.Second), request) @@ -431,7 +431,7 @@ func (vm *shutdownOnceVM) Shutdown(ctx context.Context) error { // syncTest contains both the actual VMs as well as the parameters with the expected output. type syncTest struct { - responseIntercept func(vm *VM, nodeID ids.NodeID, requestID uint32, response []byte) + responseIntercept func(vm *VM, nodeID ids.GenericNodeID, requestID uint32, response []byte) stateSyncMinBlocks uint64 syncableInterval uint64 syncMode block.StateSyncMode diff --git a/plugin/evm/tx_gossip_test.go b/plugin/evm/tx_gossip_test.go index ac3872a03a..b76702eeae 100644 --- a/plugin/evm/tx_gossip_test.go +++ b/plugin/evm/tx_gossip_test.go @@ -83,14 +83,14 @@ func TestEthTxGossip(t *testing.T) { wg := &sync.WaitGroup{} - requestingNodeID := ids.GenerateTestNodeID() - peerSender.EXPECT().SendAppRequest(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(ctx context.Context, nodeIDs set.Set[ids.NodeID], requestID uint32, appRequestBytes []byte) { + requestingNodeID := ids.GenerateTestGenericNodeID() + peerSender.EXPECT().SendAppRequest(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(ctx context.Context, nodeIDs set.Set[ids.GenericNodeID], requestID uint32, appRequestBytes []byte) { go func() { require.NoError(vm.AppRequest(ctx, requestingNodeID, requestID, time.Time{}, appRequestBytes)) }() }).AnyTimes() - sender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, appResponseBytes []byte) error { + sender.SendAppResponseF = func(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, appResponseBytes []byte) error { go func() { require.NoError(router.AppResponse(ctx, nodeID, requestID, appResponseBytes)) }() @@ -103,13 +103,13 @@ func TestEthTxGossip(t *testing.T) { mockValidatorSet.GetCurrentHeightF = func(context.Context) (uint64, error) { return 0, nil } - mockValidatorSet.GetValidatorSetF = func(context.Context, uint64, ids.ID) (map[ids.NodeID]*validators.GetValidatorOutput, error) { - return map[ids.NodeID]*validators.GetValidatorOutput{requestingNodeID: nil}, nil + mockValidatorSet.GetValidatorSetF = func(context.Context, uint64, ids.ID) (map[ids.GenericNodeID]*validators.GetValidatorOutput, error) { + return map[ids.GenericNodeID]*validators.GetValidatorOutput{requestingNodeID: nil}, nil } // Ask the VM for any new transactions. We should get nothing at first. wg.Add(1) - onResponse := func(_ context.Context, nodeID ids.NodeID, responseBytes []byte, err error) { + onResponse := func(_ context.Context, nodeID ids.GenericNodeID, responseBytes []byte, err error) { require.NoError(err) response := &sdk.PullGossipResponse{} @@ -117,7 +117,7 @@ func TestEthTxGossip(t *testing.T) { require.Empty(response.Gossip) wg.Done() } - require.NoError(client.AppRequest(context.Background(), set.Set[ids.NodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) + require.NoError(client.AppRequest(context.Background(), set.Set[ids.GenericNodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) wg.Wait() // Issue a tx to the VM @@ -136,7 +136,7 @@ func TestEthTxGossip(t *testing.T) { // Ask the VM for new transactions. We should get the newly issued tx. wg.Add(1) - onResponse = func(_ context.Context, nodeID ids.NodeID, responseBytes []byte, err error) { + onResponse = func(_ context.Context, nodeID ids.GenericNodeID, responseBytes []byte, err error) { require.NoError(err) response := &sdk.PullGossipResponse{} @@ -149,7 +149,7 @@ func TestEthTxGossip(t *testing.T) { wg.Done() } - require.NoError(client.AppRequest(context.Background(), set.Set[ids.NodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) + require.NoError(client.AppRequest(context.Background(), set.Set[ids.GenericNodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) wg.Wait() } @@ -186,15 +186,15 @@ func TestAtomicTxGossip(t *testing.T) { requestBytes, err := proto.Marshal(request) require.NoError(err) - requestingNodeID := ids.GenerateTestNodeID() + requestingNodeID := ids.GenerateTestGenericNodeID() wg := &sync.WaitGroup{} - peerSender.EXPECT().SendAppRequest(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(ctx context.Context, nodeIDs set.Set[ids.NodeID], requestID uint32, appRequestBytes []byte) { + peerSender.EXPECT().SendAppRequest(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(ctx context.Context, nodeIDs set.Set[ids.GenericNodeID], requestID uint32, appRequestBytes []byte) { go func() { require.NoError(vm.AppRequest(ctx, requestingNodeID, requestID, time.Time{}, appRequestBytes)) }() }).AnyTimes() - sender.SendAppResponseF = func(ctx context.Context, nodeID ids.NodeID, requestID uint32, appResponseBytes []byte) error { + sender.SendAppResponseF = func(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, appResponseBytes []byte) error { go func() { require.NoError(router.AppResponse(ctx, nodeID, requestID, appResponseBytes)) }() @@ -207,13 +207,13 @@ func TestAtomicTxGossip(t *testing.T) { mockValidatorSet.GetCurrentHeightF = func(context.Context) (uint64, error) { return 0, nil } - mockValidatorSet.GetValidatorSetF = func(context.Context, uint64, ids.ID) (map[ids.NodeID]*validators.GetValidatorOutput, error) { - return map[ids.NodeID]*validators.GetValidatorOutput{requestingNodeID: nil}, nil + mockValidatorSet.GetValidatorSetF = func(context.Context, uint64, ids.ID) (map[ids.GenericNodeID]*validators.GetValidatorOutput, error) { + return map[ids.GenericNodeID]*validators.GetValidatorOutput{requestingNodeID: nil}, nil } // Ask the VM for any new transactions. We should get nothing at first. wg.Add(1) - onResponse := func(_ context.Context, nodeID ids.NodeID, responseBytes []byte, err error) { + onResponse := func(_ context.Context, nodeID ids.GenericNodeID, responseBytes []byte, err error) { require.NoError(err) response := &sdk.PullGossipResponse{} @@ -221,7 +221,7 @@ func TestAtomicTxGossip(t *testing.T) { require.Empty(response.Gossip) wg.Done() } - require.NoError(client.AppRequest(context.Background(), set.Set[ids.NodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) + require.NoError(client.AppRequest(context.Background(), set.Set[ids.GenericNodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) wg.Wait() // issue a new tx to the vm @@ -236,7 +236,7 @@ func TestAtomicTxGossip(t *testing.T) { // Ask the VM for new transactions. We should get the newly issued tx. wg.Add(1) - onResponse = func(_ context.Context, nodeID ids.NodeID, responseBytes []byte, err error) { + onResponse = func(_ context.Context, nodeID ids.GenericNodeID, responseBytes []byte, err error) { require.NoError(err) response := &sdk.PullGossipResponse{} @@ -249,6 +249,6 @@ func TestAtomicTxGossip(t *testing.T) { wg.Done() } - require.NoError(client.AppRequest(context.Background(), set.Set[ids.NodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) + require.NoError(client.AppRequest(context.Background(), set.Set[ids.GenericNodeID]{vm.ctx.NodeID: struct{}{}}, requestBytes, onResponse)) wg.Wait() } diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go index ce41f18445..edd4f666a7 100644 --- a/plugin/evm/vm.go +++ b/plugin/evm/vm.go @@ -664,12 +664,12 @@ func (vm *VM) initializeChain(lastAcceptedHash common.Hash) error { func (vm *VM) initializeStateSyncClient(lastAcceptedHeight uint64) error { stateSyncEnabled := vm.stateSyncEnabled(lastAcceptedHeight) // parse nodeIDs from state sync IDs in vm config - var stateSyncIDs []ids.NodeID + var stateSyncIDs []ids.GenericNodeID if stateSyncEnabled && len(vm.config.StateSyncIDs) > 0 { nodeIDs := strings.Split(vm.config.StateSyncIDs, ",") - stateSyncIDs = make([]ids.NodeID, len(nodeIDs)) + stateSyncIDs = make([]ids.GenericNodeID, len(nodeIDs)) for i, nodeIDString := range nodeIDs { - nodeID, err := ids.NodeIDFromString(nodeIDString) + nodeID, err := ids.GenericNodeIDFromString(nodeIDString) if err != nil { return fmt.Errorf("failed to parse %s as NodeID: %w", nodeIDString, err) } @@ -1074,11 +1074,6 @@ func (vm *VM) initBlockBuilding() error { if err != nil { return err } - ethTxGossiper = gossip.ValidatorGossiper{ - Gossiper: ethTxGossiper, - NodeID: vm.ctx.NodeID, - Validators: vm.validators, - } vm.shutdownWg.Add(1) go func() { @@ -1096,11 +1091,6 @@ func (vm *VM) initBlockBuilding() error { if err != nil { return err } - atomicTxGossiper = gossip.ValidatorGossiper{ - Gossiper: atomicTxGossiper, - NodeID: vm.ctx.NodeID, - Validators: vm.validators, - } vm.shutdownWg.Add(1) go func() { diff --git a/plugin/evm/vm_test.go b/plugin/evm/vm_test.go index bd3792df26..75c7f0b606 100644 --- a/plugin/evm/vm_test.go +++ b/plugin/evm/vm_test.go @@ -145,7 +145,7 @@ func BuildGenesisTest(t *testing.T, genesisJSON string) []byte { func NewContext() *snow.Context { ctx := snow.DefaultContextTest() - ctx.NodeID = ids.GenerateTestNodeID() + ctx.NodeID = ids.GenerateTestGenericNodeID() ctx.NetworkID = testNetworkID ctx.ChainID = testCChainID ctx.AVAXAssetID = testAvaxAssetID diff --git a/sync/client/client.go b/sync/client/client.go index ef7533af34..0ea9341d3c 100644 --- a/sync/client/client.go +++ b/sync/client/client.go @@ -78,7 +78,7 @@ type parseResponseFn func(codec codec.Manager, request message.Request, response type client struct { networkClient peer.NetworkClient codec codec.Manager - stateSyncNodes []ids.NodeID + stateSyncNodes []ids.GenericNodeID stateSyncNodeIdx uint32 stats stats.ClientSyncerStats blockParser EthBlockParser @@ -88,7 +88,7 @@ type ClientConfig struct { NetworkClient peer.NetworkClient Codec codec.Manager Stats stats.ClientSyncerStats - StateSyncNodeIDs []ids.NodeID + StateSyncNodeIDs []ids.GenericNodeID BlockParser EthBlockParser } @@ -321,7 +321,7 @@ func (c *client) get(ctx context.Context, request message.Request, parseFn parse var ( response []byte - nodeID ids.NodeID + nodeID ids.GenericNodeID start time.Time = time.Now() ) if len(c.stateSyncNodes) == 0 { @@ -338,7 +338,7 @@ func (c *client) get(ctx context.Context, request message.Request, parseFn parse if err != nil { ctx := make([]interface{}, 0, 8) - if nodeID != ids.EmptyNodeID { + if nodeID != ids.EmptyGenericNodeID { ctx = append(ctx, "nodeID", nodeID) } ctx = append(ctx, "attempt", attempt, "request", request, "err", err) diff --git a/sync/client/client_test.go b/sync/client/client_test.go index d2a514e27b..021ecd727a 100644 --- a/sync/client/client_test.go +++ b/sync/client/client_test.go @@ -190,7 +190,7 @@ func TestGetBlocks(t *testing.T) { Parents: 16, }, getResponse: func(t *testing.T, request message.BlockRequest) []byte { - response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal(err) } @@ -213,7 +213,7 @@ func TestGetBlocks(t *testing.T) { }, getResponse: func(t *testing.T, request message.BlockRequest) []byte { request.Parents -= 5 - response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal(err) } @@ -247,7 +247,7 @@ func TestGetBlocks(t *testing.T) { Parents: 16, }, getResponse: func(t *testing.T, request message.BlockRequest) []byte { - response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatalf("failed to get block response: %s", err) } @@ -273,7 +273,7 @@ func TestGetBlocks(t *testing.T) { Parents: 16, }, getResponse: func(t *testing.T, _ message.BlockRequest) []byte { - response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestNodeID(), 1, message.BlockRequest{ + response, err := blocksRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, message.BlockRequest{ Hash: blocks[99].Hash(), Height: 99, Parents: 16, @@ -437,7 +437,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -464,7 +464,7 @@ func TestGetLeafs(t *testing.T) { getResponse: func(t *testing.T, request message.LeafsRequest) []byte { modifiedRequest := request modifiedRequest.Limit = leafsLimit - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, modifiedRequest) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, modifiedRequest) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -485,7 +485,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -510,7 +510,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -535,7 +535,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -559,7 +559,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -584,7 +584,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -615,7 +615,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -628,7 +628,7 @@ func TestGetLeafs(t *testing.T) { } modifiedRequest := request modifiedRequest.Start = leafResponse.Keys[1] - modifiedResponse, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 2, modifiedRequest) + modifiedResponse, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 2, modifiedRequest) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -645,7 +645,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -676,7 +676,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -708,7 +708,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -739,7 +739,7 @@ func TestGetLeafs(t *testing.T) { NodeType: message.StateTrieNode, }, getResponse: func(t *testing.T, request message.LeafsRequest) []byte { - response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + response, err := handler.OnLeafsRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) if err != nil { t.Fatal("unexpected error in calling leafs request handler", err) } @@ -817,7 +817,7 @@ func TestGetLeafsRetries(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - goodResponse, responseErr := handler.OnLeafsRequest(ctx, ids.GenerateTestNodeID(), 1, request) + goodResponse, responseErr := handler.OnLeafsRequest(ctx, ids.GenerateTestGenericNodeID(), 1, request) assert.NoError(t, responseErr) mockNetClient.mockResponse(1, nil, goodResponse) @@ -855,11 +855,11 @@ func TestGetLeafsRetries(t *testing.T) { func TestStateSyncNodes(t *testing.T) { mockNetClient := &mockNetwork{} - stateSyncNodes := []ids.NodeID{ - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), - ids.GenerateTestNodeID(), + stateSyncNodes := []ids.GenericNodeID{ + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), + ids.GenerateTestGenericNodeID(), } client := NewClient(&ClientConfig{ NetworkClient: mockNetClient, diff --git a/sync/client/mock_client.go b/sync/client/mock_client.go index 038bdf73bf..003aa844e1 100644 --- a/sync/client/mock_client.go +++ b/sync/client/mock_client.go @@ -57,7 +57,7 @@ func NewMockClient( } func (ml *MockClient) GetLeafs(ctx context.Context, request message.LeafsRequest) (message.LeafsResponse, error) { - response, err := ml.leafsHandler.OnLeafsRequest(ctx, ids.GenerateTestNodeID(), 1, request) + response, err := ml.leafsHandler.OnLeafsRequest(ctx, ids.GenerateTestGenericNodeID(), 1, request) if err != nil { return message.LeafsResponse{}, err } @@ -84,7 +84,7 @@ func (ml *MockClient) GetCode(ctx context.Context, hashes []common.Hash) ([][]by panic("no code handler for mock client") } request := message.CodeRequest{Hashes: hashes} - response, err := ml.codesHandler.OnCodeRequest(ctx, ids.GenerateTestNodeID(), 1, request) + response, err := ml.codesHandler.OnCodeRequest(ctx, ids.GenerateTestGenericNodeID(), 1, request) if err != nil { return nil, err } @@ -116,7 +116,7 @@ func (ml *MockClient) GetBlocks(ctx context.Context, blockHash common.Hash, heig Height: height, Parents: numParents, } - response, err := ml.blocksHandler.OnBlockRequest(ctx, ids.GenerateTestNodeID(), 1, request) + response, err := ml.blocksHandler.OnBlockRequest(ctx, ids.GenerateTestGenericNodeID(), 1, request) if err != nil { return nil, err } diff --git a/sync/client/mock_network.go b/sync/client/mock_network.go index 43152cd452..b96fe05cc2 100644 --- a/sync/client/mock_network.go +++ b/sync/client/mock_network.go @@ -25,21 +25,21 @@ type mockNetwork struct { response [][]byte callback func() // callback is called prior to processing each mock call requestErr []error - nodesRequested []ids.NodeID + nodesRequested []ids.GenericNodeID } -func (t *mockNetwork) SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.NodeID, error) { +func (t *mockNetwork) SendAppRequestAny(minVersion *version.Application, request []byte) ([]byte, ids.GenericNodeID, error) { if len(t.response) == 0 { - return nil, ids.EmptyNodeID, errors.New("no mocked response to return in mockNetwork") + return nil, ids.EmptyGenericNodeID, errors.New("no mocked response to return in mockNetwork") } t.requestedVersion = minVersion response, err := t.processMock(request) - return response, ids.EmptyNodeID, err + return response, ids.EmptyGenericNodeID, err } -func (t *mockNetwork) SendAppRequest(nodeID ids.NodeID, request []byte) ([]byte, error) { +func (t *mockNetwork) SendAppRequest(nodeID ids.GenericNodeID, request []byte) ([]byte, error) { if len(t.response) == 0 { return nil, errors.New("no mocked response to return in mockNetwork") } @@ -96,4 +96,4 @@ func (t *mockNetwork) mockResponses(callback func(), responses ...[]byte) { t.numCalls = 0 } -func (t *mockNetwork) TrackBandwidth(ids.NodeID, float64) {} +func (t *mockNetwork) TrackBandwidth(ids.GenericNodeID, float64) {} diff --git a/sync/handlers/block_request.go b/sync/handlers/block_request.go index a631c61c21..c5f566b089 100644 --- a/sync/handlers/block_request.go +++ b/sync/handlers/block_request.go @@ -42,7 +42,7 @@ func NewBlockRequestHandler(blockProvider BlockProvider, codec codec.Manager, ha // Expects returned errors to be treated as FATAL // Returns empty response or subset of requested blocks if ctx expires during fetch // Assumes ctx is active -func (b *BlockRequestHandler) OnBlockRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, blockRequest message.BlockRequest) ([]byte, error) { +func (b *BlockRequestHandler) OnBlockRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, blockRequest message.BlockRequest) ([]byte, error) { startTime := time.Now() b.stats.IncBlockRequest() diff --git a/sync/handlers/block_request_test.go b/sync/handlers/block_request_test.go index 4930d3f230..217091ff37 100644 --- a/sync/handlers/block_request_test.go +++ b/sync/handlers/block_request_test.go @@ -107,7 +107,7 @@ func TestBlockRequestHandler(t *testing.T) { } blockRequest.Parents = test.requestedParents - responseBytes, err := blockRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestNodeID(), 1, blockRequest) + responseBytes, err := blockRequestHandler.OnBlockRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, blockRequest) if err != nil { t.Fatal("unexpected error during block request", err) } @@ -182,7 +182,7 @@ func TestBlockRequestHandlerCtxExpires(t *testing.T) { } blockRequestHandler := NewBlockRequestHandler(blockProvider, message.Codec, stats.NewNoopHandlerStats()) - responseBytes, err := blockRequestHandler.OnBlockRequest(ctx, ids.GenerateTestNodeID(), 1, message.BlockRequest{ + responseBytes, err := blockRequestHandler.OnBlockRequest(ctx, ids.GenerateTestGenericNodeID(), 1, message.BlockRequest{ Hash: blocks[10].Hash(), Height: blocks[10].NumberU64(), Parents: uint16(8), diff --git a/sync/handlers/code_request.go b/sync/handlers/code_request.go index 3f9e358030..1ec3315116 100644 --- a/sync/handlers/code_request.go +++ b/sync/handlers/code_request.go @@ -41,7 +41,7 @@ func NewCodeRequestHandler(codeReader ethdb.KeyValueReader, codec codec.Manager, // Returns nothing if code hash is not found // Expects returned errors to be treated as FATAL // Assumes ctx is active -func (n *CodeRequestHandler) OnCodeRequest(_ context.Context, nodeID ids.NodeID, requestID uint32, codeRequest message.CodeRequest) ([]byte, error) { +func (n *CodeRequestHandler) OnCodeRequest(_ context.Context, nodeID ids.GenericNodeID, requestID uint32, codeRequest message.CodeRequest) ([]byte, error) { startTime := time.Now() n.stats.IncCodeRequest() diff --git a/sync/handlers/code_request_test.go b/sync/handlers/code_request_test.go index 15c20f2dfe..f99ec9a72d 100644 --- a/sync/handlers/code_request_test.go +++ b/sync/handlers/code_request_test.go @@ -91,7 +91,7 @@ func TestCodeRequestHandler(t *testing.T) { t.Run(name, func(t *testing.T) { request, expectedResponse := test.setup() - responseBytes, err := codeRequestHandler.OnCodeRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) + responseBytes, err := codeRequestHandler.OnCodeRequest(context.Background(), ids.GenerateTestGenericNodeID(), 1, request) assert.NoError(t, err) // If the expected resposne is empty, assert that the handler returns an empty response and return early. diff --git a/sync/handlers/handler.go b/sync/handlers/handler.go index 6254801cad..f051d90ce6 100644 --- a/sync/handlers/handler.go +++ b/sync/handlers/handler.go @@ -56,18 +56,18 @@ func NewSyncHandler( } } -func (s *syncHandler) HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { +func (s *syncHandler) HandleStateTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { return s.stateTrieLeafsRequestHandler.OnLeafsRequest(ctx, nodeID, requestID, leafsRequest) } -func (s *syncHandler) HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { +func (s *syncHandler) HandleAtomicTrieLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { return s.atomicTrieLeafsRequestHandler.OnLeafsRequest(ctx, nodeID, requestID, leafsRequest) } -func (s *syncHandler) HandleBlockRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, blockRequest message.BlockRequest) ([]byte, error) { +func (s *syncHandler) HandleBlockRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, blockRequest message.BlockRequest) ([]byte, error) { return s.blockRequestHandler.OnBlockRequest(ctx, nodeID, requestID, blockRequest) } -func (s *syncHandler) HandleCodeRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, codeRequest message.CodeRequest) ([]byte, error) { +func (s *syncHandler) HandleCodeRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, codeRequest message.CodeRequest) ([]byte, error) { return s.codeRequestHandler.OnCodeRequest(ctx, nodeID, requestID, codeRequest) } diff --git a/sync/handlers/leafs_request.go b/sync/handlers/leafs_request.go index d57f567571..4bb0797936 100644 --- a/sync/handlers/leafs_request.go +++ b/sync/handlers/leafs_request.go @@ -73,7 +73,7 @@ func NewLeafsRequestHandler(trieDB *trie.Database, snapshotProvider SnapshotProv // Expects NodeType to be one of message.AtomicTrieNode or message.StateTrieNode // Returns nothing if NodeType is invalid or requested trie root is not found // Assumes ctx is active -func (lrh *LeafsRequestHandler) OnLeafsRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { +func (lrh *LeafsRequestHandler) OnLeafsRequest(ctx context.Context, nodeID ids.GenericNodeID, requestID uint32, leafsRequest message.LeafsRequest) ([]byte, error) { startTime := time.Now() lrh.stats.IncLeafsRequest() diff --git a/sync/handlers/leafs_request_test.go b/sync/handlers/leafs_request_test.go index 37d7f4e135..9eec29b8d0 100644 --- a/sync/handlers/leafs_request_test.go +++ b/sync/handlers/leafs_request_test.go @@ -690,7 +690,7 @@ func TestLeafsRequestHandler_OnLeafsRequest(t *testing.T) { snapshotProvider.Snapshot = nil // reset the snapshot to nil }) - response, err := leafsHandler.OnLeafsRequest(ctx, ids.GenerateTestNodeID(), 1, request) + response, err := leafsHandler.OnLeafsRequest(ctx, ids.GenerateTestGenericNodeID(), 1, request) test.assertResponseFn(t, request, response, err) }) }