trait DomainTopologyTransactionMessageValidator extends AnyRef
Validate 2.x domain topology transaction messages
The domain topology manager distributes the topology state through domain topology messages to all registered and active members. This class is used to verify the correctness of the given signature.
Some care is required when validating the signature, as the key used by the domain topology dispatcher is actually defined by the state that it changes.
When a new participant connects for the first time, it will receive a first message which is self-consistent, where the message is signed by a key for which we get all topology transactions in the message itself.
Therefore, a participant can be sure to talk to the right domain by defining the domain-id on the domain connection, because we will check the topology state against this domain-id too.
Replay attacks are prevented using a max-sequencing timestamp which prevents that a message is replayed to different recipients at a later point in time.
- Alphabetic
- By Inheritance
- DomainTopologyTransactionMessageValidator
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def extractTopologyUpdatesAndValidateEnvelope(ts: SequencedTime, envelopes: List[DefaultOpenEnvelope])(implicit traceContext: TraceContext, closeContext: CloseContext): FutureUnlessShutdown[List[SignedTopologyTransaction[TopologyChangeOp]]]
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]) @native() @IntrinsicCandidate()
- 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
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def initLastMessageTimestamp(lastMessageTs: Option[CantonTimestamp]): Unit
- 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
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- 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])