class LocalCommitmentsAdministrationGroup extends CommitmentsAdministrationGroup
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- LocalCommitmentsAdministrationGroup
- CommitmentsAdministrationGroup
- NoTracing
- Helpful
- FeatureFlagFilter
- NamedLogging
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Instance Constructors
- new LocalCommitmentsAdministrationGroup(runner: AdminCommandRunner with BaseInspection[ParticipantNode], consoleEnvironment: ConsoleEnvironment, loggerFactory: NamedLoggerFactory)
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
- def add_config_distinguished_slow_counter_participants(counterParticipantsDistinguished: Seq[ParticipantId], synchronizers: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Add additional distinguished counter participants to already existing slow counter participant configuration.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configuration can be extended by adding additional counter participants to existing synchronizers.
| if a given synchronizer is not already configured then it will be ignored without error.
|""")
- def add_participant_to_individual_metrics(individualMetrics: Seq[ParticipantId], synchronizers: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Add additional individual metrics participants to already existing slow counter participant configuration.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configuration can be extended by adding additional counter participants to existing synchronizers.
| if a given synchronizer is not already configured then it will be ignored without error.
|""")
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def buffered(synchronizerAlias: SynchronizerAlias, endAtOrBefore: Instant): Iterable[AcsCommitment]
- def cantonConfig: CantonConfig
- Attributes
- protected
- Definition Classes
- FeatureFlagFilter
- def check[T](flag: FeatureFlag)(command: => T): T
- Attributes
- protected
- Definition Classes
- FeatureFlagFilter
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def computed(synchronizerAlias: SynchronizerAlias, start: Instant, end: Instant, counterParticipant: Option[ParticipantId] = None): Iterable[(CommitmentPeriod, ParticipantId, HashedCommitmentType)]
- Annotations
- @Summary(s = "Lookup ACS commitments locally computed as part of the reconciliation protocol", flag = console.this.Help.Summary.<init>$default$2)
- val consoleEnvironment: ConsoleEnvironment
- Definition Classes
- LocalCommitmentsAdministrationGroup → CommitmentsAdministrationGroup → FeatureFlagFilter
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def get_config_for_slow_counter_participant(synchronizers: Seq[SynchronizerId], counterParticipants: Seq[ParticipantId]): Seq[SlowCounterParticipantSynchronizerConfig]
- Definition Classes
- CommitmentsAdministrationGroup
- def get_config_for_slow_counter_participants(synchronizers: Seq[SynchronizerId]): Seq[SlowCounterParticipantSynchronizerConfig]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Lists for the given synchronizers the configuration of metrics for slow counter-participants (i.e., that" +
"are behind in sending commitments)", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Lists the following config per synchronizer. If `synchronizers` is empty, the command lists config for all
synchronizers:
"| - The participants in the distinguished group, which have two metrics:
the maximum number of intervals that a participant is behind, and the number of participants that are behind
by at least `thresholdDistinguished` reconciliation intervals
| - The participants not in the distinguished group, which have two metrics: the maximum number of intervals that a participant
| is behind, and the number of participants that are behind by at least `thresholdDefault` reconciliation intervals
| - Parameters `thresholdDistinguished` and `thresholdDefault`
| - The participants in `individualMetrics`, which have individual metrics per participant showing how many
reconciliation intervals that participant is behind""")
- def get_intervals_behind_for_counter_participants(counterParticipants: Seq[ParticipantId], synchronizers: Seq[SynchronizerId], threshold: Option[NonNegativeInt]): Seq[CounterParticipantInfo]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Lists for every participant and synchronizer the number of intervals that the participant is behind in sending commitments" +
"if that participant is behind by at least threshold intervals.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """If `counterParticipants` is empty, the command considers all counter-participants.
|If `synchronizers` is empty, the command considers all synchronizers.
|If `threshold` is not set, the command considers 0.
|For counter-participant that never sent a commitment, the output shows they are
|behind by MaxInt""")
- def get_wait_commitments_config_from(synchronizers: Seq[SynchronizerId], counterParticipants: Seq[ParticipantId]): (Seq[NoWaitCommitments], Seq[WaitCommitments])
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Retrieves the latest (i.e., w.r.t. the query execution time) configuration of waiting for commitments from counter-participants.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configuration for waiting for commitments from counter-participants is returned as two sets:
|a set of ignored counter-participants, the synchronizers and the timestamp, and a set of not-ignored
|counter-participants and the synchronizers.
|Filters by the specified counter-participants and synchronizers. If the counter-participant and / or
|synchronizers are empty, it considers all synchronizers and participants known to the participant, regardless of
|whether they share contracts with the participant.
|Even if some participants may not be connected to some synchronizers at the time the query executes, the response still
|includes them if they are known to the participant or specified in the arguments.""")
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def help(methodName: String)(implicit consoleEnvironment: ConsoleEnvironment): Unit
- Definition Classes
- Helpful
- Annotations
- @Summary(s = "Help for specific commands (use help() or help(\"method\") for more information)", flag = console.this.Help.Summary.<init>$default$2) @Topic(t = Seq("Top-level Commands"))
- def help()(implicit consoleEnvironment: ConsoleEnvironment): Unit
- Definition Classes
- Helpful
- def inspect_commitment_contracts(contracts: Seq[LfContractId], timestamp: CantonTimestamp, expectedSynchronizerId: SynchronizerId, downloadPayload: Boolean = false, timeout: NonNegativeDuration = timeouts.unbounded): Seq[CommitmentInspectContract]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Download states of contracts and contract payloads necessary for commitment inspection and reconciliation", flag = FeatureFlag.Preview) @Description(s = """ Returns the contract states (created, assigned, unassigned, archived, unknown) of the given contracts on
| all synchronizers the participant knows from the beginning of time until the present time on each synchronizer.
| The command returns best-effort the contract changes available. Specifically, it does not fail if the ACS
| and/or reassignment state has been pruned during the time interval, or if parts of the time interval
| are ahead of the clean ACS state.
| Optionally returns the contract payload if requested and available.
| The arguments are:
| - contracts: The contract ids whose state and payload we want to fetch
| - timestamp: The timestamp when some counter-participants reported the given contracts as active on the
| expected synchronizer.
| - expectedSynchronizerId: The synchronizer that the contracts are expected to be active on
| - downloadPayload: If true, the payload of the contracts is also downloaded
| - timeout: Time limit for the grpc call to complete
""")
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lastComputedAndSent(synchronizerAlias: SynchronizerAlias): Option[CantonTimestampSecond]
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- LocalCommitmentsAdministrationGroup → CommitmentsAdministrationGroup → NamedLogging
- def lookup_received_acs_commitments(synchronizerTimeRanges: Seq[SynchronizerTimeRange], counterParticipants: Seq[ParticipantId], commitmentState: Seq[ReceivedCmtState], verboseMode: Boolean): Map[SynchronizerId, Seq[ReceivedAcsCmt]]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "List the counter-participants of a participant and the ACS commitments received from them together with" +
"the commitment state.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Optional filtering through the arguments:
| synchronizerTimeRanges: Lists commitments received on the given synchronizers whose period overlaps with any of the given
| time ranges per synchronizer.
| If the list is empty, considers all synchronizers the participant is connected to.
| For synchronizers with an empty time range, considers the latest period the participant knows of for that synchronizer.
| Synchronizers can appear multiple times in the list with various time ranges, in which case we consider the
| union of the time ranges.
|counterParticipants: Lists commitments received only from the given counter-participants. If a counter-participant
| is not a counter-participant on some synchronizer, no commitments appear in the reply from that counter-participant
| on that synchronizer.
|commitmentState: Lists commitments that are in one of the given states. By default considers all states:
| - MATCH: the remote commitment matches the local commitment
| - MISMATCH: the remote commitment does not match the local commitment
| - BUFFERED: the remote commitment is buffered because the corresponding local commitment has not been computed yet
| - OUTSTANDING: we expect a remote commitment that has not yet been received
|verboseMode: If false, the reply does not contain the commitment bytes. If true, the reply contains:
| - In case of a mismatch, the reply contains both the received and the locally computed commitment that do not match.
| - In case of outstanding, the reply does not contain any commitment.
| - In all other cases (match and buffered), the reply contains the received commitment.
""")
- def lookup_sent_acs_commitments(synchronizerTimeRanges: Seq[SynchronizerTimeRange], counterParticipants: Seq[ParticipantId], commitmentState: Seq[SentCmtState], verboseMode: Boolean): Map[SynchronizerId, Seq[SentAcsCmt]]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "List the counter-participants of a participant and the ACS commitments that the participant computed and sent to" +
"them, together with the commitment state.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Optional filtering through the arguments:
| synchronizerTimeRanges: Lists commitments received on the given synchronizers whose period overlap with any of the
| given time ranges per synchronizer.
| If the list is empty, considers all synchronizers the participant is connected to.
| For synchronizers with an empty time range, considers the latest period the participant knows of for that synchronizer.
| Synchronizers can appear multiple times in the list with various time ranges, in which case we consider the
| union of the time ranges.
|counterParticipants: Lists commitments sent only to the given counter-participants. If a counter-participant
| is not a counter-participant on some synchronizer, no commitments appear in the reply for that counter-participant
| on that synchronizer.
|commitmentState: Lists sent commitments that are in one of the given states. By default considers all states:
| - MATCH: the local commitment matches the remote commitment
| - MISMATCH: the local commitment does not match the remote commitment
| - NOT_COMPARED: the local commitment has been computed and sent but no corresponding remote commitment has
| been received
|verboseMode: If false, the reply does not contain the commitment bytes. If true, the reply contains:
| - In case of a mismatch, the reply contains both the received and the locally computed commitment that
| do not match.
| - In all other cases (match and not compared), the reply contains the sent commitment.
""")
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def open_commitment(commitment: HashedCommitmentType, synchronizerId: SynchronizerId, timestamp: CantonTimestamp, counterParticipant: ParticipantId, timeout: NonNegativeDuration = timeouts.unbounded): Seq[CommitmentContractMetadata]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Opens a commitment by retrieving the metadata of active contracts shared with the counter-participant.", flag = FeatureFlag.Preview) @Description(s = """ Retrieves the contract ids and the reassignment counters of the shared active contracts at the given timestamp
| and on the given synchronizer.
| Returns an error if the participant cannot retrieve the data for the given commitment anymore.
| The arguments are:
| - commitment: The commitment to be opened
| - synchronizerId: The synchronizer for which the commitment was computed
| - timestamp: The timestamp of the commitment. Needs to correspond to a commitment tick.
| - counterParticipant: The counter participant to whom we previously sent the commitment
| - timeout: Time limit for the grpc call to complete
""")
- def outstanding(synchronizerAlias: SynchronizerAlias, start: Instant, end: Instant, counterParticipant: Option[ParticipantId] = None): Iterable[(CommitmentPeriod, ParticipantId, CommitmentPeriodState)]
- def received(synchronizerAlias: SynchronizerAlias, start: Instant, end: Instant, counterParticipant: Option[ParticipantId] = None): Iterable[SignedProtocolMessage[AcsCommitment]]
- Annotations
- @Summary(s = "Lookup ACS commitments received from other participants as part of the reconciliation protocol", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The arguments are:
- synchronizerAlias: the alias of the synchronizer
- start: lowest time exclusive
- end: highest time inclusive
- counterParticipant: optionally filter by counter participant
""")
- def reinitialize_commitments(synchronizerIds: Seq[SynchronizerId], counterParticipants: Seq[ParticipantId], partyIds: Seq[PartyId], timeout: NonNegativeDuration): Seq[CommitmentReinitializationInfo]
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Reinitializes commitments from the current ACS. Filtering is possible by synchronizers, counter-participants" +
"and stakeholder groups.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The command is useful if the participant's commitments got corrupted due to a bug. The command reinitializes the
|commitments for the given synchronizers and counter-participants, and containing contracts with stakeholders
|including the given parties.
|If `synchronizers` is empty, the command considers all synchronizers.
|If `counterParticipants` is empty, the command considers all counter-participants.
|If `partyIds` is empty, the command considers all stakeholder groups.
|`timeout` specifies how long the commands waits for the reinitialization to complete. Granularities smaller than
|a second are ignored. Past this timeout, the operator can query the status of the reinitialization using
|`commitment_reinitialization_status`. The command returns a sequence pairs of synchronizer IDs and the
|reinitialization status for each synchronizer: either the ACS timestamp of the reinitialization, or an error
|message if reinitialization failed.""")
- def remove_config_for_slow_counter_participants(counterParticipantsDistinguished: Seq[ParticipantId], synchronizers: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "removes existing configurations from synchronizers and distinguished counter participants.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configurations can be removed from distinguished counter participant and synchronizers
| use empty sequences correlates to selecting all, so removing all distinguished participants
| from a synchronizer can be done with Seq.empty for 'counterParticipantsDistinguished' and Seq(SynchronizerId) for synchronizers.
| Leaving both sequences empty clears all configs on all synchronizers.
|""")
- def remove_participant_from_individual_metrics(individualMetrics: Seq[ParticipantId], synchronizers: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "removes existing configurations from synchronizers and individual metrics participants.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configurations can be removed from individual metrics counter participant and synchronizers
| use empty sequences correlates to selecting all, so removing all individual metrics participants
| from a synchronizer can be done with Seq.empty for 'individualMetrics' and Seq(SynchronizerId) for synchronizers.
| Leaving both sequences empty clears all configs on all synchronizers.
|""")
- def set_config_for_slow_counter_participants(configs: Seq[SlowCounterParticipantSynchronizerConfig]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Configure metrics for slow counter-participants (i.e., that are behind in sending commitments) and" +
"configure thresholds for when a counter-participant is deemed slow.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """The configurations are per synchronizer or set of synchronizers and concern the following metrics
|issued per synchronizer:
| - The maximum number of intervals that a distinguished participant falls
| behind. All participants that are not in the distinguished or the individual group are automatically part of the default group
| - The maximum number of intervals that a participant in the default groups falls behind
| - The number of participants in the distinguished group that are behind by at least `thresholdDistinguished`
| reconciliation intervals.
| - The number of participants not in the distinguished or the individual group that are behind by at least `thresholdDefault`
| reconciliation intervals.
| - Separate metric for each participant in `individualMetrics` argument tracking how many intervals that
|participant is behind""")
- def set_no_wait_commitments_from(counterParticipants: Seq[ParticipantId], synchronizerIds: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Disable waiting for commitments from the given counter-participants.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Disabling waiting for commitments disregards these counter-participants w.r.t. pruning,
|which gives up non-repudiation for those counter-participants, but increases pruning resilience
|to failures and slowdowns of those counter-participants and/or the network.
|If the participant set is empty, the command does nothing.""")
- def set_wait_commitments_from(counterParticipants: Seq[ParticipantId], synchronizerIds: Seq[SynchronizerId]): Unit
- Definition Classes
- CommitmentsAdministrationGroup
- Annotations
- @Summary(s = "Enable waiting for commitments from the given counter-participants. " +
"Waiting for commitments from all counter-participants is the default behavior; explicitly enabling waiting" +
"for commitments is only necessary if it was previously disabled.", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Enables waiting for commitments, which blocks pruning at offsets where commitments from these counter-participants
|are missing.
|If the participant set is empty or the synchronizer set is empty, the command does nothing.""")
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit def traceContext: TraceContext
- Attributes
- protected
- Definition Classes
- NoTracing
- 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])