public Peer(IPEndPoint remoteEndPoint, bool isSeed) { RemoteEndPoint = remoteEndPoint; IsSeed = isSeed; this.socket = new Socket(remoteEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); Receiver = new RemoteReceiver(this, this.socket, persistent: false); Sender = new RemoteSender(this.socket); this.blockMissCountMeasure = new CountMeasure(TimeSpan.FromMinutes(10)); WireNode(); }
public Peer(Socket socket, bool isSeed) { this.socket = socket; this.IsConnected = true; LocalEndPoint = (IPEndPoint)socket.LocalEndPoint; RemoteEndPoint = (IPEndPoint)socket.RemoteEndPoint; Receiver = new RemoteReceiver(this, this.socket, persistent: false); Sender = new RemoteSender(this.socket); this.blockMissCountMeasure = new CountMeasure(TimeSpan.FromMinutes(10)); WireNode(); }
public ChainStateWorker(WorkerConfig workerConfig, TargetChainWorker targetChainWorker, ChainStateBuilder chainStateBuilder, IBlockchainRules rules, CoreStorage coreStorage) : base("ChainStateWorker", workerConfig.initialNotify, workerConfig.minIdleTime, workerConfig.maxIdleTime) { this.rules = rules; this.coreStorage = coreStorage; this.blockProcessingDurationMeasure = new DurationMeasure(sampleCutoff: TimeSpan.FromMinutes(5)); this.blockMissCountMeasure = new CountMeasure(TimeSpan.FromSeconds(30)); this.targetChainWorker = targetChainWorker; this.chainStateBuilder = chainStateBuilder; this.currentChain = new Lazy<Chain>(() => this.chainStateBuilder.Chain); this.coreStorage.BlockInvalidated += HandleChanged; this.coreStorage.BlockTxesAdded += HandleChanged; this.coreStorage.BlockTxesRemoved += HandleChanged; this.coreStorage.ChainedHeaderAdded += HandleChanged; this.targetChainWorker.OnTargetChainChanged += HandleChanged; }