class DriverBlockOrderer extends BlockOrderer
- Alphabetic
- By Inheritance
- DriverBlockOrderer
- BlockOrderer
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DriverBlockOrderer(driver: SequencerDriver, orderingTimeFixMode: OrderingTimeFixMode)(implicit executionContext: ExecutionContext)
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
- def acknowledge(signedAcknowledgeRequest: SignedContent[AcknowledgeRequest])(implicit traceContext: TraceContext): Future[Unit]
Orders an event reception acknowledgement.
Orders an event reception acknowledgement. If the sequencer node is honest, this normally results in a block.RawLedgerBlock.RawBlockEvent.Acknowledgment. In exceptional cases (crashes, high load, ...), a sequencer may drop acknowledgements.
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- def adminServices: Seq[ServerServiceDefinition]
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- 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()
- def close(): Unit
- Definition Classes
- DriverBlockOrderer → AutoCloseable
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def firstBlockHeight: Long
The height of the first block to be returned by
subscribe
.The height of the first block to be returned by
subscribe
.- Definition Classes
- DriverBlockOrderer → BlockOrderer
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def health(implicit traceContext: TraceContext): Future[SequencerDriverHealthStatus]
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- 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()
- val orderingTimeFixMode: OrderingTimeFixMode
Determines if block timestamps emitted by
subscribe
are strictly monotonically increasing.Determines if block timestamps emitted by
subscribe
are strictly monotonically increasing.- Definition Classes
- DriverBlockOrderer → BlockOrderer
- def send(signedSubmissionRequest: SenderSigned[SubmissionRequest])(implicit traceContext: TraceContext): EitherT[Future, SequencerDeliverError, Unit]
Orders a sender-signed submission.
Orders a sender-signed submission. If the sequencer node is honest, this normally results in a block.RawLedgerBlock.RawBlockEvent.Send. In exceptional cases (crashes, high load, ...), a sequencer may drop submissions.
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- def sequencerSnapshotAdditionalInfo(timestamp: CantonTimestamp): EitherT[Future, SequencerError, Option[BftSequencerSnapshotAdditionalInfo]]
Provides information for the SequencerSnapshot.additional field, which can be used for onboarding.
Provides information for the SequencerSnapshot.additional field, which can be used for onboarding.
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- def subscribe()(implicit traceContext: TraceContext): Source[RawLedgerBlock, KillSwitch]
Delivers a stream of blocks.
Delivers a stream of blocks.
Honest and correct implementations must ensure the following:
- If
firstBlockHeight
refers to a block whose sequencing number the sequencer node has not yet observed, returns a source that will eventually serve that block when it gets created. - This method can be called only once per instance, so implementations do not have to try to create separate sources on every call to this method: it is acceptable for the implementation to have one internal source and just return it.
- The call must succeed if an earlier (across instances and restarts) call to
subscribe
delivered a block with heightfirstBlockHeight
unless the block has been pruned in between, in which case it fails. - Block heights must be consecutive and start at
firstBlockHeight
. - For a given block height, all sequencer nodes of a synchronizer must emit the same block for that height.
- Every submission that has been sent to an honest node through
send
will be included in the output stream on a best effort basis. That means, the output stream normally contains every submission, but submissions may sometimes be dropped due to high load, crashes, etc... - A submission may occur more than once in the output stream, as malicious sequencer nodes may replay requests.
- An event in the output can not necessarily be parsed to com.digitalasset.canton.synchronizer.block.LedgerBlockEvent. If they can be parsed, the embedded signatures are not necessarily valid.
- Definition Classes
- DriverBlockOrderer → BlockOrderer
- If
- 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])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])