Ejemplo n.º 1
0
        public void Setup()
        {
            _svc = Build.A.SerializationService().WithEth().TestObject;

            NetworkDiagTracer.IsEnabled = true;

            _session = Substitute.For <ISession>();
            Node node = new(TestItem.PublicKeyA, new IPEndPoint(IPAddress.Broadcast, 30303));

            _session.Node.Returns(node);
            _syncManager     = Substitute.For <ISyncServer>();
            _transactionPool = Substitute.For <ITxPool>();
            _genesisBlock    = Build.A.Block.Genesis.TestObject;
            _syncManager.Head.Returns(_genesisBlock.Header);
            _syncManager.Genesis.Returns(_genesisBlock.Header);
            ITimerFactory timerFactory = Substitute.For <ITimerFactory>();

            _gossipPolicy = Substitute.For <IGossipPolicy>();
            _gossipPolicy.CanGossipBlocks.Returns(true);
            _gossipPolicy.ShouldGossipBlock(Arg.Any <BlockHeader>()).Returns(true);
            _gossipPolicy.ShouldDisconnectGossipingNodes.Returns(false);
            _handler = new Eth62ProtocolHandler(
                _session,
                _svc,
                new NodeStatsManager(timerFactory, LimboLogs.Instance),
                _syncManager,
                _transactionPool,
                _gossipPolicy,
                LimboLogs.Instance);
            _handler.Init();
        }
Ejemplo n.º 2
0
        public void Setup()
        {
            _svc = Build.A.SerializationService().WithEth66().TestObject;

            NetworkDiagTracer.IsEnabled = true;

            _session = Substitute.For <ISession>();
            Node node = new(TestItem.PublicKeyA, new IPEndPoint(IPAddress.Broadcast, 30303));

            _session.Node.Returns(node);
            _syncManager        = Substitute.For <ISyncServer>();
            _transactionPool    = Substitute.For <ITxPool>();
            _pooledTxsRequestor = Substitute.For <IPooledTxsRequestor>();
            _specProvider       = Substitute.For <ISpecProvider>();
            _gossipPolicy       = Substitute.For <IGossipPolicy>();
            _genesisBlock       = Build.A.Block.Genesis.TestObject;
            _syncManager.Head.Returns(_genesisBlock.Header);
            _syncManager.Genesis.Returns(_genesisBlock.Header);
            ITimerFactory timerFactory = Substitute.For <ITimerFactory>();

            _handler = new Eth66ProtocolHandler(
                _session,
                _svc,
                new NodeStatsManager(timerFactory, LimboLogs.Instance),
                _syncManager,
                _transactionPool,
                _pooledTxsRequestor,
                _gossipPolicy,
                _specProvider,
                LimboLogs.Instance);
            _handler.Init();
        }
Ejemplo n.º 3
0
 public MergeGossipPolicy(
     IGossipPolicy?apiGossipPolicy,
     IPoSSwitcher?poSSwitcher,
     IBlockCacheService blockCacheService)
 {
     _preMergeGossipPolicy = apiGossipPolicy ?? throw new ArgumentNullException(nameof(apiGossipPolicy));
     _poSSwitcher          = poSSwitcher ?? throw new ArgumentNullException(nameof(poSSwitcher));
     _blockCacheService    = blockCacheService ?? throw new ArgumentNullException(nameof(blockCacheService));
 }
Ejemplo n.º 4
0
 public Eth63ProtocolHandler(ISession session,
                             IMessageSerializationService serializer,
                             INodeStatsManager nodeStatsManager,
                             ISyncServer syncServer,
                             ITxPool txPool,
                             IGossipPolicy gossipPolicy,
                             ILogManager logManager) : base(session, serializer, nodeStatsManager, syncServer, txPool, gossipPolicy, logManager)
 {
     _nodeDataRequests = new MessageQueue <GetNodeDataMessage, byte[][]>(Send);
     _receiptsRequests = new MessageQueue <GetReceiptsMessage, TxReceipt[][]>(Send);
 }
 public Eth64ProtocolHandler(ISession session,
                             IMessageSerializationService serializer,
                             INodeStatsManager nodeStatsManager,
                             ISyncServer syncServer,
                             ITxPool txPool,
                             IGossipPolicy gossipPolicy,
                             ISpecProvider specProvider,
                             ILogManager logManager) : base(session, serializer, nodeStatsManager, syncServer, txPool, gossipPolicy, logManager)
 {
     _specProvider = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
 }
 public Eth65ProtocolHandler(ISession session,
                             IMessageSerializationService serializer,
                             INodeStatsManager nodeStatsManager,
                             ISyncServer syncServer,
                             ITxPool txPool,
                             IPooledTxsRequestor pooledTxsRequestor,
                             IGossipPolicy gossipPolicy,
                             ISpecProvider specProvider,
                             ILogManager logManager)
     : base(session, serializer, nodeStatsManager, syncServer, txPool, gossipPolicy, specProvider, logManager)
 {
     _pooledTxsRequestor = pooledTxsRequestor;
 }
            public Context()
            {
                _channel = Substitute.For <IChannel>();
                _channelHandlerContext = Substitute.For <IChannelHandlerContext>();
                _pipeline = Substitute.For <IChannelPipeline>();
                _channelHandlerContext.Channel.Returns(_channel);
                _channel.Pipeline.Returns(_pipeline);
                _pipeline.Get <ZeroPacketSplitter>().Returns(new ZeroPacketSplitter(LimboLogs.Instance));
                _packetSender = Substitute.For <IPacketSender>();
                _syncServer   = Substitute.For <ISyncServer>();
                _syncServer   = Substitute.For <ISyncServer>();
                _syncServer.Genesis.Returns(Build.A.Block.Genesis.TestObject.Header);
                _syncServer.Head.Returns(Build.A.BlockHeader.TestObject);
                _txPool             = Substitute.For <ITxPool>();
                _pooledTxsRequestor = Substitute.For <IPooledTxsRequestor>();
                _discoveryApp       = Substitute.For <IDiscoveryApp>();
                _serializer         = new MessageSerializationService();
                _rlpxHost           = Substitute.For <IRlpxHost>();
                _rlpxHost.LocalPort.Returns(_localPort);
                _rlpxHost.LocalNodeId.Returns(TestItem.PublicKeyA);
                ITimerFactory timerFactory = Substitute.For <ITimerFactory>();

                _nodeStatsManager = new NodeStatsManager(timerFactory, LimboLogs.Instance);
                _blockTree        = Substitute.For <IBlockTree>();
                _blockTree.ChainId.Returns(1ul);
                _blockTree.Genesis.Returns(Build.A.Block.Genesis.TestObject.Header);
                _protocolValidator = new ProtocolValidator(_nodeStatsManager, _blockTree, LimboLogs.Instance);
                _peerStorage       = Substitute.For <INetworkStorage>();
                _syncPeerPool      = Substitute.For <ISyncPeerPool>();
                _gossipPolicy      = Substitute.For <IGossipPolicy>();
                _manager           = new ProtocolsManager(
                    _syncPeerPool,
                    _syncServer,
                    _txPool,
                    _pooledTxsRequestor,
                    _discoveryApp,
                    _serializer,
                    _rlpxHost,
                    _nodeStatsManager,
                    _protocolValidator,
                    _peerStorage,
                    MainnetSpecProvider.Instance,
                    _gossipPolicy,
                    LimboLogs.Instance);

                _serializer.Register(new HelloMessageSerializer());
                _serializer.Register(new StatusMessageSerializer());
                _serializer.Register(new DisconnectMessageSerializer());
            }
Ejemplo n.º 8
0
 public Eth66ProtocolHandler(ISession session,
                             IMessageSerializationService serializer,
                             INodeStatsManager nodeStatsManager,
                             ISyncServer syncServer,
                             ITxPool txPool,
                             IPooledTxsRequestor pooledTxsRequestor,
                             IGossipPolicy gossipPolicy,
                             ISpecProvider specProvider,
                             ILogManager logManager)
     : base(session, serializer, nodeStatsManager, syncServer, txPool, pooledTxsRequestor, gossipPolicy, specProvider, logManager)
 {
     _headersRequests66  = new MessageQueue <GetBlockHeadersMessage, BlockHeader[]>(Send);
     _bodiesRequests66   = new MessageQueue <GetBlockBodiesMessage, BlockBody[]>(Send);
     _nodeDataRequests66 = new MessageQueue <GetNodeDataMessage, byte[][]>(Send);
     _receiptsRequests66 = new MessageQueue <GetReceiptsMessage, TxReceipt[][]>(Send);
     _pooledTxsRequestor = pooledTxsRequestor;
 }