How to determine the protocol version?

Question: If I have an up-and-running 2.x domain node, how can I determine what protocol version it is using?


For example, I see that Canton 2.7.3 supports Canton protocol versions 3, 4, and 5.

> canton-open-source-2.7.3/bin/canton --version

Canton: 2.7.3
Daml Libraries: 2.7.3
Supported Canton protocol versions: List(3, 4, 5)

Depending on the Canton version with which the domain was initialized, the domain could be expecting any one of those protocol versions.

You can query the domains config from a canton console with

domain_name.config

The protocol version is returned in the result

res0: mydomain.consoleEnvironment.environment.config.DomainConfigType = CommunityDomainConfig(
  init = DomainInitConfig(
    identity = Some(value = Identity(generateLegalIdentityCertificate = false, nodeIdentifier = Config)),
    domainParameters = DomainParametersConfig(
      reconciliationInterval = 1m,
      maxRatePerParticipant = 1000000,
      maxInboundMessageSize = 10485760,
      uniqueContractKeys = true,
      requiredSigningKeySchemes = None(),
      requiredEncryptionKeySchemes = None(),
      requiredSymmetricKeySchemes = None(),
      requiredHashAlgorithms = None(),
      requiredCryptoKeyFormats = None(),
      protocolVersion = 5,
      devVersionSupport = false,
      dontWarnOnDeprecatedPV = false,
      resetStoredStaticConfig = false
    )
  ),
2 Likes

If connecting to a remote domain you will need to run the command:

domain_name.service.get_static_domain_parameters
1 Like

You can do a grpc call and use the DomainService/GetDomainParameters to get the same results.

{
“required_signing_key_schemes”: [
“Ed25519”,
“EcDsaP256”,
“EcDsaP384”
],
“required_encryption_key_schemes”: [
“EciesP256HkdfHmacSha256Aes128Gcm”
],
“required_symmetric_key_schemes”: [
“Aes128Gcm”
],
“required_hash_algorithms”: [
“Sha256”
],
“required_crypto_key_formats”: [
“Tink”,
“Raw”,
“Der”
],
“reconciliation_interval”: {
“seconds”: “60”,
“nanos”: 0
},
“max_rate_per_participant”: 1000000,
“max_inbound_message_size”: 10485760,
“unique_contract_keys”: true,
“protocol_version”: “5.0.0”
}

2 Likes