Search in sources :

Example 1 with GetVerticesRequest

use of com.radixdlt.consensus.sync.GetVerticesRequest in project radixdlt by radixdlt.

the class MessageCentralValidatorSyncTest method when_send_error_response__then_message_central_will_send_error_response.

@Test
public void when_send_error_response__then_message_central_will_send_error_response() {
    QuorumCertificate qc = mock(QuorumCertificate.class);
    HighQC highQC = mock(HighQC.class);
    when(highQC.highestQC()).thenReturn(qc);
    when(highQC.highestCommittedQC()).thenReturn(qc);
    BFTNode node = mock(BFTNode.class);
    ECPublicKey ecPublicKey = mock(ECPublicKey.class);
    when(node.getKey()).thenReturn(ecPublicKey);
    final var request = new GetVerticesRequest(HashUtils.random256(), 3);
    sync.verticesErrorResponseDispatcher().dispatch(node, new GetVerticesErrorResponse(highQC, request));
    verify(messageCentral, times(1)).send(eq(NodeId.fromPublicKey(ecPublicKey)), any(GetVerticesErrorResponseMessage.class));
}
Also used : HighQC(com.radixdlt.consensus.HighQC) BFTNode(com.radixdlt.consensus.bft.BFTNode) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) ECPublicKey(com.radixdlt.crypto.ECPublicKey) QuorumCertificate(com.radixdlt.consensus.QuorumCertificate) GetVerticesErrorResponse(com.radixdlt.consensus.sync.GetVerticesErrorResponse) Test(org.junit.Test)

Example 2 with GetVerticesRequest

use of com.radixdlt.consensus.sync.GetVerticesRequest in project radixdlt by radixdlt.

the class MessageCentralValidatorSyncTest method when_subscribed_to_rpc_requests__then_should_receive_requests.

@Test
public void when_subscribed_to_rpc_requests__then_should_receive_requests() {
    HashCode vertexId0 = mock(HashCode.class);
    HashCode vertexId1 = mock(HashCode.class);
    final var peer = NodeId.fromPublicKey(ECKeyPair.generateNew().getPublicKey());
    TestSubscriber<GetVerticesRequest> testObserver = sync.requests().map(RemoteEvent::getEvent).test();
    messageCentral.send(peer, new GetVerticesRequestMessage(vertexId0, 1));
    messageCentral.send(peer, new GetVerticesRequestMessage(vertexId1, 1));
    testObserver.awaitCount(2);
    testObserver.assertValueAt(0, v -> v.getVertexId().equals(vertexId0));
    testObserver.assertValueAt(1, v -> v.getVertexId().equals(vertexId1));
}
Also used : HashCode(com.google.common.hash.HashCode) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) Test(org.junit.Test)

Example 3 with GetVerticesRequest

use of com.radixdlt.consensus.sync.GetVerticesRequest in project radixdlt by radixdlt.

the class ConsensusModuleTest method on_sync_request_timeout_should_retry.

@Test
public void on_sync_request_timeout_should_retry() {
    // Arrange
    BFTNode bftNode = BFTNode.random();
    QuorumCertificate parent = vertexStore.highQC().highestQC();
    Pair<QuorumCertificate, VerifiedVertex> nextVertex = createNextVertex(parent, bftNode);
    HighQC unsyncedHighQC = HighQC.from(nextVertex.getFirst(), nextVertex.getFirst(), Optional.empty());
    bftSync.syncToQC(unsyncedHighQC, bftNode);
    GetVerticesRequest request = new GetVerticesRequest(nextVertex.getSecond().getId(), 1);
    VertexRequestTimeout timeout = VertexRequestTimeout.create(request);
    // Act
    // FIXME: Remove when rate limit on send removed
    nothrowSleep(100);
    bftSync.vertexRequestTimeoutEventProcessor().process(timeout);
    // Assert
    verify(requestSender, times(2)).dispatch(eq(bftNode), argThat(r -> r.getCount() == 1 && r.getVertexId().equals(nextVertex.getSecond().getId())));
}
Also used : VerifiedVertex(com.radixdlt.consensus.bft.VerifiedVertex) HighQC(com.radixdlt.consensus.HighQC) Module(com.google.inject.Module) ScheduledLocalTimeout(com.radixdlt.consensus.liveness.ScheduledLocalTimeout) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) Inject(com.google.inject.Inject) PacemakerTimeout(com.radixdlt.consensus.bft.PacemakerTimeout) Hasher(com.radixdlt.crypto.Hasher) HashSigner(com.radixdlt.consensus.HashSigner) TimestampedECDSASignatures(com.radixdlt.consensus.TimestampedECDSASignatures) BFTCommittedUpdate(com.radixdlt.consensus.bft.BFTCommittedUpdate) RemoteEventDispatcher(com.radixdlt.environment.RemoteEventDispatcher) VertexRequestTimeout(com.radixdlt.consensus.sync.VertexRequestTimeout) UnverifiedVertex(com.radixdlt.consensus.UnverifiedVertex) Map(java.util.Map) ViewQuorumReached(com.radixdlt.consensus.bft.ViewQuorumReached) LedgerProof(com.radixdlt.consensus.LedgerProof) View(com.radixdlt.consensus.bft.View) HashUtils(com.radixdlt.crypto.HashUtils) SystemCounters(com.radixdlt.counters.SystemCounters) WeightedRotatingLeaders(com.radixdlt.consensus.liveness.WeightedRotatingLeaders) PersistentSafetyStateStore(com.radixdlt.consensus.safety.PersistentSafetyStateStore) Sha256Hasher(com.radixdlt.consensus.Sha256Hasher) GetVerticesRequestRateLimit(com.radixdlt.middleware2.network.GetVerticesRequestRateLimit) BFTRebuildUpdate(com.radixdlt.consensus.bft.BFTRebuildUpdate) LedgerHeader(com.radixdlt.consensus.LedgerHeader) List(java.util.List) Stream(java.util.stream.Stream) BFTHighQCUpdate(com.radixdlt.consensus.bft.BFTHighQCUpdate) PacemakerMaxExponent(com.radixdlt.consensus.bft.PacemakerMaxExponent) Optional(java.util.Optional) ECDSASignature.zeroSignature(com.radixdlt.crypto.ECDSASignature.zeroSignature) TypeLiteral(com.google.inject.TypeLiteral) BFTSyncPatienceMillis(com.radixdlt.consensus.sync.BFTSyncPatienceMillis) Mockito.mock(org.mockito.Mockito.mock) HighQC(com.radixdlt.consensus.HighQC) ScheduledEventDispatcher(com.radixdlt.environment.ScheduledEventDispatcher) Proposal(com.radixdlt.consensus.Proposal) LocalTimeoutOccurrence(com.radixdlt.consensus.liveness.LocalTimeoutOccurrence) BFTValidatorSet(com.radixdlt.consensus.bft.BFTValidatorSet) NextTxnsGenerator(com.radixdlt.consensus.liveness.NextTxnsGenerator) BFTSync(com.radixdlt.consensus.sync.BFTSync) RateLimiter(com.google.common.util.concurrent.RateLimiter) TypedMocks.rmock(com.radixdlt.utils.TypedMocks.rmock) VertexStore(com.radixdlt.consensus.bft.VertexStore) LocalSyncRequest(com.radixdlt.sync.messages.local.LocalSyncRequest) BFTValidator(com.radixdlt.consensus.bft.BFTValidator) ImmutableList(com.google.common.collect.ImmutableList) Vote(com.radixdlt.consensus.Vote) TimestampedECDSASignature(com.radixdlt.consensus.TimestampedECDSASignature) BFTConfiguration(com.radixdlt.consensus.BFTConfiguration) Ledger(com.radixdlt.consensus.Ledger) ViewUpdate(com.radixdlt.consensus.bft.ViewUpdate) AccumulatorState(com.radixdlt.ledger.AccumulatorState) UInt256(com.radixdlt.utils.UInt256) Before(org.junit.Before) TimeSupplier(com.radixdlt.utils.TimeSupplier) EventDispatcher(com.radixdlt.environment.EventDispatcher) Txn(com.radixdlt.atom.Txn) Mockito.times(org.mockito.Mockito.times) BFTInsertUpdate(com.radixdlt.consensus.bft.BFTInsertUpdate) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) VerifiedVertexStoreState(com.radixdlt.consensus.bft.VerifiedVertexStoreState) QuorumCertificate(com.radixdlt.consensus.QuorumCertificate) Mockito.verify(org.mockito.Mockito.verify) BFTHeader(com.radixdlt.consensus.BFTHeader) VoteData(com.radixdlt.consensus.VoteData) Provides(com.google.inject.Provides) VerifiedVertex(com.radixdlt.consensus.bft.VerifiedVertex) ECKeyPair(com.radixdlt.crypto.ECKeyPair) NoVote(com.radixdlt.consensus.bft.NoVote) PacemakerRate(com.radixdlt.consensus.bft.PacemakerRate) Self(com.radixdlt.consensus.bft.Self) Guice(com.google.inject.Guice) BFTNode(com.radixdlt.consensus.bft.BFTNode) Pair(com.radixdlt.utils.Pair) PersistentVertexStore(com.radixdlt.consensus.bft.PersistentVertexStore) LastProof(com.radixdlt.store.LastProof) GetVerticesErrorResponse(com.radixdlt.consensus.sync.GetVerticesErrorResponse) GetVerticesResponse(com.radixdlt.consensus.sync.GetVerticesResponse) AbstractModule(com.google.inject.AbstractModule) BFTNode(com.radixdlt.consensus.bft.BFTNode) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) QuorumCertificate(com.radixdlt.consensus.QuorumCertificate) VertexRequestTimeout(com.radixdlt.consensus.sync.VertexRequestTimeout) Test(org.junit.Test)

Example 4 with GetVerticesRequest

use of com.radixdlt.consensus.sync.GetVerticesRequest in project radixdlt by radixdlt.

the class OneNodeAlwaysAliveSafetyTest method setup.

@Before
public void setup() {
    var allNodes = nodeKeys.stream().map(k -> BFTNode.create(k.getPublicKey())).toList();
    this.network = new DeterministicNetwork(allNodes, MessageSelector.firstSelector(), (message, queue) -> message.message() instanceof GetVerticesRequest || message.message() instanceof LocalSyncRequest);
    Guice.createInjector(new AbstractModule() {

        @Override
        protected void configure() {
            bind(new TypeLiteral<List<BFTNode>>() {
            }).toInstance(allNodes);
        }

        @ProvidesIntoSet
        public NodeEventProcessor<?> updateChecker() {
            return new NodeEventProcessor<>(ViewQuorumReached.class, (node, viewQuorumReached) -> {
                if (viewQuorumReached.votingResult() instanceof FormedQC && ((FormedQC) viewQuorumReached.votingResult()).getQC().getCommitted().isPresent()) {
                    lastNodeToCommit = network.lookup(node);
                }
            });
        }
    }, new SafetyCheckerModule(), new NodeEventsModule()).injectMembers(this);
    this.nodeCreators = nodeKeys.stream().<Supplier<Injector>>map(k -> () -> createRunner(k, allNodes)).toList();
    for (var nodeCreator : nodeCreators) {
        this.nodes.add(nodeCreator.get());
    }
}
Also used : GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) RadixEngineForksLatestOnlyModule(com.radixdlt.statecomputer.forks.RadixEngineForksLatestOnlyModule) Inject(com.google.inject.Inject) Key(com.google.inject.Key) BFTCommittedUpdate(com.radixdlt.consensus.bft.BFTCommittedUpdate) PersistedNodeForTestingModule(com.radixdlt.PersistedNodeForTestingModule) EventProcessor(com.radixdlt.environment.EventProcessor) FeeTable(com.radixdlt.application.system.FeeTable) After(org.junit.After) ViewQuorumReached(com.radixdlt.consensus.bft.ViewQuorumReached) MSG(com.radixdlt.constraintmachine.REInstruction.REMicroOp.MSG) NodeEvents(com.radixdlt.harness.deterministic.NodeEvents) Parameterized(org.junit.runners.Parameterized) ThreadContext(org.apache.logging.log4j.ThreadContext) ProvidesIntoSet(com.google.inject.multibindings.ProvidesIntoSet) DatabaseEnvironment(com.radixdlt.store.DatabaseEnvironment) PersistentSafetyStateStore(com.radixdlt.consensus.safety.PersistentSafetyStateStore) Collection(java.util.Collection) Set(java.util.Set) Collectors(java.util.stream.Collectors) List(java.util.List) Stream(java.util.stream.Stream) Logger(org.apache.logging.log4j.Logger) KeyComparator(com.radixdlt.utils.KeyComparator) NodeEventsModule(com.radixdlt.harness.deterministic.NodeEventsModule) Amount(com.radixdlt.application.tokens.Amount) Pattern(java.util.regex.Pattern) ProcessOnDispatch(com.radixdlt.environment.ProcessOnDispatch) MainnetForkConfigsModule(com.radixdlt.statecomputer.forks.MainnetForkConfigsModule) TypeLiteral(com.google.inject.TypeLiteral) SafetyCheckerModule(com.radixdlt.harness.deterministic.SafetyCheckerModule) FormedQC(com.radixdlt.consensus.bft.ViewVotingResult.FormedQC) RunWith(org.junit.runner.RunWith) Parameters(org.junit.runners.Parameterized.Parameters) Proposal(com.radixdlt.consensus.Proposal) OptionalInt(java.util.OptionalInt) Supplier(java.util.function.Supplier) DeterministicNetwork(com.radixdlt.environment.deterministic.network.DeterministicNetwork) ArrayList(java.util.ArrayList) MockedGenesisModule(com.radixdlt.statecomputer.checkpoint.MockedGenesisModule) LocalSyncRequest(com.radixdlt.sync.messages.local.LocalSyncRequest) DatabaseLocation(com.radixdlt.store.DatabaseLocation) MessageSelector(com.radixdlt.environment.deterministic.network.MessageSelector) MempoolConfig(com.radixdlt.mempool.MempoolConfig) RERulesConfig(com.radixdlt.statecomputer.forks.RERulesConfig) BerkeleyLedgerEntryStore(com.radixdlt.store.berkeley.BerkeleyLedgerEntryStore) Before(org.junit.Before) EventProcessorOnDispatch(com.radixdlt.environment.EventProcessorOnDispatch) Environment(com.radixdlt.environment.Environment) Test(org.junit.Test) DeterministicProcessor(com.radixdlt.environment.deterministic.DeterministicProcessor) ForksModule(com.radixdlt.statecomputer.forks.ForksModule) Injector(com.google.inject.Injector) ECKeyPair(com.radixdlt.crypto.ECKeyPair) Rule(org.junit.Rule) Self(com.radixdlt.consensus.bft.Self) NodeEventProcessor(com.radixdlt.harness.deterministic.NodeEvents.NodeEventProcessor) Guice(com.google.inject.Guice) BFTNode(com.radixdlt.consensus.bft.BFTNode) PeersView(com.radixdlt.network.p2p.PeersView) Comparator(java.util.Comparator) LogManager(org.apache.logging.log4j.LogManager) TemporaryFolder(org.junit.rules.TemporaryFolder) AbstractModule(com.google.inject.AbstractModule) BFTNode(com.radixdlt.consensus.bft.BFTNode) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) LocalSyncRequest(com.radixdlt.sync.messages.local.LocalSyncRequest) DeterministicNetwork(com.radixdlt.environment.deterministic.network.DeterministicNetwork) FormedQC(com.radixdlt.consensus.bft.ViewVotingResult.FormedQC) AbstractModule(com.google.inject.AbstractModule) SafetyCheckerModule(com.radixdlt.harness.deterministic.SafetyCheckerModule) TypeLiteral(com.google.inject.TypeLiteral) Supplier(java.util.function.Supplier) NodeEventsModule(com.radixdlt.harness.deterministic.NodeEventsModule) NodeEventProcessor(com.radixdlt.harness.deterministic.NodeEvents.NodeEventProcessor) Before(org.junit.Before)

Example 5 with GetVerticesRequest

use of com.radixdlt.consensus.sync.GetVerticesRequest in project radixdlt by radixdlt.

the class ConsensusModuleTest method getExternalModule.

private Module getExternalModule() {
    return new AbstractModule() {

        @Override
        protected void configure() {
            bind(Ledger.class).toInstance(mock(Ledger.class));
            bind(new TypeLiteral<EventDispatcher<LocalTimeoutOccurrence>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<ViewUpdate>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<BFTInsertUpdate>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<BFTRebuildUpdate>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<BFTHighQCUpdate>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<BFTCommittedUpdate>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<LocalSyncRequest>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<ScheduledEventDispatcher<GetVerticesRequest>>() {
            }).toInstance(rmock(ScheduledEventDispatcher.class));
            bind(new TypeLiteral<ScheduledEventDispatcher<ScheduledLocalTimeout>>() {
            }).toInstance(rmock(ScheduledEventDispatcher.class));
            bind(new TypeLiteral<EventDispatcher<ViewQuorumReached>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<RemoteEventDispatcher<Vote>>() {
            }).toInstance(rmock(RemoteEventDispatcher.class));
            bind(new TypeLiteral<RemoteEventDispatcher<Proposal>>() {
            }).toInstance(rmock(RemoteEventDispatcher.class));
            bind(new TypeLiteral<RemoteEventDispatcher<GetVerticesRequest>>() {
            }).toInstance(requestSender);
            bind(new TypeLiteral<RemoteEventDispatcher<GetVerticesResponse>>() {
            }).toInstance(responseSender);
            bind(new TypeLiteral<RemoteEventDispatcher<GetVerticesErrorResponse>>() {
            }).toInstance(errorResponseSender);
            bind(new TypeLiteral<EventDispatcher<NoVote>>() {
            }).toInstance(rmock(EventDispatcher.class));
            bind(new TypeLiteral<ScheduledEventDispatcher<View>>() {
            }).toInstance(rmock(ScheduledEventDispatcher.class));
            bind(new TypeLiteral<ScheduledEventDispatcher<VertexRequestTimeout>>() {
            }).toInstance(rmock(ScheduledEventDispatcher.class));
            bind(PersistentVertexStore.class).toInstance(mock(PersistentVertexStore.class));
            bind(PersistentSafetyStateStore.class).toInstance(mock(PersistentSafetyStateStore.class));
            bind(NextTxnsGenerator.class).toInstance(mock(NextTxnsGenerator.class));
            bind(SystemCounters.class).toInstance(mock(SystemCounters.class));
            bind(TimeSupplier.class).toInstance(mock(TimeSupplier.class));
            bind(BFTConfiguration.class).toInstance(bftConfiguration);
            LedgerProof proof = mock(LedgerProof.class);
            when(proof.getView()).thenReturn(View.genesis());
            bind(LedgerProof.class).annotatedWith(LastProof.class).toInstance(proof);
            bind(RateLimiter.class).annotatedWith(GetVerticesRequestRateLimit.class).toInstance(RateLimiter.create(Double.MAX_VALUE));
            bindConstant().annotatedWith(BFTSyncPatienceMillis.class).to(200);
            bindConstant().annotatedWith(PacemakerTimeout.class).to(1000L);
            bindConstant().annotatedWith(PacemakerRate.class).to(2.0);
            bindConstant().annotatedWith(PacemakerMaxExponent.class).to(6);
            ECKeyPair ecKeyPair = ECKeyPair.generateNew();
            bind(HashSigner.class).toInstance(ecKeyPair::sign);
        }

        @Provides
        ViewUpdate viewUpdate(@Self BFTNode node) {
            return ViewUpdate.create(View.of(1), mock(HighQC.class), node, node);
        }

        @Provides
        @Self
        private BFTNode bftNode() {
            return BFTNode.create(ecKeyPair.getPublicKey());
        }
    };
}
Also used : HighQC(com.radixdlt.consensus.HighQC) GetVerticesRequest(com.radixdlt.consensus.sync.GetVerticesRequest) LocalSyncRequest(com.radixdlt.sync.messages.local.LocalSyncRequest) LocalTimeoutOccurrence(com.radixdlt.consensus.liveness.LocalTimeoutOccurrence) BFTCommittedUpdate(com.radixdlt.consensus.bft.BFTCommittedUpdate) VertexRequestTimeout(com.radixdlt.consensus.sync.VertexRequestTimeout) TimeSupplier(com.radixdlt.utils.TimeSupplier) Self(com.radixdlt.consensus.bft.Self) PersistentVertexStore(com.radixdlt.consensus.bft.PersistentVertexStore) NextTxnsGenerator(com.radixdlt.consensus.liveness.NextTxnsGenerator) BFTInsertUpdate(com.radixdlt.consensus.bft.BFTInsertUpdate) PacemakerMaxExponent(com.radixdlt.consensus.bft.PacemakerMaxExponent) ViewUpdate(com.radixdlt.consensus.bft.ViewUpdate) PacemakerRate(com.radixdlt.consensus.bft.PacemakerRate) RemoteEventDispatcher(com.radixdlt.environment.RemoteEventDispatcher) ScheduledEventDispatcher(com.radixdlt.environment.ScheduledEventDispatcher) EventDispatcher(com.radixdlt.environment.EventDispatcher) TypeLiteral(com.google.inject.TypeLiteral) LedgerProof(com.radixdlt.consensus.LedgerProof) ScheduledEventDispatcher(com.radixdlt.environment.ScheduledEventDispatcher) BFTNode(com.radixdlt.consensus.bft.BFTNode) Vote(com.radixdlt.consensus.Vote) NoVote(com.radixdlt.consensus.bft.NoVote) BFTSyncPatienceMillis(com.radixdlt.consensus.sync.BFTSyncPatienceMillis) GetVerticesResponse(com.radixdlt.consensus.sync.GetVerticesResponse) BFTRebuildUpdate(com.radixdlt.consensus.bft.BFTRebuildUpdate) GetVerticesErrorResponse(com.radixdlt.consensus.sync.GetVerticesErrorResponse) Ledger(com.radixdlt.consensus.Ledger) RemoteEventDispatcher(com.radixdlt.environment.RemoteEventDispatcher) ECKeyPair(com.radixdlt.crypto.ECKeyPair) HashSigner(com.radixdlt.consensus.HashSigner) SystemCounters(com.radixdlt.counters.SystemCounters) PacemakerTimeout(com.radixdlt.consensus.bft.PacemakerTimeout) View(com.radixdlt.consensus.bft.View) AbstractModule(com.google.inject.AbstractModule) LastProof(com.radixdlt.store.LastProof) NoVote(com.radixdlt.consensus.bft.NoVote) BFTConfiguration(com.radixdlt.consensus.BFTConfiguration) ViewQuorumReached(com.radixdlt.consensus.bft.ViewQuorumReached) ScheduledLocalTimeout(com.radixdlt.consensus.liveness.ScheduledLocalTimeout) BFTHighQCUpdate(com.radixdlt.consensus.bft.BFTHighQCUpdate) GetVerticesRequestRateLimit(com.radixdlt.middleware2.network.GetVerticesRequestRateLimit) PersistentSafetyStateStore(com.radixdlt.consensus.safety.PersistentSafetyStateStore) Proposal(com.radixdlt.consensus.Proposal)

Aggregations

GetVerticesRequest (com.radixdlt.consensus.sync.GetVerticesRequest)9 Test (org.junit.Test)6 AbstractModule (com.google.inject.AbstractModule)5 TypeLiteral (com.google.inject.TypeLiteral)5 BFTNode (com.radixdlt.consensus.bft.BFTNode)5 GetVerticesErrorResponse (com.radixdlt.consensus.sync.GetVerticesErrorResponse)5 HighQC (com.radixdlt.consensus.HighQC)4 Proposal (com.radixdlt.consensus.Proposal)4 BFTCommittedUpdate (com.radixdlt.consensus.bft.BFTCommittedUpdate)4 BFTConfiguration (com.radixdlt.consensus.BFTConfiguration)3 HashSigner (com.radixdlt.consensus.HashSigner)3 Vote (com.radixdlt.consensus.Vote)3 BFTHighQCUpdate (com.radixdlt.consensus.bft.BFTHighQCUpdate)3 BFTInsertUpdate (com.radixdlt.consensus.bft.BFTInsertUpdate)3 BFTRebuildUpdate (com.radixdlt.consensus.bft.BFTRebuildUpdate)3 NoVote (com.radixdlt.consensus.bft.NoVote)3 PacemakerMaxExponent (com.radixdlt.consensus.bft.PacemakerMaxExponent)3 PacemakerRate (com.radixdlt.consensus.bft.PacemakerRate)3 PacemakerTimeout (com.radixdlt.consensus.bft.PacemakerTimeout)3 PersistentVertexStore (com.radixdlt.consensus.bft.PersistentVertexStore)3