use of tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber in project teku by ConsenSys.
the class BeaconChainController method initActiveValidatorTracker.
protected void initActiveValidatorTracker() {
LOG.debug("BeaconChainController.initActiveValidatorTracker");
final StableSubnetSubscriber stableSubnetSubscriber = beaconConfig.p2pConfig().isSubscribeAllSubnetsEnabled() ? AllSubnetsSubscriber.create(attestationTopicSubscriber) : new ValidatorBasedStableSubnetSubscriber(attestationTopicSubscriber, new Random(), spec);
this.activeValidatorTracker = new ActiveValidatorTracker(stableSubnetSubscriber, spec);
}
use of tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber in project teku by ConsenSys.
the class BeaconChainController method initValidatorApiHandler.
public void initValidatorApiHandler() {
LOG.debug("BeaconChainController.initValidatorApiHandler()");
final BlockFactory blockFactory = new BlockFactory(spec, new BlockOperationSelectorFactory(spec, attestationPool, attesterSlashingPool, proposerSlashingPool, voluntaryExitPool, syncCommitteeContributionPool, depositProvider, eth1DataCache, VersionProvider.getDefaultGraffiti(), forkChoiceNotifier, executionEngine));
SyncCommitteeSubscriptionManager syncCommitteeSubscriptionManager = beaconConfig.p2pConfig().isSubscribeAllSubnetsEnabled() ? new AllSyncCommitteeSubscriptions(p2pNetwork, spec) : new SyncCommitteeSubscriptionManager(p2pNetwork);
final BlockImportChannel blockImportChannel = eventChannels.getPublisher(BlockImportChannel.class, beaconAsyncRunner);
final BlockGossipChannel blockGossipChannel = eventChannels.getPublisher(BlockGossipChannel.class);
final ValidatorApiHandler validatorApiHandler = new ValidatorApiHandler(new ChainDataProvider(spec, recentChainData, combinedChainDataClient), combinedChainDataClient, syncService, blockFactory, blockImportChannel, blockGossipChannel, attestationPool, attestationManager, attestationTopicSubscriber, activeValidatorTracker, DutyMetrics.create(metricsSystem, timeProvider, recentChainData, spec), performanceTracker, spec, forkChoiceTrigger, forkChoiceNotifier, syncCommitteeMessagePool, syncCommitteeContributionPool, syncCommitteeSubscriptionManager);
eventChannels.subscribe(SlotEventsChannel.class, activeValidatorTracker).subscribeMultithreaded(ValidatorApiChannel.class, validatorApiHandler, beaconConfig.beaconRestApiConfig().getValidatorThreads());
// so don't subscribe.
if (!beaconConfig.p2pConfig().isSubscribeAllSubnetsEnabled()) {
eventChannels.subscribe(SlotEventsChannel.class, attestationTopicSubscriber).subscribe(SlotEventsChannel.class, syncCommitteeSubscriptionManager);
}
}
use of tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber in project teku by ConsenSys.
the class BeaconChainController method initAttestationTopicSubscriber.
protected void initAttestationTopicSubscriber() {
LOG.debug("BeaconChainController.initAttestationTopicSubscriber");
this.attestationTopicSubscriber = new AttestationTopicSubscriber(spec, p2pNetwork);
}
Aggregations