package submission
- Alphabetic
- Public
- Protected
Type Members
- final case class ChangeIdHash(hash: LfHash) extends PrettyPrinting with Product with Serializable
- trait CommandDeduplicator extends AnyRef
Implements the command deduplication logic.
Implements the command deduplication logic.
All method calls should be coordinated by the InFlightSubmissionTracker. In particular,
checkDeduplication
must not be called concurrently withprocessPublications
for the same com.daml.ledger.participant.state.v2.ChangeIds. - class CommandDeduplicatorImpl extends CommandDeduplicator with NamedLogging
- class ConfirmationRequestFactory extends NamedLogging
Factory class for creating confirmation requests from Daml-LF transactions.
- case class InFlightSubmission[+SequencingInfo <: SubmissionSequencingInfo](changeIdHash: ChangeIdHash, submissionId: Option[LedgerSubmissionId], submissionDomain: DomainId, messageUuid: UUID, sequencingInfo: SequencingInfo, submissionTraceContext: TraceContext) extends PrettyPrinting with Product with Serializable
Collects information about an in-flight submission, to be stored in com.digitalasset.canton.participant.store.InFlightSubmissionStore.
Collects information about an in-flight submission, to be stored in com.digitalasset.canton.participant.store.InFlightSubmissionStore.
- changeIdHash
The identifier for the intended ledger change. We only include the hash instead of the com.daml.ledger.participant.state.v2.ChangeId so that we do not need to persist and reconstruct the actual contents of the com.daml.ledger.participant.state.v2.ChangeId when we read an InFlightSubmission from the store.
- submissionId
Optional submission id.
- submissionDomain
The domain to which the submission is supposed to be/was sent.
- messageUuid
The message UUID that will be/has been used for the com.digitalasset.canton.sequencing.protocol.SubmissionRequest
- sequencingInfo
Information about when the request will be/was sequenced
- submissionTraceContext
The com.digitalasset.canton.tracing.TraceContext of the submission.
- class InFlightSubmissionTracker extends FlagCloseable with NamedLogging
Tracker for in-flight submissions backed by the com.digitalasset.canton.participant.store.InFlightSubmissionStore.
Tracker for in-flight submissions backed by the com.digitalasset.canton.participant.store.InFlightSubmissionStore.
A submission is in flight if it is in the com.digitalasset.canton.participant.store.InFlightSubmissionStore. The tracker registers a submission before the com.digitalasset.canton.sequencing.protocol.SubmissionRequest is sent to the com.digitalasset.canton.sequencing.client.SequencerClient of a domain. After the corresponding event has been published into the com.digitalasset.canton.participant.store.MultiDomainEventLog state updates, the submission will be removed from the com.digitalasset.canton.participant.store.InFlightSubmissionStore again. This happens normally as part of request processing after phase 7. If the submission has not been sequenced by the specified com.digitalasset.canton.participant.protocol.submission.UnsequencedSubmission.timeout, say because the submission was lost on the way to the sequencer, the participant generates an appropriate update because the submission will never reach request processing. The latter must work even if the participant crashes (if run with persistence).
- class SeedGenerator extends AnyRef
Creates seeds and UUIDs for requests.
- case class SequencedSubmission(sequencerCounter: SequencerCounter, sequencingTime: CantonTimestamp) extends SubmissionSequencingInfo with Product with Serializable
The observed sequencing information of an InFlightSubmission
The observed sequencing information of an InFlightSubmission
- sequencerCounter
The com.digitalasset.canton.SequencerCounter assigned to the com.digitalasset.canton.sequencing.protocol.SubmissionRequest
- sequencingTime
The sequencer timestamp assigned to the com.digitalasset.canton.sequencing.protocol.SubmissionRequest
- sealed trait SubmissionSequencingInfo extends Product with Serializable with PrettyPrinting
Information about when an InFlightSubmission was/will be sequenced
- trait SubmissionTrackingData extends Product with Serializable with HasProtoV0[v0.SubmissionTrackingData] with HasVersionedWrapper[VersionedSubmissionTrackingData] with PrettyPrinting
The data of an in-flight unsequenced submission that suffices to produce a rejection reason.
The data of an in-flight unsequenced submission that suffices to produce a rejection reason. This data is persisted in the com.digitalasset.canton.participant.store.InFlightSubmissionStore for unsequenced submissions and updated when the corresponding a com.digitalasset.canton.sequencing.protocol.DeliverError is processed or the submission could not be sent to the sequencer.
- case class TransactionSubmissionTrackingData(completionInfo: CompletionInfo, rejectionCause: RejectionCause) extends SubmissionTrackingData with Product with Serializable
Tracking data for transactions
- trait TransactionTreeFactory extends AnyRef
- class TransactionTreeFactoryImpl extends TransactionTreeFactory with NamedLogging
Factory class that can create the com.digitalasset.canton.data.GenTransactionTrees from a com.digitalasset.canton.protocol.WellFormedTransaction.
- case class UnsequencedSubmission(timeout: CantonTimestamp, trackingData: SubmissionTrackingData) extends SubmissionSequencingInfo with Product with Serializable
Identifies an InFlightSubmission whose sequencing has not yet been observed.
Identifies an InFlightSubmission whose sequencing has not yet been observed.
- timeout
The point in sequencer time after which the submission cannot be sequenced any more. Typically this is the max sequencing time for the com.digitalasset.canton.sequencing.protocol.SubmissionRequest. It can be earlier if the submission logic decided to not send a request at all or the sent request was rejected
- trackingData
The information required to produce an appropriate rejection event when the timeout has elapsed.
- trait WatermarkLookup[Mark] extends AnyRef
- class WatermarkTracker[Mark] extends WatermarkLookup[Mark] with NamedLogging
Keeps track of a boundary WatermarkTracker.highWatermark that increases monotonically.
Keeps track of a boundary WatermarkTracker.highWatermark that increases monotonically. Clients can do one of the following:
- Use the WatermarkTracker to execute a task associated with a given mark
mark
> WatermarkTracker.highWatermark. Ifmark
<= WatermarkTracker.highWatermark, the task will be rejected. - Use the tracker to increase the WatermarkTracker.highWatermark.
Notify the caller as soon as all tasks with
mark
<= WatermarkTracker.highWatermark have finished.
The WatermarkTracker is effectively used to enforce mutual exclusion between two types of tasks.
- Tasks of type 1 act on data with
mark
> WatermarkTracker.highWatermark. - Tasks of type 2 act on data with
mark
<= WatermarkTracker.highWatermark.
- Use the WatermarkTracker to execute a task associated with a given mark
Value Members
- object ChangeIdHash extends Serializable
- object CommandDeduplicator
- object ConfirmationRequestFactory
- object EncryptedViewMessageFactory
- object InFlightSubmission extends Serializable
- object InFlightSubmissionTracker
- object SeedGenerator
- object SequencedSubmission extends Serializable
- object SubmissionSequencingInfo extends Serializable
- object SubmissionTrackingData extends HasVersionedWrapperCompanion[VersionedSubmissionTrackingData, SubmissionTrackingData] with Serializable
- object TransactionSubmissionTrackingData extends Serializable
- object TransactionTreeFactory
- object TransactionTreeFactoryImpl
- object UnsequencedSubmission extends Serializable
- object WatermarkTracker