trait MessageDispatcher extends AnyRef

Dispatches the incoming messages of the com.digitalasset.canton.sequencing.client.SequencerClient to the different processors. It also informs the conflictdetection.RequestTracker about the passing of time for messages that are not processed by the TransactionProcessor.

Self Type
MessageDispatcher with NamedLogging
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MessageDispatcher
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type ProcessingResult
    Attributes
    protected

Abstract Value Members

  1. abstract def acsCommitmentProcessor: ProcessorType
    Attributes
    protected
  2. abstract def badRootHashMessagesRequestProcessor: BadRootHashMessagesRequestProcessor
    Attributes
    protected
  3. abstract def doProcess[A](kind: MessageKind[A], run: => FutureUnlessShutdown[A]): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  4. abstract def domainId: DomainId
    Attributes
    protected
  5. implicit abstract val ec: ExecutionContext
    Attributes
    protected
  6. abstract def flush(): Future[Unit]

    Returns a future that completes when all calls to handleAll whose returned scala.concurrent.Future has completed prior to this call have completed processing.

    Returns a future that completes when all calls to handleAll whose returned scala.concurrent.Future has completed prior to this call have completed processing.

    Annotations
    @VisibleForTesting()
  7. abstract def handleAll(events: Traced[Seq[Either[Traced[EventWithErrors[SequencedEvent[DefaultOpenEnvelope]]], PossiblyIgnoredProtocolEvent]]]): HandlerResult
  8. abstract def inFlightSubmissionTracker: InFlightSubmissionTracker
    Attributes
    protected
  9. abstract def metrics: SyncDomainMetrics
    Attributes
    protected
  10. abstract def participantId: ParticipantId
    Attributes
    protected
  11. implicit abstract def processingResultMonoid: Monoid[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  12. abstract def protocolVersion: ProtocolVersion
    Attributes
    protected
  13. abstract def recordOrderPublisher: RecordOrderPublisher
    Attributes
    protected
  14. abstract def repairProcessor: RepairProcessor
    Attributes
    protected
  15. abstract def requestCounterAllocator: RequestCounterAllocator
    Attributes
    protected
  16. abstract def requestProcessors: RequestProcessors
    Attributes
    protected
  17. abstract def requestTracker: RequestTracker
    Attributes
    protected
  18. abstract def topologyProcessor: (SequencerCounter, SequencedTime, Traced[List[DefaultOpenEnvelope]]) => HandlerResult
    Attributes
    protected
  19. abstract def uniqueContractKeys: Boolean
    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def alarm(sc: SequencerCounter, ts: CantonTimestamp, msg: String)(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def filterBatchForDomainId(batch: Batch[DefaultOpenEnvelope], sc: SequencerCounter, ts: CantonTimestamp)(implicit traceContext: TraceContext): List[DefaultOpenEnvelope]
    Attributes
    protected
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def logDeliveryError(sc: SequencerCounter, ts: CantonTimestamp, msgId: MessageId, status: Status)(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  14. def logEvent(sc: SequencerCounter, ts: CantonTimestamp, msgId: Option[MessageId], evt: SignedContent[SequencedEvent[DefaultOpenEnvelope]])(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  15. def logFaultyEvent(sc: SequencerCounter, ts: CantonTimestamp, msgId: Option[MessageId], err: EventWithErrors[SequencedEvent[DefaultOpenEnvelope]])(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  16. def logTimeProof(sc: SequencerCounter, ts: CantonTimestamp)(implicit traceContext: TraceContext): Unit
    Attributes
    protected
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. def observeDeliverError(error: DeliverError)(implicit traceContext: TraceContext): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  21. def observeSequencing(events: Seq[RawProtocolEvent])(implicit traceContext: TraceContext): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  22. def processBatch(eventE: Either[EventWithErrors[Deliver[DefaultOpenEnvelope]], SignedContent[Deliver[DefaultOpenEnvelope]]])(implicit traceContext: TraceContext): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]

    Rules for processing batches of envelopes:

    Rules for processing batches of envelopes:

    - Request messages originate from untrusted participants. If the batch contains exactly one com.digitalasset.canton.protocol.messages.RootHashMessage that is sent to the participant and the mediator only, the participant processes only request messages with the same root hash. If there are no such root hash message or multiple thereof, the participant does not process the request at all because the mediator will reject the request as a whole.

    - We do not know the submitting member of a particular submission because such a submission may be sequenced through an untrusted individual sequencer node (e.g., on a BFT domain). Such a sequencer node could lie about the actual submitting member. These lies work even with signed submission requests when an earlier submission request is replayed. So we cannot rely on honest domain nodes sending their messages only once and instead must deduplicate replays on the recipient side.

    Attributes
    protected
  23. def processTopologyTransactions(sc: SequencerCounter, ts: SequencedTime, envelopes: List[DefaultOpenEnvelope])(implicit traceContext: TraceContext): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  24. def repairProcessorWedging(upToExclusive: CantonTimestamp)(implicit traceContext: TraceContext): FutureUnlessShutdown[(MessageDispatcher.this)#ProcessingResult]
    Attributes
    protected
  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped