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
rohitt
4
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