- By Inheritance
- Hide All
- Show All
- abstract class BaseSequencer extends Sequencer with NamedLogging with Spanning
Provides additional functionality that is common between sequencer implementations:
- case class BatchWritten(notifies: WriteNotification, latestTimestamp: CantonTimestamp) extends Product with Serializable
- type BlockHeight = BigInteger
- sealed trait CommitMode extends AnyRef
- sealed trait CommunitySequencerConfig extends SequencerConfig
- 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
- 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.
- 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.
- sealed trait LedgerIdentity extends HasProtoV0[admin.v0.LedgerIdentity]
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.
- case class OnlineSequencerCheckConfig(onlineCheckInterval: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofSeconds(5L), offlineDuration: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofSeconds(8L)) extends Product with Serializable
- type ParsedBlockContents = EthereumBlockContents[Traced[EthereumBlockEvent]]
- 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 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 AutoCloseable
Interface for sequencer operations.
- 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 AnyRef
- case class SequencerMemberStatus(member: Member, registeredAt: CantonTimestamp, lastAcknowledged: Option[CantonTimestamp], enabled: Boolean = true) extends HasProtoV0[admin.v0.SequencerMemberStatus] 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.
- case class SequencerPruningStatus(lowerBound: CantonTimestamp, now: CantonTimestamp, members: Seq[SequencerMemberStatus]) extends HasProtoV0[admin.v0.SequencerPruningStatus] with Product with Serializable
Pruning status of a Sequencer.
the earliest timestamp that can be read
the current time of the sequencer clock
details of registered members
- class SequencerReader extends NamedLogging with FlagCloseable
- trait SequencerReaderConfig extends AnyRef
Configuration for the database based sequence reader.
- case class SequencerSnapshot(lastTs: CantonTimestamp, heads: Map[Member, SequencerCounter], status: SequencerPruningStatus, additional: Option[ImplementationSpecificInfo]) extends HasProtoV0[admin.v0.SequencerSnapshot] with HasVersionedWrapper[VersionedSequencerSnapshot] with Product with Serializable
- class SequencerWriter extends NamedLogging with FlagCloseableAsync
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.
- type UnparsedBlockContents = EthereumBlockContents[BaseEventResponse]
Unparsed in this context meaning the raw web3j codegen java instances (which to be fair have already been extracted from the raw transaction event log).
- 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 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 LedgerIdentity
- object NotifyEventSignallerFlow
- object PruningError
- case object ReadSignal extends ReadSignal with Product with Serializable
- object SequenceWritesFlow
- object SequencedWrite
- object Sequencer
- object SequencerFactory
- object SequencerMemberStatus extends Serializable
- object SequencerPruningStatus extends Serializable
- object SequencerReader
- object SequencerReaderConfig
- object SequencerSnapshot extends HasVersionedWrapperCompanion[VersionedSequencerSnapshot, SequencerSnapshot] with Serializable
- 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 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