Multi-Ledger Setup in Canton: Do We Need Separate HTTP JSON APIs and Navigators?

We’ve deployed a Canton-based Daml ledger on EKS with the following components:

  • Domain (manager, mediator, sequencer)
  • Participant (with a PostgreSQL backend)
  • HTTP JSON API

We’re using both the Navigator UI and the HTTP JSON API to interact with the ledger. Since both these components need to connect to the participant node, we’re considering a multi-ledger setup across namespaces (e.g., a separate setup in a namespace like fnwl).

In this case, do we need to deploy separate instances of the HTTP JSON API and Navigator for each ledger/participant, or can a single instance of each connect to and operate across multiple ledgers?

Both Navigator and the HTTP JSON API work the same way – they each operate with only a single ledger/participant node.

You can see that in the startup options for Navigator. It only accepts a single host and port:

Command: server [<host>] [<port>]
serve data from platform
  <host>                   hostname or IP address of the Ledger API server (default localhost)
  <port>                   port number of the Ledger API server (default 6865)

And the same with the HTTP JSON Service:

  --ledger-host <value>
        Ledger host name or IP address
  --ledger-port <value>
        Ledger port number
1 Like

thanks for the reply got it