final case class SubmissionRequest(sender: String, messageId: String, batch: Option[CompressedBatch], maxSequencingTime: Long, topologyTimestamp: Option[Long], aggregationRule: Option[AggregationRule], submissionCost: Option[SequencingSubmissionCost]) extends GeneratedMessage with Updatable[SubmissionRequest] with Product with Serializable
Messages used for synchronization between sequencer nodes
- sender
Sender of the request. This request must be wrapped in a SignedContent and the signature therein must validate under one of the sender's public keys. The request metadata must contain a valid authentication token belonging to the sender. (Details in SequencerAuthenticationServerInterceptor.) TARGET STATE: The sender must be authorized (cf. TopologySnapshot.isMemberKnown) CURRENT STATE: The sender authorization check might have a few gaps (e.g., see MemberAuthenticationService.isActive) and/or may use the wrong snapshot.
- messageId
Will be included in the receipt of the request. The sender should not reuse a message_id until max_sequencing_time, because otherwise it will be unable to correlate receipts with requests.
- batch
The payload, mandatory At most one recipient of an envelope may be (a) a mediator, (b) a mediator group, or (c) all synchronizer members.
- maxSequencingTime
Maximum sequencing time for the request. If the request can't be sequenced until the specified time, the sequencer will reject it. After max_sequencing_time, no event corresponding to the request will be emitted. in microseconds of UTC time since Unix epoch
- topologyTimestamp
Optional timestamp (in microseconds of UTC time since Unix epoch) of topology snapshot to be used for processing the request (e.g., validation, signing, resolving group addresses). If defined, it must meet the following conditions: (1) it must be before or at the sequencing timestamp, (2) it must be by at most DynamicSynchronizerParameters.sequencerTopologyTimestampTolerance before the sequencing timestamp, where the DynamicSynchronizerParameters are taken from the topology state at topology_timestamp, (3) the sequencer must have signing keys registered in the topology snapshot. If defined and invalid, the request is rejected. If undefined or invalid, the topology snapshot at sequencing time will be used instead.
- aggregationRule
Optional rule used to aggregate requests.
- submissionCost
Optional submission cost computed by the sender. Must be provided if traffic control is enabled on the receiving synchronizer.
- Annotations
- @SerialVersionUID()
- Alphabetic
- By Inheritance
- SubmissionRequest
- Updatable
- GeneratedMessage
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new SubmissionRequest(sender: String, messageId: String, batch: Option[CompressedBatch], maxSequencingTime: Long, topologyTimestamp: Option[Long], aggregationRule: Option[AggregationRule], submissionCost: Option[SequencingSubmissionCost])
- sender
Sender of the request. This request must be wrapped in a SignedContent and the signature therein must validate under one of the sender's public keys. The request metadata must contain a valid authentication token belonging to the sender. (Details in SequencerAuthenticationServerInterceptor.) TARGET STATE: The sender must be authorized (cf. TopologySnapshot.isMemberKnown) CURRENT STATE: The sender authorization check might have a few gaps (e.g., see MemberAuthenticationService.isActive) and/or may use the wrong snapshot.
- messageId
Will be included in the receipt of the request. The sender should not reuse a message_id until max_sequencing_time, because otherwise it will be unable to correlate receipts with requests.
- batch
The payload, mandatory At most one recipient of an envelope may be (a) a mediator, (b) a mediator group, or (c) all synchronizer members.
- maxSequencingTime
Maximum sequencing time for the request. If the request can't be sequenced until the specified time, the sequencer will reject it. After max_sequencing_time, no event corresponding to the request will be emitted. in microseconds of UTC time since Unix epoch
- topologyTimestamp
Optional timestamp (in microseconds of UTC time since Unix epoch) of topology snapshot to be used for processing the request (e.g., validation, signing, resolving group addresses). If defined, it must meet the following conditions: (1) it must be before or at the sequencing timestamp, (2) it must be by at most DynamicSynchronizerParameters.sequencerTopologyTimestampTolerance before the sequencing timestamp, where the DynamicSynchronizerParameters are taken from the topology state at topology_timestamp, (3) the sequencer must have signing keys registered in the topology snapshot. If defined and invalid, the request is rejected. If undefined or invalid, the topology snapshot at sequencing time will be used instead.
- aggregationRule
Optional rule used to aggregate requests.
- submissionCost
Optional submission cost computed by the sender. Must be provided if traffic control is enabled on the receiving synchronizer.
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
- val aggregationRule: Option[AggregationRule]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val batch: Option[CompressedBatch]
- def clearAggregationRule: SubmissionRequest
- def clearBatch: SubmissionRequest
- def clearSubmissionCost: SubmissionRequest
- def clearTopologyTimestamp: SubmissionRequest
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def companion: SubmissionRequest.type
- Definition Classes
- SubmissionRequest → GeneratedMessage
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def getAggregationRule: AggregationRule
- def getBatch: CompressedBatch
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getField(__field: FieldDescriptor): PValue
- Definition Classes
- SubmissionRequest → GeneratedMessage
- def getFieldByNumber(__fieldNumber: Int): Any
- Definition Classes
- SubmissionRequest → GeneratedMessage
- def getSubmissionCost: SequencingSubmissionCost
- def getTopologyTimestamp: Long
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val maxSequencingTime: Long
- val messageId: String
- 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()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val sender: String
- def serializedSize: Int
- Definition Classes
- SubmissionRequest → GeneratedMessage
- val submissionCost: Option[SequencingSubmissionCost]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def toByteArray: Array[Byte]
- Definition Classes
- GeneratedMessage
- final def toByteString: ByteString
- Definition Classes
- GeneratedMessage
- final def toPMessage: PMessage
- Definition Classes
- GeneratedMessage
- def toProtoString: String
- Definition Classes
- SubmissionRequest → GeneratedMessage
- val topologyTimestamp: Option[Long]
- def update(ms: (Lens[SubmissionRequest, SubmissionRequest]) => Mutation[SubmissionRequest]*): SubmissionRequest
- Definition Classes
- Updatable
- 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])
- def withAggregationRule(__v: AggregationRule): SubmissionRequest
- def withBatch(__v: CompressedBatch): SubmissionRequest
- def withMaxSequencingTime(__v: Long): SubmissionRequest
- def withMessageId(__v: String): SubmissionRequest
- def withSender(__v: String): SubmissionRequest
- def withSubmissionCost(__v: SequencingSubmissionCost): SubmissionRequest
- def withTopologyTimestamp(__v: Long): SubmissionRequest
- final def writeDelimitedTo(output: OutputStream): Unit
- Definition Classes
- GeneratedMessage
- def writeTo(_output__: CodedOutputStream): Unit
- Definition Classes
- SubmissionRequest → GeneratedMessage
- final def writeTo(output: OutputStream): Unit
- Definition Classes
- GeneratedMessage