com.digitalasset.canton.synchronizer.block.data
SequencerBlockStore
Companion object SequencerBlockStore
trait SequencerBlockStore extends AutoCloseable
- Alphabetic
- By Inheritance
- SequencerBlockStore
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def close(): Unit
- Definition Classes
- AutoCloseable
- Annotations
- @throws(classOf[java.lang.Exception])
- abstract def executionContext: ExecutionContext
- Attributes
- protected
- abstract def finalizeBlockUpdate(block: BlockInfo)(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
Finalizes the current block whose updates have been added in the calls to partialBlockUpdate since the last call to finalizeBlockUpdate.
Finalizes the current block whose updates have been added in the calls to partialBlockUpdate since the last call to finalizeBlockUpdate.
This method must not be called concurrently with itself or partialBlockUpdate, and must be called for the blocks in monotonically increasing order of height.
- block
The block information about the current block. It is the responsibility of the caller to ensure that the height increases monotonically by one
- abstract def findBlockContainingTimestamp(timestamp: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[FutureUnlessShutdown, SequencerError, BlockInfo]
The block information for the block that contains the requested timestamp.
- abstract def partialBlockUpdate(inFlightAggregationUpdates: InFlightAggregationUpdates)(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
Stores some updates that happen in a single block.
Stores some updates that happen in a single block. May be called several times for the same block and the same update may be contained in several of the calls. Before adding updates of a subsequent block, finalizeBlockUpdate must be called to wrap up the current block.
This method must not be called concurrently with itself or finalizeBlockUpdate.
- abstract def prune(requestedTimestamp: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[String]
- abstract def readHead(implicit traceContext: TraceContext): FutureUnlessShutdown[BlockEphemeralState]
The current state of the sequencer, which can be used when the node is restarted to deterministically derive the following counters and timestamps.
The current state of the sequencer, which can be used when the node is restarted to deterministically derive the following counters and timestamps.
The state excludes updates of unfinalized blocks added with partialBlockUpdate.
- abstract def readStateForBlockContainingTimestamp(timestamp: CantonTimestamp, maxSequencingTimeBound: CantonTimestamp)(implicit traceContext: TraceContext): EitherT[FutureUnlessShutdown, SequencerError, BlockEphemeralState]
The state at the end of the block that contains the given timestamp.
The state at the end of the block that contains the given timestamp. This will typically be used to inform other sequencer nodes being initialized of the initial state they should use based on the timestamp they provide which is typically the timestamp of their signing key.
- timestamp
timestamp within the block being requested (i.e. BlockInfo.lastTs)
- maxSequencingTimeBound
optional bound for requesting the state for the sequencer snapshot, that may be far in the past, thus needing to bound the db io. Can be computed with
SequencerUtils.maxSequencingTimeBoundAt
. For requesting the latest state during the sequencer startup, this can be set toCantonTimestamp.MaxValue
.
- abstract def setInitialState(initial: SequencerInitialState, maybeOnboardingTopologyEffectiveTimestamp: Option[CantonTimestamp] = None)(implicit traceContext: TraceContext): FutureUnlessShutdown[Unit]
Set initial state of the sequencer node from which it supports serving requests.
Set initial state of the sequencer node from which it supports serving requests. This should be called at most once. If not called, it means this sequencer node can server requests from genesis.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])