- By Inheritance
- Hide All
- Show All
- trait AbstractSequencerPruningStatus extends AnyRef
- final case class AggregatedSender(sender: Member, aggregation: AggregationBySender) extends Product with Serializable
- abstract class BaseSequencer extends Sequencer with NamedLogging with Spanning
Provides additional functionality that is common between sequencer implementations:
- final case class BatchWritten(notifies: WriteNotification, latestTimestamp: CantonTimestamp) extends Product with Serializable
- sealed trait CommitMode extends AnyRef
- class CommunityDatabaseSequencerFactory extends DatabaseSequencerFactory
- sealed trait CommunitySequencerConfig extends SequencerConfig
- final case class CommunitySequencerReaderConfig(readBatchSize: Int = SequencerReaderConfig.defaultReadBatchSize, checkpointInterval: NonNegativeFiniteDuration = SequencerReaderConfig.defaultCheckpointInterval) extends SequencerReaderConfig with Product with Serializable
- class ConflictingPayloadIdException extends SequencerWriterException
We intentionally use an unsafe storage method for writing payloads to take advantage of a full connection pool for performance.
- class CounterCheckpointInconsistentException extends RuntimeException
We throw this if a store.SaveCounterCheckpointError.CounterCheckpointInconsistent error is returned when saving a new member counter checkpoint.
- class DatabaseSequencer extends BaseSequencer with FlagCloseable
- trait DatabaseSequencerConfig extends AnyRef
Unsealed trait so the database sequencer config can be reused between community and enterprise
- abstract class DatabaseSequencerFactory extends SequencerFactory
- class DirectSequencerClientTransport extends SequencerClientTransport with NamedLogging
This transport is meant to be used to create a sequencer client that connects directly to an in-process sequencer.
- class EnterpriseDatabaseSequencerFactory extends DatabaseSequencerFactory with NamedLogging
- final case class EthereumAccount(address: String) extends LedgerIdentity with Product with Serializable
The address of an Ethereum account is derived by taking the last 20 bytes of the Keccak-256 hash of the public key and adding 0x to the beginning.
- trait EventSignaller extends AutoCloseable
Component to signal to a SequencerReader that more events may be available to read so should attempt fetching events from its store.
- final case class FreshInFlightAggregation(maxSequencingTimestamp: CantonTimestamp, rule: AggregationRule) extends Product with Serializable
The metadata for starting a fresh in-flight aggregation
- final case class InFlightAggregation extends PrettyPrinting with HasLoggerName with Product with Serializable
Stores the state of an in-flight aggregation of submission requests.
- final case class InFlightAggregationUpdate(freshAggregation: Option[FreshInFlightAggregation], aggregatedSenders: Chain[AggregatedSender]) extends Product with Serializable
Describes an incremental update to the in-flight aggregation state
- type InFlightAggregationUpdates = Map[AggregationId, InFlightAggregationUpdate]
- type InFlightAggregations = Map[AggregationId, InFlightAggregation]
- sealed trait LedgerIdentity extends AnyRef
Trait for identities on ledgers that Canton integrates with.
- class LocalSequencerStateEventSignaller extends EventSignaller with FlagCloseableAsync with NamedLogging
If all Sequencer writes are occurring locally we pipe write notifications to read subscriptions allowing the SequencerReader to immediately read from the backing store rather than polling.
- final case class OnlineSequencerCheckConfig(onlineCheckInterval: NonNegativeFiniteDuration = config.NonNegativeFiniteDuration.ofSeconds(5L), offlineDuration: NonNegativeFiniteDuration = config.NonNegativeFiniteDuration.ofSeconds(8L)) extends Product with Serializable
- class PartitionedTimestampGenerator extends AnyRef
To generate unique timestamps between many nodes without coordination we partition available timestamps by the node index within a range of the total number of nodes.
- class PayloadMissingException extends SequencerWriterException
A payload that we should have just stored now seems to be missing.
- class PollingEventSignaller extends EventSignaller with NamedLogging
Ignore local writes and simply trigger reads periodically based on a static polling interval.
- sealed trait PruningError extends AnyRef
Errors from pruning
- sealed trait PruningSupportError extends PruningError
- sealed trait ReadSignal extends AnyRef
Signal that a reader should attempt to read the latest events as some may have been written
- class SendEventGenerator extends AnyRef
- sealed trait SequencedWrite extends HasTraceContext
A write that we've assigned a timestamp to.
- trait Sequencer extends SequencerPruning with FlagCloseable with HasCloseContext with NamedLogging with BaseHealthComponent
Interface for sequencer operations.
- final case class SequencerClients(members: Set[Member] = Set.empty) extends Product with Serializable
Structure housing both members and instances of those members.
- trait SequencerConfig extends AnyRef
- trait SequencerFactory extends AutoCloseable
- final case class SequencerHealthConfig(backendCheckPeriod: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofSeconds(5)) extends Product with Serializable
Health check related sequencer config
interval with which the sequencer will poll the health of its backend connection or state.
- final case class SequencerInitialState(domainId: DomainId, snapshot: SequencerSnapshot, latestTopologyClientTimestamp: Option[CantonTimestamp]) extends Product with Serializable
- final case class SequencerMemberStatus(member: Member, registeredAt: CantonTimestamp, lastAcknowledged: Option[CantonTimestamp], enabled: Boolean = true) extends PrettyPrinting with Product with Serializable
- class SequencerOfflineException extends SequencerWriterException
Throw as an error in the akka stream when we discover that our currently running sequencer writer has been marked as offline.
- trait SequencerPruning extends AnyRef
Sequencer pruning interface.
- final case class SequencerPruningStatus(lowerBound: CantonTimestamp, now: CantonTimestamp, members: Seq[SequencerMemberStatus]) extends AbstractSequencerPruningStatus with PrettyPrinting with Product with Serializable
Pruning status of a Sequencer.
the current time of the sequencer clock
- class SequencerReader extends NamedLogging with FlagCloseable with HasCloseContext
- trait SequencerReaderConfig extends AnyRef
Configuration for the database based sequence reader.
- final case class SequencerSnapshot(lastTs: CantonTimestamp, heads: Map[Member, SequencerCounter], status: SequencerPruningStatus, inFlightAggregations: InFlightAggregations, additional: Option[ImplementationSpecificInfo], trafficSnapshots: Map[Member, MemberTrafficSnapshot])(representativeProtocolVersion: RepresentativeProtocolVersion[SequencerSnapshot.type]) extends HasProtocolVersionedWrapper[SequencerSnapshot] with Product with Serializable
- class SequencerWriter extends NamedLogging with FlagCloseableAsync with HasCloseContext
The Writer component is in practice a little state machine that will run crash recovery on startup then create a running SequencerWriterSource.
- sealed trait SequencerWriterConfig extends AnyRef
Configuration for the database based sequencer writer
- sealed abstract class SequencerWriterException extends RuntimeException
Base class for exceptions intentionally thrown during Akka stream to flag errors
- class SequencerWriterQueues extends NamedLogging
- trait SequencerWriterStoreFactory extends AutoCloseable
Create instances for a store.SequencerWriterStore and a predicate to know whether we can recreate a sequencer writer on failures encountered potentially during storage.
- trait SignatureVerifier extends AnyRef
- sealed trait Write extends AnyRef
A write we want to make to the db
- sealed trait WriteNotification extends AnyRef
Who gets notified that a event has been written
- trait WriterStartupError extends AnyRef
Errors that can occur while starting the SequencerWriter.
- object AggregatedSender extends Serializable
- object BatchWritten extends Serializable
- object CommitMode
- object CommunitySequencerConfig
- object DatabaseSequencer
- object DatabaseSequencerConfig
- object EthereumAccount extends Serializable
- object FetchLatestEventsFlow
Flow that upon read signals will attempt to fetch all events until head is reached.
- object InFlightAggregation extends Serializable
- object InFlightAggregationUpdate extends Serializable
- object InFlightAggregations
- object LedgerIdentity
- object NotifyEventSignallerFlow
- object PruningError
- case object ReadSignal extends ReadSignal with Product with Serializable
- object SequenceWritesFlow
- object SequencedWrite
- object Sequencer extends HasLoggerName
- object SequencerMemberStatus extends Serializable
- object SequencerPruningStatus extends Serializable
- object SequencerReader
- object SequencerReaderConfig
- object SequencerSnapshot extends HasProtocolVersionedCompanion[SequencerSnapshot]
- object SequencerValidations
- object SequencerWriter
- object SequencerWriterConfig
Expose config as different named versions using different default values to allow easy switching for the different setups we can run in (high-throughput, low-latency).
- object SequencerWriterSource
Akka stream for writing as a Sequencer
- object SequencerWriterStoreFactory
- object SignatureVerifier
- object TotalNodeCountValues
- object UpdateWatermarkFlow
- object Write
- object WriteNotification
- object WritePayloadsFlow
Extract the payloads of events and write them in batches to the payloads table.
- object WriterStartupError