package store
- Alphabetic
- Public
- Protected
Type Members
- trait AcsCommitmentLookup extends AnyRef
Read interface for ACS commitments, with no usage restrictions.
- trait AcsCommitmentStore extends AcsCommitmentLookup with PrunableByTime[AcsCommitmentStoreError] with AutoCloseable
Read and write interface for ACS commitments.
Read and write interface for ACS commitments. Apart from pruning, should only be used by the ACS commitment processor
- trait ActiveContractSnapshot extends AnyRef
Provides snapshotting for active contracts.
- trait ActiveContractStore extends ActiveContractSnapshot with ConflictDetectionStore[LfContractId, Status, AcsError]
The active contract store (ACS) stores for every contract ID whether it is inexistent, ActiveContractStore.Active, ActiveContractStore.Archived, or ActiveContractStore.TransferredAway, along with the timestamp of the latest change.
The active contract store (ACS) stores for every contract ID whether it is inexistent, ActiveContractStore.Active, ActiveContractStore.Archived, or ActiveContractStore.TransferredAway, along with the timestamp of the latest change. Every change is associated with the timestamp and request counter of the request that triggered the change. The changes are ordered first by timestamp, then by request counter, and finally by change type (activations before deactivations). Implementations must be thread-safe. Updates must be idempotent.
Creations, transfers, and archivals can be mixed arbitrarily. A contract may be transferred in and out several times during its lifetime. It becomes active with every transfer-in and transferred away with every transfer-out. If the ACS detects irregularities, the change method reports them.
These methods are supposed to be called by the
ConflictDetector
only, which coordinates the request journal updates and the updates to the ACS.Updates may be written asynchronously. Every implementation determines an order over all the changes and queries to the ACS. Each individual change must be applied atomically and the result is determined with respect to this order. This order need not be consistent with the order of the calls, though. However, the following is guaranteed: If the future returned by a call completes and observing the completion happens before another call, then all changes of the former call must be ordered before all changes of the later call.
Bulk methods like ActiveContractStore.createContracts and ActiveContractStore.archiveContracts generate one individual change for each contract. So their changes may be interleaved with other calls.
- See also
ActiveContractSnapshot for the ACS snapshot interface
- case class CommandDeduplicationData extends PrettyPrinting with Product with Serializable
The command deduplication data associated with a com.daml.ledger.participant.state.v2.ChangeId.
- trait CommandDeduplicationStore extends AutoCloseable
- case class CommitTimeBeforeRequestTime(requestCounter: RequestCounter, requestTime: CantonTimestamp, commitTime: CantonTimestamp) extends RequestJournalStoreError with Product with Serializable
- trait CommitmentQueue extends AnyRef
Manages the buffer (priority queue) for incoming commitments.
Manages the buffer (priority queue) for incoming commitments.
The priority is based on the timestamp of the end of the commitment's commitment period. Lower timestamps have higher priority.
- trait ConfigurationParamsDeserializer extends AnyRef
- trait ConflictDetectionStore[K, A <: PrettyPrinting, E] extends PrunableByTime[E]
Common interface for stores used by conflict detection
- trait ContractAndKeyLookup extends ContractLookup
- trait ContractKeyJournal extends ConflictDetectionStore[LfGlobalKey, Status, ContractKeyJournalError]
The contract key journal determines for each com.digitalasset.canton.protocol.LfGlobalKey whether it is considered to be allocated.
The contract key journal determines for each com.digitalasset.canton.protocol.LfGlobalKey whether it is considered to be allocated. The store is organized as a journal, indexed by timestamp and request counter, so that crash recovery can remove all changes due to dirty request before replay starts.
With unique contract key semantics and honest key maintainers, the allocation status reflects whether there is an active contract in the active contract store for the given key. However, if two or more contracts with the same key have been active, this correspondence no longer needs to hold. Then, the contract key journal has the authority over the allocation status of the key.
- trait ContractLookup extends AnyRef
- sealed trait ContractLookupError extends ContractStoreError
- trait ContractStore extends ContractLookup
- sealed trait ContractStoreError extends Product with Serializable with PrettyPrinting
- trait DamlPackageStore extends AutoCloseable
For storing and retrieving Daml packages and DARs.
- case class DefiniteAnswerEvent(offset: GlobalOffset, publicationTime: CantonTimestamp, submissionId: Option[LedgerSubmissionId], traceContext: TraceContext) extends PrettyPrinting with Product with Serializable
- offset
A completion offset in the MultiDomainEventLog
- publicationTime
The publication time associated with the
offset
- traceContext
The trace context that created the completion offset.
- trait DomainAliasAndIdStore extends AutoCloseable
Keeps track of domainIds of all domains the participant has previously connected to.
- trait DomainConnectionConfigStore extends AutoCloseable
The configured domains and their connection configuration
- trait DomainParameterStore extends AnyRef
- final case class DuplicateContract(id: LfContractId, oldContract: StoredContract, newContract: StoredContract) extends ContractStoreError with Product with Serializable
- sealed trait EventLogId extends PrettyPrinting with Product with Serializable
- class ExtendedContractLookup extends ContractAndKeyLookup
A contract lookup that adds a fixed set of contracts to a
backingContractLookup
.A contract lookup that adds a fixed set of contracts to a
backingContractLookup
.- Exceptions thrown
java.lang.IllegalArgumentException
ifadditionalContracts
stores a contract under a wrong id
- trait HasPrunable extends AnyRef
- trait InFlightSubmissionStore extends AutoCloseable
Backing store for com.digitalasset.canton.participant.protocol.submission.InFlightSubmissionTracker.
Backing store for com.digitalasset.canton.participant.protocol.submission.InFlightSubmissionTracker.
An in-flight submission is uniquely identified by its com.daml.ledger.participant.state.v2.ChangeId. com.digitalasset.canton.sequencing.protocol.MessageIds should be unique too, but this is not enforced by the store.
Every change to an individual submissions must execute atomically. Bulk operations may interleave arbitrarily the atomic changes of the affected individual submissions and therefore need not be atomic as a whole.
- case class InconsistentRequestState(requestCounter: RequestCounter, storedState: RequestState, expectedState: RequestState) extends RequestJournalStoreError with Product with Serializable
- case class InconsistentRequestTimestamp(requestCounter: RequestCounter, storedTimestamp: CantonTimestamp, expectedTimestamp: CantonTimestamp) extends RequestJournalStoreError with Product with Serializable
- trait IncrementalCommitmentStore extends AnyRef
A key-value store with sets of parties as keys, and with LtHash16 values.
A key-value store with sets of parties as keys, and with LtHash16 values. Keeps a watermark of the record time (a timestamp accompanied by a tie-breaker, to account for multiple changes with the same timestamp) of the last update.
While the store is agnostic to its use, we use is as follows. For each set S of parties such that:
- the parties are stakeholders on some contract C and
- the participant stores C in its ACS
the participant uses the store to store an LtHash16 commitment to all the contracts whose stakeholders are exactly S.
To ensure that the commitments correspond to the ACSs, the caller(s) must jointly ensure that all ACS changes are delivered to this store exactly once. In particular, upon crashes, the caller(s) must send ALL ACS changes that are later - in the lexicographic order of (timestamp, request) - than the watermark returned by the store, but must not replay any changes lower or equal to the watermark.
- trait MultiDomainCausalityStore extends AutoCloseable
- trait MultiDomainEventLog extends AutoCloseable
The multi domain event log merges the events from several SingleDimensionEventLogs to a single event stream.
The multi domain event log merges the events from several SingleDimensionEventLogs to a single event stream.
The underlying SingleDimensionEventLog either refer to a domain ("domain event log") or to the underlying participant ("participant event log").
Ordering guarantees: 1. Events belonging to the same SingleDimensionEventLog have the same relative order in the MultiDomainEventLog 2. Events are globally ordered such that any two (unpruned) events appear in the same relative order in different subscriptions and lookups.
- trait ParticipantEventLog extends SingleDimensionEventLog[ParticipantEventLogId] with AutoCloseable
- class ParticipantNodeEphemeralState extends AnyRef
Some of the state of a participant that is not tied to a domain and is kept only in memory.
- class ParticipantNodePersistentState extends AutoCloseable with NamedLogging
Some of the state of a participant that is not tied to a domain and must survive restarts.
Some of the state of a participant that is not tied to a domain and must survive restarts. Does not cover topology stores (as they are also present for domain nodes) nor the RegisteredDomainsStore (for initialization reasons)
- trait ParticipantPruningStore extends AutoCloseable
The ParticipantPruningStore stores the last started / completed pruning operation.
- trait ParticipantSettingsLookup extends AnyRef
Read-only interface for ParticipantSettingsStore
- trait ParticipantSettingsStore extends ParticipantSettingsLookup with AutoCloseable
Stores misc settings for a participant.
Stores misc settings for a participant. Allows clients to read settings without accessing the database. In turn, a client needs to call
refreshCache
before reading settings. - trait RegisteredDomainsStore extends DomainAliasAndIdStore
- trait RequestJournalStore extends AnyRef
- sealed trait RequestJournalStoreError extends Product with Serializable
- case class SerializableBlindingInfo(blindingInfo: BlindingInfo) extends Product with Serializable
- case class SerializableCommandRejected(commandRejected: CommandRejected) extends Product with Serializable
- case class SerializableCompletionInfo(completionInfo: CompletionInfo) extends Product with Serializable
- case class SerializableConfiguration(configuration: Configuration) extends Product with Serializable
- case class SerializableConfigurationChangeRejected(configurationChangeRejected: ConfigurationChangeRejected) extends Product with Serializable
- case class SerializableConfigurationChanged(configurationChanged: ConfigurationChanged) extends Product with Serializable
- case class SerializableDivulgedContract(divulgedContract: DivulgedContract) extends Product with Serializable
- final case class SerializableLedgerSyncEvent(ledgerSyncEvent: LedgerSyncEvent)(representativeProtocolVersion: RepresentativeProtocolVersion[SerializableLedgerSyncEvent]) extends HasProtocolVersionedWrapper[SerializableLedgerSyncEvent] with Product with Serializable
Wrapper for converting a LedgerSyncEvent to its protobuf companion.
Wrapper for converting a LedgerSyncEvent to its protobuf companion. Currently only Intended only for storage due to the unusual exceptions which are thrown that are only permitted in a storage context.
- Exceptions thrown
canton.store.db.DbDeserializationException
if transactions or contracts fail to deserializecanton.store.db.DbSerializationException
if transactions or contracts fail to serialize
- case class SerializableLfTimestamp(timestamp: Timestamp) extends Product with Serializable
- case class SerializableNodeSeed(nodeId: LfNodeId, seedHash: Hash) extends Product with Serializable
- case class SerializablePartyAddedToParticipant(partyAddedToParticipant: PartyAddedToParticipant) extends Product with Serializable
- case class SerializablePartyAllocationRejected(partyAllocationRejected: PartyAllocationRejected) extends Product with Serializable
- case class SerializablePublicPackageUpload(publicPackageUpload: PublicPackageUpload) extends Product with Serializable
- case class SerializablePublicPackageUploadRejected(publicPackageUploadRejected: PublicPackageUploadRejected) extends Product with Serializable
- case class SerializableRejectionReasonTemplate(rejectionReason: RejectionReasonTemplate) extends Product with Serializable
- case class SerializableSubmissionId(submissionId: LedgerSubmissionId) extends Product with Serializable
- case class SerializableTimeModel(timeModel: LedgerTimeModel) extends Product with Serializable
- case class SerializableTransactionAccepted(transactionAccepted: TransactionAccepted) extends Product with Serializable
- case class SerializableTransactionMeta(transactionMeta: TransactionMeta) extends Product with Serializable
- trait ServiceAgreementStore extends AutoCloseable
- trait SingleDimensionEventLog[+Id <: EventLogId] extends SingleDimensionEventLogLookup
An event log for a single domain or for a domain-independent events (such as package uploads).
An event log for a single domain or for a domain-independent events (such as package uploads). Supports out-of-order publication of events.
- trait SingleDimensionEventLogLookup extends AnyRef
Read-only interface of SingleDimensionEventLog
- trait SingleDomainCausalDependencyStore extends AnyRef
- final case class StoredContract(contract: SerializableContract, requestCounter: RequestCounter, creatingTransactionIdO: Option[TransactionId]) extends PrettyPrinting with Product with Serializable
Data to be stored for a contract.
Data to be stored for a contract.
- contract
The contract to be stored
- requestCounter
The request counter of the latest request that stored the contract.
- creatingTransactionIdO
The id of the transaction that created the contract. scala.None for divulged and witnessed contracts.
- class StoredContractManager extends NamedLogging with ContractLookup
Manages a contract store by keeping pending contracts in memory.
Manages a contract store by keeping pending contracts in memory. ContractLookup.lookup finds these pending contracts in addition to those in the backing ContractStore. A contract ceases to be pending as soon as first request writes it to the backing store using StoredContractManager.commitIfPending.
Unlike ExtendedContractLookup, the pending contracts can be updated and committed to the backing store, concurrently with other contract lookups and additions.
- final case class StoredDomainConnectionConfig(config: DomainConnectionConfig, status: Status) extends Product with Serializable
- class SyncDomainEphemeralState extends SyncDomainEphemeralStateLookup with AutoCloseable with NamedLogging
The state of a synchronization domain that is kept only in memory and must be reconstructed after crashes and fatal errors from the SyncDomainPersistentState.
The state of a synchronization domain that is kept only in memory and must be reconstructed after crashes and fatal errors from the SyncDomainPersistentState. The ephemeral state can be kept across network disconnects provided that the local processing continues as far as possible.
- trait SyncDomainEphemeralStateFactory extends AnyRef
- class SyncDomainEphemeralStateFactoryImpl extends SyncDomainEphemeralStateFactory with NamedLogging
- trait SyncDomainEphemeralStateLookup extends AnyRef
- trait SyncDomainPersistentState extends NamedLogging with AutoCloseable
The state of a synchronization domain that is independent of the connectivity to the domain.
- class SyncDomainPersistentStateFactory extends NamedLogging
Factory for SyncDomainPersistentState.
Factory for SyncDomainPersistentState. Tries to discover existing persistent states or create new ones and checks consistency of domain parameters and unique contract key domains
- trait TransferLookup extends AnyRef
- trait TransferStore extends TransferLookup
- final case class UnknownContract(contractId: LfContractId) extends ContractLookupError with Product with Serializable
- final case class UnknownContracts(contractIds: Set[LfContractId]) extends ContractLookupError with Product with Serializable
- case class UnknownRequestCounter(requestCounter: RequestCounter) extends RequestJournalStoreError with Product with Serializable
Value Members
- object AcsCommitmentStore
- object ActiveContractSnapshot
- object ActiveContractStore
- object CommandDeduplicationData extends Serializable
- object CommandDeduplicationStore
- object ContractAndKeyLookup
- object ContractKeyJournal
- object ContractLookup
- object DamlPackageStore
- object DefiniteAnswerEvent extends Serializable
- object DomainAliasAndIdStore
- object DomainConnectionConfigStore
- object DomainParameterStore
- object EventLogId extends Serializable
- object InFlightSubmissionStore
- object MultiDomainCausalityStore
- object MultiDomainEventLog
- object ParticipantEventLog
- object ParticipantNodeEphemeralState
- object ParticipantNodePersistentState extends HasLoggerName
- object ParticipantPruningStore
- object ParticipantSettingsStore
- object RegisteredDomainsStore
- object SerializableApplicationId extends SerializableStringModule[LedgerApplicationId, daml.lf.data.Ref.ApplicationId.type]
- object SerializableBlindingInfo extends Serializable
- object SerializableCommandId extends SerializableStringModule[daml.lf.data.Ref.CommandId, daml.lf.data.Ref.CommandId.type]
- object SerializableCommandRejected extends Serializable
- object SerializableCompletionInfo extends Serializable
- object SerializableConfiguration extends Serializable
- object SerializableConfigurationChangeRejected extends ConfigurationParamsDeserializer with Serializable
- object SerializableConfigurationChanged extends ConfigurationParamsDeserializer with Serializable
- object SerializableDivulgedContract extends Serializable
- object SerializableLedgerSyncEvent extends HasProtocolVersionedCompanion[SerializableLedgerSyncEvent] with ProtocolVersionedCompanionDbHelpers[SerializableLedgerSyncEvent] with Serializable
- object SerializableLfTimestamp extends Serializable
- object SerializableNodeSeed extends Serializable
- object SerializablePackageId extends SerializableStringModule[LfPackageId, LfPackageId.type]
- object SerializableParticipantId extends SerializableStringModule[LedgerParticipantId, LedgerParticipantId.type]
- object SerializablePartyAddedToParticipant extends Serializable
- object SerializablePartyAllocationRejected extends Serializable
- object SerializablePublicPackageUpload extends Serializable
- object SerializablePublicPackageUploadRejected extends Serializable
- object SerializableRejectionReasonTemplate extends Serializable
- object SerializableSubmissionId extends Serializable
- object SerializableTimeModel extends Serializable
- object SerializableTransactionAccepted extends Serializable
- object SerializableTransactionId extends SerializableStringModule[LedgerTransactionId, LedgerTransactionId.type]
- object SerializableTransactionMeta extends Serializable
- object SerializableWorkflowId extends SerializableStringModule[LfWorkflowId, daml.lf.data.Ref.WorkflowId.type]
- object ServiceAgreementStore
- object SingleDimensionEventLog
- object SingleDomainCausalDependencyStore
- object StoredContract extends Serializable
- object StoredContractManager
- object SyncDomainEphemeralStateFactory
- object SyncDomainPersistentState
- object TransferStore