Canton Console Commands
Documentation Index
Fetch the complete documentation index at: https://docs.canton.network/llms.txt Use this file to discover all available pages before exploring further.
Canton Console Commands
Canton admin console command reference: participant, mediator, sequencer, and topology commands.
Console Commands
Top-level Commands
The following commands are available for convenience:
exit
Leave the console.
help
Help with console commands; type help(“<command>”) for detailed help for <command>.
bootstrap.decentralized_namespace
Bootstraps a decentralized namespace for the provided owners.
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.
Arguments
owners:Seq[com.digitalasset.canton.console.InstanceReference]threshold:com.digitalasset.canton.config.RequireTypes.PositiveIntstore:com.digitalasset.canton.topology.admin.grpc.TopologyStoreId
Returns: (com.digitalasset.canton.topology.Namespace, Seq[com.digitalasset.canton.topology.transaction.SignedTopologyTransaction.GenericSignedTopologyTransaction])
bootstrap.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
bootstrap.onboard_new_sequencer
Onboards a new Sequencer node.
Onboards a new Sequencer node using an existing node from the network.
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
bootstrap.synchronizer
Bootstraps a new synchronizer.
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.
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.sequencing.SubmissionRequestAmplificationmediatorThreshold:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: com.digitalasset.canton.topology.PhysicalSynchronizerId
bootstrap.synchronizer_1
Bootstraps a new synchronizer.
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.
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.sequencing.SubmissionRequestAmplificationmediatorThreshold:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: com.digitalasset.canton.topology.PhysicalSynchronizerId
bootstrap.synchronizer_local
Bootstraps a local synchronizer using default arguments.
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 requireall mediators to confirm.
Arguments
synchronizerName:String
Returns: com.digitalasset.canton.topology.SynchronizerId
console.command_timeout
Yields the timeout for running console commands.
Yields the timeout for running console commands. When the timeout has elapsed, the console stops waiting for the command result. The command will continue running in the background.
Returns: com.digitalasset.canton.config.NonNegativeDuration
console.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
console.set_command_timeout
Sets the timeout for running console commands.
Sets the timeout for running console commands. 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.
Arguments
newTimeout:com.digitalasset.canton.config.NonNegativeDuration
mediators
All mediator nodes (.all, .local, .remote).
nodes
All nodes (.all, .local, .remote).
participants
All participant nodes (.all, .local, .remote).
sequencers
All sequencer nodes (.all, .local, .remote).
ledger_api_utils.create
Build create command.
Arguments
packageId:Stringmodule:Stringtemplate:Stringarguments:Map[String,Any]
Returns: com.daml.ledger.api.v2.commands.Command
ledger_api_utils.exercise
Build exercise command from CreatedEvent.
Arguments
choice:Stringarguments:Map[String,Any]event:com.daml.ledger.api.v2.event.CreatedEvent
Returns: com.daml.ledger.api.v2.commands.Command
ledger_api_utils.exercise_1
Build exercise command.
Arguments
packageId:Stringmodule:Stringtemplate:Stringchoice:Stringarguments:Map[String,Any]contractId:String
Returns: com.daml.ledger.api.v2.commands.Command
ledger_api_utils.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
logging.get_level
Determine current logging level.
Arguments
loggerName:String
Returns: Option[ch.qos.logback.classic.Level]
logging.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
logging.last_error_trace
Returns log events for an error with the same trace-id.
Arguments
traceId:String
Returns: Seq[String]
logging.last_errors
Returns the last errors (trace-id -> error event) that have been logged locally.
Returns: Map[String,String]
logging.set_level
Dynamically change log level (TRACE, DEBUG, INFO, WARN, ERROR, OFF, null).
Arguments
loggerName:Stringlevel:String
mediator1
Manage local mediator ‘mediator1’; type ‘mediator1 help’ or ‘mediator1 help(“<methodName>”)’ for more help.
participant1
Manage participant ‘participant1’; type ‘participant1 help’ or ‘participant1 help(“<methodName>”)’ for more help.
participant2
Manage participant ‘participant2’; type ‘participant2 help’ or ‘participant2 help(“<methodName>”)’ for more help.
participant3
Manage participant ‘participant3’; type ‘participant3 help’ or ‘participant3 help(“<methodName>”)’ for more help.
sequencer1
Manage local sequencer ‘sequencer1’; type ‘sequencer1 help’ or ‘sequencer1 help(“<methodName>”)’ for more help.
utils.auto_close
Register AutoCloseable object to be shutdown if Canton is shut down.
Arguments
closeable:AutoCloseable
utils.cantonprocesslogger
A process logger that forwards process logs to the canton logs.
Arguments
tracedLogger:com.digitalasset.canton.logging.TracedLogger
Returns: scala.sys.process.ProcessLogger
utils.generate_daml_script_participants_conf
Create a participants config for Daml script.
The generated config can be passed to daml script via the participant-config parameter. More information about the file format can be found in the documentation: It takes three arguments:
- 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
Arguments
file:Option[String]useParticipantAlias:BooleandefaultParticipant:Option[com.digitalasset.canton.console.ParticipantReference]
Returns: java.io.File
utils.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
utils.object_args
Reflective inspection of object arguments, handy to inspect case class objects.
Return the list field names of the given object. Helpful function when inspecting the return result.
Arguments
obj:T
Returns: List[String]
utils.read_all_messages_from_file
Reads several Protobuf messages from a file.
Fails with an exception, if the file can’t be read or parsed.
Arguments
fileName:String
Returns: Seq[A]
utils.read_byte_string_from_file
Reads a ByteString from a file.
Fails with an exception, if the file can’t be read.
Arguments
fileName:String
Returns: com.google.protobuf.ByteString
utils.read_first_message_from_file
Reads a single Protobuf message from a file.
Fails with an exception, if the file can’t be read or parsed.
Arguments
fileName:String
Returns: A
utils.retry_until_true
Wait for a condition to become true.
Wait timeout duration until condition becomes true. Retry evaluating condition with an exponentially increasing back-off up to maxWaitPeriod duration between retries.
Arguments
timeout:com.digitalasset.canton.config.NonNegativeDurationmaxWaitPeriod:com.digitalasset.canton.config.NonNegativeDurationcondition:=> Booleanfailure:=> String
Returns: (condition: => Boolean, failure: => String): Unit
utils.retry_until_true_1
Wait for a condition to become true, using default timeouts.
Wait until condition becomes true, with a timeout taken from the parameters.timeouts.console.bounded configuration parameter.
Arguments
condition:=> Boolean
utils.synchronize_topology
Wait until all topology changes have been effected on all accessible nodes.
Arguments
timeoutO:Option[com.digitalasset.canton.config.NonNegativeDuration]
utils.type_args
Reflective inspection of type arguments, handy to inspect case class types.
Return the list of field names of the given type. Helpful function when creating new objects for requests.
Returns: List[String]
utils.write_to_file
Writes a ByteString to a file.
Arguments
data:com.google.protobuf.ByteStringfileName:String
utils.write_to_file_1
Writes a Protobuf message to a file.
Arguments
data:scalapb.GeneratedMessagefileName:String
utils.write_to_file_2
Writes several Protobuf messages to a file.
Arguments
data:Seq[scalapb.GeneratedMessage]fileName:String
Participant Commands
clear_cache
Clear locally cached variables.
Some commands cache values on the client side. Use this command to explicitly clear the caches of these values.
config
Return participant config.
Returns: com.digitalasset.canton.participant.config.ParticipantNodeConfig
help_1
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
id
Yields the globally unique id of this participant. Throws an exception, if the id has not yet been allocated (e.g., the participant has not yet been started).
Returns: com.digitalasset.canton.topology.ParticipantId
is_initialized
Check if the local instance is running and is fully initialized.
Returns: Boolean
is_running
Check if the local instance is running.
Returns: Boolean
maybeid
Yields Some(id) of this participant if id present. Returns None, if the id has not yet been allocated (e.g., the participant has not yet been initialised).
Returns: Option[com.digitalasset.canton.topology.ParticipantId]
simclock
Returns the node specific simClock, possible race condition if using environment.SimClock as well.
Returns: Option[com.digitalasset.canton.time.DelegatingSimClock]
start
Start the instance.
stop
Stop the instance.
Bilateral Commitments
commitments.add_config_distinguished_slow_counter_participants
Add additional distinguished counter participants to already existing slow counter participant configuration.
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.
Arguments
counterParticipantsDistinguished:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]
commitments.add_participant_to_individual_metrics
Add additional individual metrics participants to already existing slow counter participant configuration.
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.
Arguments
individualMetrics:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]
commitments.computed
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]
Returns: Iterable[(com.digitalasset.canton.protocol.messages.CommitmentPeriod, com.digitalasset.canton.topology.ParticipantId, com.digitalasset.canton.protocol.messages.AcsCommitment.HashedCommitmentType)]
commitments.get_config_for_slow_counter_participants
Lists for the given synchronizers the configuration of metrics for slow counter-participants (i.e., thatare behind in sending commitments).
Lists the following config per synchronizer. If synchronizers is empty, the command lists config for all synchronizers:
- The participants in the distinguished group, which have two metrics: the maximum number of intervals that a participant is behind, and the number of participants that are behind by at least
thresholdDistinguishedreconciliation 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
thresholdDefaultreconciliation intervals - Parameters
thresholdDistinguishedandthresholdDefault - The participants in
individualMetrics, which have individual metrics per participant showing how many reconciliation intervals that participant is behind
Arguments
synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SlowCounterParticipantSynchronizerConfig]
commitments.get_intervals_behind_for_counter_participants
Lists for every participant and synchronizer the number of intervals that the participant is behind in sending commitmentsif 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
Arguments
counterParticipants:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]threshold:Option[com.digitalasset.canton.config.RequireTypes.NonNegativeInt]
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.CounterParticipantInfo]
commitments.get_wait_commitments_config_from
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.
Arguments
synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]counterParticipants:Seq[com.digitalasset.canton.topology.ParticipantId]
Returns: (Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Pruning.NoWaitCommitments], Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Pruning.WaitCommitments])
commitments.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
commitments.inspect_commitment_contracts
Download states of contracts and contract payloads necessary for commitment inspection and reconciliation.
Returns the contract states (created, assigned, unassigned, archived, unknown) of the given contracts on all synchronizers the participant knows from the beginning of time until the present time on each synchronizer. The command returns best-effort the contract changes available. Specifically, it does not fail if the ACS and/or reassignment state has been pruned during the time interval, or if parts of the time interval are ahead of the clean ACS state. Optionally returns the contract payload if requested and available. The arguments are:
contracts: The contract ids whose state and payload we want to fetchtimestamp: 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 ondownloadPayload: If true, the payload of the contracts is also downloadedtimeout: Time limit for the grpc call to complete
Arguments
contracts:Seq[com.digitalasset.canton.protocol.LfContractId]timestamp:com.digitalasset.canton.data.CantonTimestampexpectedSynchronizerId:com.digitalasset.canton.topology.SynchronizerIddownloadPayload:Booleantimeout:com.digitalasset.canton.config.NonNegativeDuration
Returns: Seq[com.digitalasset.canton.participant.pruning.CommitmentInspectContract]
commitments.lookup_received_acs_commitments
List the counter-participants of a participant and the ACS commitments received from them together withthe commitment state.
Optional filtering through the arguments: synchronizerTimeRanges: Lists commitments received on the given synchronizers whose period overlaps with any of the given time ranges per synchronizer. If the list is empty, considers all synchronizers the participant is connected to. For synchronizers with an empty time range, considers the latest period the participant knows of for that synchronizer. Synchronizers can appear multiple times in the list with various time ranges, in which case we consider the union of the time ranges. counterParticipants: Lists commitments received only from the given counter-participants. If a counter-participant is not a counter-participant on some synchronizer, no commitments appear in the reply from that counter-participant on that synchronizer. commitmentState: Lists commitments that are in one of the given states. By default considers all states:
MATCH: the remote commitment matches the local commitmentMISMATCH: the remote commitment does not match the local commitmentBUFFERED: the remote commitment is buffered because the corresponding local commitment has not been computed yetOUTSTANDING: 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.
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
Returns: Map[com.digitalasset.canton.topology.SynchronizerId,Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.ReceivedAcsCmt]]
commitments.lookup_sent_acs_commitments
List the counter-participants of a participant and the ACS commitments that the participant computed and sent to them. 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 arguments: synchronizerTimeRanges: Lists commitments received on the given synchronizers whose period overlap with any of the given time ranges per synchronizer. If the list is empty, considers all synchronizers the participant is connected to. For synchronizers with an empty time range, considers the latest period the participant knows of for that synchronizer. Synchronizers can appear multiple times in the list with various time ranges, in which case we consider the union of the time ranges. counterParticipants: Lists commitments sent only to the given counter-participants. If a counter-participant is not a counter-participant on some synchronizer, no commitments appear in the reply for that counter-participant on that synchronizer. commitmentState: Lists sent commitments that are in one of the given states. By default considers all states:
MATCH: The local commitment matches the remote commitmentMISMATCH: The local commitment does not match the remote commitmentNOT_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.
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
Returns: Map[com.digitalasset.canton.topology.SynchronizerId,Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SentAcsCmt]]
commitments.open_commitment
Opens a commitment by retrieving the metadata of active contracts shared with the counter-participant.
Retrieves the contract ids and the reassignment counters of the shared active contracts at the given timestamp and on the given synchronizer. Returns an error if the participant cannot retrieve the data for the given commitment anymore. The arguments are:
commitment: The commitment to be openedphysicalSynchronizerId: The synchronizer for which the commitment was computedtimestamp: The timestamp of the commitment. Needs to correspond to a commitment tick.counterParticipant: The counter participant to whom we previously sent the commitmentoutputFile: Optional file to which the result is writtentimeout: Time limit for the grpc call to complete
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]timeout:com.digitalasset.canton.config.NonNegativeDuration
Returns: Seq[com.digitalasset.canton.participant.pruning.CommitmentContractMetadata]
commitments.received
Lookup ACS commitments received from other participants as part of the reconciliation protocol.
The arguments are:
synchronizerAlias: the alias of the synchronizerstart: lowest time exclusiveend: highest time inclusivecounterParticipant: optionally filter by counter participant
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAliasstart:java.time.Instantend:java.time.InstantcounterParticipant:Option[com.digitalasset.canton.topology.ParticipantId]
Returns: Iterable[com.digitalasset.canton.protocol.messages.SignedProtocolMessage[com.digitalasset.canton.protocol.messages.AcsCommitment]]
commitments.reinitialize_commitments
Reinitializes commitments from the current ACS. Filtering is possible by synchronizers, counter-participantsand stakeholder groups.
The command is useful if the participant’s commitments got corrupted due to a bug. The command reinitializes the commitments for the given synchronizers and counter-participants, and containing contracts with stakeholders including the given parties. If synchronizers is empty, the command considers all synchronizers. If counterParticipants is empty, the command considers all counter-participants. If partyIds is empty, the command considers all stakeholder groups. timeout specifies how long the commands waits for the reinitialization to complete. Granularities smaller than a second are ignored. Past this timeout, the operator can query the status of the reinitialization using commitment_reinitialization_status. The command returns a sequence pairs of synchronizer IDs and the reinitialization status for each synchronizer: either the ACS timestamp of the reinitialization, or an error message if reinitialization failed.
Arguments
synchronizerIds:Seq[com.digitalasset.canton.topology.SynchronizerId]counterParticipants:Seq[com.digitalasset.canton.topology.ParticipantId]partyIds:Seq[com.digitalasset.canton.topology.PartyId]timeout:com.digitalasset.canton.config.NonNegativeDuration
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.ReinitCommitments.CommitmentReinitializationInfo]
commitments.remove_config_distinguished_slow_counter_participants
removes existing configurations from synchronizers and distinguished counter participants.
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.
Arguments
counterParticipantsDistinguished:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]
commitments.remove_participant_from_individual_metrics
removes existing configurations from synchronizers and individual metrics participants.
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.
Arguments
individualMetrics:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizers:Seq[com.digitalasset.canton.topology.SynchronizerId]
commitments.set_config_for_slow_counter_participants
Configure metrics for slow counter-participants (i.e., that are behind in sending commitments) andconfigure 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
thresholdDistinguishedreconciliation intervals. - The number of participants not in the distinguished or the individual group that are behind by at least
thresholdDefaultreconciliation intervals. - Separate metric for each participant in
individualMetricsargument tracking how many intervals that participant is behind
Arguments
configs:Seq[com.digitalasset.canton.admin.api.client.commands.ParticipantAdminCommands.Inspection.SlowCounterParticipantSynchronizerConfig]
commitments.set_no_wait_commitments_from
Disable waiting for commitments from the given counter-participants.
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.
Arguments
counterParticipants:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizerIds:Seq[com.digitalasset.canton.topology.SynchronizerId]
commitments.set_wait_commitments_from
Enable waiting for commitments from the given counter-participants. Waiting for commitments from all counter-participants is the default behavior; explicitly enabling waitingfor commitments is only necessary if it was previously disabled.
Enables waiting for commitments, which blocks pruning at offsets where commitments from these counter-participants are missing. If the participant set is empty or the synchronizer set is empty, the command does nothing.
Arguments
counterParticipants:Seq[com.digitalasset.canton.topology.ParticipantId]synchronizerIds:Seq[com.digitalasset.canton.topology.SynchronizerId]
DAR Management
dars.download
Downloads the DAR file with the provided main package-id to the given directory.
Arguments
mainPackageId:Stringdirectory:String
dars.get_contents
List contents of DAR files.
Arguments
mainPackageId:String
Returns: com.digitalasset.canton.admin.api.client.data.DarContents
dars.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
dars.list
List installed DAR files.
List DARs installed on this participant The arguments are: filterName: filter by name filterDescription: filter by description limit: Limit number of results (default none)
Arguments
limit:com.digitalasset.canton.config.RequireTypes.PositiveIntfilterName:StringfilterDescription:String
Returns: Seq[com.digitalasset.canton.admin.api.client.data.DarDescription]
dars.remove
Remove a DAR from the participant.
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
-
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.
-
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.
Arguments
mainPackageId:StringsynchronizeVetting:Boolean
dars.upload
Upload a DAR to Canton.
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()
Arguments
path:Stringdescription:StringsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages:BooleansynchronizeVetting:BooleanexpectedMainPackageId:StringrequestHeaders:Map[String,String]
Returns: String
dars.upload_many
Upload many DARs to Canton.
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()
Arguments
paths:Seq[String]synchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]vetAllPackages:BooleansynchronizeVetting:BooleanrequestHeaders:Map[String,String]
Returns: Seq[String]
dars.validate
Validate DARs against the current participants’ state.
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.
Arguments
path:String
Returns: String
dars.vetting.disable
Revoke vetting for all packages contained in the DAR archive identified by the provided main package-id.
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
Arguments
mainPackageId:StringsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]
dars.vetting.enable
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]
dars.vetting.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
Database
db.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
db.migrate
Migrates the instance’s database if using a database storage.
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.
db.repair_migration
Only use when advised - repairs the database migration of the instance’s database.
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.
Arguments
force:Boolean
Synchronizer connectivity
synchronizers.active
Test whether a participant is connected to and permissioned on a synchronizer.
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.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: Boolean
synchronizers.config
Returns the current configuration of a given synchronizer.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: Option[com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig]
synchronizers.connect
Macro to connect a participant to a synchronizer given by connection.
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. The arguments are:
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)
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.sequencing.SequencerConnectionValidationsequencerAlias:com.digitalasset.canton.SequencerAlias
Returns: com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig
synchronizers.connect_1
Macro to connect a participant to a synchronizer given by instance.
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.
Arguments
instance:com.digitalasset.canton.console.SequencerReferencesynchronizerAlias:com.digitalasset.canton.SynchronizerAlias
synchronizers.connect_bft
Macro to connect to multiple sequencers of the same synchronizer.
The arguments are:
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 beyondsequencerTrustThresholdin 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)
Arguments
connections:Seq[com.digitalasset.canton.sequencing.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.sequencing.SubmissionRequestAmplificationsequencerConnectionPoolDelays:com.digitalasset.canton.sequencing.SequencerConnectionPoolDelaysvalidation:com.digitalasset.canton.sequencing.SequencerConnectionValidation
synchronizers.connect_by_config
Macro to connect a participant to a synchronizer given by connection.
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.
validation - Whether to validate the connectivity and ids of the given sequencers (default all)
Arguments
config:com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfigvalidation:com.digitalasset.canton.sequencing.SequencerConnectionValidationsynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]
synchronizers.connect_local
Macro to connect a participant to a locally configured synchronizer given by sequencer reference.
The arguments are:
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)
Arguments
sequencer:com.digitalasset.canton.console.SequencerReferencealias:com.digitalasset.canton.SynchronizerAliasmanualConnect:BooleanphysicalSynchronizerId:Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]maxRetryDelayMillis:Option[Long]priority:Intsynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]validation:com.digitalasset.canton.sequencing.SequencerConnectionValidation
synchronizers.connect_local_bft
Macro to connect to multiple local sequencers of the same synchronizer.
The arguments are:
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 beyondsequencerTrustThresholdin 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)
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.sequencing.SubmissionRequestAmplificationsequencerConnectionPoolDelays:com.digitalasset.canton.sequencing.SequencerConnectionPoolDelaysvalidation:com.digitalasset.canton.sequencing.SequencerConnectionValidation
synchronizers.connect_multi
Macro to connect a participant to a synchronizer that supports connecting via many endpoints.
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)
The arguments are:
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)
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAliasconnections:Seq[com.digitalasset.canton.sequencing.SequencerConnection]synchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]validation:com.digitalasset.canton.sequencing.SequencerConnectionValidation
Returns: com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig
synchronizers.disconnect
Disconnect this participant from the given synchronizer.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
synchronizers.disconnect_all
Disconnect this participant from all connected synchronizers.
synchronizers.disconnect_local
Disconnect this participant from the given local synchronizer.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
synchronizers.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
synchronizers.id_of
Returns the id of the given synchronizer alias.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: com.digitalasset.canton.topology.SynchronizerId
synchronizers.is_connected
Test whether a participant is connected to a synchronizer.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: Boolean
synchronizers.is_connected_1
Test whether a participant is connected to physical a synchronizer.
Arguments
synchronizerId:com.digitalasset.canton.topology.PhysicalSynchronizerId
Returns: Boolean
synchronizers.is_connected_2
Test whether a participant is connected to a synchronizer.
Arguments
synchronizerId:com.digitalasset.canton.topology.SynchronizerId
Returns: Boolean
synchronizers.is_registered
Returns true if a synchronizer is registered using the given alias.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: Boolean
synchronizers.list_connected
List the connected synchronizers of this participant.
Returns: Seq[com.digitalasset.canton.admin.api.client.data.ListConnectedSynchronizersResult]
synchronizers.list_registered
List the configured synchronizer of this participant.
For each returned synchronizer, the boolean indicates whether the participant is currently connected to the synchronizer.
Returns: Seq[(com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig, com.digitalasset.canton.topology.ConfiguredPhysicalSynchronizerId, Boolean)]
synchronizers.logout
Revoke this participant’s authentication tokens and close all the sequencer connections in the given synchronizer.
synchronizerAlias: the synchronizer alias from which to logout 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.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
synchronizers.modify
Modify existing synchronizer connection.
The arguments are:
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 active one will be updated (if none is active, an error is returned).
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAliasmodifier:[com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig => com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfig](https://docs.digitalasset.com/operate/3.4/scaladoc/com/digitalasset/canton/participant/synchronizer/SynchronizerConnectionConfig.html)validation:com.digitalasset.canton.sequencing.SequencerConnectionValidationphysicalSynchronizerId:Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]
synchronizers.physical_id_of
Returns the physical id of the given synchronizer alias.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: com.digitalasset.canton.topology.PhysicalSynchronizerId
synchronizers.reconnect
Reconnect this participant to the given synchronizer.
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.
The arguments are:
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.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAliasretry:Booleansynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: Boolean
synchronizers.reconnect_all
Reconnect this participant to all synchronizer which are not marked as manual start.
The arguments are: 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.
Arguments
ignoreFailures:Booleansynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]
synchronizers.reconnect_local
Reconnect this participant to the given local synchronizer.
Idempotent attempts to re-establish a connection to the given local synchronizer. Same behaviour as generic reconnect.
The arguments are:
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.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAliasretry:Booleansynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: Boolean
synchronizers.reconnect_local_1
Reconnect this participant to the given local synchronizer.
Idempotent attempts to re-establish a connection to the given local synchronizer. Same behaviour as generic reconnect.
The arguments are:
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.
Arguments
ref:com.digitalasset.canton.console.SequencerReference
Returns: Boolean
synchronizers.register
Macro to register a locally configured synchronizer given by sequencer reference.
The arguments are:
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)
Arguments
sequencer:com.digitalasset.canton.console.SequencerReferencealias:com.digitalasset.canton.SynchronizerAliasperformHandshake:BooleanmanualConnect:BooleanphysicalSynchronizerId:Option[com.digitalasset.canton.topology.PhysicalSynchronizerId]maxRetryDelayMillis:Option[Long]priority:Intsynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]validation:com.digitalasset.canton.sequencing.SequencerConnectionValidation
synchronizers.register_by_config
Macro to register a locally configured synchronizer.
The arguments are:
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.
Arguments
config:com.digitalasset.canton.participant.synchronizer.SynchronizerConnectionConfigperformHandshake:Booleanvalidation:com.digitalasset.canton.sequencing.SequencerConnectionValidationsynchronize:Option[com.digitalasset.canton.config.NonNegativeDuration]
Health
health.active
Check if the node is running and is the active instance (mediator, participant).
Returns: Boolean
health.count_in_flight
Counts pending command submissions and transactions on a synchronizer.
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.
Arguments
synchronizerAlias:com.digitalasset.canton.SynchronizerAlias
Returns: com.digitalasset.canton.admin.api.client.data.InFlightCount
health.dump_1
Collect Canton system information to help diagnose issues.
Generates a comprehensive health report for the local Canton process and any connected remote nodes.
The arguments are:
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’
Arguments
outputFile:Stringtimeout:com.digitalasset.canton.config.NonNegativeDurationchunkSize:Option[Int]
Returns: String
health.has_identity
Returns true if the node has an identity.
Returns: Boolean
health.help_1
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
health.initialized
Returns true if node has been initialized.
Returns: Boolean
health.is_ready_for_id
Check if the node is ready for setting the node’s id.
Returns: Boolean
health.is_ready_for_initialization
Check if the node is ready for initialization.
Returns: Boolean
health.is_ready_for_node_topology
Check if the node is ready for uploading the node’s identity topology.
Returns: Boolean
health.is_running
Check if the node is running.
Returns: Boolean
health.last_error_trace
Show all messages logged with the given traceId in a recent interval.
Returns a list of buffered log messages associated to a given trace-id. Usually, the trace-id is taken from last_errors()
Arguments
traceId:String
Returns: Seq[String]
health.last_errors
Show the last errors logged.
Returns a map with the trace-id as key and the most recent error messages as value. Requires that —log-last-errors is enabled (and not turned off).
Returns: Map[String,String]
health.maybe_ping
Sends a ping to the target participant over the ledger. Yields Some(duration) in case of success and None in case of failure.
Arguments
participantId:com.digitalasset.canton.topology.ParticipantIdtimeout:com.digitalasset.canton.config.NonNegativeDurationsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]id:String
Returns: Option[scala.concurrent.duration.Duration]
health.ping
Sends a ping to the target participant over the ledger. Yields the duration in case of success and throws a RuntimeException in case of failure.
Arguments
participantId:com.digitalasset.canton.topology.ParticipantIdtimeout:com.digitalasset.canton.config.NonNegativeDurationsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]id:String
Returns: scala.concurrent.duration.Duration
health.set_log_level
Change the log level of the process.
If the default logback configuration is used, this will change the log level of the process.
Arguments
level:ch.qos.logback.classic.Level
health.status_1
Get human (and machine) readable status information.
Returns: com.digitalasset.canton.admin.api.client.data.NodeStatus[S]
health.wait_for_identity
Wait for the node to have an identity.
health.wait_for_initialized
Wait for the node to be initialized.
health.wait_for_ready_for_id
Wait for the node to be ready for setting the node’s id.
health.wait_for_ready_for_initialization
Wait for the node to be ready for initialization.
health.wait_for_ready_for_node_topology
Wait for the node to be ready for uploading the node’s identity topology.
health.wait_for_running
Wait for the node to be running.
Key administration
keys.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
keys.public.download
Download public key.
Arguments
fingerprint:com.digitalasset.canton.crypto.FingerprintprotocolVersion:com.digitalasset.canton.version.ProtocolVersion
Returns: com.google.protobuf.ByteString
keys.public.download_to
Download public key and save it to a file.
Arguments
fingerprint:com.digitalasset.canton.crypto.FingerprintoutputFile:StringprotocolVersion:com.digitalasset.canton.version.ProtocolVersion
keys.public.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
keys.public.list
List public keys in registry.
Returns all public keys that have been added to the key registry. Optional arguments can be used for filtering.
Arguments
filterFingerprint:StringfilterContext:StringfilterPurpose:Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage:Set[com.digitalasset.canton.crypto.SigningKeyUsage]
Returns: Seq[com.digitalasset.canton.crypto.PublicKeyWithName]
keys.public.list_by_owner
List keys for given keyOwner.
This command is a convenience wrapper for list_key_owners, taking an explicit keyOwner as search argument. The response includes the public keys.
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
Returns: Seq[com.digitalasset.canton.admin.api.client.data.ListKeyOwnersResult]
keys.public.list_owners
List active owners with keys for given search arguments.
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’.
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
Returns: Seq[com.digitalasset.canton.admin.api.client.data.ListKeyOwnersResult]
keys.public.upload
Upload public key.
Import a public key and store it together with a name used to provide some context to that key.
Arguments
keyBytes:com.google.protobuf.ByteStringname:Option[String]
Returns: com.digitalasset.canton.crypto.Fingerprint
keys.public.upload_from
Upload public key.
Arguments
filename:Stringname:Option[String]
Returns: com.digitalasset.canton.crypto.Fingerprint
keys.secret.delete
Delete private key.
Arguments
fingerprint:com.digitalasset.canton.crypto.Fingerprintforce:Boolean
keys.secret.download
Download key pair.
Arguments
fingerprint:com.digitalasset.canton.crypto.FingerprintprotocolVersion:com.digitalasset.canton.version.ProtocolVersionpassword:Option[String]
Returns: com.google.protobuf.ByteString
keys.secret.download_to
Download key pair and save it to a file.
Arguments
fingerprint:com.digitalasset.canton.crypto.FingerprintoutputFile:StringprotocolVersion:com.digitalasset.canton.version.ProtocolVersionpassword:Option[String]
keys.secret.generate_encryption_key
Generate new public/private key pair for encryption and store it in the vault.
The optional name argument allows you to store an associated string for your convenience. 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.
Arguments
name:StringkeySpec:Option[com.digitalasset.canton.crypto.EncryptionKeySpec]
Returns: com.digitalasset.canton.crypto.EncryptionPublicKey
keys.secret.generate_signing_key
Generate new public/private key pair for signing and store it in the vault.
The optional name argument allows you to store an associated string for your convenience. 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. 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.
Arguments
name:Stringusage:Set[com.digitalasset.canton.crypto.SigningKeyUsage]keySpec:Option[com.digitalasset.canton.crypto.SigningKeySpec]
Returns: com.digitalasset.canton.crypto.SigningPublicKey
keys.secret.get_wrapper_key_id
Get the wrapper key id that is used for the encrypted private keys store.
Returns: String
keys.secret.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
keys.secret.list
List keys in private vault.
Returns all public keys to the corresponding private keys in the key vault. Optional arguments can be used for filtering.
Arguments
filterFingerprint:StringfilterName:StringfilterPurpose:Set[com.digitalasset.canton.crypto.KeyPurpose]filterUsage:Set[com.digitalasset.canton.crypto.SigningKeyUsage]
Returns: Seq[com.digitalasset.canton.crypto.admin.grpc.PrivateKeyMetadata]
keys.secret.register_kms_encryption_key
Register the specified KMS encryption key in canton storing its public information in the vault.
The id for the KMS encryption key. The optional name argument allows you to store an associated string for your convenience.
Arguments
kmsKeyId:Stringname:String
Returns: com.digitalasset.canton.crypto.EncryptionPublicKey
keys.secret.register_kms_signing_key
Register the specified KMS signing key in canton storing its public information in the vault.
The id for the KMS signing key. 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. The optional name argument allows you to store an associated string for your convenience.
Arguments
kmsKeyId:Stringusage:Set[com.digitalasset.canton.crypto.SigningKeyUsage]name:String
Returns: com.digitalasset.canton.crypto.SigningPublicKey
keys.secret.rotate_kms_node_key
Rotate a given node’s keypair with a new pre-generated KMS keypair.
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. The fingerprint of the key we want to rotate. The id of the new KMS key (e.g. Resource Name). An optional name for the new key.
Arguments
fingerprint:StringnewKmsKeyId:Stringname:String
Returns: com.digitalasset.canton.crypto.PublicKey
keys.secret.rotate_node_key
Rotate a node’s public/private key pair.
Rotates an existing encryption or signing key. NOTE: A namespace root or intermediate signing key CANNOT be rotated by this command. The fingerprint of the key we want to rotate. An optional name for the new key.
Arguments
fingerprint:Stringname:String
Returns: com.digitalasset.canton.crypto.PublicKey
keys.secret.rotate_node_keys
Rotate the node’s public/private key pairs.
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.
keys.secret.rotate_wrapper_key
Change the wrapper key for encrypted private keys store.
Change the wrapper key (e.g. AWS KMS key) being used to encrypt the private keys in the store. 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.
Arguments
newWrapperKeyId:String
keys.secret.upload
Upload a key pair.
Upload the previously downloaded key pair. 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
Arguments
pairBytes:com.google.protobuf.ByteStringname:Option[String]password:Option[String]
keys.secret.upload_from
Upload (load and import) a key pair from file.
Upload the previously downloaded key pair from a file. 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
Arguments
filename:Stringname:Option[String]password:Option[String]
Ledger API Access
The following commands on a participant reference provide access to the participant’s Ledger API services.
ledger_api.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.javaapi.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
Command Completion Service
ledger_api.completions.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.completions.list
Lists command completions following the specified offset.
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.
Arguments
partyId:com.digitalasset.canton.topology.PartyatLeastNumCompletions:IntbeginOffsetExclusive:LonguserId:Stringtimeout:com.digitalasset.canton.config.NonNegativeDurationfilter:com.daml.ledger.api.v2.completion.Completion => Boolean
Returns: Seq[com.daml.ledger.api.v2.completion.Completion]
ledger_api.completions.subscribe
Subscribe to the command completion stream.
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.
Arguments
observer:io.grpc.stub.StreamObserver[com.daml.ledger.api.v2.completion.Completion]parties:Seq[com.digitalasset.canton.topology.Party]beginOffsetExclusive:LonguserId:String
Returns: AutoCloseable
Command Submission Service
ledger_api.commands.failed
Investigate failed commands.
Same as status(…, state = CommandState.Failed).
Arguments
commandId:Stringlimit:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: Seq[com.digitalasset.canton.platform.apiserver.execution.CommandStatus]
ledger_api.commands.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.commands.status
Investigate successful and failed commands.
Find the status of commands. Note that only recent commands which are kept in memory will be returned.
Arguments
commandIdPrefix:Stringstate:com.daml.ledger.api.v2.admin.command_inspection_service.CommandStatelimit:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: Seq[com.digitalasset.canton.platform.apiserver.execution.CommandStatus]
ledger_api.commands.submit
Submit command and wait for the resulting transaction, returning the transaction or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
actAs:Seq[com.digitalasset.canton.topology.Party]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]readAs:Seq[com.digitalasset.canton.topology.Party]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:Boolean
Returns: com.daml.ledger.api.v2.transaction.Transaction
ledger_api.commands.submit_assign
Submit assign command and wait for the resulting reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdreassignmentId:Stringsource:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:Stringtimeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.AssignedWrapper
ledger_api.commands.submit_assign_async
Submit assign command asynchronously.
Provides access to the command submission service of the Ledger API. See the Ledger API reference for documentation of the parameters.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdreassignmentId:Stringsource:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringcommandId:StringsubmissionId:String
ledger_api.commands.submit_assign_with_format
Submit assign command and wait for the resulting reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdreassignmentId:Stringsource:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:StringeventFormat:Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]timeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.EmptyOrAssignedWrapper
ledger_api.commands.submit_async
Submit command asynchronously.
Provides access to the command submission service of the Ledger API. See the Ledger API reference for documentation of the parameters.
Arguments
actAs:Seq[com.digitalasset.canton.topology.PartyId]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]readAs:Seq[com.digitalasset.canton.topology.Party]disclosedContracts:Seq[com.daml.ledger.api.v2.commands.DisclosedContract]userId:StringuserPackageSelectionPreference:Seq[com.digitalasset.canton.LfPackageId]
ledger_api.commands.submit_reassign
Combines submit_unassign and submit_assign in a single macro.
See submit_unassign and submit_assign for the parameters.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdcontractIds:Seq[com.digitalasset.canton.protocol.LfContractId]source:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:Stringtimeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: (com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UnassignedWrapper, com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.AssignedWrapper)
ledger_api.commands.submit_unassign
Submit unassign command and wait for the resulting reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdcontractIds:Seq[com.digitalasset.canton.protocol.LfContractId]source:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:Stringtimeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UnassignedWrapper
ledger_api.commands.submit_unassign_async
Submit unassign command asynchronously.
Provides access to the command submission service of the Ledger API. See the Ledger API reference for documentation of the parameters.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdcontractIds:Seq[com.digitalasset.canton.protocol.LfContractId]source:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringcommandId:StringsubmissionId:String
ledger_api.commands.submit_unassign_with_format
Submit unassign command and wait for the resulting reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdcontractIds:Seq[com.digitalasset.canton.protocol.LfContractId]source:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:StringeventFormat:Option[com.daml.ledger.api.v2.transaction_filter.EventFormat]timeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.EmptyOrUnassignedWrapper
ledger_api.javaapi.commands.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.javaapi.commands.submit
Submit java codegen command and wait for the resulting transaction, returning the transaction or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
actAs:Seq[com.digitalasset.canton.topology.Party]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]readAs:Seq[com.digitalasset.canton.topology.Party]disclosedContracts:Seq[com.daml.ledger.javaapi.data.DisclosedContract]userId:StringuserPackageSelectionPreference:Seq[com.digitalasset.canton.LfPackageId]transactionShape:com.daml.ledger.api.v2.transaction_filter.TransactionShapeincludeCreatedEventBlob:Boolean
Returns: com.daml.ledger.javaapi.data.Transaction
ledger_api.javaapi.commands.submit_assign
Submit assign command and wait for the resulting java codegen reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdreassignmentId:Stringsource:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:Stringtimeout:Option[com.digitalasset.canton.config.NonNegativeDuration]includeCreatedEventBlob:Boolean
Returns: com.daml.ledger.javaapi.data.Reassignment
ledger_api.javaapi.commands.submit_async
Submit java codegen command asynchronously.
Provides access to the command submission service of the Ledger API. See the Ledger API reference for documentation of the parameters.
Arguments
actAs:Seq[com.digitalasset.canton.topology.PartyId]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]readAs:Seq[com.digitalasset.canton.topology.Party]disclosedContracts:Seq[com.daml.ledger.javaapi.data.DisclosedContract]userId:String
ledger_api.javaapi.commands.submit_unassign
Submit assign command and wait for the resulting java codegen reassignment, returning the reassignment or failing otherwise.
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 doesn’t commit, or if it doesn’t 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.
Arguments
submitter:com.digitalasset.canton.topology.PartyIdcontractIds:Seq[com.digitalasset.canton.protocol.LfContractId]source:com.digitalasset.canton.topology.SynchronizerIdtarget:com.digitalasset.canton.topology.SynchronizerIdworkflowId:StringuserId:StringsubmissionId:Stringtimeout:Option[com.digitalasset.canton.config.NonNegativeDuration]
Returns: com.daml.ledger.javaapi.data.Reassignment
ledger_api.interactive_submission.execute
Execute a prepared submission.
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.
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]
Returns: com.daml.ledger.api.v2.interactive.interactive_submission_service.ExecuteSubmissionResponse
ledger_api.interactive_submission.execute_and_wait
Execute a prepared submission and wait for it to complete (successfully or not).
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.
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]
Returns: com.daml.ledger.api.v2.interactive.interactive_submission_service.ExecuteSubmissionAndWaitResponse
ledger_api.interactive_submission.execute_and_wait_for_transaction
Execute a prepared submission and return the resulting transaction.
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.
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:Boolean
Returns: com.daml.ledger.api.v2.transaction.Transaction
ledger_api.interactive_submission.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.interactive_submission.preferred_package_version
Get the preferred package version for constructing a command submission.
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 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.
Arguments
parties:Set[com.digitalasset.canton.topology.Party]packageName:com.digitalasset.canton.LfPackageNamesynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]vettingValidAt:Option[com.digitalasset.canton.data.CantonTimestamp]
Returns: Option[com.daml.ledger.api.v2.interactive.interactive_submission_service.PackagePreference]
ledger_api.interactive_submission.preferred_packages
Get the preferred packages for constructing a command submission.
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.
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.
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]
Returns: com.daml.ledger.api.v2.interactive.interactive_submission_service.GetPreferredPackagesResponse
ledger_api.interactive_submission.prepare
Prepare a transaction for interactive submission.
Prepare a transaction for interactive submission. 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.
Arguments
actAs:Seq[com.digitalasset.canton.topology.Party]commands:Seq[com.daml.ledger.api.v2.commands.Command]synchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]commandId:StringminLedgerTimeAbs:Option[java.time.Instant]readAs:Seq[com.digitalasset.canton.topology.Party]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]
Returns: com.daml.ledger.api.v2.interactive.interactive_submission_service.PrepareSubmissionResponse
ledger_api.javaapi.interactive_submission.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.javaapi.interactive_submission.prepare
Prepare a transaction for interactive submission.
Prepare a transaction for interactive submission
Arguments
actAs:Seq[com.digitalasset.canton.topology.PartyId]commands:Seq[com.daml.ledger.javaapi.data.Command]synchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]commandId:StringminLedgerTimeAbs:Option[java.time.Instant]readAs:Seq[com.digitalasset.canton.topology.Party]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]
Returns: com.daml.ledger.api.v2.interactive.interactive_submission_service.PrepareSubmissionResponse
Event Service
ledger_api.event_query.by_contract_id
Get events by contract Id.
Return events associated with the given contract Id
Arguments
contractId:StringrequestingParties:Seq[com.digitalasset.canton.topology.Party]
Returns: com.daml.ledger.api.v2.event_query_service.GetEventsByContractIdResponse
ledger_api.event_query.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.javaapi.event_query.by_contract_id
Get events in java codegen by contract Id.
Return events associated with the given contract Id
Arguments
contractId:StringrequestingParties:Seq[com.digitalasset.canton.topology.Party]
Returns: com.daml.ledger.api.v2.EventQueryServiceOuterClass.GetEventsByContractIdResponse
ledger_api.javaapi.event_query.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
Identity Provider Configuration Management
ledger_api.identity_provider_config.create
Create a new identity provider configuration.
Create an identity provider configuration. The request will fail if the maximum allowed number of separate configurations is reached.
Arguments
identityProviderId:StringisDeactivated:BooleanjwksUrl:Stringissuer:Stringaudience:Option[String]
Returns: com.digitalasset.canton.ledger.api.IdentityProviderConfig
ledger_api.identity_provider_config.delete
Delete an identity provider configuration.
Delete an existing identity provider configuration
Arguments
identityProviderId:String
ledger_api.identity_provider_config.get
Get an identity provider configuration.
Get identity provider configuration by id
Arguments
identityProviderId:String
Returns: com.digitalasset.canton.ledger.api.IdentityProviderConfig
ledger_api.identity_provider_config.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.identity_provider_config.list
List identity provider configurations.
List all existing identity provider configurations
Returns: Seq[com.digitalasset.canton.ledger.api.IdentityProviderConfig]
ledger_api.identity_provider_config.update
Update an identity provider.
Update identity provider
Arguments
identityProviderId:StringisDeactivated:BooleanjwksUrl:Stringissuer:Stringaudience:Option[String]updateMask:com.google.protobuf.field_mask.FieldMask
Returns: com.digitalasset.canton.ledger.api.IdentityProviderConfig
User Management Service
ledger_api.users.create
Create a user with the given id.
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. 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
Arguments
id:StringactAs:Set[com.digitalasset.canton.topology.PartyId]primaryParty:Option[com.digitalasset.canton.topology.PartyId]readAs:Set[com.digitalasset.canton.topology.PartyId]participantAdmin:BooleanidentityProviderAdmin:BooleanisDeactivated:Booleanannotations:Map[String,String]identityProviderId:StringreadAsAnyParty:BooleanexecuteAs:Set[com.digitalasset.canton.topology.PartyId]executeAsAnyParty:Boolean
Returns: com.digitalasset.canton.admin.api.client.data.User
ledger_api.users.delete
Delete a user.
Delete a user by id. id: user id identityProviderId: identity provider id
Arguments
id:StringidentityProviderId:String
ledger_api.users.get
Get the user data of the user with the given id.
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. id: user id identityProviderId: identity provider id
Arguments
id:StringidentityProviderId:String
Returns: com.digitalasset.canton.admin.api.client.data.User
ledger_api.users.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.users.list
List users.
List users of this participant node 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
Arguments
filterUser:StringpageToken:StringpageSize:IntidentityProviderId:String
Returns: com.digitalasset.canton.admin.api.client.data.UsersPage
ledger_api.users.update
Update a user.
Currently you can update the annotations, active status and primary party. You cannot update other user attributes. 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
Arguments
id:Stringmodifier:[com.digitalasset.canton.admin.api.client.data.User => com.digitalasset.canton.admin.api.client.data.User](https://docs.digitalasset.com/operate/3.4/scaladoc/com/digitalasset/canton/admin/api/client/data/User.html)identityProviderId:String
Returns: com.digitalasset.canton.admin.api.client.data.User
ledger_api.users.update_idp
Update user’s identity provider id.
Updates user’s identity provider id. id: the id used to identify the given user sourceIdentityProviderId: source identity provider id targetIdentityProviderId: target identity provider id
Arguments
id:StringsourceIdentityProviderId:StringtargetIdentityProviderId:String
ledger_api.users.rights.grant
Grant new rights to a user.
Users are used to dynamically managing the rights given to Daml applications. This function is used to grant new rights to an existing user. 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
Arguments
id:StringactAs:Set[com.digitalasset.canton.topology.PartyId]readAs:Set[com.digitalasset.canton.topology.PartyId]participantAdmin:BooleanidentityProviderAdmin:BooleanidentityProviderId:StringreadAsAnyParty:BooleanexecuteAs:Set[com.digitalasset.canton.topology.PartyId]executeAsAnyParty:Boolean
Returns: com.digitalasset.canton.admin.api.client.data.UserRights
ledger_api.users.rights.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.users.rights.list
List rights of a user.
Lists the rights of a user, or the rights of the current user. id: user id identityProviderId: identity provider id
Arguments
id:StringidentityProviderId:String
Returns: com.digitalasset.canton.admin.api.client.data.UserRights
ledger_api.users.rights.revoke
Revoke user rights.
Use to revoke specific rights from a user. 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
Arguments
id:StringactAs:Set[com.digitalasset.canton.topology.PartyId]readAs:Set[com.digitalasset.canton.topology.PartyId]participantAdmin:BooleanidentityProviderAdmin:BooleanidentityProviderId:StringreadAsAnyParty:BooleanexecuteAs:Set[com.digitalasset.canton.topology.PartyId]executeAsAnyParty:Boolean
Returns: com.digitalasset.canton.admin.api.client.data.UserRights
Package Service
ledger_api.packages.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.packages.list
List Daml Packages.
Arguments
limit:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: Seq[com.daml.ledger.api.v2.admin.package_management_service.PackageDetails]
ledger_api.packages.upload_dar
Upload packages from Dar file.
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.
Arguments
darPath:StringsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]
ledger_api.packages.validate_dar
Validate a DAR against the current participants’ state.
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.
Arguments
darPath:String
Party Management Service
ledger_api.parties.allocate
Allocate a new party.
Allocates a new party on the ledger. 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.
Arguments
party:Stringannotations:Map[String,String]identityProviderId:StringsynchronizerId:Option[com.digitalasset.canton.topology.SynchronizerId]userId:String
Returns: com.digitalasset.canton.admin.api.client.data.parties.PartyDetails
ledger_api.parties.allocate_external
Allocate a new external party.
Allocates a new external party on the ledger. 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
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]
Returns: com.daml.ledger.api.v2.admin.party_management_service.AllocateExternalPartyResponse
ledger_api.parties.generate_topology
Generate topology transactions for an external party.
Convenience function to generate the necessary topology transactions. For more complex setups, please generate your topology transactions manually. 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
Arguments
synchronizerId:com.digitalasset.canton.topology.SynchronizerIdpartyHint:StringpublicKey:com.digitalasset.canton.crypto.SigningPublicKeylocalParticipantObservationOnly:BooleanotherConfirmingParticipantIds:Seq[com.digitalasset.canton.topology.ParticipantId]confirmationThreshold:com.digitalasset.canton.config.RequireTypes.NonNegativeIntobservingParticipantIds:Seq[com.digitalasset.canton.topology.ParticipantId]
Returns: com.digitalasset.canton.admin.api.client.data.parties.GenerateExternalPartyTopology
ledger_api.parties.get
Get party details for known parties.
Get party details for parties known by the Ledger API server for the given identity provider. identityProviderId: identity provider id
Arguments
parties:Seq[com.digitalasset.canton.topology.PartyId]identityProviderId:StringfailOnNotFound:Boolean
Returns: Map[com.digitalasset.canton.topology.PartyId,com.digitalasset.canton.admin.api.client.data.parties.PartyDetails]
ledger_api.parties.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.parties.list
List parties known by the Ledger API server.
Lists parties known by the Ledger API server. identityProviderId: identity provider id filterParty: Filter party by name
Arguments
identityProviderId:StringfilterParty:String
Returns: Seq[com.digitalasset.canton.admin.api.client.data.parties.PartyDetails]
ledger_api.parties.update
Update participant-local party details.
Currently you can update only the annotations. You cannot update other user attributes. 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
Arguments
party:com.digitalasset.canton.topology.Partymodifier:[com.digitalasset.canton.admin.api.client.data.parties.PartyDetails => com.digitalasset.canton.admin.api.client.data.parties.PartyDetails](https://docs.digitalasset.com/operate/3.4/scaladoc/com/digitalasset/canton/admin/api/client/data/parties/PartyDetails.html)identityProviderId:String
Returns: com.digitalasset.canton.admin.api.client.data.parties.PartyDetails
ledger_api.parties.update_idp
Update party’s identity provider id.
Updates party’s identity provider id. party: party to be updated sourceIdentityProviderId: source identity provider id targetIdentityProviderId: target identity provider id
Arguments
party:com.digitalasset.canton.topology.PartyIdsourceIdentityProviderId:StringtargetIdentityProviderId:String
State Service
ledger_api.state.connected_synchronizers
Read the current connected synchronizers for a party.
Arguments
partyId:Option[com.digitalasset.canton.topology.PartyId]
Returns: com.daml.ledger.api.v2.state_service.GetConnectedSynchronizersResponse
ledger_api.state.end
Read the current ledger end offset.
Returns: Long
ledger_api.state.failed
Investigate failed commands.
Same as status(…, state = CommandState.Failed).
Arguments
commandId:Stringlimit:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: Seq[com.digitalasset.canton.platform.apiserver.execution.CommandStatus]
ledger_api.state.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.state.status
Investigate successful and failed commands.
Find the status of commands. Note that only recent commands which are kept in memory will be returned.
Arguments
commandIdPrefix:Stringstate:com.daml.ledger.api.v2.admin.command_inspection_service.CommandStatelimit:com.digitalasset.canton.config.RequireTypes.PositiveInt
Returns: Seq[com.digitalasset.canton.platform.apiserver.execution.CommandStatus]
ledger_api.javaapi.state.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.state.acs.active_contracts_of_party
List the set of active contracts of a given party.
This command will return the current set of active contracts for the given party.
Supported arguments:
party: for which party you want to load the acslimit: limit (default set via canton.parameter.console)verbose: whether the resulting events should contain detailed type informationfilterTemplate: list of templates ids to filter for, empty sequence acts as a wildcardfilterInterfaces: list of interface ids to filter for, empty sequence does not influence the resulting filteractiveAtOffsetO: 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 arriveincludeCreatedEventBlob: whether the result should contain the createdEventBlobs, it works only if the filterTemplate is non-empty
Arguments
party:com.digitalasset.canton.topology.Partylimit: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]timeout:com.digitalasset.canton.config.NonNegativeDurationincludeCreatedEventBlob:Boolean
Returns: Seq[com.daml.ledger.api.v2.state_service.ActiveContract]
ledger_api.state.acs.await_active_contract
Wait until the party sees the given contract in the active contract service.
Will throw an exception if the contract is not found to be active within the given timeout
Arguments
party:com.digitalasset.canton.topology.PartycontractId:com.digitalasset.canton.protocol.LfContractIdtimeout:com.digitalasset.canton.config.NonNegativeDuration
ledger_api.state.acs.find_generic
Generic search for contracts.
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.
Arguments
partyId:com.digitalasset.canton.topology.Partyfilter:com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry => Booleantimeout:com.digitalasset.canton.config.NonNegativeDuration
Returns: com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry
ledger_api.state.acs.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.state.acs.incomplete_assigned_of_party
List the set of incomplete assigned events of a given party.
This command will return the current set of incomplete assigned events for the given party.
Supported arguments:
party: for which party you want to load the acslimit: limit (default set via canton.parameter.console)verbose: whether the resulting events should contain detailed type informationfilterTemplate: list of templates ids to filter for, empty sequence acts as a wildcardfilterInterfaces: list of interface ids to filter for, empty sequence does not influence the resulting filteractiveAtOffsetO: 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 arriveincludeCreatedEventBlob: whether the result should contain the createdEventBlobs, it works only if the filterTemplate is non-empty
Arguments
party:com.digitalasset.canton.topology.Partylimit: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]timeout:com.digitalasset.canton.config.NonNegativeDurationincludeCreatedEventBlob:Boolean
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedIncompleteAssigned]
ledger_api.state.acs.incomplete_unassigned_of_party
List the set of incomplete unassigned events of a given party.
This command will return the current set of incomplete unassigned events for the given party.
Supported arguments:
party: for which party you want to load the acslimit: limit (default set via canton.parameter.console)verbose: whether the resulting events should contain detailed type informationfilterTemplate: list of templates ids to filter for, empty sequence acts as a wildcardfilterInterfaces: list of interface ids to filter for, empty sequence does not influence the resulting filteractiveAtOffsetO: 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 arriveincludeCreatedEventBlob: whether the result should contain the createdEventBlobs, it works only if the filterTemplate is non-empty
Arguments
party:com.digitalasset.canton.topology.Partylimit: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]timeout:com.digitalasset.canton.config.NonNegativeDurationincludeCreatedEventBlob:Boolean
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedIncompleteUnassigned]
ledger_api.state.acs.of_all
List the set of active contracts for all parties hosted on this participant.
This command will return the current set of active contracts for all parties.
Supported arguments:
limit: limit (default set via canton.parameter.console)verbose: whether the resulting events should contain detailed type informationfilterTemplate: list of templates ids to filter for, empty sequence acts as a wildcardfilterInterfaces: list of interface ids to filter for, empty sequence does not influence the resulting filteractiveAtOffsetO: 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 arriveidentityProviderId: limit the response to parties governed by the given identity providerincludeCreatedEventBlob: whether the result should contain the createdEventBlobs, it works only if the filterTemplate is non-emptyresultFilter: custom filter of the results, applies before limit
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]timeout:com.digitalasset.canton.config.NonNegativeDurationidentityProviderId:StringincludeCreatedEventBlob:BooleanresultFilter:com.daml.ledger.api.v2.state_service.GetActiveContractsResponse => Boolean
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry]
ledger_api.state.acs.of_party
List the set of active contract entries of a given party.
This command will return the current set of active contracts and incomplete reassignments for the given party.
Supported arguments:
party: for which party you want to load the acslimit: limit (default set via canton.parameter.console)verbose: whether the resulting events should contain detailed type informationfilterTemplate: list of templates ids to filter for, empty sequence acts as a wildcardactiveAtOffsetO: 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 arriveincludeCreatedEventBlob: whether the result should contain the createdEventBlobs, it works only if the filterTemplate is non-emptyresultFilter: custom filter of the results, applies before limit
Arguments
party:com.digitalasset.canton.topology.Partylimit: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]timeout:com.digitalasset.canton.config.NonNegativeDurationincludeCreatedEventBlob:BooleanresultFilter:com.daml.ledger.api.v2.state_service.GetActiveContractsResponse => Boolean
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiTypeWrappers.WrappedContractEntry]
ledger_api.javaapi.state.acs.await
Wait until a contract becomes available and return the Java codegen contract.
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.
Arguments
companion:com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T]partyId:com.digitalasset.canton.topology.Partypredicate:TC => BooleansynchronizerFilter:Option[com.digitalasset.canton.topology.SynchronizerId]timeout:com.digitalasset.canton.config.NonNegativeDuration
Returns: (companion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T])(partyId: com.digitalasset.canton.topology.Party, predicate: TC => Boolean, synchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId], timeout: com.digitalasset.canton.config.NonNegativeDuration): TC
ledger_api.javaapi.state.acs.filter
Filter the ACS for contracts of a particular Java code-generated template.
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.
Arguments
templateCompanion:com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T]partyId:com.digitalasset.canton.topology.Partypredicate:TC => BooleansynchronizerFilter:Option[com.digitalasset.canton.topology.SynchronizerId]
Returns: (templateCompanion: com.daml.ledger.javaapi.data.codegen.ContractCompanion[TC,TCid,T])(partyId: com.digitalasset.canton.topology.Party, predicate: TC => Boolean, synchronizerFilter: Option[com.digitalasset.canton.topology.SynchronizerId]): Seq[TC]
ledger_api.javaapi.state.acs.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
Time Service
ledger_api.time.get
Get the participants time.
Returns the current timestamp of the participant which is either the system clock or the static time
Returns: com.digitalasset.canton.data.CantonTimestamp
ledger_api.time.set
Set the participants time.
Sets the participants time if the participant is running in static time mode
Arguments
currentTime:com.digitalasset.canton.data.CantonTimestampnextTime:com.digitalasset.canton.data.CantonTimestamp
Updates Service
ledger_api.updates.help
Help for specific commands (use help() or help(“method”) for more information).
Arguments
methodName:String
ledger_api.updates.reassignments
Get reassignments.
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.
Arguments
partyIds:Set[com.digitalasset.canton.topology.PartyId]filterTemplates:Seq[com.digitalasset.canton.admin.api.client.data.TemplateId]completeAfter:com.digitalasset.canton.config.RequireTypes.PositiveIntbeginOffsetExclusive:LongendOffsetInclusive:Option[Long]verbose:Booleantimeout:com.digitalasset.canton.config.NonNegativeDurationresultFilter:com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => BooleansynchronizerFilter:Option[com.digitalasset.canton.topology.SynchronizerId]includeCreatedEventBlob:Boolean
Returns: Seq[com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.ReassignmentWrapper]
ledger_api.updates.start_measuring
Starts measuring throughput at the update service.
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. Use the onUpdate parameter to register a callback that is called on every update tree.
Arguments
parties:Set[com.digitalasset.canton.topology.Party]metricName:StringonUpdate:com.digitalasset.canton.admin.api.client.commands.LedgerApiCommands.UpdateService.UpdateWrapper => Unit
Returns: AutoCloseable
ledger_api.updates.subscribe_updates
Subscribe to the update stream.
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.
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]
Returns: AutoCloseable
ledger_api.updates.topology_transactions
Get topology transactions.
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 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.
Arguments