mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
change p2p network code
This commit is contained in:
+2
-2
@@ -88,7 +88,7 @@ type network struct {
|
||||
outstandingRequestHandlers map[uint32]message.ResponseHandler // maps avalanchego requestID => message.ResponseHandler
|
||||
activeAppRequests *semaphore.Weighted // controls maximum number of active outbound requests
|
||||
activeCrossChainRequests *semaphore.Weighted // controls maximum number of active outbound cross chain requests
|
||||
router *p2p.Router // handles messages being sent to the generic networking SDK
|
||||
router *p2p.Network // handles messages being sent to the generic networking SDK
|
||||
appSender common.AppSender // avalanchego AppSender for sending messages
|
||||
codec codec.Manager // Codec used for parsing messages
|
||||
crossChainCodec codec.Manager // Codec used for parsing cross chain messages
|
||||
@@ -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.Network, appSender common.AppSender, codec codec.Manager, crossChainCodec codec.Manager, self ids.NodeID, maxActiveAppRequests int64, maxActiveCrossChainRequests int64) Network {
|
||||
return &network{
|
||||
router: router,
|
||||
appSender: appSender,
|
||||
|
||||
+17
-17
@@ -57,7 +57,7 @@ var (
|
||||
|
||||
func TestNetworkDoesNotConnectToItself(t *testing.T) {
|
||||
selfNodeID := ids.GenerateTestNodeID()
|
||||
n := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), nil, nil, nil, selfNodeID, 1, 1)
|
||||
n := NewNetwork(p2p.NewNetwork(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())
|
||||
}
|
||||
@@ -93,7 +93,7 @@ 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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 16, 16)
|
||||
net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager})
|
||||
client := NewNetworkClient(net)
|
||||
nodeID := ids.GenerateTestNodeID()
|
||||
@@ -145,7 +145,7 @@ func TestAppRequestOnCtxCancellation(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
net := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net := NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager})
|
||||
|
||||
requestMessage := HelloRequest{Message: "this is a request"}
|
||||
@@ -197,7 +197,7 @@ 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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 16, 16)
|
||||
net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager})
|
||||
client := NewNetworkClient(net)
|
||||
|
||||
@@ -277,7 +277,7 @@ 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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
client := NewNetworkClient(net)
|
||||
nodeID := ids.GenerateTestNodeID()
|
||||
require.NoError(t, net.Connected(context.Background(), nodeID, defaultPeerVersion))
|
||||
@@ -326,7 +326,7 @@ func TestAppRequestAnyOnCtxCancellation(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
net := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net := NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetRequestHandler(&HelloGreetingRequestHandler{codec: codecManager})
|
||||
assert.NoError(t,
|
||||
net.Connected(
|
||||
@@ -403,7 +403,7 @@ func TestRequestMinVersion(t *testing.T) {
|
||||
|
||||
// passing nil as codec works because the net.AppRequest is never called
|
||||
crossChainCodecManager := buildCodec(t, ExampleCrossChainRequest{}, ExampleCrossChainResponse{})
|
||||
net = NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 16)
|
||||
net = NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 16)
|
||||
client := NewNetworkClient(net)
|
||||
requestMessage := TestMessage{Message: "this is a request"}
|
||||
requestBytes, err := message.RequestToBytes(codecManager, requestMessage)
|
||||
@@ -467,7 +467,7 @@ 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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetRequestHandler(requestHandler)
|
||||
nodeID := ids.GenerateTestNodeID()
|
||||
|
||||
@@ -507,7 +507,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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
clientNetwork.SetGossipHandler(gossipHandler)
|
||||
|
||||
assert.NoError(t, clientNetwork.Connected(context.Background(), nodeID, defaultPeerVersion))
|
||||
@@ -534,7 +534,7 @@ func TestHandleInvalidMessages(t *testing.T) {
|
||||
requestID := uint32(1)
|
||||
sender := testAppSender{}
|
||||
|
||||
clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
clientNetwork := NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
clientNetwork.SetGossipHandler(message.NoopMempoolGossipHandler{})
|
||||
clientNetwork.SetRequestHandler(&testRequestHandler{})
|
||||
|
||||
@@ -583,7 +583,7 @@ func TestNetworkPropagatesRequestHandlerError(t *testing.T) {
|
||||
requestID := uint32(1)
|
||||
sender := testAppSender{}
|
||||
|
||||
clientNetwork := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
clientNetwork := NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
clientNetwork.SetGossipHandler(message.NoopMempoolGossipHandler{})
|
||||
clientNetwork.SetRequestHandler(&testRequestHandler{err: errors.New("fail")}) // Return an error from the request handler
|
||||
|
||||
@@ -623,7 +623,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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetCrossChainRequestHandler(&testCrossChainHandler{codec: crossChainCodecManager})
|
||||
client := NewNetworkClient(net)
|
||||
|
||||
@@ -658,7 +658,7 @@ func TestCrossChainAppRequestOnCtxCancellation(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
net := NewNetwork(p2p.NewRouter(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net := NewNetwork(p2p.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetCrossChainRequestHandler(&testCrossChainHandler{codec: crossChainCodecManager})
|
||||
|
||||
exampleCrossChainRequest := ExampleCrossChainRequest{
|
||||
@@ -710,7 +710,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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
net.SetCrossChainRequestHandler(&testCrossChainHandler{codec: crossChainCodecManager})
|
||||
client := NewNetworkClient(net)
|
||||
|
||||
@@ -770,7 +770,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.NewNetwork(logging.NoLog{}, nil, prometheus.NewRegistry(), ""), sender, codecManager, crossChainCodecManager, ids.EmptyNodeID, 1, 1)
|
||||
client := NewNetworkClient(net)
|
||||
|
||||
exampleCrossChainRequest := ExampleCrossChainRequest{
|
||||
@@ -823,8 +823,8 @@ func TestSDKRouting(t *testing.T) {
|
||||
}
|
||||
protocol := 0
|
||||
handler := &testSDKHandler{}
|
||||
router := p2p.NewRouter(logging.NoLog{}, sender, prometheus.NewRegistry(), "")
|
||||
_, err := router.RegisterAppProtocol(uint64(protocol), handler, nil)
|
||||
router := p2p.NewNetwork(logging.NoLog{}, sender, prometheus.NewRegistry(), "")
|
||||
_, err := router.NewAppProtocol(uint64(protocol), handler)
|
||||
require.NoError(err)
|
||||
|
||||
networkCodec := codec.NewManager(0)
|
||||
|
||||
@@ -41,10 +41,10 @@ func TestTxGossip(t *testing.T) {
|
||||
// sender for the peer requesting gossip from [vm]
|
||||
ctrl := gomock.NewController(t)
|
||||
peerSender := common.NewMockSender(ctrl)
|
||||
router := p2p.NewRouter(logging.NoLog{}, peerSender, prometheus.NewRegistry(), "")
|
||||
router := p2p.NewNetwork(logging.NoLog{}, peerSender, prometheus.NewRegistry(), "")
|
||||
|
||||
// we're only making client requests, so we don't need a server handler
|
||||
client, err := router.RegisterAppProtocol(txGossipProtocol, nil, nil)
|
||||
client, err := router.NewAppProtocol(txGossipProtocol, nil)
|
||||
require.NoError(err)
|
||||
|
||||
emptyBloomFilter, err := gossip.NewBloomFilter(txGossipBloomMaxItems, txGossipBloomFalsePositiveRate)
|
||||
|
||||
+5
-5
@@ -233,7 +233,7 @@ type VM struct {
|
||||
networkCodec codec.Manager
|
||||
|
||||
validators *p2p.Validators
|
||||
router *p2p.Router
|
||||
network *p2p.Network
|
||||
|
||||
// Metrics
|
||||
multiGatherer avalanchegoMetrics.MultiGatherer
|
||||
@@ -460,10 +460,10 @@ func (vm *VM) Initialize(
|
||||
}
|
||||
|
||||
// initialize peer network
|
||||
vm.validators = p2p.NewValidators(vm.ctx.Log, vm.ctx.SubnetID, vm.ctx.ValidatorState, maxValidatorSetStaleness)
|
||||
vm.router = p2p.NewRouter(vm.ctx.Log, appSender, vm.sdkMetrics, "p2p")
|
||||
vm.network = p2p.NewNetwork(vm.ctx.Log, appSender, vm.sdkMetrics, "p2p")
|
||||
vm.validators = p2p.NewValidators(vm.network.Peers, vm.ctx.Log, vm.ctx.SubnetID, vm.ctx.ValidatorState, maxValidatorSetStaleness)
|
||||
vm.networkCodec = message.Codec
|
||||
vm.Network = peer.NewNetwork(vm.router, appSender, vm.networkCodec, message.CrossChainCodec, chainCtx.NodeID, vm.config.MaxOutboundActiveRequests, vm.config.MaxOutboundActiveCrossChainRequests)
|
||||
vm.Network = peer.NewNetwork(vm.network, appSender, vm.networkCodec, message.CrossChainCodec, chainCtx.NodeID, vm.config.MaxOutboundActiveRequests, vm.config.MaxOutboundActiveCrossChainRequests)
|
||||
vm.client = peer.NewNetworkClient(vm.Network)
|
||||
|
||||
// initialize warp backend
|
||||
@@ -687,7 +687,7 @@ func (vm *VM) initBlockBuilding() error {
|
||||
Handler: txGossipHandler,
|
||||
},
|
||||
}
|
||||
txGossipClient, err := vm.router.RegisterAppProtocol(txGossipProtocol, txGossipHandler, vm.validators)
|
||||
txGossipClient, err := vm.network.NewAppProtocol(txGossipProtocol, txGossipHandler)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user