Canton minimal resource configuration

I want to run a Canton participant and domain in a demo environment, where I have very low performance requirements.

Are there configurations I can set to minimize Canton’s memory / CPU footprint?

In the docs I found the following settings for the participant:

canton.participants.participant1 {
    // tune caching configs of the ledger api server
    ledger-api {
        max-contract-state-cache-size = 1000 // default 1e6
        max-contract-key-state-cache-size = 1000 // default 1e6

        // The in-memory fan-out will serve the transaction streams from memory as they are finalized, rather than
        // using the database. Therefore, you should choose this buffer to be large enough such that the likeliness of
        // applications having to stream transactions from the database is low. Generally, having a 10s buffer is
        // sensible. Therefore, if you expect e.g. a throughput of 20 tx/s, then setting this number to 200 is sensible.
        // The default setting assumes 1000 tx/s.
        max-transactions-in-memory-fan-out-buffer-size = 200 // default 1e5
    }
    // tune the synchronisation protocols contract store cache
    caching {
        contract-store {
            maximum-size = 1000 // default 1e6
            expire-after-access = 120s // default 10 minutes
        }
    }
}

Are there others to consider? And are there similar ones for the domain?

No, that’s it for now. The caches are the ones that make the difference. CPU wise you don’t need much. We ran it on an android phone once.