package transaction
- Alphabetic
- Public
- Protected
Type Members
- final case class DecentralizedNamespaceDefinition extends TopologyMapping with Product with Serializable
Defines a decentralized namespace
Defines a decentralized namespace
authorization: whoever controls the synchronizer and all the owners of the active or observing sequencers that were not already present in the tx with serial = n - 1 exception: a sequencer can leave the consortium unilaterally as long as there are enough members to reach the threshold
- trait DelegatedTopologyTransactionLike[+Op <: TopologyChangeOp, +M <: TopologyMapping] extends TopologyTransactionLike[Op, M]
- sealed trait DelegationRestriction extends Product with Serializable
Represents a restriction of namespace to specific mapping types.
- final case class DynamicSequencingParametersState(synchronizerId: SynchronizerId, parameters: DynamicSequencingParameters) extends TopologyMapping with Product with Serializable
Dynamic sequencing parameter settings for the synchronizer
Dynamic sequencing parameter settings for the synchronizer
Each synchronizer has a set of sequencing parameters that can be changed at runtime. These changes are authorized by the owner of the synchronizer and distributed to all nodes accordingly.
- final case class HostingParticipant(participantId: ParticipantId, permission: ParticipantPermission) extends Product with Serializable
- sealed trait KeyMapping extends Product with Serializable
A topology mapping that maps to a set of public keys for which ownership has to be proven.
- final case class MediatorSynchronizerState extends TopologyMapping with Product with Serializable
Mediator definition for a synchronizer
Mediator definition for a synchronizer
Each synchronizer needs at least one mediator (group), but can have multiple. Mediators can be temporarily turned off by making them observers. This way, they get informed but they don't have to reply.
- final case class MultiTransactionSignature(transactionHashes: NonEmpty[Set[TxHash]], signature: Signature) extends TopologyTransactionSignature with Product with Serializable
Signature over the hash of multiple transaction.
- final case class NamespaceDelegation extends TopologyMapping with Product with Serializable
A namespace delegation transaction (intermediate CA)
A namespace delegation transaction (intermediate CA)
Entrusts a public-key to perform changes on the namespace {(*,I) => p_k}
The key can be restricted to only sign specific mapping types.
- final case class OwnerToKeyMapping(member: Member, keys: NonEmpty[Seq[PublicKey]]) extends TopologyMapping with KeyMapping with Product with Serializable
A key owner (participant, mediator, sequencer) to key mapping
A key owner (participant, mediator, sequencer) to key mapping
In Canton, we need to know keys for all participating entities. The entities are all the protocol members (participant, mediator) plus the sequencer (which provides the communication infrastructure for the protocol members).
- final case class ParticipantAttributes(permission: ParticipantPermission, loginAfter: Option[CantonTimestamp] = None) extends Product with Serializable
- sealed trait ParticipantPermission extends Product with Serializable
Permissions of a participant, i.e., things a participant can do on behalf of a party
Permissions of a participant, i.e., things a participant can do on behalf of a party
Permissions are hierarchical. A participant who can submit can confirm. A participant who can confirm can observe.
- final case class ParticipantSynchronizerLimits(confirmationRequestsMaxRate: NonNegativeInt) extends PrettyPrinting with Product with Serializable
- confirmationRequestsMaxRate
maximum number of mediator confirmation requests sent per participant per second
- final case class ParticipantSynchronizerPermission(synchronizerId: SynchronizerId, participantId: ParticipantId, permission: ParticipantPermission, limits: Option[ParticipantSynchronizerLimits], loginAfter: Option[CantonTimestamp]) extends TopologyMapping with Product with Serializable
- final case class PartyHostingLimits(synchronizerId: SynchronizerId, partyId: PartyId) extends TopologyMapping with Product with Serializable
- final case class PartyToKeyMapping extends TopologyMapping with KeyMapping with Product with Serializable
A party to key mapping
A party to key mapping
In Canton, we can delegate the submission authorisation to a participant node, or we can sign the transaction outside of the node with a party key. This mapping is used to map the party to a set of public keys authorized to sign submissions.
- final case class PartyToParticipant extends TopologyMapping with Product with Serializable
- final case class PurgeTopologyTransaction extends TopologyMapping with Product with Serializable
- final case class SequencerSynchronizerState extends TopologyMapping with Product with Serializable
which sequencers are active on the given synchronizer
which sequencers are active on the given synchronizer
authorization: whoever controls the synchronizer and all the owners of the active or observing sequencers that were not already present in the tx with serial = n - 1 exception: a sequencer can leave the consortium unilaterally as long as there are enough members to reach the threshold UNIQUE(synchronizer_id)
- case class SignedTopologyTransaction[+Op <: TopologyChangeOp, +M <: TopologyMapping] extends HasProtocolVersionedWrapper[SignedTopologyTransaction[TopologyChangeOp, TopologyMapping]] with DelegatedTopologyTransactionLike[Op, M] with Product with Serializable with PrettyPrinting
A signed topology transaction
A signed topology transaction
Every topology transaction needs to be authorized by an appropriate key. This object represents such an authorization, where there is a signature of a given key of the given topology transaction.
Whether the key is eligible to authorize the topology transaction depends on the topology state
- Annotations
- @SuppressWarnings()
- final case class SignedTopologyTransactions[+Op <: TopologyChangeOp, +M <: TopologyMapping](transactions: Seq[SignedTopologyTransaction[Op, M]])(representativeProtocolVersion: RepresentativeProtocolVersion[SignedTopologyTransactions.type]) extends HasProtocolVersionedWrapper[SignedTopologyTransactions[TopologyChangeOp, TopologyMapping]] with PrettyPrinting with Product with Serializable
- final case class SingleTransactionSignature(transactionHash: TxHash, signature: Signature) extends TopologyTransactionSignature with Product with Serializable
Signature over the specific transaction hash
- final case class SynchronizerParametersState(synchronizerId: SynchronizerId, parameters: DynamicSynchronizerParameters) extends TopologyMapping with Product with Serializable
Dynamic synchronizer parameter settings for the synchronizer
Dynamic synchronizer parameter settings for the synchronizer
Each synchronizer has a set of parameters that can be changed at runtime. These changes are authorized by the owner of the synchronizer and distributed to all nodes accordingly.
- final case class SynchronizerTrustCertificate(participantId: ParticipantId, synchronizerId: SynchronizerId) extends TopologyMapping with Product with Serializable
Participant synchronizer trust certificate
- sealed trait TopologyChangeOp extends Product with Serializable with PrettyPrinting
Replace or Remove
- sealed trait TopologyMapping extends Product with Serializable with PrettyPrinting
- trait TopologyMappingChecks extends AnyRef
- sealed trait TopologyMappingCompanion extends Serializable
Trait for all companion objects of topology mappings.
Trait for all companion objects of topology mappings. This allows for a nicer console UX, because users can just refer to, for example, OwnerToKeyMapping instead of TopologyMapping.Code.OwnerToKeyMapping or OwnerToKeyMapping.code.
- final case class TopologyTransaction[+Op <: TopologyChangeOp, +M <: TopologyMapping] extends TopologyTransactionLike[Op, M] with ProtocolVersionedMemoizedEvidence with PrettyPrinting with HasProtocolVersionedWrapper[TopologyTransaction[TopologyChangeOp, TopologyMapping]] with Product with Serializable
Change to the distributed synchronizer topology
Change to the distributed synchronizer topology
A topology transaction is a state change to the synchronizer topology. There are different types of topology states (so called mappings, because they map some id to some value).
Each mapping has some variables and some combination of these variables makes a "unique key". Subsequent changes to that key need to have an incremental serial number.
Topology changes always affect certain identities. Therefore, these topology transactions need to be authorized through signatures.
An authorized transaction is called a SignedTopologyTransaction
- trait TopologyTransactionLike[+Op <: TopologyChangeOp, +M <: TopologyMapping] extends AnyRef
- sealed trait TopologyTransactionSignature extends Product with Serializable
Trait for different types of topology transaction signatures
- class ValidatingTopologyMappingChecks extends TopologyMappingChecks with NamedLogging
- final case class VettedPackage(packageId: LfPackageId, validFrom: Option[CantonTimestamp], validUntil: Option[CantonTimestamp]) extends PrettyPrinting with Product with Serializable
Represents a package with an optional validity period.
Represents a package with an optional validity period. No start or end means that the validity of the package is unbounded. The validity period is expected to be compared to the ledger effective time (LET) of Daml transactions.
- packageId
the hash of the package
- validFrom
optional inclusive start of the validity period in LET
- validUntil
optional exclusive end of the validity period in LET Note that as validFrom and validUntil are in ledger effective time, the boundaries have different semantics from topology transaction validity boundaries.
- final case class VettedPackages extends TopologyMapping with Product with Serializable
Value Members
- object DecentralizedNamespaceDefinition extends TopologyMappingCompanion
- object DelegationRestriction extends Serializable
- object DynamicSequencingParametersState extends TopologyMappingCompanion
- object HostingParticipant extends Serializable
- object MediatorSynchronizerState extends TopologyMappingCompanion
- object MultiTransactionSignature extends Serializable
- object NamespaceDelegation extends TopologyMappingCompanion
- object NoopTopologyMappingChecks extends TopologyMappingChecks
- object OwnerToKeyMapping extends TopologyMappingCompanion
- object ParticipantPermission extends Serializable
- object ParticipantSynchronizerLimits extends Serializable
- object ParticipantSynchronizerPermission extends TopologyMappingCompanion
- object PartyHostingLimits extends TopologyMappingCompanion
- object PartyToKeyMapping extends TopologyMappingCompanion
- object PartyToParticipant extends TopologyMappingCompanion
- object PurgeTopologyTransaction extends TopologyMappingCompanion
- object SequencerSynchronizerState extends TopologyMappingCompanion
- object SignedTopologyTransaction extends VersioningCompanionContext[SignedTopologyTransaction[TopologyChangeOp, TopologyMapping], ProtocolVersionValidation] with Serializable
- object SignedTopologyTransactions extends VersioningCompanionContext[SignedTopologyTransactions[TopologyChangeOp, TopologyMapping], ProtocolVersionValidation] with Serializable
- object SynchronizerParametersState extends TopologyMappingCompanion
- object SynchronizerTrustCertificate extends TopologyMappingCompanion
- object TopologyChangeOp extends Serializable
- object TopologyMapping extends Serializable
- object TopologyMappingChecks
- object TopologyTransaction extends VersioningCompanionMemoization[TopologyTransaction[TopologyChangeOp, TopologyMapping]] with Serializable
- object TopologyTransactionSignature extends Serializable
- object VettedPackage extends Serializable
- object VettedPackages extends TopologyMappingCompanion