The docs describe dynamic parameters which are awesome! For example, the following can be run through the Canton console:
mydomain.service.set_reconciliation_interval(5.seconds)
mydomain.service.set_max_rate_per_participant(100)
mydomain.service.set_max_request_size(100000)
mydomain.service.set_mediator_deduplication_timeout(2.minutes)
Those could also be set through a --boostrap
script at startup.
I’ve been asked, “Can those also be set in the configuration file?”
I’m going to say, “No.” I tried a couple of different ways:
Naive attempt 1
canton {
domains {
mydomain {
reconciliationInterval = 5000
maxRatePerParticipant = 100
maxRequestSize = 100000
mediatorDeduplicationTimeout = 120000
Naive attempt 2
canton {
domains {
mydomain {
service {
reconciliationInterval = 5000
maxRatePerParticipant = 100
maxRequestSize = 100000
mediatorDeduplicationTimeout = 120000
}
In both cases, I got errors with information like this:
Cannot convert configuration to a config of class
com.digitalasset.canton.config.CantonEnterpriseConfig.
Failures are:
at 'canton.domains.mydomain.maxRatePerParticipant': Unknown key.
at 'canton.domains.mydomain.maxRequestSize': Unknown key.
at 'canton.domains.mydomain.mediatorDeduplicationTimeout': Unknown key.
at 'canton.domains.mydomain.reconciliationInterva...
Please correct me if I’ve overlooked a different way.
After further testing it appears that dynamic parameters cannot be configured within the configuration file from protocol version 4 onwards.
When running the below config file:
canton {
domains {
mydomain {
init.domain-parameters {
protocol-version = 5
max-rate-per-participant = 100
}
I get the helpful error of
Failed to convert static domain params: Starting from protocol version 4, max rate per participant is a dynamic parameter that cannot be configured within the configuration file.
1 Like
Hey!
We removed the ability to configure the dynamic parameters from config on purpose. If you have this ability, then the following scenario can occur:
- You set the config to
max-rate-per-participant = 100
- You start the domain manager node, which means that
max-rate-per-participant = 100
- You use the console to change
max-rate-per-participant
to 200
At this point, what is in the config differs from the value used on the domain, which is quite misleading.
2 Likes