Skip to content
CCPEDIAby Unity Nodes
Discussions/App Development/Canton minimal resource configurationForum ↗

Canton minimal resource configuration

App Development2 posts166 viewsLast activity Dec 2023
GE
georgOP
Dec 2023

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?

RA
Ratko_Veprek
Dec 2023

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.

← Back to Discussions