Packages

t

com.digitalasset.canton.participant.store

IncrementalCommitmentStore

trait IncrementalCommitmentStore extends AnyRef

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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IncrementalCommitmentStore
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def get()(implicit traceContext: TraceContext): Future[(RecordTime, Map[SortedSet[LfPartyId], CommitmentType])]

    Retrieve the current store.

    Retrieve the current store.

    Defaults to an empty map with a record time of com.digitalasset.canton.participant.event.RecordTime.MinValue, if no changes have been added yet.

  2. abstract def update(rt: RecordTime, updates: Map[SortedSet[LfPartyId], CommitmentType], deletes: Set[SortedSet[LfPartyId]])(implicit traceContext: TraceContext): Future[Unit]

    Update the commitments.

    Update the commitments.

    rt

    Record time of the update

    updates

    The key-value updates to be written. The key set must be disjoint from deletes (not checked)

    deletes

    Keys to be deleted to the store.

  3. abstract def watermark(implicit traceContext: TraceContext): Future[RecordTime]

    Return the record time of the latest update.

    Return the record time of the latest update.

    Defaults to com.digitalasset.canton.participant.event.RecordTime.MinValue if no changes have been added yet.

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  14. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  18. 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