Console Commands
Note
split by participant and synchronizer, put shared commands in extend/participant section, and add a section for the synchronizer
Console Commands
Top-level Commands
The following commands are available for convenience:
exitSummary: Leave the console
Summary: Help with console commands
Description:
Type help("<command>") for detailed help for <command>.
Summary: Complete new sequencer initialization
-
Arguments:
newSequencer: com.digitalasset.canton.console.SequencerReferenceexistingSequencer: com.digitalasset.canton.console.SequencerReference
Description:
Fourth step of sequencer onboarding. In most cases, the onboarding command is preferred.
Summary: Bootstraps a decentralized namespace for the provided owners
- Arguments:
-
Return type:
(com.digitalasset.canton.topology.Namespace, Seq[com.digitalasset.canton.topology.transaction.SignedTopologyTransaction.GenericSignedTopologyTransaction])
Description:
Returns the decentralized namespace, the fully authorized transaction of its definition,
as well as all root certificates of the owners. This allows other nodes to import and
fully validate the decentralized namespace definition.
After this call has finished successfully, all of the owners have stored the co-owners'
identity topology transactions as well as the fully authorized decentralized namespace
definition in the specified topology store.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Onboards a new Sequencer node
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewSequencer: com.digitalasset.canton.console.SequencerReferenceexistingSequencer: com.digitalasset.canton.console.SequencerReferencesynchronizerOwners: Set[com.digitalasset.canton.console.InstanceReference]customCommandTimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]isBftSequencer: Boolean
Description:
Onboards a new Sequencer node using an existing node from the network.
Summary: Propose new sequencer state
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewSequencer: com.digitalasset.canton.console.SequencerReferenceexistingSequencer: com.digitalasset.canton.console.SequencerReferencesynchronizerOwners: Set[com.digitalasset.canton.console.InstanceReference]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
Second step of sequencer onboarding. In most cases, the onboarding command is preferred.
Summary: Bootstraps a new synchronizer
-
Arguments:
synchronizerName: Stringsequencers: Seq[com.digitalasset.canton.console.SequencerReference]mediatorsToSequencers: Map[com.digitalasset.canton.console.MediatorReference,(Seq[com.digitalasset.canton.console.SequencerReference], com.digitalasset.canton.config.RequireTypes.PositiveInt, com.digitalasset.canton.config.RequireTypes.NonNegativeInt)]synchronizerOwners: Seq[com.digitalasset.canton.console.InstanceReference]synchronizerThreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntstaticSynchronizerParameters: com.digitalasset.canton.admin.api.client.data.StaticSynchronizerParametersmediatorRequestAmplification: com.digitalasset.canton.admin.api.client.data.SubmissionRequestAmplificationmediatorThreshold: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Bootstraps a new synchronizer with the given static synchronizer parameters and members.
Any participants as synchronizer owners must still manually connect to the synchronizer
afterwards.
Parameters:
- mediatorsToSequencers: Map of mediator reference to a tuple of a sequence of sequencer
references, the sequencer trust threshold and the liveness margin for the given
mediator.
Summary: Bootstraps a new synchronizer
-
Arguments:
synchronizerName: Stringsequencers: Seq[com.digitalasset.canton.console.SequencerReference]mediators: Seq[com.digitalasset.canton.console.MediatorReference]synchronizerOwners: Seq[com.digitalasset.canton.console.InstanceReference]synchronizerThreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntstaticSynchronizerParameters: com.digitalasset.canton.admin.api.client.data.StaticSynchronizerParametersmediatorRequestAmplification: com.digitalasset.canton.admin.api.client.data.SubmissionRequestAmplificationmediatorThreshold: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Bootstraps a new synchronizer with the given static synchronizer parameters and members.
Any participants as synchronizer owners must still manually connect to the synchronizer
afterwards.
Summary: Bootstraps a local synchronizer using default arguments
-
Arguments:
synchronizerName: String
- Return type:
Description:
This is a convenience method for bootstrapping a local synchronizer.
The synchronizer will include all sequencers and mediators that are currently running.
It will be owned by the sequencers, while the mediator threshold will be set to require
all mediators to confirm.
Summary: Upload new sequencer’s identity transactions
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewSequencer: com.digitalasset.canton.console.SequencerReferenceexistingSequencer: com.digitalasset.canton.console.SequencerReference
Description:
First step of sequencer onboarding. In most cases, the onboarding command is preferred.
Summary: Wait for new sequencer state to be effective
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewSequencer: com.digitalasset.canton.console.SequencerReferenceexistingSequencer: com.digitalasset.canton.console.SequencerReferenceisBftSequencer: BooleancommandTimeout: com.digitalasset.canton.config.NonNegativeDuration
Description:
Third step of sequencer onboarding. In most cases, the onboarding command is preferred.
Summary: Yields the timeout for running console commands
- Return type:
Description:
When the timeout has elapsed, the console stops waiting for the command result.
The command will continue running in the background.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Sets the timeout for running console commands
- Arguments:
Description:
When the timeout has elapsed, the console stops waiting for the command result.
The command will continue running in the background.
The new timeout must be positive.
Summary: All mediator nodes (.all, .local, .remote)
Summary: All nodes (.all, .local, .remote)
Summary: All participant nodes (.all, .local, .remote)
Summary: All sequencer nodes (.all, .local, .remote)
Summary: Build create command
-
Arguments:
packageId: Stringmodule: Stringtemplate: Stringarguments: Map[String,Any]
-
Return type:
com.daml.ledger.api.v2.commands.Command
Summary: Build exercise command from CreatedEvent
-
Arguments:
choice: Stringarguments: Map[String,Any]event: com.daml.ledger.api.v2.event.CreatedEvent
-
Return type:
com.daml.ledger.api.v2.commands.Command
Summary: Build exercise command
-
Arguments:
packageId: Stringmodule: Stringtemplate: Stringchoice: Stringarguments: Map[String,Any]contractId: String
-
Return type:
com.daml.ledger.api.v2.commands.Command
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Determine current logging level
-
Arguments:
loggerName: String
-
Return type:
Option[ch.qos.logback.classic.Level]
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Dynamically change log level (TRACE, DEBUG, INFO, WARN, ERROR, OFF, null)
-
Arguments:
loggerName: Stringlevel: String
Summary: Manage local mediator ‘mediator1’; type ‘mediator1 help’ or ‘mediator1 help(“<methodName>”)’ for more help
Summary: Manage participant ‘participant1’; type ‘participant1 help’ or ‘participant1 help(“<methodName>”)’ for more help
Summary: Manage participant ‘participant2’; type ‘participant2 help’ or ‘participant2 help(“<methodName>”)’ for more help
Summary: Manage participant ‘participant3’; type ‘participant3 help’ or ‘participant3 help(“<methodName>”)’ for more help
Summary: Manage local sequencer ‘sequencer1’; type ‘sequencer1 help’ or ‘sequencer1 help(“<methodName>”)’ for more help
Summary: Register AutoCloseable object to be shutdown if Canton is shut down
-
Arguments:
closeable: AutoCloseable
Summary: A process logger that forwards process logs to the canton logs
-
Arguments:
tracedLogger: com.digitalasset.canton.logging.TracedLogger
-
Return type:
scala.sys.process.ProcessLogger
Summary: Create a participants config for Daml script
-
Arguments:
file: Option[String]useParticipantAlias: BooleandefaultParticipant: Option[com.digitalasset.canton.console.ParticipantReference]
-
Return type:
java.io.File
Description:
The generated config can be passed to `daml script` via the `participant-config`
parameter.
Parameters:
- file (default to "participant-config.json")
- useParticipantAlias (default to true): participant aliases are used instead of UIDs
- defaultParticipant (default to None): adds a default participant if provided
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Reflective inspection of object arguments, handy to inspect case class objects
-
Arguments:
obj: T
-
Return type:
List[String]
Description:
Return the list field names of the given object.
Helpful function when inspecting the return result.
Summary: Reads several Protobuf messages from a file
-
Arguments:
fileName: String
-
Return type:
Seq[A]
Description:
Fails with an exception, if the file can't be read or parsed.
Summary: Reads a ByteString from a file
-
Arguments:
fileName: String
-
Return type:
com.google.protobuf.ByteString
Description:
Fails with an exception, if the file can't be read.
Summary: Reads a single Protobuf message from a file
-
Arguments:
fileName: String
-
Return type:
A
Description:
Fails with an exception, if the file can't be read or parsed.
Summary: Wait for a condition to become true
-
Arguments:
maxWaitPeriod: com.digitalasset.canton.config.NonNegativeDurationcondition: => Booleanfailure: => String
-
Return type:
(condition: => Boolean, failure: => String): Unit
Description:
Wait `timeout` duration until `condition` becomes true.
Retry evaluating `condition` with an exponentially increasing back-off up to
`maxWaitPeriod` duration between retries.
Summary: Wait for a condition to become true, using default timeouts
-
Arguments:
condition: => Boolean
Description:
Wait until condition becomes true, with a timeout taken from the
parameters.timeouts.console.bounded configuration parameter.
Summary: Wait until all topology changes have been effected on all accessible nodes
- Arguments:
Summary: Reflective inspection of type arguments
-
Return type:
List[String]
Description:
Return the list of field names of the given type.
Helpful function when creating new objects for requests.
Summary: Writes a ByteString to a file
-
Arguments:
data: com.google.protobuf.ByteStringfileName: String
Summary: Writes a Protobuf message to a file
-
Arguments:
data: scalapb.GeneratedMessagefileName: String
Summary: Writes several Protobuf messages to a file
-
Arguments:
data: Seq[scalapb.GeneratedMessage]fileName: String
Participant Commands
clear_cache (Testing)Summary: Clear locally cached variables
Description:
Some commands cache values on the client side. Use this command to explicitly clear
the caches of these values.
Summary: Return participant config
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Yields the globally unique id of this participant
- Return type:
Description:
Throws an exception, if the id has not yet been allocated. For example when the
participant has not yet been started.
Summary: Check if the local instance is running and is fully initialized
-
Return type:
Boolean
Summary: Check if the local instance is running
-
Return type:
Boolean
Summary: Yields Some(id) of this participant if id present
- Return type:
Description:
Returns None, if the id has not yet been allocated. For example the participant
has not yet been initialised.
Summary: Returns the node specific simClock
- Return type:
Description:
There is a race condition possibility if the environment.SimClock is being used as well.
Summary: Start the instance
Summary: Stop the instance
Bilateral Commitments
commitments.add_config_distinguished_slow_counter_participantsSummary: Add additional distinguished counter participants to already existing slow counter participant configuration
-
Arguments:
counterParticipantsDistinguished: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
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.
Summary: Add additional individual metrics participants to already existing slow counter participant configuration
-
Arguments:
individualMetrics: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
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.
Summary: Lookup ACS commitments locally computed as part of the reconciliation protocol
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasstart: java.time.Instantend: java.time.InstantcounterParticipant: Option[com.digitalasset.canton.topology.ParticipantId]
-
Return type:
Iterable[(com.digitalasset.canton.protocol.messages.CommitmentPeriod, com.digitalasset.canton.topology.ParticipantId, com.digitalasset.canton.protocol.messages.AcsCommitment.HashedCommitmentType)]
Summary: List slow counter-participant metric configs for given synchronizers
-
Arguments:
synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SlowCounterParticipantSynchronizerConfig]
Description:
Lists for the given synchronizers the configuration of metrics for slow
counter-participants (i.e., that are behind in sending commitments).
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
Summary: List interval lag for participants exceeding the threshold per synchronizer
-
Arguments:
counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]threshold: Option[com.digitalasset.canton.config.RequireTypes.NonNegativeInt]
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.CounterParticipantInfo]
Description:
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.
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.
Summary: Get the latest configuration for waiting on counter-participant commitments
-
Arguments:
synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]
-
Return type:
(Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Pruning.NoWaitCommitments], Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Pruning.WaitCommitments])
Description:
Retrieves the latest (i.e., w.r.t. the query execution time) configuration of waiting for
commitments from counter-participants.
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.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Download states of contracts and contract payloads necessary for commitment inspection and reconciliation
-
Arguments:
contracts: Seq[com.digitalasset.canton.protocol.LfContractId]timestamp: com.digitalasset.canton.data.CantonTimestampexpectedSynchronizerId: com.digitalasset.canton.topology.SynchronizerIddownloadPayload: Boolean
- Return type:
Description:
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.
Parameters:
- 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.
Summary: List participant’s counter-participants, their ACS commitments, and the commitment state
-
Arguments:
synchronizerTimeRanges: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SynchronizerTimeRange]counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]commitmentState: Seq[com.digitalasset.canton.participant.pruning.AcsCommitmentProcessor.ReceivedCmtState]verboseMode: Boolean
-
Return type:
Map[com.digitalasset.canton.topology.SynchronizerId,Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.ReceivedAcsCmt]]
Description:
Optional filtering through the parameters:
- 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.
Summary: List participant’s counter-participants and the ACS commitments the participant sent them
-
Arguments:
synchronizerTimeRanges: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SynchronizerTimeRange]counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]commitmentState: Seq[com.digitalasset.canton.participant.pruning.AcsCommitmentProcessor.SentCmtState]verboseMode: Boolean
-
Return type:
Map[com.digitalasset.canton.topology.SynchronizerId,Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SentAcsCmt]]
Description:
Specifically, the command returns a map from synchronizer IDs to tuples of sent
commitment data, specifying the period, target counter-participant, the commitment state,
and additional data according to verbose mode.
Optional filtering through the parameters:
- 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, which essentially indicates that a
counter-participant is running behind.
- verboseMode: If true, the reply contains the commitment bytes, as follows:
- 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
bytes.
Summary: Opens a commitment by retrieving the metadata of active contracts shared with the counter-participant
-
Arguments:
commitment: com.digitalasset.canton.protocol.messages.AcsCommitment.HashedCommitmentTypephysicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdtimestamp: com.digitalasset.canton.data.CantonTimestampcounterParticipant: com.digitalasset.canton.topology.ParticipantIdoutputFile: Option[String]
- Return type:
Description:
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.
Parameters:
- commitment: The commitment to be opened.
- physicalSynchronizerId: 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.
- outputFile: Optional file to which the result is written.
- timeout: Time limit for the grpc call to complete.
Summary: Lookup ACS commitments received from other participants as part of the reconciliation protocol
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasstart: java.time.Instantend: java.time.InstantcounterParticipant: Option[com.digitalasset.canton.topology.ParticipantId]
-
Return type:
Iterable[com.digitalasset.canton.protocol.messages.SignedProtocolMessage[com.digitalasset.canton.protocol.messages.AcsCommitment]]
Description:
Parameters:
- synchronizerAlias: The alias of the synchronizer
- start: Lowest time exclusive
- end: Highest time inclusive
- counterParticipant: Optionally filter by counter participant
Summary: Reinitializes commitments from current ACS (filters by synchronizers, counter-participants, stakeholder groups)
-
Arguments:
synchronizerIds: Seq[com.digitalasset.canton.topology.SynchronizerId]counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.ReinitCommitments.CommitmentReinitializationInfo]
Description:
The command is useful if the participant's commitments got corrupted due to a bug. It
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.
Summary: Removes existing configurations from synchronizers and distinguished counter-participants
-
Arguments:
counterParticipantsDistinguished: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
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.
Summary: Removes existing configurations from synchronizers and individual metrics participants
-
Arguments:
individualMetrics: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
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.
Summary: Configure metrics and thresholds for detecting slow counter-participants
-
Arguments:
configs: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SlowCounterParticipantSynchronizerConfig]
Description:
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.
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.
Summary: Disable waiting for commitments from the given counter-participants
-
Arguments:
counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizerIds: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
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.
Summary: Enable waiting for commitments from the given counter-participants
-
Arguments:
counterParticipants: Seq[com.digitalasset.canton.topology.ParticipantId]synchronizerIds: Seq[com.digitalasset.canton.topology.SynchronizerId]
Description:
Enables waiting for commitments, which blocks pruning at offsets where commitments from
these counter-participants are missing.
Waiting for commitments from all counter-participants is the default behavior;
explicitly enabling waiting for commitments is only necessary if it was previously
disabled.
If the participant set is empty or the synchronizer set is empty, the command does
nothing.
DAR Management
dars.downloadSummary: Downloads the DAR file with the provided main package-id to the given directory
-
Arguments:
mainPackageId: Stringdirectory: String
Summary: List contents of DAR files
-
Arguments:
mainPackageId: String
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List installed DAR files
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntfilterName: StringfilterDescription: String
- Return type:
Description:
List DARs installed on this participant
Parameters:
- filterName: filter by name
- filterDescription: filter by description
- limit: Limit number of results (default none)
Summary: Remove a DAR from the participant
-
Arguments:
mainPackageId: StringsynchronizeVetting: Boolean
Description:
Can be used to remove a DAR from the participant, if the following conditions are
satisfied:
1. The main package of the DAR must be unused -- there should be no active contract from
this package
2. All package dependencies of the DAR should either be unused or contained in another of
the participant node's uploaded DARs. Canton uses this restriction to ensure that the
package dependencies of the DAR don't become "stranded" if they're in use.
3. The main package of the dar should not be vetted. If it is vetted, Canton will try to
automatically revoke the vetting for the main package of the DAR, but this automatic
vetting revocation will only succeed if the main package vetting originates from a
standard `dars.upload`. Even if the automatic revocation fails, you can always
manually revoke the package vetting.
If synchronizeVetting is true (default), then the command will block until the
participant has observed the vetting transactions to be registered with the synchronizer.
Summary: Upload a DAR to Canton
-
Arguments:
path: Stringdescription: StringsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages: BooleansynchronizeVetting: BooleanexpectedMainPackageId: StringrequestHeaders: Map[String,String]
-
Return type:
String
Description:
Daml code is normally shipped as a Dar archive and must explicitly be uploaded to a
participant. A Dar is a collection of LF-packages, the native binary representation of
Daml smart contracts.
The Dar can be provided either as a link to a local file or as a URL. If a URL is
provided, then any request headers can be provided as a map. The Dar will be
downloaded and then uploaded to the participant.
In order to use Daml templates on a participant, the Dar must first be uploaded and then
vetted by the participant. Vetting will ensure that other participants can check
whether they can actually send a transaction referring to a particular Daml package and
participant.
Packages must be vetted on each synchronizer by registering a VettedPackages topology
transaction.
If synchronizerId is not set (default), the packages will be vetted, if the participant
is connected to only one synchronizer.
If synchronizeVetting is true (default), then the command will block until the
participant has observed the vetting transactions to be registered with the synchronizer.
This command waits for the vetting transaction to be successfully registered on the
synchronizer.
This is the safe default setting minimizing race conditions.
Note that synchronize vetting might block on permissioned synchronizers that do not just
allow participants to update the topology state. In such cases, synchronizeVetting should
be turned off.
Synchronize vetting can be invoked manually using
$participant.package.synchronize_vettings()
Summary: Upload many DARs to Canton
-
Arguments:
paths: Seq[String]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages: BooleansynchronizeVetting: BooleanrequestHeaders: Map[String,String]
-
Return type:
Seq[String]
Description:
Daml code is normally shipped as a Dar archive and must explicitly be uploaded to a
participant. A Dar is a collection of LF-packages, the native binary representation of
Daml smart contracts.
The Dars can be provided either as a link to a local file or as a URL. If a URL is
provided, then any request headers can be provided as a map. The Dars will be
downloaded and then uploaded to the participant.
In order to use Daml templates on a participant, the Dars must first be uploaded and then
vetted by the participant. Vetting will ensure that other participants can check whether
they can actually send a transaction referring to a particular Daml package and
participant.
Packages must be vetted on each synchronizer by registering a VettedPackages topology
transaction.
If synchronizerId is not set (default), the packages will be vetted, if the participant
is connected to only one synchronizer.
If synchronizeVetting is true (default), then the command will block until the
participant has observed the vetting transactions to be registered with the synchronizer.
This command waits for the vetting transaction to be successfully registered on the
synchronizer. This is the safe default setting minimizing race conditions.
Note that synchronize vetting might block on permissioned synchronizers that do not just
allow participants to update the topology state. In such cases, synchronizeVetting should
be turned off.
Synchronize vetting can be invoked manually using
$participant.package.synchronize_vettings()
Summary: Validate DARs against the current participants’ state
-
Arguments:
path: String
-
Return type:
String
Description:
Performs the same DAR and Daml package validation checks that the upload call performs,
but with no effects on the target participants: the DAR is not persisted or vetted.
Summary: Revoke vetting for all packages contained in the DAR archive identified by the provided main package-id
-
Arguments:
mainPackageId: StringsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]
Description:
This command succeeds if the vetting command used to vet the DAR's packages
was symmetric and resulted in a single vetting topology transaction for all the packages
in the DAR.
This command is potentially dangerous and misuse can lead the participant to fail in
processing transactions.
Summary: Vet all packages contained in the DAR archive identified by the provided main package-id
-
Arguments:
mainPackageId: Stringsynchronize: BooleansynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Database
db.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Migrates the instance’s database if using a database storage
Description:
When instances reside on different nodes, their database migration can be run in parallel
to save time. Please not that the migration commands must however must be run on each
node individually, because remote migration through `participants.remote...` is not
supported.
Summary: Repairs database migration (use only when advised)
-
Arguments:
force: Boolean
Description:
In some rare cases, we change already applied database migration files in a new release
and the repair command resets the checksums we use to ensure that in general already
applied migration files have not been changed.
You should only use `db.repair_migration` when advised and otherwise use it at your own
risk - in the worst case running it may lead to data corruption when an incompatible
database migration (one that should be rejected because the already applied database
migration files have changed) is subsequently falsely applied.
Synchronizer connectivity
synchronizers.activeSummary: Test whether a participant is connected to and permissioned on a synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
-
Return type:
Boolean
Description:
Yields false, if the synchronizer is not connected or not healthy.
Yields false, if the synchronizer is configured in the Canton configuration and
the participant is not active from the perspective of the synchronizer.
Uses the local clock to evaluate `ParticipantSynchronizerPermission.login_after`.
Summary: Returns the current configuration of a given synchronizer
-
Arguments:
physicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerId
- Return type:
Summary: Returns the current configuration of a given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
- Return type:
Summary: Macro to connect a participant to a synchronizer given by connection
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasconnection: StringmanualConnect: BooleanphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]certificatesPath: Stringpriority: InttimeTrackerConfig: com.digitalasset.canton.config.SynchronizerTimeTrackerConfigsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]validation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidationsequencerAlias: com.digitalasset.canton.SequencerAlias
- Return type:
Description:
The connect macro performs a series of commands in order to connect this participant to
a synchronizer.
First, `register` will be invoked with the given arguments, but first registered
with `manualConnect = true`. If you already set `manualConnect = true`, then nothing else
will happen and you will have to do the remaining steps yourselves.
Finally, the command will invoke `reconnect` to startup the connection.
If the reconnect succeeded, the registered configuration will be updated
with `manualStart = true`. If anything fails, the synchronizer will remain registered
with `manualConnect = true` and you will have to perform these steps manually.
Parameters:
- synchronizerAlias: The name you will be using to refer to this synchronizer. Cannot be
changed anymore.
- connection: The connection string to connect to this synchronizer.
I.e. https://url:port
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: Optionally the physical id you expect to see on this
synchronizer.
- certificatesPath: Path to TLS certificate files to use as a trust anchor.
- priority: The priority of the synchronizer. The higher the more likely a synchronizer
will be used.
- timeTrackerConfig: The configuration for the synchronizer time tracker.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Macro to connect a participant to a synchronizer given by instance
-
Arguments:
instance: com.digitalasset.canton.console.SequencerReferencesynchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Description:
This variant of connect expects an instance with a sequencer connection.
Otherwise the behaviour is equivalent to the connect command with explicit arguments.
If the synchronizer is already configured, the synchronizer connection will be attempted.
If however the synchronizer is offline, the command will fail.
Generally, this macro should only be used for the first connection to a new synchronizer.
However, for convenience, we support idempotent invocations where subsequent calls just
ensure that the participant reconnects to the synchronizer.
Summary: Macro to connect to multiple sequencers of the same synchronizer
-
Arguments:
connections: Seq[com.digitalasset.canton.admin.api.client.data.SequencerConnection]synchronizerAlias: com.digitalasset.canton.SynchronizerAliasphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]manualConnect: Booleanpriority: Intsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]sequencerTrustThreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntsequencerLivenessMargin: com.digitalasset.canton.config.RequireTypes.NonNegativeIntsubmissionRequestAmplification: com.digitalasset.canton.admin.api.client.data.SubmissionRequestAmplificationsequencerConnectionPoolDelays: com.digitalasset.canton.admin.api.client.data.SequencerConnectionPoolDelaysvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Description:
Parameters:
- synchronizerAlias: The name you will be using to refer to this synchronizer. Cannot be
changed anymore.
- connections: The list of sequencer connections, can be defined by urls.
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: An optional Synchronizer Id to ensure the connection is made
to the correct synchronizer.
- priority: The priority of the synchronizer. The higher the more likely a synchronizer
will be used.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- sequencerTrustThreshold: Set the minimum number of sequencers that must agree before
a message is considered valid.
- sequencerLivenessMargin: Set the number of extra subscriptions to maintain beyond
`sequencerTrustThreshold` in order to ensure liveness.
- submissionRequestAmplification: Define how often client should try to send a submission
request that is eligible for deduplication.
- sequencerConnectionPoolDelays: Define the various delays used by the sequencer
connection pool.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Macro to connect a participant to a synchronizer given by connection
- Arguments:
Description:
This variant of connect expects a synchronizer connection config.
Otherwise the behaviour is equivalent to the connect command with explicit arguments.
If the synchronizer is already configured, the synchronizer connection will be attempted.
If however the synchronizer is offline, the command will fail.
Generally, this macro should only be used for the first connection to a new synchronizer.
However, for convenience, we support idempotent invocations where subsequent calls just
ensure that the participant reconnects to the synchronizer.
Parameters:
- validation: Whether to validate the connectivity and ids of the given sequencers
(default all)
Summary: Macro to connect a participant to a locally configured synchronizer given by sequencer reference
-
Arguments:
sequencer: com.digitalasset.canton.console.SequencerReferencemanualConnect: BooleanphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]maxRetryDelayMillis: Option[Long]priority: Intsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]validation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Description:
Parameters:
- sequencer: A local sequencer reference
- alias: The name you will be using to refer to this synchronizer. Can not be changed
anymore.
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: An optional Synchronizer Id to ensure the connection is made to
the correct synchronizer.
- maxRetryDelayMillis: Maximal amount of time (in milliseconds) between two connection
attempts.
- priority: The priority of the synchronizer. The higher the more likely a synchronizer
will be used.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Macro to connect to multiple local sequencers of the same synchronizer
-
Arguments:
sequencers: Seq[com.digitalasset.canton.console.SequencerReference]synchronizerAlias: com.digitalasset.canton.SynchronizerAliasmanualConnect: BooleanphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]maxRetryDelayMillis: Option[Long]priority: Intsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]sequencerTrustThreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntsequencerLivenessMargin: com.digitalasset.canton.config.RequireTypes.NonNegativeIntsubmissionRequestAmplification: com.digitalasset.canton.admin.api.client.data.SubmissionRequestAmplificationsequencerConnectionPoolDelays: com.digitalasset.canton.admin.api.client.data.SequencerConnectionPoolDelaysvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Description:
Parameters:
- synchronizerAlias: The name you will be using to refer to this synchronizer.
Cannot be changed anymore.
- sequencers: The list of sequencer references to connect to.
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: An optional Synchronizer Id to ensure the connection is made
to the correct synchronizer.
- priority: The priority of the synchronizer. The higher the more likely a synchronizer
will be used.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- sequencerTrustThreshold: Set the minimum number of sequencers that must agree before
a message is considered valid.
- sequencerLivenessMargin: Set the number of extra subscriptions to maintain beyond
`sequencerTrustThreshold` in order to ensure liveness.
- submissionRequestAmplification: Define how often client should try to send a submission
request that is eligible for deduplication.
- sequencerConnectionPoolDelays: Define the various delays used by the sequencer
connection pool.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Macro to connect a participant to a synchronizer that supports connecting via many endpoints
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasconnections: Seq[com.digitalasset.canton.admin.api.client.data.SequencerConnection]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]validation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
- Return type:
Description:
Synchronizers can provide many endpoints to connect to for availability and performance
benefits.
This version of connect allows specifying multiple endpoints for a single synchronizer
connection:
- connect_multi("mysynchronizer", Seq(sequencer1, sequencer2))
or:
- connect_multi("mysynchronizer", Seq("https://host1.mysynchronizer.net",
"https://host2.mysynchronizer.net", "https://host3.mysynchronizer.net"))
To create a more advanced connection config use synchronizers.to_config with a single
host, then use config.addConnection to add additional connections before connecting:
config = myparticipaint.synchronizers.to_config("mysynchronizer",
"https://host1.mysynchronizer.net", ...otherArguments)
config = config.addConnection("https://host2.mysynchronizer.net",
"https://host3.mysynchronizer.net")
myparticipant.synchronizers.connect(config)
Parameters:
- synchronizerAlias: The name you will be using to refer to this synchronizer.
Cannot be changed anymore.
- connections: The sequencer connection definitions (can be an URL) to connect to this
synchronizer. I.e. https://url:port
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Disconnect this participant from the given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Summary: Disconnect this participant from all connected synchronizers
Summary: Disconnect this participant from the given local synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Returns the id of the given synchronizer alias
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
- Return type:
Description:
Fails if there is no active connection for the alias,
or the active connection does not have a known synchronizer id.
Summary: Test whether a participant is connected to a synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
-
Return type:
Boolean
Summary: Test whether a participant is connected to physical a synchronizer
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerId
-
Return type:
Boolean
Summary: Test whether a participant is connected to a synchronizer
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerId
-
Return type:
Boolean
Summary: Returns true if a synchronizer is registered using the given alias
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
-
Return type:
Boolean
Summary: List the connected synchronizers of this participant
- Return type:
Summary: List the configured active synchronizers of this participant
-
Return type:
Seq[(com.digitalasset.canton.admin.api.client.data.SynchronizerConnectionConfig, com.digitalasset.canton.topology.ConfiguredPhysicalSynchronizerId, Boolean)]
Description:
For each returned synchronizer, the boolean indicates whether the participant is
currently connected to the synchronizer.
Summary: Revoke this participant’s authentication tokens and close all the sequencer connections in the given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Description:
On all the sequencers from the specified synchronizer, all existing authentication
tokens for this participant will be revoked.
Note that the participant is not disconnected from the synchronizer; only the connections
to the sequencers are closed. The participant will automatically reopen connections,
perform a challenge-response and obtain new tokens.
Parameters:
- synchronizerAlias: the synchronizer alias from which to logout
Summary: Modify an existing active synchronizer connection
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidationphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]
Description:
If a logical synchronizer upgrade has been announced, the config for the successor
synchronizer gets updated automatically on the basis of the provided config for the
active synchronizer.
Parameters:
- synchronizerAlias: Alias of the synchronizer
- modifier: The change to be applied to the config.
- validation: The validations which need to be done to the connection.
- physicalSynchronizerId: Physical id of the synchronizer. If empty, the currently
active connection will be updated (if none is active, an error is returned).
If not empty, the active synchronizer must match the provided physical synchronizer id.
Summary: Perform a manual LSU
- Arguments:
Description:
Perform a local manual logical synchronizer upgrade to switch to the designated successor
Unlike the other method above, a new config is specified and replaces the current one.
This should be used only if the goal is to change the synchronizer connection config
as part of the upgrade (e.g., if one sequencer does not migrate).
Parameters:
- currentPsid: current physical synchronizer id
- successorPsid: physical synchronizer id of the successor
- upgradeTime:
If defined:
- MUST be higher than any message received by the node on the synchronizer id
- Upgrade will not start until all events until upgrade_time have been processed
If empty:
- Clean synchronizer index from ledger api server will be used.
- config: Config for the the new synchronizer
Summary: Perform a manual LSU
-
Arguments:
currentPsid: com.digitalasset.canton.topology.PhysicalSynchronizerIdsuccessorPsid: com.digitalasset.canton.topology.PhysicalSynchronizerIdupgradeTime: Option[com.digitalasset.canton.data.CantonTimestamp]sequencerSuccessors: Map[com.digitalasset.canton.topology.SequencerId,com.digitalasset.canton.topology.transaction.GrpcConnection]
Description:
Perform a local manual logical synchronizer upgrade to
switch to the designated successor.
Parameters:
- currentPsid: current physical synchronizer id
- successorPsid: physical synchronizer id of the successor
- upgradeTime:
If defined:
- MUST be higher than any message received by the node on the synchronizer id
- Upgrade will not start until all events until upgrade_time have been processed
If empty:
- Clean synchronizer index from ledger api server will be used.
- sequencerSuccessors:
The sequencer connection definitions to connect to the new sequencers.
SHOULD contain one entry for each sequencer currently registered by the participant
Summary: Returns the physical id of the given synchronizer alias
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
- Return type:
Description:
Fails if there is no active connection for the alias,
or the active connection does not have a known physical synchronizer id.
Summary: Reconnect this participant to the given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasretry: Booleansynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
Boolean
Description:
Idempotent attempts to re-establish a connection to a certain synchronizer.
If retry is set to false, the command will throw an exception if unsuccessful.
If retry is set to true, the command will terminate after the first attempt with the
result, but the server will keep on retrying to connect to the synchronizer.
Parameters:
- synchronizerAlias: The name you will be using to refer to this synchronizer. Cannot be
changed anymore.
- retry: Whether the reconnect should keep on retrying until it succeeded or abort
noisily if the connection attempt fails.
- synchronize: A timeout duration indicating how long to wait for all topology changes to
have been effected on all local nodes.
Summary: Reconnect this participant to all synchronizer which are not marked as manual start
-
Arguments:
ignoreFailures: Booleansynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
Parameters:
- ignoreFailures: If set to true (default), we'll attempt to connect to all,
ignoring any failure
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
Summary: Reconnect this participant to the given local synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasretry: Booleansynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
Boolean
Description:
Idempotent attempts to re-establish a connection to the given local synchronizer.
Same behaviour as generic reconnect.
Parameters:
- synchronizerAlias: The synchronizer alias to connect to
- retry: Whether the reconnect should keep on retrying until it succeeded or abort
noisily if the connection attempt fails.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
Summary: Reconnect this participant to the given local synchronizer
- Arguments:
-
Return type:
Boolean
Description:
Idempotent attempts to re-establish a connection to the given local synchronizer.
Same behaviour as generic reconnect.
Parameters:
- ref: The synchronizer reference to connect to
- retry: Whether the reconnect should keep on retrying until it succeeded or abort
noisily if the connection attempt fails.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
Summary: Macro to register a locally configured synchronizer given by sequencer reference
-
Arguments:
sequencer: com.digitalasset.canton.console.SequencerReferenceperformHandshake: BooleanmanualConnect: BooleanphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]maxRetryDelayMillis: Option[Long]priority: Intsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]validation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Description:
Parameters:
- sequencer: A local sequencer reference
- alias: The name you will be using to refer to this synchronizer. Cannot be changed
anymore.
- performHandshake: If true (default), will perform a handshake with the synchronizer.
If no, will only store the configuration without any query to the synchronizer.
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: An optional Synchronizer Id to ensure the connection is made
to the correct synchronizer.
- maxRetryDelayMillis: Maximal amount of time (in milliseconds) between two connection
attempts.
- priority: The priority of the synchronizer. The higher the more likely a synchronizer
will be used.
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
Summary: Macro to register a locally configured synchronizer
-
Arguments:
config: com.digitalasset.canton.admin.api.client.data.SynchronizerConnectionConfigperformHandshake: Booleanvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidationsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
Parameters:
- config: Config for the synchronizer connection
- performHandshake: If true (default), will perform handshake with the synchronizer.
If no, will only store configuration without any query to the synchronizer.
- validation: Whether to validate the connectivity and ids of the given sequencers
(default All)
- synchronize: A timeout duration indicating how long to wait for all topology changes
to have been effected on all local nodes.
Health
health.activeSummary: Check if the node is running and is the active instance (mediator, participant)
-
Return type:
Boolean
Summary: Counts pending command submissions and transactions on a synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
- Return type:
Description:
This command finds the current number of pending command submissions and transactions on
a selected synchronizer.
There is no synchronization between pending command submissions and transactions. And the
respective counts are an indication only!
This command is in particular useful to re-assure oneself that there are currently no
in-flight submissions or transactions present for the selected synchronizer. Such
re-assurance is then helpful to proceed with repair operations, for example.
The command fails if there is no active connection for the alias,
or the active connection does not have a known physical synchronizer id.
Summary: Collect Canton system information to help diagnose issues
-
Arguments:
outputFile: StringchunkSize: Option[Int]
-
Return type:
String
Description:
Generates a comprehensive health report for the local Canton process and any connected
remote nodes.
Parameters:
- outputFile: Specifies the file path to save the report. If not set, a default path is
used.
- timeout: Sets a custom timeout for gathering data, useful for large reports from slow
remote nodes.
- chunkSize: Adjusts the data stream chunk size from remote nodes. Use this to prevent
gRPC errors related to 'max inbound message size'
Summary: Returns true if the node has an identity
-
Return type:
Boolean
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Returns true if node has been initialized
-
Return type:
Boolean
Summary: Check if the node is ready for setting the node’s id
-
Return type:
Boolean
Summary: Check if the node is ready for initialization
-
Return type:
Boolean
Summary: Check if the node is ready for uploading the node’s identity topology
-
Return type:
Boolean
Summary: Check if the node is running
-
Return type:
Boolean
Summary: Sends a ping to the target participant over the ledger
-
Arguments:
participantId: com.digitalasset.canton.topology.ParticipantIdsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]id: String
-
Return type:
Option[scala.concurrent.duration.Duration]
Description:
Yields Some(duration) in case of success and None in case of failure.
Summary: Sends a ping to the target participant over the ledger
-
Arguments:
participantId: com.digitalasset.canton.topology.ParticipantIdsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]id: String
-
Return type:
scala.concurrent.duration.Duration
Description:
Yields the duration in case of success and throws a RuntimeException in case of failure.
Summary: Change the log level of the process
-
Arguments:
level: ch.qos.logback.classic.Level
Description:
If the default logback configuration is used, this will change the log level of the
process.
Summary: Get human (and machine) readable status information
-
Return type:
com.digitalasset.canton.admin.api.client.data.NodeStatus[S]
Summary: Wait for the node to have an identity
Summary: Wait for the node to be initialized
Summary: Wait for the node to be ready for setting the node’s id
Summary: Wait for the node to be ready for initialization
Summary: Wait for the node to be ready for uploading the node’s identity topology
Summary: Wait for the node to be running
Key administration
keys.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Download public key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
-
Return type:
com.google.protobuf.ByteString
Summary: Download public key and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List public keys in registry
-
Arguments:
filterFingerprint: StringfilterContext: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys that have been added to the key registry.
Optional arguments can be used for filtering.
Summary: List keys for given keyOwner
-
Arguments:
keyOwner: com.digitalasset.canton.topology.MembersynchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command is a convenience wrapper for `list_key_owners`, taking an explicit keyOwner
as search argument. The response includes the public keys.
Summary: List active owners with keys for given search arguments
-
Arguments:
filterKeyOwnerUid: StringfilterKeyOwnerType: Option[com.digitalasset.canton.topology.MemberCode]synchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command allows deep inspection of the topology state. The response includes the
public keys.
Optional filterKeyOwnerType type can be `ParticipantId.Code`, `MediatorId.Code`,
`SequencerId.Code`.
Summary: Upload public key
-
Arguments:
keyBytes: com.google.protobuf.ByteStringname: Option[String]
- Return type:
Description:
Import a public key and store it together with a name used to provide some
context to that key.
Summary: Upload public key
-
Arguments:
filename: Stringname: Option[String]
- Return type:
Description:
Load a public key from a file and store it together with a name used to provide some
context to that key.
Summary: Delete private key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.Fingerprintforce: Boolean
Summary: Download key pair
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
-
Return type:
com.google.protobuf.ByteString
Summary: Download key pair and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
Summary: Generate new public/private key pair for encryption and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.EncryptionKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Generate new public/private key pair for signing and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.SigningKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the network
towards a sequencer;
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Get the wrapper key id that is used for the encrypted private keys store
-
Return type:
String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List keys in private vault
-
Arguments:
filterFingerprint: StringfilterName: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys to the corresponding private keys in the key vault.
Optional arguments can be used for filtering.
Summary: Register the specified KMS encryption key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS encryption key.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Register the specified KMS signing key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS signing key.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the
network towards a sequencer.
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Rotate a given node’s keypair with a new pre-generated KMS keypair
-
Arguments:
fingerprint: StringnewKmsKeyId: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key stored externally in a KMS with a
pre-generated key.
NOTE: A namespace root signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- newKmsKeyId: The id of the new KMS key (e.g. Resource Name).
- name: An optional name for the new key.
Summary: Rotate a node’s public/private key pair
-
Arguments:
fingerprint: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key.
NOTE: A namespace root or intermediate signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- name: An optional name for the new key.
Summary: Rotate the node’s public/private key pairs
Description:
For a participant node it rotates the signing and encryption key pair.
For a sequencer or mediator node it rotates the signing key pair as those nodes do not
have an encryption key pair.
NOTE: Namespace root or intermediate signing keys are NOT rotated by this command.
Summary: Change the wrapper key for encrypted private keys store
-
Arguments:
newWrapperKeyId: String
Description:
Change the wrapper key (e.g. AWS KMS key) being used to encrypt the private keys in the
store.
Parameters:
- newWrapperKeyId: The optional new wrapper key id to be used. If the wrapper key id is
empty Canton will generate a new key based on the current configuration.
Summary: Upload a key pair
-
Arguments:
pairBytes: com.google.protobuf.ByteStringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair.
Parameters:
- pairBytes: The binary representation of a previously downloaded key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Summary: Upload (load and import) a key pair from file
-
Arguments:
filename: Stringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair from a file.
Parameters:
- filename: The name of the file holding the key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Ledger API Access
The following commands on a participant reference provide access to the participant’s Ledger API services.
ledger_api.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Command Completion Service
ledger_api.completions.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Lists command completions following the specified offset
-
Arguments:
atLeastNumCompletions: IntbeginOffsetExclusive: LonguserId: Stringfilter: com.daml.ledger.api.v2.completion.Completion => Boolean
-
Return type:
Seq[com.daml.ledger.api.v2.completion.Completion]
Description:
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
An empty offset denotes the beginning of the participant's offsets.
Summary: Subscribe to the command completion stream
-
Arguments:
observer: io.grpc.stub.StreamObserver[com.daml.ledger.api.v2.completion.Completion]beginOffsetExclusive: LonguserId: String
-
Return type:
AutoCloseable
Description:
This function connects to the command completion stream and passes command completions to
`observer` until the stream is completed.
Only completions for parties in `parties` will be returned.
The returned completions start at `beginOffset` (default: the zero value denoting the
participant begin).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
Command Submission Service
ledger_api.commands.failedSummary: Investigate failed commands
-
Arguments:
commandId: Stringlimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Same as status(..., state = CommandState.COMMAND_STATE_FAILED).
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Investigate successful and failed commands
-
Arguments:
commandIdPrefix: Stringstate: com.daml.ledger.api.v2.admin.command_inspection_service.CommandStatelimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Find the status of commands. Note that only recent commands which are kept in memory will
be returned.
Summary: Submit command and wait for the resulting transaction, returning the transaction or failing otherwise
-
Arguments:
commands: Seq[com.daml.ledger.api.v2.commands.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: StringcommandId: StringoptTimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]deduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]submissionId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.api.v2.commands.DisclosedContract]userId: StringuserPackageSelectionPreference: Seq[com.digitalasset.canton.LfPackageId]transactionShape: com.daml.ledger.api.v2.transaction_filter.TransactionShapeincludeCreatedEventBlob: BooleantapsMaxPasses: Option[Int]customEventFormat: Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]
-
Return type:
com.daml.ledger.api.v2.transaction.Transaction
Description:
Submits a command on behalf of the `actAs` parties, waits for the resulting transaction
to commit, and returns the "flattened" transaction.
If the timeout is set, it also waits for the transaction to appear at all other
configured participants who were involved in the transaction. The call blocks until the
transaction commits or fails; the timeout only specifies how long to wait at the other
participants.
Fails if the transaction does not commit, or if it does not become visible to the
involved participants in the allotted time.
Note that if the optTimeout is set and the involved parties are concurrently
enabled/disabled or their participants are connected/disconnected, the command may
currently result in spurious timeouts or may return before the transaction appears at all
the involved participants.
Summary: Submit assign command and wait for the resulting reassignment, returning the reassignment or failing otherwise
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdreassignmentId: StringworkflowId: StringuserId: StringsubmissionId: Stringtimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.AssignedWrapper
Description:
Submits an assignment command on behalf of `submitter` party, waits for the resulting
assignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
configured participants who were involved in the assignment. The call blocks until the
assignment commits or fails.
Fails if the assignment does not commit, or if it does not become visible to the involved
participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
The `reassignmentId` should be the one returned by the corresponding submit_unassign
command.
Summary: Submit assign command asynchronously
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdreassignmentId: StringworkflowId: StringuserId: StringcommandId: StringsubmissionId: String
Description:
Provides access to the command submission service of the Ledger API.
Summary: Submit assign command and wait for the resulting reassignment, returning the reassignment or failing otherwise
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdreassignmentId: StringworkflowId: StringuserId: StringsubmissionId: StringeventFormat: Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]timeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.EmptyOrAssignedWrapper
Description:
Submits an assignment command on behalf of `submitter` party, waits for the
resulting assignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
configured participants who were involved in the assignment. The call blocks until the
assignment commits or fails.
Fails if the assignment does not commit, or if it does not become visible to the involved
participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
The reassignmentId should be the one returned by the corresponding submit_unassign
command.
Summary: Submit command asynchronously
-
Arguments:
commands: Seq[com.daml.ledger.api.v2.commands.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: StringcommandId: StringdeduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]submissionId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.api.v2.commands.DisclosedContract]userId: StringuserPackageSelectionPreference: Seq[com.digitalasset.canton.LfPackageId]tapsMaxPasses: Option[Int]
Description:
Provides access to the command submission service of the Ledger API.
Summary: Combines submit_unassign and submit_assign in a single macro
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdcontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]workflowId: StringuserId: StringsubmissionId: Stringtimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
(com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UnassignedWrapper, com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.AssignedWrapper)
Description:
See `submit_unassign` and `submit_assign` for the parameters.
Summary: Submit unassign command and wait for the resulting reassignment, returning the reassignment or failing otherwise
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdcontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]workflowId: StringuserId: StringsubmissionId: Stringtimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UnassignedWrapper
Description:
Submits an unassignment command on behalf of `submitter` party, waits for the resulting
unassignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
configured participants who were involved in the unassignment. The call blocks until the
unassignment commits or fails.
Fails if the unassignment does not commit, or if it does not become visible to the
involved participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
Summary: Submit unassign command asynchronously
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdcontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]workflowId: StringuserId: StringcommandId: StringsubmissionId: String
Description:
Provides access to the command submission service of the Ledger API.
Summary: Submit unassign command and wait for the resulting reassignment, returning the reassignment or failing otherwise
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdcontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]workflowId: StringuserId: StringsubmissionId: StringeventFormat: Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]timeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.EmptyOrUnassignedWrapper
Description:
Submits an unassignment command on behalf of `submitter` party, waits for the resulting
unassignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
configured participants who were involved in the unassignment. The call blocks until the
unassignment commits or fails.
Fails if the unassignment does not commit, or if it does not become visible to the
involved participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
Summary: Investigate succeeded commands
-
Arguments:
commandId: Stringlimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Same as status(..., state = CommandState.COMMAND_STATE_SUCCEEDED).
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Submit Java codegen command and wait for the resulting transaction, returning the transaction or failing otherwise
-
Arguments:
commands: Seq[com.daml.ledger.javaapi.data.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: StringcommandId: StringoptTimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]deduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]submissionId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.javaapi.data.DisclosedContract]userId: StringuserPackageSelectionPreference: Seq[com.digitalasset.canton.LfPackageId]transactionShape: com.daml.ledger.api.v2.transaction_filter.TransactionShapeincludeCreatedEventBlob: BooleantapsMaxPasses: Option[Int]customEventFormat: Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]
-
Return type:
com.daml.ledger.javaapi.data.Transaction
Description:
Submits a command on behalf of the `actAs` parties, waits for the resulting transaction
to commit, and returns the "flattened" transaction.
If the timeout is set, it also waits for the transaction to appear at all other
configured participants who were involved in the transaction. The call blocks until the
transaction commits or fails; the timeout only specifies how long to wait at the other
participants.
Fails if the transaction does not commit, or if it does not become visible to the
involved participants in the allotted time.
Note that if the optTimeout is set and the involved parties are concurrently
enabled/disabled or their participants are connected/disconnected, the command may
currently result in spurious timeouts or may return before the transaction appears at all
the involved participants.
Summary: Submit assign command, await Java codegen reassignment, then return it or fail
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdreassignmentId: StringworkflowId: StringuserId: StringsubmissionId: Stringtimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]includeCreatedEventBlob: Boolean
-
Return type:
com.daml.ledger.javaapi.data.Reassignment
Description:
Submits a assignment command on behalf of `submitter` party, waits for the resulting
assignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
participants who were involved in the assignment.
The call blocks until the assignment commits or fails.
Fails if the assignment does not commit, or if it does not become visible to the
involved participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
The `reassignmentId` should be the one returned by the corresponding submit_unassign
command.
Summary: Submit Java codegen command asynchronously
-
Arguments:
commands: Seq[com.daml.ledger.javaapi.data.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: StringcommandId: StringdeduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]submissionId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.javaapi.data.DisclosedContract]userId: String
Description:
Provides access to the command submission service of the Ledger API.
Summary: Submit assign command, await Java codegen reassignment, then return it or fail
-
Arguments:
submitter: com.digitalasset.canton.topology.PartyIdcontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]workflowId: StringuserId: StringsubmissionId: Stringtimeout: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.daml.ledger.javaapi.data.Reassignment
Description:
Submits an unassignment command on behalf of `submitter` party, waits for the resulting
unassignment to commit, and returns the reassignment.
If timeout is set, it also waits for the reassignment(s) to appear at all other
participants who were involved in the unassignment.
The call blocks until the unassignment commits or fails.
Fails if the unassignment does not commit, or if it does not become visible to the
involved participants in time.
Timeout specifies the time how long to wait until the reassignment appears in the update
stream for the submitting and all the involved participants.
Summary: Execute a prepared submission
-
Arguments:
preparedTransaction: com.daml.ledger.api.v2.interactive.interactive_submission_service.PreparedTransactiontransactionSignatures: Map[com.digitalasset.canton.topology.PartyId,Seq[com.digitalasset.canton.crypto.Signature]]submissionId: StringhashingSchemeVersion: com.daml.ledger.api.v2.interactive.interactive_submission_service.HashingSchemeVersionuserId: StringdeduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]minLedgerTimeAbs: Option[java.time.Instant]
-
Return type:
com.daml.ledger.api.v2.interactive.interactive_submission_service.ExecuteSubmissionResponse
Description:
Parameters:
- preparedTransaction: The prepared transaction bytestring, typically obtained from the
preparedTransaction field of the prepare response.
- transactionSignatures: The signatures of the hash of the transaction. The hash is
typically obtained from the preparedTransactionHash field of the prepare response.
Note however that the caller should re-compute the hash and ensure it matches the one
provided in prepare, to be certain they're signing a hash that correctly represents
the transaction they want to submit.
Summary: Execute a prepared submission and wait for it to complete (successfully or not)
-
Arguments:
preparedTransaction: com.daml.ledger.api.v2.interactive.interactive_submission_service.PreparedTransactiontransactionSignatures: Map[com.digitalasset.canton.topology.PartyId,Seq[com.digitalasset.canton.crypto.Signature]]submissionId: StringhashingSchemeVersion: com.daml.ledger.api.v2.interactive.interactive_submission_service.HashingSchemeVersionuserId: StringdeduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]minLedgerTimeAbs: Option[java.time.Instant]
-
Return type:
com.daml.ledger.api.v2.interactive.interactive_submission_service.ExecuteSubmissionAndWaitResponse
Description:
Similar to execute, except it will wait for the command to be completed before returning.
Equivalent of "submitAndWait" in the CommandService.
IMPORTANT: This command assumes that the executing participant is trusted to return a
valid command completion. A dishonest executing participant could incorrectly respond
that the command failed even though it succeeded.
Summary: Execute a prepared submission and return the resulting transaction
-
Arguments:
preparedTransaction: com.daml.ledger.api.v2.interactive.interactive_submission_service.PreparedTransactiontransactionSignatures: Map[com.digitalasset.canton.topology.PartyId,Seq[com.digitalasset.canton.crypto.Signature]]submissionId: StringhashingSchemeVersion: com.daml.ledger.api.v2.interactive.interactive_submission_service.HashingSchemeVersiontransactionShape: Option[com.daml.ledger.api.v2.transaction_filter.TransactionShape]userId: StringdeduplicationPeriod: Option[com.digitalasset.canton.data.DeduplicationPeriod]minLedgerTimeAbs: Option[java.time.Instant]includeCreatedEventBlob: BooleancustomEventFormat: Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]
-
Return type:
com.daml.ledger.api.v2.transaction.Transaction
Description:
Similar to executeAndWait, but returns the resulting transaction.
IMPORTANT: This command assumes that the executing participant is trusted to return a
valid command completion. A dishonest executing participant could incorrectly respond
that the command failed even though it succeeded.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Get the preferred package version for constructing a command submission
-
Arguments:
packageName: com.digitalasset.canton.LfPackageNamesynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vettingValidAt: Option[com.digitalasset.canton.data.CantonTimestamp]
-
Return type:
Option[com.daml.ledger.api.v2.interactive.interactive_submission_service.PackagePreference]
Description:
A preferred package is the highest-versioned package for a provided package-name that is
vetted by all the participants hosting the provided parties.
Ledger API clients should use this endpoint for constructing command submissions that are
compatible with the provided preferred package, by making informed decisions on:
- which are the compatible packages that can be used to create contracts
- which contract or exercise choice argument version can be used in the command
- which choices can be executed on a template or interface of a contract
Parameters:
- parties: The parties whose vetting state should be considered when computing the
preferred package.
- packageName: The package name for which the preferred package is requested.
- synchronizerId: The synchronizer whose topology state to use for resolving this query.
If not specified. the topology state of all the synchronizers the participant is
connected to will be used.
- vettingValidAt: The timestamp at which the package vetting validity should be computed
If not provided, the participant's current clock time is used.
Summary: Get the preferred packages for constructing a command submission
-
Arguments:
packageVettingRequirements: Map[com.digitalasset.canton.LfPackageName,Set[com.digitalasset.canton.topology.PartyId]]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vettingValidAt: Option[com.digitalasset.canton.data.CantonTimestamp]
-
Return type:
com.daml.ledger.api.v2.interactive.interactive_submission_service.GetPreferredPackagesResponse
Description:
A preferred package is the highest-versioned package for a provided package-name that is
vetted by all the participants hosting the provided parties.
Ledger API clients should use this endpoint for constructing command submissions that are
compatible with the provided preferred package, by making informed decisions on:
- which are the compatible packages that can be used to create contracts
- which contract or exercise choice argument version can be used in the command
- which choices can be executed on a template or interface of a contract
Generally it is enough to provide the requirements for the command's root package-names.
Additional package-name requirements can be provided when additional informees need to
use package dependencies of the command's root packages.
Parameters:
- parties: The parties whose vetting state should be considered when computing the
preferred package.
- packageName: The package name for which the preferred package is requested.
- synchronizerId: The synchronizer whose topology state to use for resolving this query.
If not specified. the topology state of all the synchronizers the participant is
connected to will be used.
- vettingValidAt: The timestamp at which the package vetting validity should be computed
If not provided, the participant's current clock time is used.
Summary: Prepare a transaction for interactive submission
-
Arguments:
commands: Seq[com.daml.ledger.api.v2.commands.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]commandId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.api.v2.commands.DisclosedContract]userId: StringuserPackageSelectionPreference: Seq[com.digitalasset.canton.LfPackageId]verboseHashing: BooleanprefetchContractKeys: Seq[com.daml.ledger.api.v2.commands.PrefetchContractKey]maxRecordTime: Option[com.digitalasset.canton.data.CantonTimestamp]estimateTrafficCost: Option[com.daml.ledger.api.v2.interactive.interactive_submission_service.CostEstimationHints]tapsMaxPasses: Option[Int]hashingSchemeVersion: com.daml.ledger.api.v2.interactive.interactive_submission_service.HashingSchemeVersion
-
Return type:
com.daml.ledger.api.v2.interactive.interactive_submission_service.PrepareSubmissionResponse
Description:
Similar to submit, except instead of submitting the transaction to the network, a
serialized version of the transaction will be returned, along with a hash.
This allows non-hosted parties to sign the hash with they private key before submitting
it via the execute command. If you wish to directly submit a command instead without the
external signing step, use submit instead.
Note that the hash in the response is provided for convenience. Callers should re-compute
the hash of the transactions (and possibly compare it to the provided one) before signing
it.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Prepare a transaction for interactive submission
-
Arguments:
commands: Seq[com.daml.ledger.javaapi.data.Command]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]commandId: StringminLedgerTimeAbs: Option[java.time.Instant]disclosedContracts: Seq[com.daml.ledger.javaapi.data.DisclosedContract]userId: StringuserPackageSelectionPreference: Seq[com.digitalasset.canton.LfPackageId]verboseHashing: BooleanprefetchContractKeys: Seq[com.daml.ledger.javaapi.data.PrefetchContractKey]maxRecordTime: Option[com.digitalasset.canton.data.CantonTimestamp]estimateTrafficCost: Option[com.daml.ledger.api.v2.interactive.interactive_submission_service.CostEstimationHints]tapsMaxPasses: Option[Int]hashingSchemeVersion: com.daml.ledger.api.v2.interactive.interactive_submission_service.HashingSchemeVersion
-
Return type:
com.daml.ledger.api.v2.interactive.interactive_submission_service.PrepareSubmissionResponse
Description:
Prepare a transaction for interactive submission.
Event Service
ledger_api.event_query.by_contract_idSummary: Get events by contract Id
-
Arguments:
contractId: StringrequestingParties: Seq[com.digitalasset.canton.topology.Party]includeCreatedEventBlob: Boolean
-
Return type:
com.daml.ledger.api.v2.event_query_service.GetEventsByContractIdResponse
Description:
Return events associated with the given contract ID.
If `requestingParties` is empty, events are fetched for all parties.
Otherwise the query is restricted to the provided reader parties.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Get events in Java codegen by contract ID
-
Arguments:
contractId: StringrequestingParties: Seq[com.digitalasset.canton.topology.Party]includeCreatedEventBlob: Boolean
-
Return type:
com.daml.ledger.api.v2.EventQueryServiceOuterClass.GetEventsByContractIdResponse
Description:
Return events associated with the given contract ID.
If `requestingParties` is empty, events are fetched for all parties.
Otherwise the query is restricted to the provided reader parties.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Identity Provider Configuration Management
ledger_api.identity_provider_config.createSummary: Create a new identity provider configuration
-
Arguments:
identityProviderId: StringisDeactivated: BooleanjwksUrl: Stringissuer: Stringaudience: Option[String]
- Return type:
Description:
Create an identity provider configuration.
The request fails if the maximum allowed number of separate configurations is reached.
Summary: Delete an identity provider configuration
-
Arguments:
identityProviderId: String
Description:
Delete an existing identity provider configuration.
Summary: Get an identity provider configuration
-
Arguments:
identityProviderId: String
- Return type:
Description:
Get identity provider configuration by id.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List identity provider configurations
- Return type:
Description:
List all existing identity provider configurations.
Summary: Update an identity provider
-
Arguments:
identityProviderId: StringisDeactivated: BooleanjwksUrl: Stringissuer: Stringaudience: Option[String]updateMask: com.google.protobuf.field_mask.FieldMask
- Return type:
Description:
Update identity provider.
User Management Service
ledger_api.users.createSummary: Create a user with the given id
-
Arguments:
id: StringprimaryParty: Option[com.digitalasset.canton.topology.PartyId]participantAdmin: BooleanidentityProviderAdmin: BooleanisDeactivated: Booleanannotations: Map[String,String]identityProviderId: StringreadAsAnyParty: BooleanexecuteAsAnyParty: BooleanprimaryPartyAuthentication: Boolean
- Return type:
Description:
Users are used to dynamically managing the rights given to Daml users. They allow us to
link a stable local identifier (of an application) with a set of parties.
Parameters:
- id: The id used to identify the given user.
- actAs: The set of parties this user is allowed to act as.
- primaryParty: The optional party that should be linked to this user by default.
- readAs: The set of parties this user is allowed to read as.
- participantAdmin: Flag (default false) indicating if the user is allowed to use the
admin commands of the Ledger API.
- identityProviderAdmin: Flag (default false) indicating if the user is allowed to manage
users and parties assigned to the same identity provider.
- isDeactivated: Flag (default false) indicating if the user is active.
- annotations: The set of key-value pairs linked to this user.
- identityProviderId: Identity provider ID.
- readAsAnyParty: Flag (default false) indicating if the user is allowed to read as any
party.
- executeAs: The set of parties for whom this user is allowed to operate interactive
submissions.
- executeAsAnyParty: Flag (default false) indicating if the user is allowed to operate
interactive submissions as any party.
Summary: Delete a user
-
Arguments:
id: StringidentityProviderId: String
Description:
Delete a user by ID.
Parameters:
- id: User ID.
- identityProviderId: Identity provider ID.
Summary: Get the user data of the user with the given ID
-
Arguments:
id: StringidentityProviderId: String
- Return type:
Description:
Fetch the data associated with the given user id failing if there is no such user.
You will get the user's primary party, active status and annotations.
If you need the user rights, use rights.list instead.
Parameters:
- id: User ID.
- identityProviderId: Identity provider ID.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List users
-
Arguments:
filterUser: StringpageToken: StringpageSize: IntidentityProviderId: String
- Return type:
Description:
List users of this participant node.
Parameters:
- filterUser: Filter results using the given filter string.
- pageToken: Used for pagination (the result contains a page token if there are further
pages).
- pageSize: Default page size before the filter is applied.
- identityProviderId: Identity provider ID.
Summary: Update a user
-
Arguments:
id: StringidentityProviderId: String
- Return type:
Description:
Currently you can update the annotations, active status and primary party.
You cannot update other user attributes.
Parameters:
- id: ID of the user to be updated.
- modifier: A function for modifying the user; e.g:
user => {
user.copy(
isActive = false,
primaryParty = None,
annotations = user.annotations.updated("a", "b").removed("c"))
}
- identityProviderId: Identity provider ID.
Summary: Update user’s identity provider ID
-
Arguments:
id: StringsourceIdentityProviderId: StringtargetIdentityProviderId: String
Description:
Updates user's identity provider ID.
Parameters:
- id: The id used to identify the given user.
- sourceIdentityProviderId: Source identity provider ID.
- targetIdentityProviderId: Target identity provider ID.
Summary: Grant new rights to a user
-
Arguments:
id: StringparticipantAdmin: BooleanidentityProviderAdmin: BooleanidentityProviderId: StringreadAsAnyParty: BooleanexecuteAsAnyParty: Boolean
- Return type:
Description:
Users are used to dynamically managing the rights given to Daml applications.
This function is used to grant new rights to an existing user.
Parameters:
- id: The ID used to identify the given user.
- actAs: The set of parties this user is allowed to act as.
- readAs: The set of parties this user is allowed to read as.
- participantAdmin: Flag (default false) indicating if the user is allowed to use the
admin commands of the Ledger API.
- identityProviderAdmin: Flag (default false) indicating if the user is allowed to manage
users and parties assigned to the same identity provider.
- identityProviderId: Identity provider ID.
- readAsAnyParty: Flag (default false) indicating if the user is allowed to read as any
party.
- executeAs: The set of parties for whom this user is allowed to operate interactive
submissions.
- executeAsAnyParty: Flag (default false) indicating if the user is allowed to operate
interactive submissions as any party.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List rights of a user
-
Arguments:
id: StringidentityProviderId: String
- Return type:
Description:
Lists the rights of a user, or the rights of the current user.
Parameters:
- id: User ID.
- identityProviderId: Identity provider ID.
Summary: Revoke user rights
-
Arguments:
id: StringparticipantAdmin: BooleanidentityProviderAdmin: BooleanidentityProviderId: StringreadAsAnyParty: BooleanexecuteAsAnyParty: Boolean
- Return type:
Description:
Use to revoke specific rights from a user.
Parameters:
- id: The ID used to identify the given user.
- actAs: The set of parties this user should not be allowed to act as.
- readAs: The set of parties this user should not be allowed to read as.
- participantAdmin: If set to true, the participant admin rights will be removed.
- identityProviderAdmin: If set to true, the identity provider admin rights will be
removed.
- identityProviderId: Identity provider ID.
- readAsAnyParty: Flag (default false) indicating if the user is allowed to read as any
party.
- executeAs: The set of parties for whom this user is allowed to operate interactive
submissions.
- executeAsAnyParty: Flag (default false) indicating if the user is allowed to operate
interactive submissions as any party.
Package Service
ledger_api.packages.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List Daml Packages
- Arguments:
-
Return type:
Seq[com.daml.ledger.api.v2.admin.package_management_service.PackageDetails]
Summary: Upload packages from Dar file
-
Arguments:
darPath: StringsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]
Description:
Uploading the Dar can be done either through the ledger API server or through the Canton
admin API.
The Ledger API is the portable method across ledgers. The Canton admin API is more
powerful as it allows for controlling Canton specific behaviour.
In particular, a Dar uploaded using the ledger API will not be available in the Dar store
and can not be downloaded again.
Additionally, Dars uploaded using the ledger API will be vetted, but the system will not
wait for the Dars to be successfully registered with all connected synchronizers. As
such, if a Dar is uploaded and then used immediately thereafter, a command might bounce
due to missing package vettings.
Summary: Validate a DAR against the current participants’ state
-
Arguments:
darPath: String
Description:
Performs the same DAR and Daml package validation checks that the upload call performs,
but with no effects on the target participants: the DAR is not persisted or vetted.
Party Management Service
ledger_api.parties.allocateSummary: Allocate a new party
-
Arguments:
party: Stringannotations: Map[String,String]identityProviderId: StringsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]userId: String
- Return type:
Description:
Allocates a new party on the ledger.
Parameters:
- party: A hint for generating the party identifier.
- annotations: Key-value pairs associated with this party and stored locally on this
Ledger API server.
- identityProviderId: Identity provider ID.
- synchronizerId: The synchronizer on which the party should be allocated. The
participant must be connected to the synchronizer. The parameter may be omitted if the
participant is connected to only one synchronizer.
Summary: Allocate a new external party
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdtransactions: Seq[(com.digitalasset.canton.topology.transaction.TopologyTransaction.GenericTopologyTransaction, Seq[com.digitalasset.canton.crypto.Signature])]multiSignatures: Seq[com.digitalasset.canton.crypto.Signature]synchronize: BooleanidentityProviderId: StringuserId: String
-
Return type:
com.daml.ledger.api.v2.admin.party_management_service.AllocateExternalPartyResponse
Description:
Allocates a new external party on the ledger.
Parameters:
- synchronizerId: SynchronizerId on which to allocate the party.
- transactions: Onboarding transactions and their individual signatures.
- multiSignatures: Signatures over the combined hash of all onboarding transactions.
Summary: Generate topology transactions for an external party
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdpartyHint: StringlocalParticipantObservationOnly: BooleanotherConfirmingParticipantIds: Seq[com.digitalasset.canton.topology.ParticipantId]confirmationThreshold: com.digitalasset.canton.config.RequireTypes.NonNegativeIntobservingParticipantIds: Seq[com.digitalasset.canton.topology.ParticipantId]
- Return type:
Description:
Convenience function to generate the necessary topology transactions. For more complex
setups, please generate your topology transactions manually.
Parameters:
- synchronizerId: SynchronizerId for which the transactions should be generated.
- partyHint: The prefix for the party.
- publicKey: The signing public key of the external party.
- localParticipantObservationOnly: If true, then the allocating participant will only be
an observer.
- otherConfirmingParticipantUids: List of other participants that will be confirming daml
transactions on behalf of the party.
- confirmationThreshold: Number of confirming participants which need to approve a daml
transaction.
- observingParticipantUids: List of other participants that should observe the
transactions of the external party.
Summary: Get party details for known parties
-
Arguments:
identityProviderId: StringfailOnNotFound: Boolean
-
Return type:
Map[com.digitalasset.canton.topology.PartyId,com.digitalasset.canton.admin.api.client.data.parties.PartyDetails]
Description:
Get party details for parties known by the Ledger API server for the given identity
provider.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List parties known by the Ledger API server
-
Arguments:
identityProviderId: StringfilterParty: String
- Return type:
Description:
Lists parties known by the Ledger API server.
Parameters:
- identityProviderId: Identity provider ID.
- filterParty: Filter party by name.
Summary: Update participant-local party details
-
Arguments:
identityProviderId: String
- Return type:
Description:
Currently you can update only the annotations.
You cannot update other user attributes.
Parameters:
- party: Party to be updated.
- modifier: A function to modify the party details, e.g.:
partyDetails => {
partyDetails.copy(
annotations = partyDetails
.annotations
.updated("a", "b").removed("c"))
}
- identityProviderId: Identity provider ID.
Summary: Update party’s identity provider id
-
Arguments:
sourceIdentityProviderId: StringtargetIdentityProviderId: String
Description:
Updates party's identity provider id.
Parameters:
- party: Party to be updated.
- sourceIdentityProviderId: Source identity provider ID.
- targetIdentityProviderId: Target identity provider ID.
State Service
ledger_api.state.connected_synchronizers (Testing)Summary: Read the current connected synchronizers for a party
- Arguments:
-
Return type:
com.daml.ledger.api.v2.state_service.GetConnectedSynchronizersResponse
Summary: Read the current ledger end offset
-
Return type:
Long
Summary: Investigate failed commands
-
Arguments:
commandId: Stringlimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Same as status(..., state = CommandState.Failed).
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Investigate successful and failed commands
-
Arguments:
commandIdPrefix: Stringstate: com.daml.ledger.api.v2.admin.command_inspection_service.CommandStatelimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Find the status of commands. Note that only recent commands which are kept in memory will
be returned.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List the set of active contracts of a given party
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntverbose: BooleanfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]includeCreatedEventBlob: Boolean
-
Return type:
Seq[com.daml.ledger.api.v2.state_service.ActiveContract]
Description:
This command will return the current set of active contracts for the given party.
Parameters:
- party: For which party you want to load the acs.
- limit: Limit (default set via canton.parameter.console).
- verbose: Whether the resulting events should contain detailed type information.
- filterTemplate: List of templates ids to filter for, empty sequence acts as a wildcard.
- filterInterfaces: List of interface ids to filter for, empty sequence does not
influence the resulting filter.
- activeAtOffsetO: The offset at which the snapshot of the active contracts will be
computed, it must be no greater than the current ledger end offset and must be greater
than or equal to the last pruning offset. If no offset is specified then the current
participant end will be used.
- timeout: The maximum wait time for the complete acs to arrive.
- includeCreatedEventBlob: Whether the result should contain the createdEventBlobs, it
works only if the filterTemplate is non-empty.
Summary: Wait until the party sees the given contract in the active contract service
- Arguments:
Description:
Will throw an exception if the contract is not found to be active within the given
timeout.
Summary: Retrieves the count of contracts for all parties on this participant
-
Arguments:
filterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]identityProviderId: String
-
Return type:
Int
Description:
Fetches the count of Active Contracts across all parties.
Parameters:
- filterTemplates: List of templates ids to filter for, empty sequence acts as
a wildcard.
- filterInterfaces: List of interface ids to filter for, empty sequence does not
influence the resulting filter.
- activeAtOffsetO: The offset at which the snapshot of the active contracts will be
computed, it must be no greater than the current ledger end offset and must be greater
than or equal to the last pruning offset. If no offset is specified then the current
participant end will be used.
- identityProviderId: Limit the response to parties governed by the given identity
provider.
- timeout: The maximum wait time for the complete acs to arrive.
Summary: Generic search for contracts
-
Arguments:
filter: com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry => Boolean
-
Return type:
com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry
Description:
This search function returns an untyped ledger-api event.
The find will wait until the contract appears or throw an exception once it times out.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List the set of incomplete assigned events of a given party
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntverbose: BooleanfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]includeCreatedEventBlob: Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedIncompleteAssigned]
Description:
This command will return the current set of incomplete assigned events for the given
party.
Parameters:
- party: For which party you want to load the acs.
- limit: Limit (default set via canton.parameter.console).
- verbose: Whether the resulting events should contain detailed type information.
- filterTemplate: List of templates ids to filter for, empty sequence acts as a wildcard.
- filterInterfaces: List of interface ids to filter for, empty sequence does not
influence the resulting filter.
- activeAtOffsetO: The offset at which the snapshot of the events will be computed, it
must be no greater than the current ledger end offset and must be greater than or equal
to the last pruning offset. If no offset is specified then the current participant end
will be used.
- timeout: The maximum wait time for the complete acs to arrive.
- includeCreatedEventBlob: Whether the result should contain the createdEventBlobs, it
works only if the filterTemplate is non-empty.
Summary: List the set of incomplete unassigned events of a given party
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntverbose: BooleanfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]includeCreatedEventBlob: Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedIncompleteUnassigned]
Description:
This command will return the current set of incomplete unassigned events for the given
party.
Parameters:
- party: For which party you want to load the acs.
- limit: Limit (default set via canton.parameter.console).
- verbose: Whether the resulting events should contain detailed type information.
- filterTemplate: List of templates ids to filter for, empty sequence acts as a wildcard.
- filterInterfaces: List of interface ids to filter for, empty sequence does not
influence the resulting filter.
- activeAtOffsetO: The offset at which the snapshot of the events will be computed, it
must be no greater than the current ledger end offset and must be greater than or
equal to the last pruning offset. If no offset is specified then the current
participant end will be used.
- timeout: The maximum wait time for the complete acs to arrive.
- includeCreatedEventBlob: whether the result should contain the createdEventBlobs, it
works only if the filterTemplate is non-empty.
Summary: Retrieves the first N active contracts for all parties on this participant
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntverbose: BooleanfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]identityProviderId: StringincludeCreatedEventBlob: BooleanresultFilter: com.daml.ledger.api.v2.state_service.GetActiveContractsResponse => Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry]
Description:
Fetches a subset of the Active Contract Set across all parties. Use the limit parameter
to control the number of records returned.
Parameters:
- limit: Limit (default set via canton.parameter.console).
- verbose: Whether the resulting events should contain detailed type information.
- filterTemplates: List of templates ids to filter for, empty sequence acts as
a wildcard.
- filterInterfaces: List of interface ids to filter for, empty sequence does not
influence the resulting filter.
- activeAtOffsetO: The offset at which the snapshot of the active contracts will be
computed, it must be no greater than the current ledger end offset and must be greater
than or equal to the last pruning offset. If no offset is specified then the current
participant end will be used.
- timeout: The maximum wait time for the complete acs to arrive.
- identityProviderId: Limit the response to parties governed by the given identity
provider.
- includeCreatedEventBlob: Whether the result should contain the createdEventBlobs, it
works only if the filterTemplate is non-empty.
- resultFilter: Custom filter of the results, applies before limit.
Summary: List the set of active contract entries of a given party
-
Arguments:
limit: com.digitalasset.canton.config.RequireTypes.PositiveIntverbose: BooleanfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]filterInterfaces: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]activeAtOffsetO: Option[Long]includeCreatedEventBlob: BooleanresultFilter: com.daml.ledger.api.v2.state_service.GetActiveContractsResponse => Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry]
Description:
This command will return the current set of active contracts and incomplete
reassignments for the given party.
Parameters:
- party: For which party you want to load the acs.
- limit: Limit (default set via canton.parameter.console).
- verbose: Whether the resulting events should contain detailed type information.
- filterTemplate: List of templates ids to filter for, empty sequence acts as a wildcard.
- activeAtOffsetO: The offset at which the snapshot of the active contracts will be
computed, it must be no greater than the current ledger end offset and must be greater
than or equal to the last pruning offset. If no offset is specified then the current
participant end will be used.
- timeout: The maximum wait time for the complete acs to arrive.
- includeCreatedEventBlob: Whether the result should contain the createdEventBlobs, it
works only if the filterTemplate is non-empty.
- resultFilter: Custom filter of the results, applies before limit.
Summary: Wait until a contract becomes available and return the Java codegen contract
-
Arguments:
companion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T]unknownTrailingFieldPolicy: com.daml.ledger.javaapi.data.codegen.UnknownTrailingFieldPolicypredicate: TC => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]
-
Return type:
(companion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T], unknownTrailingFieldPolicy: com.daml.ledger.javaapi.data.codegen.UnknownTrailingFieldPolicy)(partyId: com.digitalasset.canton.topology.Party, predicate: TC => Boolean, synchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId], timeout: com.digitalasset.canton.config.NonNegativeDuration): TC
Description:
This function can be used for contracts with a code-generated Java model.
You can refine your search using the `filter` function argument.
You can restrict search to a synchronizer by specifying the optional synchronizer ID.
The command will wait until the contract appears or throw an exception once it times out.
Optionally, an `UnknownTrailingFieldPolicy` can be specified to control how unknown
trailing fields in the contract payload are handled during decoding.
Summary: Filter the ACS for contracts of a particular Java code-generated template
-
Arguments:
templateCompanion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T]unknownTrailingFieldPolicy: com.daml.ledger.javaapi.data.codegen.UnknownTrailingFieldPolicypredicate: TC => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]
-
Return type:
(templateCompanion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T], unknownTrailingFieldPolicy: com.daml.ledger.javaapi.data.codegen.UnknownTrailingFieldPolicy)(partyId: com.digitalasset.canton.topology.Party, predicate: TC => Boolean, synchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]): Seq[TC]
Description:
To use this function, ensure a code-generated Java model for the target template exists.
You can refine your search using the `predicate` function argument.
You can restrict search to a synchronizer by specifying the optional synchronizer ID.
Optionally, an `UnknownTrailingFieldPolicy` can be specified to control how unknown
trailing fields in the contract payload are handled during decoding.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Time Service
ledger_api.time.getSummary: Get the participants time
- Return type:
Description:
Returns the current timestamp of the participant which is either the system clock or the
static time.
Summary: Set the participants time
-
Arguments:
currentTime: com.digitalasset.canton.data.CantonTimestamp
Description:
Sets the participants time if the participant is running in static time mode.
Updates Service
ledger_api.updates.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Get reassignments
-
Arguments:
completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntfilterTemplates: Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]beginOffsetExclusive: LongendOffsetInclusive: Option[Long]verbose: BooleanresultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]includeCreatedEventBlob: Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.ReassignmentWrapper]
Description:
This function connects to the update stream for the given parties and template ids and
collects reassignment events (assigned and unassigned) until either `completeAfter`
updates have been received or `timeout` has elapsed.
If the party ids set is empty then the reassignments for all the parties will be fetched.
If the template ids collection is empty then the reassignments for all the template ids
will be fetched. The returned updates can be filtered to be between the given offsets
(default: no filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Starts measuring throughput at the update service
-
Arguments:
metricName: StringonUpdate: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => Unit
-
Return type:
AutoCloseable
Description:
This function will subscribe on behalf of `parties` to the update stream and notify
various metrics:
- The metric `<name>.<metricSuffix>` counts the number of update trees emitted.
- The metric `<name>.<metricSuffix>-tx-node-count` tracks the number of events emitted as
part of update.
- The metric `<name>.<metricSuffix>-tx-size` tracks the number of bytes emitted as part
of update trees.
To stop measuring, you need to close the returned `AutoCloseable`.
If the set of parties is empty, we will subscribe as any party.
Use the `onUpdate` parameter to register a callback that is called on every update tree.
Summary: Subscribe to the update stream
-
Arguments:
observer: io.grpc.stub.StreamObserver[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper]updateFormat: com.daml.ledger.api.v2.transaction_filter.UpdateFormatbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]descendingOrder: Boolean
-
Return type:
AutoCloseable
Description:
This function connects to the update stream and passes updates to `observer` until the
stream is completed. The updates as described in the update format will be returned.
Use `EventFormat(Map(myParty.toLf -> Filters()))` to return transactions or reassignments
for `myParty: PartyId`.
The returned updates can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
If the descendingOrder is true, then the updates are streamed from the most recent
(endOffsetInclusive) to the oldest. In such case endOffsetInclusive must be defined.
Summary: Get topology transactions
-
Arguments:
completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]resultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.TopologyTransactionWrapper]
Description:
This function connects to the update stream for the given parties and collects topology
transaction events until either `completeAfter` updates have been received or `timeout`
has elapsed.
If the party ids seq is empty then the topology transactions for all the parties will be
fetched. The returned updates can be filtered to be between the given offsets (default:
no filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffsetExclusive` is
lower than the pruning offset, this command fails with a `NOT_FOUND` error.
If the beginOffsetExclusive is zero then the participant begin is taken as beginning
offset.
If the endOffsetInclusive is None then a continuous stream is returned.
Summary: Get transactions
-
Arguments:
completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]verbose: BooleanresultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]transactionShape: com.daml.ledger.api.v2.transaction_filter.TransactionShapeincludeCreatedEventBlob: Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.TransactionWrapper]
Description:
This function connects to the update stream for the given parties and collects updates
until either `completeAfter` transactions have been received or `timeout` has elapsed.
The returned updates can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error. If you need to specify
filtering conditions for template IDs and including create event blobs for explicit
disclosure, consider using `tx_with_tx_format`.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Get updates
-
Arguments:
transactionFormat: com.daml.ledger.api.v2.transaction_filter.TransactionFormatcompleteAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]resultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper]
Description:
This function connects to the update stream for the given transaction format and collects
updates until either `completeAfter` transactions have been received or `timeout` has
elapsed.
The returned transactions can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error. If you only need to
filter by a set of parties, consider using `transactions` instead.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Get an update by its ID
-
Arguments:
id: StringupdateFormat: com.daml.ledger.api.v2.transaction_filter.UpdateFormat
-
Return type:
Option[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper]
Description:
Get an update by its ID. Returns None if the update is not (yet) known at the participant
or all the events of the update are filtered due to the update format or if the update
has been pruned via `pruning.prune`.
Summary: Get an update by its offset
-
Arguments:
offset: LongupdateFormat: com.daml.ledger.api.v2.transaction_filter.UpdateFormat
-
Return type:
Option[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper]
Description:
Get an update by its offset. Returns None if the update is not (yet) known at the
participant or all the events of the update are filtered due to the update format or if
the update has been pruned via `pruning.prune`.
Summary: Get updates
-
Arguments:
updateFormat: com.daml.ledger.api.v2.transaction_filter.UpdateFormatcompleteAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]resultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]descendingOrder: Boolean
-
Return type:
Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper]
Description:
This function connects to the update stream for the given parties and collects updates
until either `completeAfter` updates have been received or `timeout` has elapsed.
The returned updates can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Get transactions in the format expected by the Java bindings
-
Arguments:
completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]verbose: BooleanresultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]transactionShape: com.daml.ledger.api.v2.transaction_filter.TransactionShape
-
Return type:
Seq[com.daml.ledger.javaapi.data.GetUpdatesResponse]
Description:
This function connects to the update stream for the given parties and collects updates
until either `completeAfter` transactions have been received or `timeout` has elapsed.
The returned updates can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error. If you need to specify
filtering conditions for template IDs and including create event blobs for explicit
disclosure, consider using `tx_with_tx_format`.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Get transactions in the format expected by the Java bindings
-
Arguments:
transactionFormat: com.daml.ledger.javaapi.data.TransactionFormatcompleteAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]resultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => Boolean
-
Return type:
Seq[com.daml.ledger.javaapi.data.GetUpdatesResponse]
Description:
This function connects to the update stream for the given transaction format and collects
updates until either `completeAfter` transactions have been received or `timeout` has
elapsed.
The returned transactions can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error. If you only need to
filter by a set of parties, consider using `flat` or `trees` instead.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Summary: Get updates in the format expected by the Java bindings
-
Arguments:
updateFormat: com.daml.ledger.api.v2.transaction_filter.UpdateFormatcompleteAfter: com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive: LongendOffsetInclusive: Option[Long]resultFilter: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]
-
Return type:
Seq[com.daml.ledger.javaapi.data.GetUpdatesResponse]
Description:
This function connects to the update stream for the given parties and collects updates
until either `completeAfter` updates have been received or `timeout` has elapsed.
The returned updates can be filtered to be between the given offsets (default: no
filtering).
If the participant has been pruned via `pruning.prune` and if `beginOffset` is lower than
the pruning offset, this command fails with a `NOT_FOUND` error.
If the beginOffset is zero then the participant begin is taken as beginning offset.
If the endOffset is None then a continuous stream is returned.
Ledger Pruning
pruning.clear_scheduleSummary: Deactivate automatic pruning
Summary: Finds the latest safe pruning offset for a given record time
-
Arguments:
beforeOrAt: java.time.Instant
-
Return type:
Option[Long]
Description:
Return the highest participant ledger offset whose record time is before or at the given
one (if any) at which pruning is safely possible
Summary: Identify the participant ledger offset to prune up to based on the specified timestamp
-
Arguments:
upToInclusive: java.time.Instant
-
Return type:
Option[Long]
Description:
Return the largest participant ledger offset that has been processed before or at the
specified timestamp.
The time is measured on the participant's local clock at some point while the
participant has processed the the event.
Returns `None` if no such offset exists.
Summary: Inspect the automatic, participant-specific pruning schedule
- Return type:
Description:
The schedule consists of a "cron" expression and "max_duration" and "retention" durations
as described in the `get_schedule` command description. Additionally "prune_internally"
indicates if the schedule mandates pruning of internal state.
Summary: Inspect the automatic pruning schedule
- Return type:
Description:
The schedule consists of a "cron" expression and "max_duration" and "retention"
durations. The cron string indicates the points in time at which pruning should begin in
the GMT time zone, and the maximum duration indicates how long from the start time
pruning is allowed to run as long as pruning has not finished pruning up to the specified
retention period.
Returns `None` if no schedule has been configured via `set_schedule` or if
`clear_schedule` has been invoked.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Prune the ledger up to the specified offset inclusively
-
Arguments:
pruneUpTo: Long
Description:
Prunes the participant ledger up to the specified offset inclusively returning `Unit`
if the ledger has been successfully pruned.
Note that upon successful pruning, subsequent attempts to read transactions via
`ledger_api.transactions.flat` or `ledger_api.transactions.trees` or command completions
via ``ledger_api.completions.list`` by specifying a begin offset lower than the returned
pruning offset will result in a ``NOT_FOUND`` error.
The ``prune`` operation performs a "full prune" freeing up significantly more space and
also performs additional safety checks returning a ``NOT_FOUND`` error if ``pruneUpTo``
is higher than the offset returned by ``find_safe_offset`` on any synchronizer with
events preceding the pruning offset.
Summary: Prune only internal ledger state up to the specified offset inclusively
-
Arguments:
pruneUpTo: LongsafeToPruneCommitmentState: Option[com.digitalasset.canton.scheduler.SafeToPruneCommitmentState]
Description:
Special-purpose variant of the ``prune`` command that prunes only partial, internal
participant ledger state freeing up space not needed for serving
`ledger_api.transactions` and `ledger_api.completions` requests. In conjunction with
`prune`, `prune_internally` enables pruning internal ledger state more aggressively
than externally observable data via the ledger api. In most use cases `prune` should be
used instead. Unlike `prune`, `prune_internally` has no visible effect on the Ledger API.
The command returns `Unit` if the ledger has been successfully pruned or an error if the
timestamp performs additional safety checks returning a `NOT_FOUND` error if `pruneUpTo`
is higher than the offset returned by `find_safe_offset` on any synchronizer with events
preceding the pruning offset.
Summary: Modify the cron used by automatic pruning
-
Arguments:
cron: String
Description:
The schedule is specified in cron format and refers to pruning start times in the GMT
time zone.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Modify the maximum duration used by automatic pruning
- Arguments:
Description:
The `maxDuration` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Activate automatic pruning according to the specified schedule with participant-specific options
-
Arguments:
cron: StringmaxDuration: com.digitalasset.canton.config.PositiveDurationSecondsretention: com.digitalasset.canton.config.PositiveDurationSecondspruneInternallyOnly: Boolean
Description:
Refer to the `set_schedule` description for information about the "cron", "max_duration",
and "retention" parameters. Setting the "prune_internally_only" flag causes pruning to
only remove internal state as described in more detail in the `prune_internally`
command description.
Summary: Update the pruning retention used by automatic pruning
- Arguments:
Description:
The `retention` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this update, pruning is actively running, a best effort is made to pause pruning and
restart with the newly specified retention. This allows for the case that the new
retention mandates retaining more data than previously.
Summary: Activate automatic pruning according to the specified schedule
-
Arguments:
cron: StringmaxDuration: com.digitalasset.canton.config.PositiveDurationSecondsretention: com.digitalasset.canton.config.PositiveDurationSeconds
Description:
The schedule is specified in cron format and "max_duration" and "retention" durations.
The cron string indicates the points in time at which pruning should begin in the GMT
time zone, and the maximum duration indicates how long from the start time pruning is
allowed to run as long as pruning has not finished pruning up to the specified retention
period.
Metrics
metrics.getSummary: Get a particular metric
-
Arguments:
metricName: Stringattributes: Map[String,String]
- Return type:
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular double point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.DoublePoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular exponential histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.ExponentialHistogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found. Also errors if the metric is not of the given type.
Summary: Get a particular histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Histogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular long point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.LongPoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular summary
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Summary
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: List all metrics
-
Arguments:
filterName: Stringattributes: Map[String,String]
-
Return type:
Map[String,Seq[com.digitalasset.canton.metrics.MetricValue]]
Description:
Returns the metric with the given name and optionally matching attributes.
Multiple Participants
This section lists the commands available for a sequence of participants. They can be used on the
participant references participants.all, .local or .remote as:
participants.all.dars.upload("my.dar")
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Upload DARs to participants
-
Arguments:
darPath: Stringdescription: StringsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages: BooleansynchronizeVetting: BooleanexpectedMainPackageId: StringrequestHeaders: Map[String,String]
-
Return type:
Map[com.digitalasset.canton.console.ParticipantReference,String]
Description:
If synchronizerId is set, the participants will vet the packages on the specified
synchronizer.
If synchronizeVetting is true, the command will block until the package vetting
transaction has been registered with all connected synchronizers.
Summary: Upload DARs to participants
-
Arguments:
paths: Seq[String]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages: BooleansynchronizeVetting: BooleanrequestHeaders: Map[String,String]logger: com.digitalasset.canton.logging.TracedLogger
-
Return type:
Map[com.digitalasset.canton.console.ParticipantReference,Seq[String]]
Description:
If synchronizerId is set, the participants will vet the packages on the specified
synchronizer.
If synchronizeVetting is true, the command will block until the package vetting
transaction has been registered with all connected synchronizers.
Summary: Validate DARs against the current participants’ state
-
Arguments:
darPath: String
-
Return type:
Map[com.digitalasset.canton.console.ParticipantReference,String]
Description:
Performs the same DAR and Daml package validation checks that the upload call performs,
but with no effects on the target participants: the DAR is not persisted or vetted.
Summary: Connect to a synchronizer
- Arguments:
Summary: Register and potentially connect to new local synchronizer
-
Arguments:
sequencer: com.digitalasset.canton.console.SequencerReferencemanualConnect: BooleanphysicalSynchronizerId: Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
Parameters:
- sequencer: A local sequencer reference.
- alias: A synchronizer alias to register this connection for.
- manualConnect: Whether this connection should be handled manually and also excluded
from automatic re-connect.
- physicalSynchronizerId: An optional Synchronizer Id to ensure the connection is made to
the correct synchronizer.
- synchronize: A timeout duration indicating how long to wait for all topology changes to
have been effected on all local nodes.
Summary: Disconnect from synchronizer
- Arguments:
Summary: Disconnect from all connected synchronizers
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Reconnect to synchronizer
-
Arguments:
retry: Boolean
Description:
If retry is set to true (default), the command will return after the first attempt,
but keep on trying in the background.
Summary: Reconnect to all synchronizers for which manualStart = false
-
Arguments:
ignoreFailures: Boolean
Description:
If ignoreFailures is set to true (default), the reconnect all will succeed even if some
synchronizers are offline.
The participants will continue attempting to establish a synchronizer connection.
Summary: Register a synchronizer
-
Arguments:
config: com.digitalasset.canton.admin.api.client.data.SynchronizerConnectionConfigperformHandshake: Booleanvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Packages
packages.find_by_moduleSummary: Find packages that contain a module with the given name
-
Arguments:
moduleName: StringlimitPackages: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Summary: Get the package contents
-
Arguments:
packageId: String
-
Return type:
com.digitalasset.canton.admin.api.client.data.PackageDescription.PackageContents
Summary: Returns the list of DARs referencing the given package
-
Arguments:
packageId: String
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List packages stored on the participant
-
Arguments:
filterName: Stringlimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Parameters:
- limit: Limit on the number of packages returned (defaults to
canton.parameters.console.default-limit)
Summary: Remove the package from Canton’s package store
-
Arguments:
packageId: Stringforce: Boolean
Description:
The standard operation of this command checks that a package is unused and unvetted,
and if so removes the package. The force flag can be used to disable the checks, but
do not use the force flag unless you are certain you know what you are doing.
Summary: Ensure that all vetting transactions issued by this participant have been observed by all configured participants
- Arguments:
Description:
Sometimes, when scripting tests and demos, a dar or package is uploaded and we need to
ensure that commands are only submitted once the package vetting has been observed by
some other connected participant known to the console. This command can be used in such
cases.
Party Management
The party management commands allow to conveniently enable and disable parties on the local node. Under the hood, they use the more complicated but feature-richer identity management commands.
parties.add_party_async (Preview)Summary: Add an already hosted party to the participant
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdsourceParticipant: com.digitalasset.canton.topology.ParticipantIdserial: com.digitalasset.canton.config.RequireTypes.PositiveIntparticipantPermission: com.digitalasset.canton.topology.transaction.ParticipantPermission
-
Return type:
String
Description:
Initiate adding a party that is already hosted on other participants to this
participant on the specified synchronizer.
Performs some checks synchronously and then initiates party replication asynchronously.
The returned `addPartyRequestId` parameter allows identifying asynchronous progress or
errors and is stable across each retry with the same request parameters.
This operation assumes full trust in the source participant to provide a complete and
untampered state. Because the target participant cannot independently verify
the historical provenance of the imported contracts,
validation is performed on a best-effort basis.
Use only when the source participant is a known, trusted authority.
Summary: Add an already hosted party to the participant using an ACS snapshot file
-
Arguments:
importFilePath: StringsynchronizerId: com.digitalasset.canton.topology.SynchronizerIdsourceParticipant: com.digitalasset.canton.topology.ParticipantIdserial: com.digitalasset.canton.config.RequireTypes.PositiveIntparticipantPermission: com.digitalasset.canton.topology.transaction.ParticipantPermission
-
Return type:
String
Description:
Add a party that is already hosted on other participants to this participant on the
specified synchronizer using the Active Contract Set (ACS) provided in the specified
file.
Performs some checks and imports the ACS synchronously and then completes party
replication asynchronously. The returned `addPartyRequestId` parameter allows tracking
progress or identifying errors and is stable across each retry with the same request
parameters.
This operation assumes full trust in the source participant to provide a complete and
untampered state. Because the target participant cannot independently verify
the historical provenance of the imported contracts,
validation is performed on a best-effort basis.
Use only when the source participant is a known, trusted authority.
Summary: Clears the onboarding flag for a party
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdbeginOffsetExclusive: LongwaitForActivationTimeout: Option[com.digitalasset.canton.config.NonNegativeFiniteDuration]
- Return type:
Description:
Instructs the participant to unilaterally clear the 'onboarding' flag on the
party-to-participant topology mapping.
This operation is time-sensitive. It will first attempt to authorize the
flag's clearance immediately.
If the flag cannot be safely cleared, this command schedules an idempotent
background task to propose the clearance at the appropriate "safe time".
This safe time (the "latest decision deadline") is computed from the
synchronizer's parameter history to ensure all prior in-flight
transactions are finalized.
Additionally, this command records the clearance operation as pending, ensuring
it can automatically resume following a node restart or synchronizer reconnection.
The command is idempotent and designed to be polled. You can re-run
it safely to check the status.
Prerequisite:
- A prior party-to-participant mapping must exist that activates the party
on this participant with the `onboarding` flag set to `true`.
Returns the current the current status as `PartyOnboardingFlagStatus`:
- `FlagNotSet`: The flag is successfully cleared (or was already clear).
- `FlagSet`: The flag is still set. A clearance task is pending and scheduled
to run at or after the given timestamp.
Parameters:
- party: The party being onboarded. It must already be active on the participant.
- synchronizerId: Restricts the operation to the given synchronizer.
- beginOffsetExclusive: Exclusive ledger offset used as a starting point to find the
party's activation.
- waitForActivationTimeout: Max duration to wait to find the party's activation
topology transaction.
Summary: Disable party on participant
-
Arguments:
forceFlags: com.digitalasset.canton.topology.ForceFlagssynchronizer: Option[com.digitalasset.canton.SynchronizerAlias]
Summary: Enable/add party to participant
-
Arguments:
name: Stringnamespace: com.digitalasset.canton.topology.Namespacesynchronizer: Option[com.digitalasset.canton.SynchronizerAlias]synchronizeParticipants: Seq[com.digitalasset.canton.console.ParticipantReference]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
- Return type:
Description:
This function registers a new party on a synchronizer with the current participant within
the participants namespace.
The function fails if the participant does not have appropriate signing keys to issue the
corresponding PartyToParticipant topology transaction, or if the participant is not
connected to any synchronizers.
The synchronizer parameter does not have to be specified if the participant is connected
only to one synchronizer.
If the participant is connected to multiple synchronizers, the party needs to be enabled
on each synchronizer explicitly.
Additionally, a sequence of additional participants can be added to be synchronized to
ensure that the party is known to these participants as well before the function
terminates.
Summary: Export active contracts for a given party to replicate it
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdtargetParticipantId: com.digitalasset.canton.topology.ParticipantIdbeginOffsetExclusive: LongexportFilePath: StringwaitForActivationTimeout: Option[com.digitalasset.canton.config.NonNegativeFiniteDuration]
Description:
This command exports the current Active Contract Set (ACS) for a given party to
facilitate its replication from a source to a target participant.
It uses the party's most recent activation on the target participant to determine
the precise state of the ACS to export from the source participant.
"Activation" on the target participant means the new hosting arrangement has been
authorized by both the party itself and the target participant via
party-to-participant topology transactions.
This command will fail if the party has not yet been activated on the target
participant.
Upon successful completion, the command writes a GZIP-compressed ACS snapshot
file. While designed to work in tandem with the `import_party_acs` command, the
resulting file is a standard ACS snapshot that can also be used with other
compatible commands (such as `repair.import_acs`).
Parameters:
- party: The party being replicated, it must already be active on the target
participant.
- synchronizerId: Restricts the export to the given synchronizer.
- targetParticipantId: Unique identifier of the target participant where the
party will be replicated.
- beginOffsetExclusive: Exclusive ledger offset used as a starting point to find
the party's activation on the target participant.
- exportFilePath: The path denoting the file where the ACS snapshot will be
stored. Defaults to "canton-acs-export.gz" when undefined.
- waitForActivationTimeout: The maximum duration the service will wait to find
the topology transaction that activates the party on the target participant.
- timeout: A timeout for this operation to complete.
Summary: Find a party from a filter string
-
Arguments:
filterParty: String
- Return type:
Description:
Will search for all parties that match this filter string. If it finds exactly one party,
it will return that one. Otherwise, the function will throw.
Summary: Find highest ledger offset by timestamp
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdtimestamp: java.time.Instantforce: Boolean
-
Return type:
Long
Description:
This command attempts to find the highest ledger offset among all events belonging
to a synchronizer that have a record time before or at the given timestamp.
Returns the highest ledger offset, or an error.
Possible failure causes:
- The requested timestamp is too far in the past for which no events exist anymore.
- There are no events for the given synchronizer.
- Not all events have been processed fully and/or published to the Ledger API DB
until the requested timestamp.
Depending on the failure cause, this command can be tried again to get a ledger
offset. For example, if not all events have been processed fully and/or published
to the Ledger API DB, a retry makes sense.
Parameters:
- synchronizerId: Restricts the query to a particular synchronizer.
- timestamp: A point in time.
- force: Defaults to false. When set, returns the highest known ledger offset with
a record time before or at the given timestamp. Additionally, if the requested
timestamp is in the future, it safely returns the current ledger end.
Note: This command includes a synchronization barrier. It will wait briefly
(up to 10 seconds) to ensure the returned offset is fully visible to the node's
local Ledger API cache before returning.
Summary: Finds a party’s highest activation offset
-
Arguments:
participantId: com.digitalasset.canton.topology.ParticipantIdsynchronizerId: com.digitalasset.canton.topology.SynchronizerIdonboarding: BooleanvalidFrom: Option[java.time.Instant]beginOffsetExclusive: LongendOffsetInclusive: Option[Long]completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveInt
-
Return type:
Long
Description:
This command locates the highest ledger offset where a party's activation matches
specified criteria.
It searches the ledger for topology transactions, sequenced by the given synchronizer
(`synchronizerId`), that result in the party (`partyId`) being newly hosted on the
participant (`participantId`). An optional `validFrom` timestamp filters the topology
transactions for their effective time.
The ledger search occurs within the specified offset range, targeting a specific number
of topology transactions (`completeAfter`).
The search begins at the ledger start if `beginOffsetExclusive` is default. If the
participant was pruned and `beginOffsetExclusive` is below the pruning offset, a
`NOT_FOUND` error occurs. Use an `beginOffsetExclusive` near, but before, the desired
topology transactions.
If `endOffsetInclusive` is not set (`None`), the search continues until `completeAfter`
number of transactions are found or the `timeout` expires. Otherwise, the ledger search
ends at the specified offset.
This command is useful for creating ACS snapshots with `export_acs`, which requires the
party activation ledger offset.
Parameters:
- partyId: The party to find activations for.
- participantId: The participant hosting the new party.
- synchronizerId: The synchronizer sequencing the activations.
- onboarding: Whether to find the offset for an onboarding versus an added party.
- validFrom: The activation's effective time (default: None).
- beginOffsetExclusive: Starting ledger offset (default: 0).
- endOffsetInclusive: Ending ledger offset (default: None = trailing search).
- completeAfter: Number of transactions to find (default: Maximum = no limit).
- timeout: Search timeout (default: 1 minute).
Summary: Finds a party’s highest deactivation offset
-
Arguments:
participantId: com.digitalasset.canton.topology.ParticipantIdsynchronizerId: com.digitalasset.canton.topology.SynchronizerIdvalidFrom: Option[java.time.Instant]beginOffsetExclusive: LongendOffsetInclusive: Option[Long]completeAfter: com.digitalasset.canton.config.RequireTypes.PositiveInt
-
Return type:
Long
Description:
This command locates the highest ledger offset where a party's deactivation matches
specified criteria.
It searches the ledger for topology transactions, sequenced by the given synchronizer
(`synchronizerId`), that result in the party (`partyId`) being revoked on the participant
(`participantId`). An optional `validFrom` timestamp filters the topology transactions
for their effective time.
The ledger search occurs within the specified offset range, targeting a specific number
of topology transactions (`completeAfter`).
The search begins at the ledger start if `beginOffsetExclusive` is default. If the
participant was pruned and `beginOffsetExclusive` is below the pruning offset, a
`NOT_FOUND` error occurs. Use an `beginOffsetExclusive` near, but before, the desired
topology transactions.
If `endOffsetInclusive` is not set (`None`), the search continues until `completeAfter`
number of transactions are found or the `timeout` expires. Otherwise, the ledger search
ends at the specified offset.
This command is useful for finding active contracts at the ledger offset where a party
has been off-boarded from a participant.
Parameters:
- partyId: The party to find deactivations for.
- participantId: The participant hosting the new party.
- synchronizerId: The synchronizer sequencing the deactivations.
- validFrom: The deactivation's effective time (default: None).
- beginOffsetExclusive: Starting ledger offset (default: 0).
- endOffsetInclusive: Ending ledger offset (default: None = trailing search).
- completeAfter: Number of transactions to find (default: Maximum = no limit).
- timeout: Search timeout (default: 1 minute).
Summary: Obtain status on a pending add_party_async call
-
Arguments:
addPartyRequestId: String
- Return type:
Description:
Retrieve status information on a party previously added via the `add_party_async`
endpoint by specifying the previously returned `addPartyRequestId` parameter.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List parties hosted by this participant
-
Arguments:
filterParty: StringsynchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Inspect the parties hosted by this participant as used for synchronisation.
The response is built from the timestamped topology transactions of each synchronizer,
excluding the authorized store of the given node. The search will include all hosted
parties and is equivalent to running the `list` method using the participant id of the
invoking participant.
Parameters:
- filterParty: Filter by parties starting with the given string.
- filterSynchronizerId: Filter by synchronizers whose id starts with the given string.
- asOf: Optional timestamp to inspect the topology state at a given point in time.
- limit: How many items to return (defaults to canton.parameters.console.default-limit)
Example: participant1.parties.hosted(filterParty="alice")
Summary: Import active contracts from a snapshot file to replicate a party
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdimportFilePath: StringworkflowIdPrefix: StringcontractImportMode: com.digitalasset.canton.participant.admin.data.ContractImportModerepresentativePackageIdOverride: com.digitalasset.canton.participant.admin.data.RepresentativePackageIdOverride
Description:
This command imports contracts from an Active Contract Set (ACS) snapshot file
into the participant's ACS. While designed to work in tandem with the
`export_party_acs`, it can also process any compatible ACS snapshot (such as one
generated by the `repair.export_acs` command).
The contract IDs of the imported contracts may be checked ahead of starting the
process. If any contract ID doesn't match the contract ID scheme associated to
the synchronizer where the contract is assigned to, the whole import process
fails depending on the value of `contractImportMode`.
This operation assumes the provided snapshot file (located at `importFilePath`)
contains the complete and untampered ACS originating from a trusted source participant.
Because the target participant cannot independently verify the historical provenance
of the imported contracts, validation is performed on a best-effort basis,
even if `contractImportMode` is `Validation`.
Use only when the provided snapshot file comes from a known, trusted authority.
Expert only: As validation of contract IDs may lengthen the import significantly,
you have the option to simply accept the contract IDs as they are using the
`ContractImportMode.Accept` mode.
Parameters:
- synchronizerId: The identifier of the synchronizer managing the contracts to
be imported. Any contracts in the snapshot associated with a different
synchronizer will not be imported (ignored).
- party: The party being replicated. When present, this will schedule the
onboarding flag clearance once the participant (re)connects with the
synchronizer.
- importFilePath: The path denoting the file from where the ACS snapshot will
be read. Defaults to "canton-acs-export.gz" when undefined.
- workflowIdPrefix: Sets a custom prefix for the workflow ID to easily identify
all transactions generated by this import. Defaults to "import-<random_UUID>"
when unspecified.
- contractImportMode: Choose between `Validation` (default, validates that
contract IDs comply with the scheme associated to the synchronizer where the
contracts are assigned), or `Accept` the contracts as they are (if you know
what you are doing).
- representativePackageIdOverride: Defines override mappings for assigning
representative package IDs to contracts upon ACS import.
Summary: List active parties, their active participants, and the participants’ permissions on synchronizers
-
Arguments:
filterParty: StringfilterParticipant: StringsynchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
Inspect the parties known by this participant as used for synchronisation.
The response is built from the timestamped topology transactions of each synchronizer,
excluding the authorized store of the given node. For each known party, the list of
active participants and their permission on the synchronizer for that party is given.
Parameters:
- filterParty: Filter by parties starting with the given string.
- filterParticipant: Filter for parties that are hosted by a participant with an ID
starting with the given string.
- filterSynchronizerId: Filter by synchronizers whose id starts with the given string.
- asOf: Optional timestamp to inspect the topology state at a given point in time.
- limit: Limit on the number of parties fetched (defaults to
canton.parameters.console.default-limit).
Example: participant1.parties.list(filterParty="alice")
Participant Repair
repair.addSummary: Add specified contracts to a specific synchronizer on the participant
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdprotocolVersion: com.digitalasset.canton.version.ProtocolVersioncontracts: Seq[com.digitalasset.canton.participant.admin.data.RepairContract]workflowIdPrefix: StringcontractImportMode: com.digitalasset.canton.participant.admin.data.ContractImportModerepresentativePackageIdOverride: com.digitalasset.canton.participant.admin.data.RepresentativePackageIdOverrideexcludedStakeholders: Set[com.digitalasset.canton.topology.PartyId]
Description:
This is a last resort command to recover from data corruption, e.g., in
scenarios where participant contracts have somehow gotten out of sync and need
to be manually created.
The participant needs to be disconnected from all synchronizers at the time of
the call, and as of now the synchronizer cannot have had any in-flight
requests.
The effects of the command will take effect upon reconnecting to the
synchronizer.
As repair commands are powerful tools to recover from unforeseen data
corruption, but dangerous under normal operation, use of this command requires
(temporarily) enabling the `features.enable-repair-commands` configuration. In
addition, repair commands can run for an unbounded time depending on the
number of contracts passed in. Be sure to not connect the participant to the
synchronizer until the call returns.
Parameters:
- synchronizerId: The ID of the synchronizer to which to add the contract(s).
- protocolVersion: The protocol version used by the synchronizer.
- contracts: List of contracts to add.
- workflowIdPrefix: Sets a custom prefix for the workflow ID to easily identify
all transactions generated by this command. Defaults to
"import-<random_UUID>" when unspecified.
- contractImportMode: Choose between `Validation` (default, validates that
contract IDs comply with the scheme associated to the synchronizer where the
contracts are assigned), or `Accept` the contracts as they are (if you know
what you are doing).
- representativePackageIdOverride: Defines override mappings for assigning
representative package IDs to contracts upon ACS import.
- excludedStakeholders: When defined, any contract that has one or more of
these parties as a stakeholder will not be added.
Summary: Change assignation of contracts from one synchronizer to another
-
Arguments:
contractsIds: Seq[com.digitalasset.canton.protocol.LfContractId]sourceSynchronizerAlias: com.digitalasset.canton.SynchronizerAliastargetSynchronizerAlias: com.digitalasset.canton.SynchronizerAliasreassignmentCounterOverride: Map[com.digitalasset.canton.protocol.LfContractId,com.digitalasset.canton.ReassignmentCounter]skipInactive: Boolean
Description:
This is a last resort command to recover from data corruption in scenarios in which a
synchronizer is irreparably broken and formerly connected participants need to change the
assignation of contracts to another, healthy synchronizer. The participant needs to be
disconnected from both the "sourceSynchronizer" and the "targetSynchronizer".
The target synchronizer cannot have had any inflight requests.
Contracts already assigned to the target synchronizer will be skipped, and this makes it
possible to invoke this command in an "idempotent" fashion in case an earlier attempt had
resulted in an error.
The "skipInactive" flag makes it possible to only change the assignment of active
contracts in the "sourceSynchronizer".
As repair commands are powerful tools to recover from unforeseen data corruption, but
dangerous under normal operation, use of this command requires (temporarily) enabling the
"features.enable-repair-commands" configuration. In addition repair commands can run for
an unbounded time depending on the number of contract ids passed in. Be sure to not
connect the participant to either synchronizer until the call returns.
Parameters:
- contractsIds: Set of contract ids that should change assignation to the new
synchronizer.
- sourceSynchronizerAlias: Alias of the source synchronizer.
- targetSynchronizerAlias: Alias of the target synchronizer.
- reassignmentCounterOverride: By default, the reassignment counter is increased by one
during the change assignation procedure if the value of the reassignment counter needs
to be forced, the new value can be passed in the map.
- skipInactive: (default true) whether to skip inactive contracts mentioned in the
contractIds list
Summary: Export active contracts for the given set of parties to a file
-
Arguments:
ledgerOffset: LongexportFilePath: StringexcludedStakeholders: Set[com.digitalasset.canton.topology.PartyId]synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]contractSynchronizerRenames: Map[com.digitalasset.canton.topology.SynchronizerId,com.digitalasset.canton.topology.SynchronizerId]
Description:
This command exports the current Active Contract Set (ACS) for a given set of
parties to a GZIP-compressed ACS snapshot file. The resulting file can then be
imported into a participant's ACS using the `import_acs` command.
Parameters:
- parties: Identifies contracts having at least one stakeholder from the given
set. If the set is empty, the command exports the ACS for all parties hosted
by the participant.
- ledgerOffset: The offset at which the ACS snapshot is exported.
- exportFilePath: The path denoting the file where the ACS snapshot will be
stored. Defaults to "canton-acs-export.gz" when undefined.
- excludedStakeholders: When defined, any contract that has one or more of
these parties as a stakeholder will be omitted from the ACS snapshot.
- synchronizerId: When defined, restricts the export to the given
synchronizer.
- contractSynchronizerRenames: Changes the associated synchronizer ID of
contracts from one synchronizer to another based on the mapping.
- timeout: A timeout for this operation to complete.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Mark sequenced events as ignored
-
Arguments:
physicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdfromInclusive: com.digitalasset.canton.SequencerCountertoInclusive: com.digitalasset.canton.SequencerCounterforce: Boolean
Description:
This is the last resort to ignore events that the participant is unable to process.
Ignoring events may lead to subsequent failures, e.g., if the event creating a contract
is ignored and that contract is subsequently used. It may also lead to ledger forks if
other participants still process the ignored events.
It is possible to mark events as ignored that the participant has not yet received.
The command will fail, if marking events between `fromInclusive` and `toInclusive` as
ignored would result in a gap in sequencer counters, namely if `from <= to` and `from` is
greater than `maxSequencerCounter + 1`, where `maxSequencerCounter` is the greatest
sequencer counter of a sequenced event stored by the underlying participant.
The command will also fail, if `force == false` and `from` is smaller than the sequencer
counter of the last event that has been marked as clean. (Ignoring such events would
normally have no effect, as they have already been processed.)
Summary: Import active contracts from an Active Contract Set (ACS) snapshot file
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdimportFilePath: StringworkflowIdPrefix: StringcontractImportMode: com.digitalasset.canton.participant.admin.data.ContractImportModerepresentativePackageIdOverride: com.digitalasset.canton.participant.admin.data.RepresentativePackageIdOverrideexcludedStakeholders: Set[com.digitalasset.canton.topology.PartyId]
Description:
This command imports contracts from an ACS snapshot file into the participant's
ACS. While designed to work in tandem with the `export_acs` command, it can
also process any compatible ACS snapshot.
The contract IDs of the imported contracts may be checked ahead of starting the
process. If any contract ID doesn't match the contract ID scheme associated to
the synchronizer where the contract is assigned to, the whole import process
fails depending on the value of `contractImportMode`.
This operation assumes the provided snapshot file (located at `importFilePath`)
contains the complete and untampered ACS originating from a trusted source participant.
Because the target participant cannot independently verify the historical provenance
of the imported contracts, validation is performed on a best-effort basis,
even if `contractImportMode` is `Validation`.
Use only when the provided snapshot file comes from a known, trusted authority.
Expert only: As validation of contract IDs may lengthen the import significantly,
you have the option to simply accept the contract IDs as they are using the
`ContractImportMode.Accept` mode.
Parameters:
- synchronizerId: The identifier of the synchronizer managing the contracts to be
imported. Any contracts in the snapshot associated with a different
synchronizer will be safely ignored (dropped) and logged.
- importFilePath: The path denoting the file from where the ACS snapshot will be read.
Defaults to "canton-acs-export.gz" when undefined.
- workflowIdPrefix: Sets a custom prefix for the workflow ID to easily identify all
transactions generated by this import. Defaults to "import-<random_UUID>" when
unspecified.
- contractImportMode: Choose between `Validation` (default, validates that contract IDs
comply with the scheme associated to the synchronizer where the contracts are
assigned), or `Accept` the contracts as they are (if you know what you are doing).
- representativePackageIdOverride: Defines override mappings for assigning representative
package IDs to contracts upon ACS import.
- excludedStakeholders: When defined, any contract that has one or more of these
parties as a stakeholder will not be added.
Summary: Migrate contracts from one synchronizer to another one
-
Arguments:
target: com.digitalasset.canton.admin.api.client.data.SynchronizerConnectionConfigforce: Boolean
Description:
Migrates all contracts associated with a synchronizer to a new synchronizer.
This method will register the new synchronizer, connect to it and then re-associate all
contracts from the source synchronizer to the target synchronizer. Please note that this
migration needs to be done by all participants at the same time. The target synchronizer
should only be used once all participants have finished their migration.
WARNING: The migration does not start in case of in-flight transactions on the source
synchronizer. Forcing the migration may lead to a ledger fork! Instead of forcing the
migration, ensure the source synchronizer has no in-flight transactions by reconnecting
all participants to the source synchronizer, halting activity on these participants and
waiting for the in-flight transactions to complete or time out. Forcing a migration is
intended for disaster recovery when a source synchronizer cannot be recovered anymore.
Parameters:
- source: The synchronizer alias of the source synchronizer.
- target: The configuration for the target synchronizer.
- force: If true, migration is forced ignoring in-flight transactions. Defaults to false.
Summary: Perform a late logical synchronizer upgrade
-
Arguments:
currentPhysicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdsuccessorPhysicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdannouncedUpgradeTime: com.digitalasset.canton.data.CantonTimestampsuccessorConfig: com.digitalasset.canton.admin.api.client.data.SynchronizerConnectionConfigvalidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidation
Description:
This command allows to perform an offline logical synchronizer upgrade.
It should only be used if the node was offline at the time of the upgrade and the
synchronizer was decommissioned.
Parameters:
- currentPhysicalSynchronizerId: ID of the synchronizer that should be upgraded.
- successorPhysicalSynchronizerId: ID of the new synchronizer.
- announcedUpgradeTime: Time at which the upgrade happened.
- successorConfig: configuration to connect to the new synchronizer.
- validation: The validations which need to be done to the connection.
Summary: Purge contracts with specified Contract IDs from local participant
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliascontractIds: Seq[com.digitalasset.canton.protocol.LfContractId]ignoreAlreadyPurged: Boolean
Description:
This is a last resort command to recover from data corruption, e.g. in scenarios in
which participant contracts have somehow gotten out of sync and need to be manually
purged, or in situations in which stakeholders are no longer available to agree to their
archival. The participant needs to be disconnected from the synchronizer on which the
contracts with "contractIds" reside at the time of the call, and as of now the
synchronizer cannot have had any inflight requests.
The effects of the command will take affect upon reconnecting to the synchronizer.
The "ignoreAlreadyPurged" flag makes it possible to invoke the command multiple times
with the same parameters in case an earlier command invocation has failed.
As repair commands are powerful tools to recover from unforeseen data corruption, but
dangerous under normal operation, use of this command requires (temporarily) enabling the
"features.enable-repair-commands" configuration. In addition repair commands can run for
an unbounded time depending on the number of contract ids passed in. Be sure to not
connect the participant to the synchronizer until the call returns.
Summary: Purge the data of a deactivated synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Description:
This command deletes synchronizer data and helps to ensure that stale data in the
specified, deactivated synchronizer is not acted upon anymore. The specified synchronizer
needs to be in the `Inactive` status for purging to occur.
Purging a deactivated synchronizer is typically performed automatically as part of a hard
synchronizer migration via ``repair.migrate_synchronizer``.
Summary: Rollback an unassignment by re-assigning the contract to the source synchronizer
-
Arguments:
reassignmentId: String
Description:
This is a last resort command to recover from an unassignment that cannot be completed on
the target synchronizer.
Parameters:
- reassignmentId: Set of contract IDs that should change assignation to the new
synchronizer.
- source: The source synchronizer ID.
- target: Alias of the target synchronizer.
Summary: Remove the ignored status from sequenced events
-
Arguments:
physicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdfromInclusive: com.digitalasset.canton.SequencerCountertoInclusive: com.digitalasset.canton.SequencerCounterforce: Boolean
Description:
This command has no effect on ordinary (i.e., not ignored) events and on events that do
not exist.
The command will fail, if marking events between `fromInclusive` and `toInclusive` as
unignored would result in a gap in sequencer counters, namely if there is one empty
ignored event with sequencer counter between `from` and `to` and another empty ignored
event with sequencer counter greater than `to`.
An empty ignored event is an event that has been marked as ignored and not yet received
by the participant.
The command will also fail, if `force == false` and `from` is smaller than the sequencer
counter of the last event that has been marked as clean. (Unignoring such events would
normally have no effect, as they have already been processed.)
Summary: Write active contracts to a file
-
Arguments:
contracts: Seq[com.daml.ledger.api.v2.state_service.ActiveContract]protocolVersion: com.digitalasset.canton.version.ProtocolVersionexportFilePath: String
Description:
Writes the specified contracts to a GZIP-compressed ACS snapshot file. The
resulting file can then be imported using the `import_acs` command.
Parameters:
- contracts: Contracts to be written.
- protocolVersion: Protocol version of the synchronizer of the contracts.
Replication
replication.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Set the participant replica to passive
Description:
Trigger a graceful fail-over from this active replica to another passive replica.
The command completes after the replica had a chance to become active.
After this command you need to check the health status of this replica to ensure it is
not active anymore.
Resource Management
resources.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Get the resource limits of the participant
- Return type:
Summary: Set resource limits for the participant
- Arguments:
Description:
While a resource limit is attained or exceeded, the participant will reject any
additional submission with GRPC status ABORTED. Most importantly, a submission will be
rejected **before** it consumes a significant amount of resources.
There are three kinds of limits: `maxInflightValidationRequests`, `maxSubmissionRate`
and `maxSubmissionBurstFactor`.
The number of inflight validation requests of a participant P covers (1) requests
initiated by P as well as (2) requests initiated by participants other than P that need
to be validated by P.
Compared to the maximum rate, the maximum number of inflight validation requests reflects
the load on the participant more accurately.
However, the maximum number of inflight validation requests alone does not protect the
system from "bursts":
If an application submits a huge number of commands at once, the maximum number of
inflight validation requests will likely be exceeded, as the system is registering
inflight validation requests only during validation and not already during submission.
The maximum rate is a hard limit on the rate of commands submitted to this participant
through the Ledger API.
As the rate of commands is checked and updated immediately after receiving a new
command submission, an application cannot exceed the maximum rate.
The `maxSubmissionBurstFactor` parameter (positive, default 0.5) allows to configure how
permissive the rate limitation should be with respect to bursts. The rate limiting will
be enforced strictly after having observed `max_burst` * `max_submission_rate` commands.
For the sake of illustration, let's assume the configured rate limit is `100 commands/s`
with a burst ratio of 0.5.
If an application submits 100 commands within a single second, waiting exactly
10 milliseconds between consecutive commands, then the participant will accept all
commands.
With a `maxSubmissionBurstFactor` of 0.5, the participant will accept the first
50 commands and reject the remaining 50.
If the application then waits another 500 ms, it may submit another burst of 50 commands.
If it waits 250 ms, it may submit only a burst of 25 commands.
Resource limits can only be changed, if the server runs Canton enterprise.
In the community edition, the server uses fixed limits that cannot be changed.
Testing
testing.acs_search (Testing)Summary: Lookup of active contracts
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasexactId: StringfilterPackage: StringfilterTemplate: StringfilterStakeholder: Option[com.digitalasset.canton.topology.PartyId]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
-
Return type:
List[com.digitalasset.canton.protocol.ContractInstance]
Summary: Await for the given time to be reached on the given synchronizer
- Arguments:
Summary: Await for the given time to be reached on the given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
Summary: Send bong to target parties over the ledger (Levels > 0 leads to an exploding ping with exponential number of contracts)
-
Arguments:
targets: Set[com.digitalasset.canton.topology.ParticipantId]validators: Set[com.digitalasset.canton.topology.ParticipantId]levels: IntsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: Stringid: String
-
Return type:
scala.concurrent.duration.Duration
Description:
Initiates a racy ping to multiple participants, measuring the roundtrip time of the
fastest responder, with an optional timeout.
Grace-period is the time the bong will wait for a duplicate spent (which would indicate
an error in the system) before exiting.
If levels > 0, the ping command will lead to a binary explosion and subsequent dilation
of contracts, where `level` determines the number of levels we will explode. As a result,
the system will create (2^(L+2) - 3) contracts (where L stands for `levels`).
Normally, only the initiator is a validator. Additional validators can be added using the
validators argument.
The bong command comes handy to run a burst test against the system and quickly leads to
an overloading state.
Note: Throws a RuntimeException in case of failure.
Summary: Return the sync crypto api provider, which provides access to all cryptographic methods
- Return type:
Summary: Fetch the current time from the given synchronizer
-
Arguments:
synchronizer: com.digitalasset.canton.topology.Synchronizer
- Return type:
Summary: Fetch the current time from the given synchronizer
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAlias
- Return type:
Summary: Fetch the current time from all connected synchronizers
- Arguments:
Summary: The latest timestamp before or at the given one for which no commitment is outstanding
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasbeforeOrAt: com.digitalasset.canton.data.CantonTimestamp
- Return type:
Description:
The latest timestamp before or at the given one for which no commitment is outstanding.
Note that this does not imply that pruning is possible at this timestamp, as the system
might require some additional data for crash recovery. Thus, this is useful for testing
commitments; use the commands in the pruning group for pruning.
Additionally, the result needn't fall on a "commitment tick" as specified by the
reconciliation interval.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Lookup of accepted transactions by update ID
-
Arguments:
updateId: String
-
Return type:
Option[com.digitalasset.canton.protocol.LfVersionedTransaction]
Summary: Like bong, but returns None in case of failure
-
Arguments:
targets: Set[com.digitalasset.canton.topology.ParticipantId]validators: Set[com.digitalasset.canton.topology.ParticipantId]levels: IntsynchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]workflowId: Stringid: String
-
Return type:
Option[scala.concurrent.duration.Duration]
Summary: Lookup contracts in the Private Contract Store
-
Arguments:
synchronizerAlias: com.digitalasset.canton.SynchronizerAliasexactId: StringfilterPackage: StringfilterTemplate: StringactiveSet: Booleanlimit: com.digitalasset.canton.config.RequireTypes.PositiveInt
-
Return type:
List[(Boolean, com.digitalasset.canton.protocol.ContractInstance)]
Description:
Get raw access to the PCS of the given synchronizer sync controller.
The filter commands will check if the target value ``contains`` the given string.
The arguments can be started with `^` such that `startsWith` is used for comparison
or `!` to use `equals`.
The `activeSet` argument allows to restrict the search to the active contract set.
For contract ID filtration only exact match is supported.
Summary: Retrieve all sequencer messages
-
Arguments:
physicalSynchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdfrom: Option[java.time.Instant]to: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveIntwarnOnDiscardedEnvelopes: Boolean
- Return type:
Description:
Optionally allows filtering for sequencer from a certain time span (inclusive on both
ends) and limiting the number of displayed messages. The returned messages will be
ordered on most synchronizer ledger implementations if a time span is given.
Fails if the participant has never connected to the synchronizer.
Summary: Obtain access to the state inspection interface. Use at your own risk
- Return type:
Description:
The state inspection methods can fatally and permanently corrupt the state of a
participant. The API is subject to change in any way.
Topology Administration
The topology commands can be used to manipulate and inspect the topology state.
In all commands, we use fingerprints to refer to public keys. Internally, these
fingerprints are resolved using the key registry (which is a map of Fingerprint -> PublicKey).
Any key can be added to the key registry using the keys.public.load commands.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Initialize the node with a unique identifier
-
Arguments:
identifier: Stringnamespace: Stringdelegations: Seq[com.digitalasset.canton.topology.transaction.SignedTopologyTransaction.GenericSignedTopologyTransaction]delegationFiles: Seq[String]waitForReady: Boolean
Description:
Every node in Canton is identified using a unique identifier, which is composed of a
user-chosen string and the fingerprint of a signing key. The signing key is the root key
defining a so-called namespace, where the signing key has the ultimate control over
issuing new identifiers.
During initialisation, we have to pick such a unique identifier.
By default, initialisation happens automatically, but it can be changed to either
initialize manually or to read a set of identities and certificates from a file.
Automatic node initialisation is usually turned off to preserve the identity of a
participant or synchronizer node (during major version upgrades) or if the root namespace
key of the node is kept offline.
If known, the namespace can be set to verify that it matches the root certificate.
Otherwise it will be read from the delegation.
Optionally, a set of delegations can be provided if the root namespace key is not
available.
These delegations can be either in files or passed as objects. Their version needs to
match the necessary protocol version of the synchronizers we are going to connect to.
Summary: Initialize the node with a unique identifier
-
Arguments:
identifier: com.digitalasset.canton.topology.UniqueIdentifierdelegations: Seq[com.digitalasset.canton.topology.transaction.SignedTopologyTransaction.GenericSignedTopologyTransaction]delegationFiles: Seq[String]waitForReady: Boolean
Description:
Every node in Canton is identified using a unique identifier, which is composed of a
user-chosen string and the fingerprint of a signing key. The signing key is the root key
defining a so-called namespace, where the signing key has the ultimate control over
issuing new identifiers.
During initialisation, we have to pick such a unique identifier.
By default, initialisation happens automatically, but it can be changed to either
initialize manually or to read a set of identities and delegations from a file.
Automatic node initialisation is usually turned off to preserve the identity of a
participant or synchronizer node (during major version upgrades) or if the root namespace
key of the node is kept offline.
Optionally, a set of delegations can be provided if the root namespace key is not
available.
These delegations can be either in files or passed as objects. Their version needs to
match the necessary protocol version of the synchronizers we are going to connect to.
Summary: Authorize a transaction by its hash
-
Arguments:
txHash: com.digitalasset.canton.topology.transaction.TopologyTransaction.TxHashmustBeFullyAuthorized: Booleanstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreId
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,M]
Summary: Authorize a transaction by its hash
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdtxHash: com.digitalasset.canton.topology.transaction.TopologyTransaction.TxHash
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.TopologyMapping]
Summary: Serializes node’s topology identity transactions to a file
-
Arguments:
file: String
Description:
Transactions serialized this way should be loaded into another node with load_from_file
Summary: Serializes node’s topology identity transactions to a file
-
Arguments:
file: String
Description:
Transactions serialized this way should be loaded into another node with load_from_file
Summary: Export topology snapshot
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]excludeMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]filterAuthorizedKey: Option[com.digitalasset.canton.crypto.Fingerprint]protocolVersion: Option[String]filterNamespace: String
-
Return type:
com.google.protobuf.ByteString
Description:
This command export the node's topology transactions as byte string.
Parameters:
- excludeMappings: A list of topology mapping codes to exclude from the export. If not
provided, all mappings are included.
- filterNamespace: The namespace to filter the transactions by.
- protocolVersion: The protocol version used to serialize the topology transactions. If
not provided, the latest protocol version is used.
Summary: Export topology snapshot
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]excludeMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]filterAuthorizedKey: Option[com.digitalasset.canton.crypto.Fingerprint]protocolVersion: Option[String]filterNamespace: String
-
Return type:
com.google.protobuf.ByteString
Description:
This command export the node's topology transactions as byte string.
Parameters:
- excludeMappings: A list of topology mapping codes to exclude from the export. If not
provided, all mappings are included.
- filterNamespace: The namespace to filter the transactions by.
- protocolVersion: The protocol version used to serialize the topology transactions. If
not provided, the latest protocol version is used.
Summary: Find the latest transaction for a given mapping hash
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdincludeProposals: Boolean
-
Return type:
Option[com.digitalasset.canton.topology.store.StoredTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,M]]
Description:
Parameters:
- store:
- "Authorized": The topology transaction will be looked up in the node's authorized
store.
- "<synchronizer id>": The topology transaction will be looked up in the specified
synchronizer store.
- includeProposals: When true, the result could be the latest proposal, otherwise will
only return the latest fully authorized transaction.
Summary: Find the latest transaction for a given mapping hash
-
Arguments:
mappingHash: com.digitalasset.canton.topology.transaction.TopologyMapping.MappingHashstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdincludeProposals: Boolean
-
Return type:
Option[com.digitalasset.canton.topology.store.StoredTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,M]]
Description:
Parameters:
- mappingHash: The unique key of the topology mapping to find.
- store:
- "Authorized": The topology transaction will be looked up in the node's authorized
store.
- "<synchronizer id>": The topology transaction will be looked up in the specified
synchronizer store.
- includeProposals: When true, the result could be the latest proposal, otherwise will
only return the latest fully authorized transaction.
Summary: Download the genesis state for a sequencer (intended for performing a major synchronizer upgrade)
-
Arguments:
filterSynchronizerStore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Synchronizer]timestamp: Option[com.digitalasset.canton.data.CantonTimestamp]
-
Return type:
com.google.protobuf.ByteString
Description:
Download the topology snapshot which includes the entire history of topology transactions
to initialize a sequencer for a major synchronizer upgrade. The `validFrom` and
`validUntil` are set to `SignedTopologyTransaction.InitialTopologySequencingTime`.
Parameters:
- filterSynchronizerStore: Must be specified if the genesis state is requested
from a participant node.
- timestamp: If not specified, the max effective time of the latest topology transaction
is used. Otherwise, the given timestamp is used.
Summary: Download the genesis state for a sequencer (intended for performing a major synchronizer upgrade)
-
Arguments:
filterSynchronizerStore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Synchronizer]timestamp: Option[com.digitalasset.canton.data.CantonTimestamp]
-
Return type:
com.google.protobuf.ByteString
Description:
Download the topology snapshot which includes the entire history of topology transactions
to initialize a sequencer for a major synchronizer upgrades. The `validFrom` and
`validUntil` are set to `SignedTopologyTransaction.InitialTopologySequencingTime`.
Parameters:
- filterSynchronizerStore: Must be specified if the genesis state is requested from a
participant node.
- timestamp: If not specified, the max effective time of the latest topology transaction
is used. Otherwise, the given timestamp is used.
Summary: Downloads the node’s topology identity transactions
-
Return type:
Seq[com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.TopologyMapping]]
Description:
The node's identity is defined by topology transactions of type NamespaceDelegation and
OwnerToKeyMapping.
Summary: Loads topology transactions from a file into the specified topology store
-
Arguments:
file: Stringstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreId
Description:
The file must contain data serialized by TopologyTransactions.
Summary: Loads topology transactions from a file into the specified topology store
-
Arguments:
file: Stringstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreId
Description:
The file must contain data serialized by TopologyTransactions.
Summary: List all transaction
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]excludeMappings: Seq[com.digitalasset.canton.topology.transaction.TopologyMapping.Code]filterAuthorizedKey: Option[com.digitalasset.canton.crypto.Fingerprint]protocolVersion: Option[String]filterNamespace: String
-
Return type:
com.digitalasset.canton.topology.store.StoredTopologyTransactions[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.TopologyMapping]
Summary: Loads topology transactions from a file into the specified topology store
-
Arguments:
file: Stringstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdforceFlags: com.digitalasset.canton.topology.ForceFlagssynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
The file must contain data serialized by SignedTopologyTransactions.
Summary: Loads topology transactions from a file into the specified topology store
-
Arguments:
file: Stringstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdforceFlags: com.digitalasset.canton.topology.ForceFlagssynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
The file must contain data serialized by SignedTopologyTransaction.
Summary: Loads topology transactions from a list of files into the specified topology store
-
Arguments:
files: Seq[String]store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdforceFlags: com.digitalasset.canton.topology.ForceFlagssynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
The files must contain data serialized by SignedTopologyTransaction.
Summary: Propose a transaction
-
Arguments:
mapping: Mstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]change: com.digitalasset.canton.topology.transaction.TopologyChangeOpmustFullyAuthorize: BooleanforceChanges: com.digitalasset.canton.topology.ForceFlagswaitToBecomeEffective: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,M]
Description:
Raw access to admin API command
Summary: Stream the topology upgrade state for a sequencer (intended for logical synchronizer upgrade) to a file
-
Arguments:
outputFile: StringtopologyStore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Synchronizer]timestamp: Option[com.digitalasset.canton.data.CantonTimestamp]
Description:
Download the topology snapshot which includes the entire history of topology transactions
to initialize a sequencer for a logical synchronizer upgrade.
A logical synchronizer upgrade must be ongoing for this call to succeed.
Parameters:
- topologyStore: Optional, if the node only has one active synchronizer store, it will
be detected automatically. If the node has more than one active
synchronizer store, as can be the case for participants, the desired
topology store must be set explicitly.
- timestamp: The effective time used to fetch the topology transactions
MUST be empty for regular LSUs.
SHOULD be defined in a disaster recovery scenario when requesting the topology
from a synchronizer without an announced LSU.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Propose changes to a decentralized namespace
-
Arguments:
decentralizedNamespace: com.digitalasset.canton.topology.transaction.DecentralizedNamespaceDefinitionstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: Booleanserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.DecentralizedNamespaceDefinition]
Description:
Parameters:
- decentralizedNamespace: The DecentralizedNamespaceDefinition to propose.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Propose the creation of a new decentralized namespace
-
Arguments:
threshold: com.digitalasset.canton.config.RequireTypes.PositiveIntstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.DecentralizedNamespaceDefinition]
Description:
Parameters:
- owners: The namespaces of the founding members of the decentralized namespace, which
are used to compute the name of the decentralized namespace.
- threshold: This threshold specifies the minimum number of signatures of decentralized
namespace members that are required to satisfy authorization requirements on topology
transactions for the namespace of the decentralized namespace.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": the topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Get the configured dynamic synchronizer parameters
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerId
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Latest dynamic synchronizer parameters
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdfilterSynchronizer: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Summary: List dynamic synchronizer parameters
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterSynchronizer: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Summary: Propose changes to dynamic synchronizer parameters
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparameters: com.digitalasset.canton.admin.api.client.data.DynamicSynchronizerParametersstore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]mustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.SynchronizerParametersState]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- parameters: The new dynamic synchronizer parameters to be used on the synchronizer.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- force: Must be set to true when performing a dangerous operation, such as increasing
the preparationTimeRecordTimeTolerance.
Summary: Propose an update to dynamic synchronizer parameters
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdmustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- update: Transforms the current dynamic synchronizer parameters into new ones
to be used on the synchronizer.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- force: Must be set to true when performing a dangerous operation, such as increasing
the preparationTimeRecordTimeTolerance.
Summary: Update the ledger time record time tolerance in the dynamic synchronizer parameters
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewLedgerTimeRecordTimeTolerance: com.digitalasset.canton.config.NonNegativeFiniteDuration
Description:
Parameters:
- synchronizerId: The target synchronizer.
- newLedgerTimeRecordTimeTolerance: The new ledgerTimeRecordTimeTolerance value to apply
to the synchronizer.
Summary: Update the preparation time record time tolerance in the dynamic synchronizer parameters
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdnewPreparationTimeRecordTimeTolerance: com.digitalasset.canton.config.NonNegativeFiniteDurationforce: Boolean
Description:
If it would be insecure to perform the change immediately, the command will block and
wait until it is secure to perform the change.
The command will block for at most twice of ``newPreparationTimeRecordTimeTolerance``.
The method will fail if ``mediatorDeduplicationTimeout`` is less than twice of
``newPreparationTimeRecordTimeTolerance``.
Do not modify synchronizer parameters concurrently while running this command,
because the command may override concurrent changes.
force: update ``newPreparationTimeRecordTimeTolerance`` immediately without blocking.
This is safe to do during synchronizer bootstrapping and in test environments, but should
not be done in operational production systems.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Propose a change to a participant’s synchronizer trust certificate
-
Arguments:
participantId: com.digitalasset.canton.topology.ParticipantIdsynchronizerId: com.digitalasset.canton.topology.SynchronizerIdsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]store: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]mustFullyAuthorize: Booleanserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]change: com.digitalasset.canton.topology.transaction.TopologyChangeOpfeatureFlags: Seq[com.digitalasset.canton.topology.transaction.SynchronizerTrustCertificate.ParticipantTopologyFeatureFlag]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.SynchronizerTrustCertificate]
Description:
A participant's synchronizer trust certificate signals to the synchronizer that the
participant would like to act on the synchronizer.
Parameters:
- participantId: The identifier of the trust certificate's target participant.
- synchronizerId: the identifier of the synchronizer on which the participant would like
to act.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List mediator synchronizer topology state
-
Arguments:
synchronizerId: Option[com.digitalasset.canton.topology.SynchronizerId]proposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterSynchronizer: StringfilterSigningKey: StringprotocolVersion: Option[String]group: Option[com.digitalasset.canton.config.RequireTypes.NonNegativeInt]
- Return type:
Description:
Parameters:
- synchronizerId: The optional target synchronizer.
- proposals: If true then proposals are shown, otherwise actual validated state.
Summary: Replace the mediator topology
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdthreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntgroup: com.digitalasset.canton.config.RequireTypes.NonNegativeIntstore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.MediatorSynchronizerState]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- threshold: The minimum number of mediators that need to come to a consensus for a
message to be sent to other members.
- active: The list of mediators that will take part in the mediator consensus in this
mediator group.
- passive: The mediators that will receive all messages but will not participate in
mediator consensus.
- group: The mediator group identifier.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Propose changes to the mediator topology
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdgroup: com.digitalasset.canton.config.RequireTypes.NonNegativeIntobserverAdds: List[com.digitalasset.canton.topology.MediatorId]observerRemoves: List[com.digitalasset.canton.topology.MediatorId]updateThreshold: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- group: The mediator group identifier.
- adds: The unique identifiers of the active mediators to add.
- removes: The unique identifiers of the mediators that should no longer be active
mediators.
- observerAdds: The unique identifiers of the observer mediators to add.
- observerRemoves: The unique identifiers of the mediators that should no longer be
observer mediators.
- updateThreshold: Optionally an updated value for the threshold of the mediator group.
- await: Optional timeout to wait for the proposal to be persisted in the specified
topology store.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
Summary: Propose to remove a mediator group
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdgroup: com.digitalasset.canton.config.RequireTypes.NonNegativeIntstore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Boolean
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.MediatorSynchronizerState]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- group: The mediator group identifier.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Propose a new namespace delegation that is restricted to certain topology mapping types
-
Arguments:
namespace: com.digitalasset.canton.topology.NamespacedelegationRestriction: com.digitalasset.canton.topology.transaction.DelegationRestrictionstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: Booleanserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]forceFlags: com.digitalasset.canton.topology.ForceFlags
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.NamespaceDelegation]
Description:
A namespace delegation allows the owner of a namespace to delegate signing privileges for
topology transactions on behalf of said namespace to additional signing keys.
Parameters:
- namespace: The namespace for which the target key can be used to sign topology
transactions.
- targetKey: The target key to be used for signing topology transactions on behalf of the
namespace.
- delegationRestriction: The types of topology mappings for which targetKey can sign.
Can be one of the following values:
- CanSignAllMappings: The target key can sign all topology mappings that are currently
known or will be added in future releases.
- CanSignAllButNamespaceDelegations: The target key can sign all topology mappings that
are currently known or will be added in future releases, except for namespace
delegations.
- CanSignSpecificMappings(TopologyMapping.Code*): the target key can only sign the
specified topology mappings.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures
and the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Revoke an existing namespace delegation
-
Arguments:
namespace: com.digitalasset.canton.topology.Namespacestore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: Booleanserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]forceChanges: com.digitalasset.canton.topology.ForceFlagssynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.NamespaceDelegation]
Description:
A namespace delegation allows the owner of a namespace to delegate signing privileges for
topology transactions on behalf of said namespace to additional signing keys.
Parameters:
- namespace: The namespace for which the target key should be revoked.
- targetKey: The target key to be revoked.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures
and the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the
same serial already exists, or if there is a gap between this serial and the most
recently used serial.
If None, the serial will be automatically selected by the node.
- force: Must be set to true when performing a dangerous operation, such as revoking a
root certificate.
Summary: Add a key to an owner to key mapping
-
Arguments:
keyOwner: com.digitalasset.canton.topology.Membersynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Boolean
Description:
Add a key to an owner to key mapping. A key owner is anyone in the system that needs a
key-pair known to all members (participants, mediators, sequencers) of a synchronizer.
If no owner to key mapping exists for the specified key owner, create a new mapping with
the specified key. The specified key needs to have been created previously via the
`keys.secret` API.
Parameters:
- key: Fingerprint of the key.
- purpose: The key purpose, i.e. whether the key is for signing or encryption.
- keyOwner: The member that owns the key.
- signedBy: Optional fingerprint of the authorizing key which in turn refers to a
specific, locally existing certificate.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- mustFullyAuthorize: Whether to only add the key if the member is in the position to
authorize the change.
Summary: Add a set of keys to an owner to key mapping
-
Arguments:
keys: Seq[(com.digitalasset.canton.crypto.Fingerprint, com.digitalasset.canton.crypto.KeyPurpose)]keyOwner: com.digitalasset.canton.topology.Membersynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Boolean
Description:
Add a set of keys to an owner to key mapping. A key owner is anyone in the system that
needs a key-pair known to all members (participants, mediators, sequencers) of a
synchronizer. If no owner to key mapping exists for the specified key owner, create a
new mapping with the specified keys. The specified keys needs to have been created
previously via the `keys.secret` API.
Parameters:
- keys: Fingerprint and key purpose of the keys.
- keyOwner: The member that owns the key.
- signedBy: Optional fingerprint of the authorizing key which in turn refers to a
specific, locally existing certificate.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- mustFullyAuthorize: Whether to only add the key if the member is in the position to
authorize the change.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List owner to key mapping transactions
-
Arguments:
store: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]proposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterKeyOwnerType: Option[com.digitalasset.canton.topology.MemberCode]filterKeyOwnerUid: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Summary: Remove a key from an owner to key mapping
-
Arguments:
keyOwner: com.digitalasset.canton.topology.Membersynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Boolean
Description:
Remove a key from an owner to key mapping. A key owner is anyone in the system that needs
a key-pair known to all members (participants, mediators, sequencers) of a synchronizer.
If the specified key is the last key in the owner to key mapping (which requires the
force to be true), the owner to key mapping will be removed.
The specified key needs to have been created previously via the `keys.secret` API.
Paramters:
- key: Fingerprint of the key.
- purpose: The key purpose, i.e. whether the key is for signing or encryption.
- keyOwner: The member that owns the key.
- signedBy: Optional fingerprint of the authorizing key which in turn refers to a
specific, locally existing certificate.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- mustFullyAuthorize: Whether to only add the key if the member is in the position to
authorize the change.
- force: Removing the last key is dangerous and must therefore be manually forced.
Summary: Rotate the key for an owner to key mapping
- Arguments:
Description:
Rotates an existing key of the owner's owner to key mapping by adding the new key and
removing the previous key.
Parameters:
- nodeInstance: The node instance that is used to verify that both the current and new
key pertain to this node. This avoids conflicts when there are different nodes with the
same uuid (i.e., multiple sequencers).
- owner: The member that owns the owner to key mapping.
- currentKey: The current public key that will be rotated.
- newKey: The new public key that has been generated.
Summary: Looks up the participant permission for a participant on a synchronizer
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparticipantId: com.digitalasset.canton.topology.ParticipantId
- Return type:
Description:
Returns the optional participant synchronizer permission.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Propose changes to the synchronizer permissions of participants
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparticipantId: com.digitalasset.canton.topology.ParticipantIdpermission: com.digitalasset.canton.topology.transaction.ParticipantPermissionloginAfter: Option[com.digitalasset.canton.data.CantonTimestamp]limits: Option[com.digitalasset.canton.topology.transaction.ParticipantSynchronizerLimits]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]store: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]mustFullyAuthorize: Booleanserial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]change: com.digitalasset.canton.topology.transaction.TopologyChangeOp
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.ParticipantSynchronizerPermission]
Description:
Synchronizer operators may use this command to change a participant's permissions on a
synchronizer.
Parameters:
- synchronizerId: The target synchronizer.
- participantId: The participant whose permissions should be changed.
- permission: The participant's permission.
- loginAfter: The earliest time a participant may connect to the synchronizer.
- limits: Synchronizer limits for this participant.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
Summary: Revokes the synchronizer permissions of a participant
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparticipantId: com.digitalasset.canton.topology.ParticipantIdsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Booleanstore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.ParticipantSynchronizerPermission]
Description:
Synchronizer operators may use this command to revoke a participant's permissions on a
synchronizer.
Parameters:
- synchronizerId: The target synchronizer.
- participantId: The participant whose permissions should be revoked.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
Summary: Returns true if the given participant is currently active on the given synchronizer
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparticipantId: com.digitalasset.canton.topology.ParticipantId
-
Return type:
Boolean
Description:
Active means that the participant has been granted at least observation rights on the
synchronizer and that the participant has registered a synchronizer trust certificate.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List party to key mapping transactions
-
Arguments:
store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterParty: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Summary: Propose a party to key mapping
-
Arguments:
threshold: com.digitalasset.canton.config.RequireTypes.PositiveIntsigningKeys: com.daml.nonempty.NonEmpty[Seq[com.digitalasset.canton.crypto.SigningPublicKey]]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]ops: com.digitalasset.canton.topology.transaction.TopologyChangeOpsignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Boolean
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.PartyToKeyMapping]
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List party to participant mapping transactions from synchronizer store
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Synchronizerproposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterParty: StringfilterParticipant: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Description:
List the party to participant mapping transactions present in the stores. Party to
participant mappings are topology transactions used to allocate a party to certain
participants. The same party can be allocated on several participants with different
privileges.
Parameters:
- synchronizerId: Synchronizer to be considered.
- proposals: Whether to query proposals instead of authorized transactions.
- timeQuery: The time query allows to customize the query by time.
The following options are supported:
- TimeQuery.HeadState (default): The most recent known state.
- TimeQuery.Snapshot(ts): The state at a certain point in time.
- TimeQuery.Range(fromO, toO): Time-range of when the transaction was added to the
store.
- operation: Optionally, what type of operation the transaction should have.
- filterParty: Filter for parties starting with the given filter string.
- filterParticipant: If non-empty, returns only parties that are hosted on this
participant.
- filterSigningKey: Filter for transactions that are authorized with a key that starts
with the given filter string.
- protocolVersion: This parameter has been deprecated and has no effect anymore.
Summary: List party to participant mapping transactions from all stores
-
Arguments:
proposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterParty: StringfilterParticipant: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Description:
List the party to participant mapping transactions present in the stores. Party to
participant mappings are topology transactions used to allocate a party to certain
participants. The same party can be allocated on several participants with different
privileges.
Parameters:
- proposals: Whether to query proposals instead of authorized transactions.
- timeQuery: The time query allows to customize the query by time.
The following options are supported:
- TimeQuery.HeadState (default): The most recent known state.
- TimeQuery.Snapshot(ts): The state at a certain point in time.
- TimeQuery.Range(fromO, toO): Time-range of when the transaction was added to the
store.
- operation: Optionally, what type of operation the transaction should have.
- filterParty: Filter for parties starting with the given filter string.
- filterParticipant: Filter for participants starting with the given filter string.
- filterSigningKey: Filter for transactions that are authorized with a key that starts
with the given filter string.
- protocolVersion: This parameter has been deprecated and has no effect anymore.
Summary: List party to participant mapping transactions from the authorized store
-
Arguments:
proposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterParty: StringfilterParticipant: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Description:
List the party to participant mapping transactions present in the stores. Party to
participant mappings are topology transactions used to allocate a party to certain
participants. The same party can be allocated on several participants with different
privileges.
Parameters:
- proposals: Whether to query proposals instead of authorized transactions.
- timeQuery: The time query allows to customize the query by time.
The following options are supported:
- TimeQuery.HeadState (default): The most recent known state.
- TimeQuery.Snapshot(ts): The state at a certain point in time.
- TimeQuery.Range(fromO, toO): Time-range of when the transaction was added to the
store.
- operation: Optionally, what type of operation the transaction should have.
- filterParty: Filter for parties starting with the given filter string.
- filterParticipant: Filter for participants starting with the given filter string.
- filterSigningKey: Filter for transactions that are authorized with a key that starts
with the given filter string.
- protocolVersion: This parameter has been deprecated and has no effect anymore.
Summary: List multi-hosted party proposals
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdparticipantId: com.digitalasset.canton.topology.ParticipantId
- Return type:
Description:
Multi-hosted parties require all involved actors to sign the topology transaction.
Topology transactions without sufficient signatures are called proposals. They are
distributed the same way as fully authorized topology transactions, and signatures
are aggregated until the transaction is fully authorized.
This method here allows to inspect the pending queue of open hosting proposals.
The proposals are returned as seen on the specified synchronizer. They can be approved
by the individual participants by invoking
node.topology.transactions.authorize(<synchronizer-id>, <tx-hash>).
Summary: Replace party to participant mapping
-
Arguments:
newParticipants: Seq[(com.digitalasset.canton.topology.ParticipantId, com.digitalasset.canton.topology.transaction.ParticipantPermission)]threshold: com.digitalasset.canton.config.RequireTypes.PositiveIntpartySigningKeys: Option[com.digitalasset.canton.crypto.SigningKeysWithThreshold]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]operation: com.digitalasset.canton.topology.transaction.TopologyChangeOpsynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Booleanstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdforceFlags: com.digitalasset.canton.topology.ForceFlagsparticipantsRequiringPartyToBeOnboarded: Seq[com.digitalasset.canton.topology.ParticipantId]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.PartyToParticipant]
Description:
Replace the association of a party to hosting participants.
Parameters:
- party: The unique identifier of the party whose set of participant permissions to
modify.
- newParticipants: The unique identifier of the participants to host the party. Each
participant entry specifies the participant's permissions (submission, confirmation,
observation).
- participantsRequiringPartyToBeOnboarded: The participants that need to onboard the
party independently from this call before the participants fully host the party.
- threshold: The threshold is `1` for regular parties and larger than `1` for
"consortium parties". The threshold indicates how many participant confirmations are
needed in order to confirm a Daml transaction on behalf the party.
- partySigningKeys: Party signing keys with threshold. If specified, the keys will be
taken from this field. Otherwise, they have to be specified earlier in PartyToKey
mappings.
- signedBy: Refers to the optional fingerprint of the authorizing key which in turn
refers to a specific, locally existing certificate.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the
same serial already exists, or if there is a gap between this serial and the most
recently used serial.
If None, the serial will be automatically selected by the node.
- operation: The operation to use. When adding a mapping or making changes, use
TopologyChangeOp.Replace.
When removing a mapping, use TopologyChangeOp.Remove and pass the same values as the
currently effective mapping.
The default value is TopologyChangeOp.Replace.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
Summary: Change party to participant mapping
-
Arguments:
adds: Seq[(com.digitalasset.canton.topology.ParticipantId, com.digitalasset.canton.topology.transaction.ParticipantPermission)]removes: Seq[com.digitalasset.canton.topology.ParticipantId]signedBy: Option[com.digitalasset.canton.crypto.Fingerprint]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]mustFullyAuthorize: Booleanstore: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdforceFlags: com.digitalasset.canton.topology.ForceFlagsrequiresPartyToBeOnboarded: Boolean
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.PartyToParticipant]
Description:
Change the association of a party to hosting participants.
Parameters:
- party: The unique identifier of the party whose set of participants or permission to
modify.
- adds: The unique identifiers of the participants to host the party each specifying the
participant's permissions (submission, confirmation, observation). If the participant
already hosts the specified party, update the participant's permissions.
- removes: The unique identifiers of the participants that should no longer host the
party.
- signedBy: Refers to the optional fingerprint of the authorizing key which in turn
refers to a specific, locally existing certificate.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
- synchronize: Synchronize timeout can be used to ensure that the state has been
propagated into the node.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- force: Must be set when disabling a party with active contracts.
- requiresPartyToBeOnboarded: When set to true, indicate that the added participants need
to first onboard the party independently from this call before the added participants
fully host the party.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Propose changes to the sequencer topology
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerIdthreshold: com.digitalasset.canton.config.RequireTypes.PositiveIntstore: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]mustFullyAuthorize: BooleansignedBy: Option[com.digitalasset.canton.crypto.Fingerprint]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]synchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]
-
Return type:
com.digitalasset.canton.topology.transaction.SignedTopologyTransaction[com.digitalasset.canton.topology.transaction.TopologyChangeOp,com.digitalasset.canton.topology.transaction.SequencerSynchronizerState]
Description:
Parameters:
- synchronizerId: The target synchronizer.
- active: The list of active sequencers.
- passive: Sequencers that receive messages but are not available for members to connect
to.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
- synchronize: Synchronization timeout to wait until the proposal has been observed on
the synchronizer.
Summary: Wait until the topology processing of a node is idle
- Arguments:
Description:
This function waits until the `is_idle()` function returns true.
Summary: Check if the topology processing of a node is idle
-
Return type:
Boolean
Description:
Topology transactions pass through a set of queues before becoming effective on a
synchronizer.
This function allows to check if all the queues are empty.
While both synchronizer and participant nodes support similar queues, there is some
ambiguity around the participant queues. While the synchronizer does really know about
all in-flight transactions at any point in time, a participant won't know about the state
of any transaction that is currently being processed by the synchronizer topology
dispatcher.
Summary: Creates a temporary topology store
-
Arguments:
name: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
-
Return type:
com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Temporary
Description:
A temporary topology store is useful for orchestrating the synchronizer founding ceremony
or importing a topology snapshot for later inspection.
Temporary topology stores are not persisted and all transactions are kept in memory only,
which means restarting the node causes the loss of all transactions in that store.
Additionally, temporary topology stores are not connected to any synchronizer, so there
is no automatic propagation of topology transactions from the temporary store to
connected synchronizers.
Summary: This command drops a temporary topology store and all transactions contained in it
-
Arguments:
temporaryStoreId: com.digitalasset.canton.topology.admin.grpc.TopologyStoreId.Temporary
Description:
Dropping a temporary topology store is not reversible and all topology transactions in
the store will be permanently dropped.
It is not possible to delete the authorized store or any synchronizer store with this
command.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List available topology stores
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List vetted packages
-
Arguments:
store: Option[com.digitalasset.canton.topology.admin.grpc.TopologyStoreId]proposals: Booleanoperation: Option[com.digitalasset.canton.topology.transaction.TopologyChangeOp]filterParticipant: StringfilterSigningKey: StringprotocolVersion: Option[String]
- Return type:
Description:
Parameters:
- store: The optional topology store to query from.
- proposals: If true then proposals are shown, otherwise actual validated state.
Summary: Replace package vettings
-
Arguments:
participant: com.digitalasset.canton.topology.ParticipantIdpackages: Seq[com.digitalasset.canton.topology.transaction.VettedPackage]store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: Booleansynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]serial: Option[com.digitalasset.canton.config.RequireTypes.PositiveInt]signedBy: Option[com.digitalasset.canton.crypto.Fingerprint]operation: com.digitalasset.canton.topology.transaction.TopologyChangeOp
Description:
A participant will only process transactions that reference packages that all involved
participants have vetted previously. Vetting is done by registering a respective topology
transaction with the synchronizer, which can then be used by other participants to verify
that a transaction is only using vetted packages.
Note that all referenced and dependent packages must exist in the package store.
Parameters:
- participantId: The identifier of the participant vetting the packages.
- packages: The lf-package ids with validity boundaries to be vetted that will replace
the previous vetted packages.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- serial: The expected serial this topology transaction should have. Serials must be
contiguous and start at 1.
This transaction will be rejected if another fully authorized transaction with the same
serial already exists, or if there is a gap between this serial and the most recently
used serial.
If None, the serial will be automatically selected by the node.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- force: Must be set when revoking the vetting of packagesIds.
Summary: Change package vettings
-
Arguments:
participant: com.digitalasset.canton.topology.ParticipantIdadds: Seq[com.digitalasset.canton.topology.transaction.VettedPackage]removes: Seq[com.digitalasset.daml.lf.data.Ref.PackageId]store: com.digitalasset.canton.topology.admin.grpc.TopologyStoreIdmustFullyAuthorize: Booleansynchronize: Option[com.digitalasset.canton.config.NonNegativeDuration]signedBy: Option[com.digitalasset.canton.crypto.Fingerprint]
Description:
A participant will only process transactions that reference packages that all involved
participants have vetted previously. Vetting is done by registering a respective topology
transaction with the synchronizer, which can then be used by other participants to verify
that a transaction is only using vetted packages.
Note that all referenced and dependent packages must exist in the package store.
Parameters:
- participantId: The identifier of the participant vetting the packages.
- adds: The lf-package ids to be vetted.
- removes: The lf-package ids to be unvetted.
- store:
- "Authorized": The topology transaction will be stored in the node's authorized store
and automatically propagated to connected synchronizers, if applicable.
- "<synchronizer id>": The topology transaction will be directly submitted to the
specified synchronizer without storing it locally first. This also means it will _not_
be synchronized to other synchronizers automatically.
- filterParticipant: Filter for participants starting with the given filter string.
- mustFullyAuthorize: When set to true, the proposal's previously received signatures and
the signature of this node must be sufficient to fully authorize the topology
transaction. If this is not the case, the request fails.
When set to false, the proposal retains the proposal status until enough signatures are
accumulated to satisfy the mapping's authorization requirements.
- signedBy: The fingerprint of the key to be used to sign this proposal.
- force: Must be set when revoking the vetting of packagesIds.
Traffic
traffic_control.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Return the traffic state of the node
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.SynchronizerId
- Return type:
Description:
Use this command to get the traffic state of the node at a given time for a specific
synchronizer ID.
Sequencer Administration Commands
authentication.generate_authentication_token (Testing)Summary: Generate an authentication token for a given member on this sequencer
- Arguments:
- Return type:
Description:
Generates a token that can be used to authenticate
on behalf of a member on this sequencer.
If expiresIn is empty, the configured maxTokenExpirationInterval
config on the sequencer will be used.
Only use for troubleshooting. Requires enable-testing-commands to be enabled.
Parameters:
- member: Member to generate the token for
- expiresIn: Optional duration after which the token will expire.
When empty, the maxTokenExpirationInterval configured on the sequencer is used
Summary: Invalidates a base64 encoded authentication token on the sequencer and disconnects the corresponding member
-
Arguments:
token: String
Description:
Invalidates the authentication token and disconnects the sequencer client of its member
Summary: Invalidates an authentication token on the sequencer and disconnects the corresponding member
-
Arguments:
token: com.google.protobuf.ByteString
Description:
Invalidates the authentication token and disconnects the sequencer client of its member
Summary: Add a new peer endpoint
-
Arguments:
endpointConfig: com.digitalasset.canton.synchronizer.sequencer.block.bftordering.core.BftBlockOrdererConfig.P2PEndpointConfig
Summary: Disable BFT ordering performance metrics
Summary: Enable BFT ordering performance metrics
Summary: Get the currently active ordering topology
-
Return type:
com.digitalasset.canton.synchronizer.sequencer.block.bftordering.admin.SequencerBftAdminData.OrderingTopology
Summary: Get peer network status
-
Arguments:
endpoints: Option[Iterable[com.digitalasset.canton.synchronizer.sequencer.block.bftordering.core.BftBlockOrdererConfig.EndpointId]]
-
Return type:
com.digitalasset.canton.synchronizer.sequencer.block.bftordering.admin.SequencerBftAdminData.PeerNetworkStatus
Summary: Get write readiness
-
Return type:
com.digitalasset.canton.synchronizer.sequencer.block.bftordering.admin.SequencerBftAdminData.WriteReadiness
Summary: Parse the sequencing parameters payload as DABFT parameters
-
Arguments:
payload: com.google.protobuf.ByteString
-
Return type:
com.digitalasset.canton.synchronizer.sequencer.block.bftordering.admin.SequencerBftAdminData.SequencingParameters
Summary: Remove a peer endpoint
-
Arguments:
peerEndpointId: com.digitalasset.canton.synchronizer.sequencer.block.bftordering.core.BftBlockOrdererConfig.EndpointId
Summary: Serialize the DABFT parameters as sequencing parameters payload
-
Arguments:
sequencingParameters: com.digitalasset.canton.synchronizer.sequencer.block.bftordering.admin.SequencerBftAdminData.SequencingParameters
-
Return type:
com.google.protobuf.ByteString
Summary: Clear locally cached variables
Description:
Some commands cache values on the client side. Use this command to explicitly clear
the caches of these values.
Summary: Returns the sequencer configuration
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Yields the globally unique id of this sequencer
- Return type:
Description:
Throws an exception, if the id has not yet been allocated. For example the
sequencer has not yet been started).
Summary: Check if the local instance is running and is fully initialized
-
Return type:
Boolean
Summary: Check if the local instance is running
-
Return type:
Boolean
Summary: Yields Some(id) of this sequencer if id present
- Return type:
Description:
Returns None, if the id has not yet been allocated. For example the sequencer
has not yet been initialised
Summary: Returns the physical synchronizer id of the synchronizer
- Return type:
Summary: Deactivate automatic pruning
Summary: Obtain a timestamp at or near the beginning of sequencer state
- Arguments:
- Return type:
Description:
This command provides insight into the current state of sequencer pruning when called
with the default value of `index` 1.
When pruning the sequencer manually via `prune_at` and with the intent to prune in
batches, specify a value such as 1000 to obtain a pruning timestamp that corresponds to
the "end" of the batch.
Summary: Force remove data from the Sequencer including data that may have not been read by offline clients
-
Arguments:
dryRun: Boolean
-
Return type:
String
Description:
Will force pruning up until the default retention period by potentially disabling clients
that have not yet read data we would like to remove.
Disabling these clients will prevent them from ever reconnecting to the Synchronizer so
should only be used if the Synchronizer operator is confident they can be permanently
ignored.
Run with `dryRun = true` to review a description of which clients will be disabled first.
Run with `dryRun = false` to disable these clients and perform a forced pruning.
Summary: Force remove Sequencer data up to a custom period, including unread data
-
Arguments:
timestamp: com.digitalasset.canton.data.CantonTimestampdryRun: Boolean
-
Return type:
String
Description:
Force removing data from the Sequencer including data that may have not been read by
offline clients up until the specified time.
Similar to the above `force_prune` command but allows specifying the exact time at
which to prune.
Summary: Force remove Sequencer data up to a custom period, including unread data
-
Arguments:
retentionPeriod: scala.concurrent.duration.FiniteDurationdryRun: Boolean
-
Return type:
String
Description:
Force removing data from the Sequencer including data that may have not been read by
offline clients up until a custom retention period.
Summary: Inspect the automatic pruning schedule
- Return type:
Description:
The schedule consists of a "cron" expression and "max_duration" and "retention"
durations. The cron string indicates the points in time at which pruning should begin in
the GMT time zone, and the maximum duration indicates how long from the start time
pruning is allowed to run as long as pruning has not finished pruning up to the specified
retention period.
Returns `None` if no schedule has been configured via `set_schedule` or if
`clear_schedule` has been invoked.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Remove unnecessary data from the Sequencer up until the default retention point
-
Return type:
String
Description:
Removes unnecessary data from the Sequencer that is earlier than the default retention
period. The default retention period is set in the configuration of the canton processing
running this command under `parameters.retention-period-defaults.sequencer`.
This pruning command requires that data is read and acknowledged by clients before
considering it safe to remove.
If no data is being removed it could indicate that clients are not reading or
acknowledging data in a timely fashion (typically due to nodes going offline for long
periods).
You have the option of disabling the members running on these nodes to allow removal of
this data, however this will mean that they will be unable to reconnect to the
synchronizer in the future.
To do this run `force_prune(dryRun = true)` to return a description of which members
would be disabled in order to prune the Sequencer.
If you are happy to disable the described clients then run `force_prune(dryRun = false)`
to permanently remove their unread data.
Once offline clients have been disabled you can continue to run `prune` normally.
Summary: Remove data that has been read up until the specified time
-
Arguments:
timestamp: com.digitalasset.canton.data.CantonTimestamp
-
Return type:
String
Description:
Similar to the above `prune` command but allows specifying the exact time at which to
prune.
The command will fail if a client has not yet read and acknowledged some data up to the
specified time.
Summary: Remove data that has been read up until a custom retention period
-
Arguments:
retentionPeriod: scala.concurrent.duration.FiniteDuration
-
Return type:
String
Description:
Similar to the above `prune` command but allows specifying a custom retention period.
Summary: Modify the cron used by automatic pruning
-
Arguments:
cron: String
Description:
The schedule is specified in cron format and refers to pruning start times in the GMT
time zone.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Modify the maximum duration used by automatic pruning
- Arguments:
Description:
The `maxDuration` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Update the pruning retention used by automatic pruning
- Arguments:
Description:
The `retention` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this update, pruning is actively running, a best effort is made to pause pruning and
restart with the newly specified retention. This allows for the case that the new
retention mandates retaining more data than previously.
Summary: Activate automatic pruning according to the specified schedule
-
Arguments:
cron: StringmaxDuration: com.digitalasset.canton.config.PositiveDurationSecondsretention: com.digitalasset.canton.config.PositiveDurationSeconds
Description:
The schedule is specified in cron format and "max_duration" and "retention" durations.
The cron string indicates the points in time at which pruning should begin in the GMT
time zone, and the maximum duration indicates how long from the start time pruning is
allowed to run as long as pruning has not finished pruning up to the specified retention
period.
Summary: Status of the sequencer and its connected clients
- Return type:
Description:
Provides a detailed breakdown of information required for pruning:
- the current time according to this sequencer instance
- synchronizer members that the sequencer supports
- for each member when they were registered and whether they are enabled
- a list of clients for each member, their last acknowledgement, and whether they are
enabled
Summary: Disable the provided member at the Sequencer that will allow any unread data for them to be removed
- Arguments:
Description:
This will prevent any client for the given member to reconnect the Sequencer
and allow any unread/unacknowledged data they have to be removed.
This should only be used if the synchronizer operation is confident the member will never
need to reconnect as there is no way to re-enable the member.
To view members using the sequencer run `sequencer.status()`.
"
Summary: Initialize a sequencer from the beginning of the event stream
-
Arguments:
genesisState: com.google.protobuf.ByteStringsynchronizerParameters: com.digitalasset.canton.admin.api.client.data.StaticSynchronizerParameterswaitForReady: Boolean
- Return type:
Description:
This should only be called for sequencer nodes being initialized at the same time as the
corresponding synchronizer node.
This is called as part of the synchronizer.setup.bootstrap command, so you are unlikely
to need to call this directly.
"
Summary: Initialize a sequencer from the beginning of the event stream
-
Arguments:
genesisState: com.google.protobuf.ByteStringsynchronizerParameters: com.digitalasset.canton.admin.api.client.data.StaticSynchronizerParameterswaitForReady: Boolean
- Return type:
Description:
This should only be called for sequencer nodes being initialized at the same time as the
corresponding synchronizer node.
This is called as part of the synchronizer.setup.bootstrap command, so you are unlikely
to need to call this directly.
"
Summary: Dynamically initialize a sequencer from a point later than the beginning of the event stream
-
Arguments:
onboardingState: com.google.protobuf.ByteStringwaitForReady: Boolean
- Return type:
Summary: Dynamically initialize a sequencer from a point later than the beginning of the event stream
-
Arguments:
onboardingState: com.google.protobuf.ByteStringwaitForReady: Boolean
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Initialize a sequencer for the logical upgrade from the state of its predecessor, streaming the state from a file
-
Arguments:
inputFile: StringsynchronizerParameters: com.digitalasset.canton.admin.api.client.data.StaticSynchronizerParametersignorePsidCheck: BooleanwaitForReady: Boolean
Description:
Parameters:
- predecessorState: Retrieved using sequencer.topology.transactions.sequencer_lsu_state
- synchronizerParameters: Synchronizer parameters of the node
- ignorePsidCheck:
If true, it will not be checked that that current physical synchronizer id matches
the successor in the topology state. Should be used *only* in disaster
recovery scenarios (roll forward).
Summary: Download the onboarding state at a given point in time to bootstrap another sequencer
- Arguments:
-
Return type:
com.google.protobuf.ByteString
Summary: Download the onboarding state at a given point in time to bootstrap another sequencer
- Arguments:
-
Return type:
com.google.protobuf.ByteString
Summary: Download the onboarding state for a given sequencer
- Arguments:
-
Return type:
com.google.protobuf.ByteString
Summary: Download the onboarding state for a given sequencer
- Arguments:
-
Return type:
com.google.protobuf.ByteString
Summary: Download sequencer snapshot at given point in time to bootstrap another sequencer
-
Arguments:
timestamp: com.digitalasset.canton.data.CantonTimestampprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
- Return type:
Description:
This method is only used for testing.
It is recommended to use onboarding_state_for_sequencer for onboarding a new sequencer.
Summary: Test sequencing around LSU upgrade
-
Arguments:
recipientMediatorGroup: com.digitalasset.canton.topology.MediatorGroup.MediatorGroupIndex
Description:
Allows to test sequencing on the successor synchronizer by sequencing a message.
Parameters:
- recipientMediatorGroup: Recipient group that will receive the message.
Summary: Start the instance
Summary: Stop the instance
Summary: Returns the logical synchronizer id of the synchronizer
- Return type:
Database
db.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Migrates the instance’s database if using a database storage
Description:
When instances reside on different nodes, their database migration can be run in parallel
to save time. Please not that the migration commands must however must be run on each
node individually, because remote migration through `participants.remote...` is not
supported.
Summary: Repairs database migration (use only when advised)
-
Arguments:
force: Boolean
Description:
In some rare cases, we change already applied database migration files in a new release
and the repair command resets the checksums we use to ensure that in general already
applied migration files have not been changed.
You should only use `db.repair_migration` when advised and otherwise use it at your own
risk - in the worst case running it may lead to data corruption when an incompatible
database migration (one that should be rejected because the already applied database
migration files have changed) is subsequently falsely applied.
Synchronizer parameters
synchronizer_parametersSummary: Synchronizer parameters related commands
-
Return type:
SequencerReference.this.synchronizer_parameters.type
Health
health.activeSummary: Check if the node is running and is the active instance (mediator, participant)
-
Return type:
Boolean
Summary: Collect Canton system information to help diagnose issues
-
Arguments:
outputFile: StringchunkSize: Option[Int]
-
Return type:
String
Description:
Generates a comprehensive health report for the local Canton process and any connected
remote nodes.
Parameters:
- outputFile: Specifies the file path to save the report. If not set, a default path is
used.
- timeout: Sets a custom timeout for gathering data, useful for large reports from slow
remote nodes.
- chunkSize: Adjusts the data stream chunk size from remote nodes. Use this to prevent
gRPC errors related to 'max inbound message size'
Summary: Returns true if the node has an identity
-
Return type:
Boolean
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Returns true if node has been initialized
-
Return type:
Boolean
Summary: Check if the node is ready for setting the node’s id
-
Return type:
Boolean
Summary: Check if the node is ready for initialization
-
Return type:
Boolean
Summary: Check if the node is ready for uploading the node’s identity topology
-
Return type:
Boolean
Summary: Check if the node is running
-
Return type:
Boolean
Summary: Change the log level of the process
-
Arguments:
level: ch.qos.logback.classic.Level
Description:
If the default logback configuration is used, this will change the log level of the
process.
Summary: Get human (and machine) readable status information
-
Return type:
com.digitalasset.canton.admin.api.client.data.NodeStatus[S]
Summary: Wait for the node to have an identity
Summary: Wait for the node to be initialized
Summary: Wait for the node to be ready for setting the node’s id
Summary: Wait for the node to be ready for initialization
Summary: Wait for the node to be ready for uploading the node’s identity topology
Summary: Wait for the node to be running
Key Administration
keys.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Download public key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
-
Return type:
com.google.protobuf.ByteString
Summary: Download public key and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List public keys in registry
-
Arguments:
filterFingerprint: StringfilterContext: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys that have been added to the key registry.
Optional arguments can be used for filtering.
Summary: List keys for given keyOwner
-
Arguments:
keyOwner: com.digitalasset.canton.topology.MembersynchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command is a convenience wrapper for `list_key_owners`, taking an explicit keyOwner
as search argument. The response includes the public keys.
Summary: List active owners with keys for given search arguments
-
Arguments:
filterKeyOwnerUid: StringfilterKeyOwnerType: Option[com.digitalasset.canton.topology.MemberCode]synchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command allows deep inspection of the topology state. The response includes the
public keys.
Optional filterKeyOwnerType type can be `ParticipantId.Code`, `MediatorId.Code`,
`SequencerId.Code`.
Summary: Upload public key
-
Arguments:
keyBytes: com.google.protobuf.ByteStringname: Option[String]
- Return type:
Description:
Import a public key and store it together with a name used to provide some
context to that key.
Summary: Upload public key
-
Arguments:
filename: Stringname: Option[String]
- Return type:
Description:
Load a public key from a file and store it together with a name used to provide some
context to that key.
Summary: Delete private key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.Fingerprintforce: Boolean
Summary: Download key pair
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
-
Return type:
com.google.protobuf.ByteString
Summary: Download key pair and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
Summary: Generate new public/private key pair for encryption and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.EncryptionKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Generate new public/private key pair for signing and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.SigningKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the network
towards a sequencer;
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Get the wrapper key id that is used for the encrypted private keys store
-
Return type:
String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List keys in private vault
-
Arguments:
filterFingerprint: StringfilterName: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys to the corresponding private keys in the key vault.
Optional arguments can be used for filtering.
Summary: Register the specified KMS encryption key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS encryption key.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Register the specified KMS signing key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS signing key.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the
network towards a sequencer.
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Rotate a given node’s keypair with a new pre-generated KMS keypair
-
Arguments:
fingerprint: StringnewKmsKeyId: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key stored externally in a KMS with a
pre-generated key.
NOTE: A namespace root signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- newKmsKeyId: The id of the new KMS key (e.g. Resource Name).
- name: An optional name for the new key.
Summary: Rotate a node’s public/private key pair
-
Arguments:
fingerprint: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key.
NOTE: A namespace root or intermediate signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- name: An optional name for the new key.
Summary: Rotate the node’s public/private key pairs
Description:
For a participant node it rotates the signing and encryption key pair.
For a sequencer or mediator node it rotates the signing key pair as those nodes do not
have an encryption key pair.
NOTE: Namespace root or intermediate signing keys are NOT rotated by this command.
Summary: Change the wrapper key for encrypted private keys store
-
Arguments:
newWrapperKeyId: String
Description:
Change the wrapper key (e.g. AWS KMS key) being used to encrypt the private keys in the
store.
Parameters:
- newWrapperKeyId: The optional new wrapper key id to be used. If the wrapper key id is
empty Canton will generate a new key based on the current configuration.
Summary: Upload a key pair
-
Arguments:
pairBytes: com.google.protobuf.ByteStringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair.
Parameters:
- pairBytes: The binary representation of a previously downloaded key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Summary: Upload (load and import) a key pair from file
-
Arguments:
filename: Stringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair from a file.
Parameters:
- filename: The name of the file holding the key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Metrics
metrics.getSummary: Get a particular metric
-
Arguments:
metricName: Stringattributes: Map[String,String]
- Return type:
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular double point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.DoublePoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular exponential histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.ExponentialHistogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found. Also errors if the metric is not of the given type.
Summary: Get a particular histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Histogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular long point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.LongPoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular summary
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Summary
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: List all metrics
-
Arguments:
filterName: Stringattributes: Map[String,String]
-
Return type:
Map[String,Seq[com.digitalasset.canton.metrics.MetricValue]]
Description:
Returns the metric with the given name and optionally matching attributes.
Traffic
traffic_control.get_lsu_stateSummary: Get the traffic control state to be transferred to a new sequencer during a logical synchronizer upgrade
- Arguments:
-
Return type:
com.google.protobuf.ByteString
Description:
Use this command on the old synchronizer to get the input for `set_lsu_state`
to be run on the new synchronizer.
Parameters:
- timestamp: The time used to fetch the traffic state.
MUST be empty for regular LSUs. In that case, an LSU must be announced
and sequencer must have reached the upgrade time for this call to succeed.
SHOULD be defined in a disaster recovery scenario when requesting the topology
from a synchronizer without an announced LSU.
Summary: Get the current configured request throughput cap
- Arguments:
-
Return type:
Option[com.digitalasset.canton.synchronizer.sequencer.BlockSequencerConfig.IndividualThroughputCapConfig]
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Return the last traffic state update of the given members, per member
- Arguments:
- Return type:
Description:
Use this command to get the last traffic state update of each member. It will be last
updated when a member consumed traffic.
Summary: Set the traffic control state on a fresh sequencer during a logical synchronizer upgrade
-
Arguments:
memberTraffic: com.google.protobuf.ByteString
Description:
Use this command on the new synchronizer with an output of
`get_lsu_traffic_control_state` from the old synchronizer.
A logical synchronizer upgrade must be ongoing and the command must be called only once
on the successor synchronizer sequencer.
Parameters:
- memberTraffic: ByteString produced by `get_lsu_state`.
Summary: Set the request throughput caps
-
Arguments:
requestType: com.digitalasset.canton.sequencing.protocol.SubmissionRequestTypeconfig: com.digitalasset.canton.synchronizer.sequencer.BlockSequencerConfig.IndividualThroughputCapConfig
Description:
Throughput caps set general limits on the number of requests being accepted
to protect the general availability of the system.
Supported request types are: "confirmation request" and "topology transaction"
Note that this option has only an effect if the caps are enabled. Upon restart,
the caps will be reset to their original configuration settings.
Summary: Set the traffic purchased entry of a member
-
Arguments:
serial: com.digitalasset.canton.config.RequireTypes.PositiveIntnewBalance: com.digitalasset.canton.config.RequireTypes.NonNegativeLong
Description:
Use this command to set the new traffic purchased entry of a member.
Parameters:
- member: Member for which the traffic purchased entry is to be set.
- serial: Serial number of the request, must be strictly greater than the latest update
made for that member.
- newBalance: New traffic purchased entry to be set.
Returns: The max sequencing time used for the update. After and only after that time,
if the new balance still does not appear in the traffic state, the update can be
considered failed and should be retried.
Summary: Return the traffic state of the all members
-
Arguments:
latestApproximate: Boolean
- Return type:
Description:
Use this command to get the traffic state of all members.
Set latestApproximate to true to get an approximation of the traffic state (including
base traffic) at the latest possible timestamp the sequencer can calculate it. This an
approximation only because the sequencer may use its wall clock which could be beyond
the synchronizer time.
Summary: Return the traffic state of the given members
- Arguments:
- Return type:
Description:
Use this command to get the traffic state of a list of members at the latest safe
timestamp.
Summary: Return the traffic state of the given members at the latest approximate time
- Arguments:
- Return type:
Description:
Use this command to get the traffic state of a list of members using the latest possible
time the sequencer can estimate the state.
CAREFUL: The returned state is only an approximation in the future and might not be the
actual correct state by the time this timestamp is reached by the synchronizer.
Summary: Return the traffic state of the given members at a specific timestamp
- Arguments:
- Return type:
Description:
Use this command to get the traffic state of specified members at a given timestamp.
Summary: Obtain traffic summaries for sequenced events
- Arguments:
- Return type:
Description:
Use this command to retrieve the traffic summaries of
sequenced events from their timestamps.
Parameters:
- timestamps: list of timestamps for which to retrieve traffic summaries
Returns: traffic summaries of sequenced events available
on the sequencer matching the input timestamps.
The response may contain less events than input timestamps.
Summary: Delete a request throughput cap
- Arguments:
Summary: Update the current configured request throughput cap
-
Arguments:
requestType: com.digitalasset.canton.sequencing.protocol.SubmissionRequestTypeupdate: com.digitalasset.canton.synchronizer.sequencer.BlockSequencerConfig.IndividualThroughputCapConfig => com.digitalasset.canton.synchronizer.sequencer.BlockSequencerConfig.IndividualThroughputCapConfig
Mediator Administration Commands
clear_cache (Testing)Summary: Clear locally cached variables
Description:
Some commands cache values on the client side. Use this command to explicitly clear
the caches of these values.
Summary: Returns the mediator configuration
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Yields the mediator id of this mediator
- Return type:
Description:
Throws an exception, if the id has not yet been allocated (e.g., the mediator has not
yet been initialised).
Summary: Deprecated form of get_verdicts that only returns Verdicts, without Complete
-
Arguments:
fromRecordTimeOfRequestExclusive: com.digitalasset.canton.data.CantonTimestampmaxItems: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Summary: Stream verdicts, in record time order
-
Arguments:
fromRecordTimeOfRequestExclusive: com.digitalasset.canton.data.CantonTimestampmaxItems: com.digitalasset.canton.config.RequireTypes.PositiveInt
-
Return type:
Seq[com.digitalasset.canton.mediator.admin.v30.VerdictsResponse.Payload]
Description:
Returns verdicts whose record time is greater than `fromRecordTimeOfRequestExclusive`
until any of the following occur:
* `maxItems` responses have been returned, or
* it has been at least `timeout` since we issued the call, or
* the mediator determines that a logical synchronizer upgrade has anointed a successor,
at which point any pending requests will be finalized as rejected and returned as
Verdict messages, followed by a Complete message and the stream will be closed.
Summary: Check if the local instance is running and is fully initialized
-
Return type:
Boolean
Summary: Check if the local instance is running
-
Return type:
Boolean
Summary: Yields Some(id) of this mediator if id present
- Return type:
Description:
Returns None, if the id has not yet been allocated (e.g., the mediator has not
yet been initialised).
Summary: Assign a mediator to a synchronizer
-
Arguments:
synchronizerId: com.digitalasset.canton.topology.PhysicalSynchronizerIdsequencerConnections: com.digitalasset.canton.admin.api.client.data.SequencerConnectionssequencerConnectionValidation: com.digitalasset.canton.admin.api.client.data.SequencerConnectionValidationwaitForReady: Boolean
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Start the instance
Summary: Stop the instance
Database
db.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Migrates the instance’s database if using a database storage
Description:
When instances reside on different nodes, their database migration can be run in parallel
to save time. Please not that the migration commands must however must be run on each
node individually, because remote migration through `participants.remote...` is not
supported.
Summary: Repairs database migration (use only when advised)
-
Arguments:
force: Boolean
Description:
In some rare cases, we change already applied database migration files in a new release
and the repair command resets the checksums we use to ensure that in general already
applied migration files have not been changed.
You should only use `db.repair_migration` when advised and otherwise use it at your own
risk - in the worst case running it may lead to data corruption when an incompatible
database migration (one that should be rejected because the already applied database
migration files have changed) is subsequently falsely applied.
Health
health.activeSummary: Check if the node is running and is the active instance (mediator, participant)
-
Return type:
Boolean
Summary: Collect Canton system information to help diagnose issues
-
Arguments:
outputFile: StringchunkSize: Option[Int]
-
Return type:
String
Description:
Generates a comprehensive health report for the local Canton process and any connected
remote nodes.
Parameters:
- outputFile: Specifies the file path to save the report. If not set, a default path is
used.
- timeout: Sets a custom timeout for gathering data, useful for large reports from slow
remote nodes.
- chunkSize: Adjusts the data stream chunk size from remote nodes. Use this to prevent
gRPC errors related to 'max inbound message size'
Summary: Returns true if the node has an identity
-
Return type:
Boolean
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Returns true if node has been initialized
-
Return type:
Boolean
Summary: Check if the node is ready for setting the node’s id
-
Return type:
Boolean
Summary: Check if the node is ready for initialization
-
Return type:
Boolean
Summary: Check if the node is ready for uploading the node’s identity topology
-
Return type:
Boolean
Summary: Check if the node is running
-
Return type:
Boolean
Summary: Change the log level of the process
-
Arguments:
level: ch.qos.logback.classic.Level
Description:
If the default logback configuration is used, this will change the log level of the
process.
Summary: Get human (and machine) readable status information
-
Return type:
com.digitalasset.canton.admin.api.client.data.NodeStatus[S]
Summary: Wait for the node to have an identity
Summary: Wait for the node to be initialized
Summary: Wait for the node to be ready for setting the node’s id
Summary: Wait for the node to be ready for initialization
Summary: Wait for the node to be ready for uploading the node’s identity topology
Summary: Wait for the node to be running
Key Administration
keys.helpSummary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Download public key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
-
Return type:
com.google.protobuf.ByteString
Summary: Download public key and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersion
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List public keys in registry
-
Arguments:
filterFingerprint: StringfilterContext: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys that have been added to the key registry.
Optional arguments can be used for filtering.
Summary: List keys for given keyOwner
-
Arguments:
keyOwner: com.digitalasset.canton.topology.MembersynchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command is a convenience wrapper for `list_key_owners`, taking an explicit keyOwner
as search argument. The response includes the public keys.
Summary: List active owners with keys for given search arguments
-
Arguments:
filterKeyOwnerUid: StringfilterKeyOwnerType: Option[com.digitalasset.canton.topology.MemberCode]synchronizerIds: Set[com.digitalasset.canton.topology.SynchronizerId]asOf: Option[java.time.Instant]limit: com.digitalasset.canton.config.RequireTypes.PositiveInt
- Return type:
Description:
This command allows deep inspection of the topology state. The response includes the
public keys.
Optional filterKeyOwnerType type can be `ParticipantId.Code`, `MediatorId.Code`,
`SequencerId.Code`.
Summary: Upload public key
-
Arguments:
keyBytes: com.google.protobuf.ByteStringname: Option[String]
- Return type:
Description:
Import a public key and store it together with a name used to provide some
context to that key.
Summary: Upload public key
-
Arguments:
filename: Stringname: Option[String]
- Return type:
Description:
Load a public key from a file and store it together with a name used to provide some
context to that key.
Summary: Delete private key
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.Fingerprintforce: Boolean
Summary: Download key pair
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
-
Return type:
com.google.protobuf.ByteString
Summary: Download key pair and save it to a file
-
Arguments:
fingerprint: com.digitalasset.canton.crypto.FingerprintoutputFile: StringprotocolVersion: com.digitalasset.canton.version.ProtocolVersionpassword: Option[String]
Summary: Generate new public/private key pair for encryption and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.EncryptionKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Generate new public/private key pair for signing and store it in the vault
-
Arguments:
name: StringkeySpec: Option[com.digitalasset.canton.crypto.SigningKeySpec]
- Return type:
Description:
Parameters:
- name: The optional name argument allows you to store an associated string for your
convenience.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the network
towards a sequencer;
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- keySpec: The keySpec can be used to select a key specification, e.g., which elliptic
curve to use, and the default spec is used if left unspecified.
Summary: Get the wrapper key id that is used for the encrypted private keys store
-
Return type:
String
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: List keys in private vault
-
Arguments:
filterFingerprint: StringfilterName: StringfilterPurpose: Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage: Set[com.digitalasset.canton.crypto.SigningKeyUsage]
- Return type:
Description:
Returns all public keys to the corresponding private keys in the key vault.
Optional arguments can be used for filtering.
Summary: Register the specified KMS encryption key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS encryption key.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Register the specified KMS signing key in canton storing its public information in the vault
-
Arguments:
kmsKeyId: Stringname: String
- Return type:
Description:
Parameters:
- kmsKeyId: The id for the KMS signing key.
- usage: The usage specifies the intended use for the signing key that can be:
- Namespace: for the root namespace key that defines a node's identity and signs
topology requests.
- SequencerAuthentication: for a signing key that authenticates members of the
network towards a sequencer.
- Protocol: for a signing key that deals with all the signing that happens as part of
the protocol.
- name: The optional name argument allows you to store an associated string for your
convenience.
Summary: Rotate a given node’s keypair with a new pre-generated KMS keypair
-
Arguments:
fingerprint: StringnewKmsKeyId: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key stored externally in a KMS with a
pre-generated key.
NOTE: A namespace root signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- newKmsKeyId: The id of the new KMS key (e.g. Resource Name).
- name: An optional name for the new key.
Summary: Rotate a node’s public/private key pair
-
Arguments:
fingerprint: Stringname: String
- Return type:
Description:
Rotates an existing encryption or signing key.
NOTE: A namespace root or intermediate signing key CANNOT be rotated by this command.
Parameters:
- fingerprint: The fingerprint of the key we want to rotate.
- name: An optional name for the new key.
Summary: Rotate the node’s public/private key pairs
Description:
For a participant node it rotates the signing and encryption key pair.
For a sequencer or mediator node it rotates the signing key pair as those nodes do not
have an encryption key pair.
NOTE: Namespace root or intermediate signing keys are NOT rotated by this command.
Summary: Change the wrapper key for encrypted private keys store
-
Arguments:
newWrapperKeyId: String
Description:
Change the wrapper key (e.g. AWS KMS key) being used to encrypt the private keys in the
store.
Parameters:
- newWrapperKeyId: The optional new wrapper key id to be used. If the wrapper key id is
empty Canton will generate a new key based on the current configuration.
Summary: Upload a key pair
-
Arguments:
pairBytes: com.google.protobuf.ByteStringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair.
Parameters:
- pairBytes: The binary representation of a previously downloaded key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Summary: Upload (load and import) a key pair from file
-
Arguments:
filename: Stringname: Option[String]password: Option[String]
Description:
Upload the previously downloaded key pair from a file.
Parameters:
- filename: The name of the file holding the key pair.
- name: The (optional) descriptive name of the key pair.
- password: Optional password to decrypt an encrypted key pair.
Metrics
metrics.getSummary: Get a particular metric
-
Arguments:
metricName: Stringattributes: Map[String,String]
- Return type:
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular double point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.DoublePoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular exponential histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.ExponentialHistogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found. Also errors if the metric is not of the given type.
Summary: Get a particular histogram
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Histogram
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular long point
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.LongPoint
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: Get a particular summary
-
Arguments:
metricName: Stringattributes: Map[String,String]
-
Return type:
com.digitalasset.canton.metrics.MetricValue.Summary
Description:
Returns the metric with the given name and optionally matching attributes, or error if
multiple matching are found.
Summary: List all metrics
-
Arguments:
filterName: Stringattributes: Map[String,String]
-
Return type:
Map[String,Seq[com.digitalasset.canton.metrics.MetricValue]]
Description:
Returns the metric with the given name and optionally matching attributes.
Sequencer Connection
sequencer_connection.getSummary: Get Sequencer Connection
- Return type:
Description:
Use this command to get the currently configured sequencer connection details for this
sequencer client. If this node has not yet been initialized, this will return None.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Revoke this sequencer client node’s authentication tokens and close all the sequencers connections
Description:
On all the sequencers, all existing authentication tokens for this sequencer client node
will be revoked.
Note that the node is not disconnected from the synchronizer; only the connections to the
sequencers are closed. The node will automatically reopen connections, perform a
challenge-response and obtain new tokens.
Summary: Modify Default Sequencer Connection
- Arguments:
Description:
Modify sequencer connection details for this sequencer client node, by passing
a modifier function that operates on the existing default connection.
Summary: Modify Sequencer Connections
- Arguments:
Description:
Modify sequencer connection details for this sequencer client node, by passing
a modifier function that operates on the existing connection configuration.
Summary: Set Sequencer Connection
- Arguments:
Description:
Set new sequencer connection details for this sequencer client node. This will replace
any pre-configured connection details. This command will only work after the node has
been initialized.
Summary: Set Sequencer Connection
- Arguments:
Description:
Set new sequencer connection details for this sequencer client node. This will replace
any pre-configured connection details. This command will only work after the node has
been initialized.
Testing
pruning.clear_scheduleSummary: Deactivate automatic pruning
Summary: Obtain a timestamp at or near the beginning of mediator state
- Arguments:
- Return type:
Description:
This command provides insight into the current state of mediator pruning when called with
the default value of `index` 1.
When pruning the mediator manually via `prune_at` and with the intent to prune in
batches, specify a value such as 1000 to obtain a pruning timestamp that corresponds to
the "end" of the batch.
Summary: Inspect the automatic pruning schedule
- Return type:
Description:
The schedule consists of a "cron" expression and "max_duration" and "retention"
durations. The cron string indicates the points in time at which pruning should begin in
the GMT time zone, and the maximum duration indicates how long from the start time
pruning is allowed to run as long as pruning has not finished pruning up to the specified
retention period.
Returns `None` if no schedule has been configured via `set_schedule` or if
`clear_schedule` has been invoked.
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String
Summary: Prune the mediator of unnecessary data while keeping data for the default retention period
Description:
Removes unnecessary data from the Mediator that is earlier than the default retention
period.
The default retention period is set in the configuration of the canton node running this
command under `parameters.retention-period-defaults.mediator`.
Summary: Prune the mediator of unnecessary data up to and including the given timestamp
-
Arguments:
timestamp: com.digitalasset.canton.data.CantonTimestamp
Summary: Prune the mediator of unnecessary data while keeping data for the provided retention period
-
Arguments:
retentionPeriod: scala.concurrent.duration.FiniteDuration
Summary: Modify the cron used by automatic pruning
-
Arguments:
cron: String
Description:
The schedule is specified in cron format and refers to pruning start times in the GMT
time zone.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Modify the maximum duration used by automatic pruning
- Arguments:
Description:
The `maxDuration` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this modification, pruning is actively running, a best effort is made to pause pruning
and restart according to the new schedule. This allows for the case that the new schedule
no longer allows pruning at the current time.
Summary: Update the pruning retention used by automatic pruning
- Arguments:
Description:
The `retention` is specified as a positive duration and has at most per-second
granularity.
This call returns an error if no schedule has been configured via `set_schedule` or if
automatic pruning has been disabled via `clear_schedule`. Additionally if at the time of
this update, pruning is actively running, a best effort is made to pause pruning and
restart with the newly specified retention. This allows for the case that the new
retention mandates retaining more data than previously.
Summary: Activate automatic pruning according to the specified schedule
-
Arguments:
cron: StringmaxDuration: com.digitalasset.canton.config.PositiveDurationSecondsretention: com.digitalasset.canton.config.PositiveDurationSeconds
Description:
The schedule is specified in cron format and "max_duration" and "retention" durations.
The cron string indicates the points in time at which pruning should begin in the GMT
time zone, and the maximum duration indicates how long from the start time pruning is
allowed to run as long as pruning has not finished pruning up to the specified retention
period.
Summary: Await for the given time to be reached on the synchronizer
- Arguments:
Summary: Fetch the current time from the synchronizer
- Arguments:
- Return type:
Summary: Help for specific commands (use help() or help(“method”) for more information)
-
Arguments:
methodName: String