/// <inheritdoc /> public override Task InitializeAsync() { NetworkPeerConnectionParameters connectionParameters = this.connectionManager.Parameters; INetworkPeerBehavior defaultConsensusManagerBehavior = connectionParameters.TemplateBehaviors.FirstOrDefault(behavior => behavior is ConsensusManagerBehavior); if (defaultConsensusManagerBehavior == null) { throw new MissingServiceException(typeof(ConsensusManagerBehavior), "Missing expected ConsensusManagerBehavior."); } // Replace default ConsensusManagerBehavior with ProvenHeadersConsensusManagerBehavior connectionParameters.TemplateBehaviors.Remove(defaultConsensusManagerBehavior); connectionParameters.TemplateBehaviors.Add(new PoAConsensusManagerBehavior(this.chain, this.initialBlockDownloadState, this.consensusManager, this.peerBanning, this.loggerFactory)); this.federationManager.Initialize(); if (((PoAConsensusOptions)this.network.Consensus.Options).VotingEnabled) { this.votingManager.Initialize(); } this.miner.InitializeMining(); return(Task.CompletedTask); }
/// <summary>Replaces default <see cref="PoABlockStoreBehavior"/> with <see cref="PoABlockStoreBehavior"/>.</summary> private void ReplaceBlockStoreBehavior(NetworkPeerConnectionParameters connectionParameters) { INetworkPeerBehavior defaultBlockStoreBehavior = connectionParameters.TemplateBehaviors.FirstOrDefault(behavior => behavior is BlockStoreBehavior); if (defaultBlockStoreBehavior == null) { throw new MissingServiceException(typeof(BlockStoreBehavior), "Missing expected BlockStoreBehavior."); } connectionParameters.TemplateBehaviors.Remove(defaultBlockStoreBehavior); connectionParameters.TemplateBehaviors.Add(new PoABlockStoreBehavior(this.chainIndexer, this.chainState, this.loggerFactory, this.consensusManager, this.blockStoreQueue)); }
/// <summary>Replaces default <see cref="ConsensusManagerBehavior"/> with <see cref="PoAConsensusManagerBehavior"/>.</summary> private void ReplaceConsensusManagerBehavior(NetworkPeerConnectionParameters connectionParameters) { INetworkPeerBehavior defaultConsensusManagerBehavior = connectionParameters.TemplateBehaviors.FirstOrDefault(behavior => behavior is ConsensusManagerBehavior); if (defaultConsensusManagerBehavior == null) { throw new MissingServiceException(typeof(ConsensusManagerBehavior), "Missing expected ConsensusManagerBehavior."); } connectionParameters.TemplateBehaviors.Remove(defaultConsensusManagerBehavior); connectionParameters.TemplateBehaviors.Add(new PoAConsensusManagerBehavior(this.chainIndexer, this.initialBlockDownloadState, this.consensusManager, this.peerBanning, this.loggerFactory)); }