ctmd node with the deploy.sh lifecycle script. For hosted deployment scripts and peer-list resources, see Deployment Scripts. Validator nodes need dedicated signing-key, TMKMS, sentry, and double-sign protection procedures.
Network defaults
Use this table as an operator quick reference. For the canonical network records, see Network Information - Mainnet and Network Information - Testnet.| Item | Mainnet | Testnet |
|---|---|---|
| Cosmos chain ID | continuum_2184-1 | continuum_2185-1 |
| EVM chain ID | 2184 | 2185 |
| Native currency | CTM | tCTM |
| Public EVM RPC | https://public-evm-rpc.c8ntinuum.com | https://public-testnet-evm.c8ntinuum.link |
| Public CometBFT RPC | https://public-comet-rpc.c8ntinuum.com | https://public-testnet-comet.c8ntinuum.link |
| Genesis URL | https://resources.c8ntinuum.io/mainnet/genesis.json | https://resources.c8ntinuum.io/testnet/genesis.json |
| Genesis SHA-256 | 939cd10fe450f6826894f0d76e82ed5e90845d5f60aaae92f577cf50b83bb474 | f8b98ca1e364026eae17ff15ac133ac8c15fa6864a7e675e77642e8172f7943b |
| Peers URL | https://resources.c8ntinuum.io/peers.json | Same schema, selected by chain ID |
Operating model
| OS | Node home | Process model |
|---|---|---|
| Linux | /var/lib/ctmd | systemd, via ctmd.service |
| macOS | $HOME/.ctmd | deploy.sh start background process with PID/log files |
deploy.sh install creates a ctmd service user/group, installs a hardened ctmd.service, enables the service, and leaves it stopped until you run deploy.sh state-sync or deploy.sh start. On macOS, it installs the binary and bootstraps the user-managed $HOME/.ctmd home without installing a service.
Recommended operational configuration
Use the node profile that matches the workload. A normal application node should prioritize fast bootstrap, protected RPC surfaces, and bounded historical reads. An exchange, custodian, or indexer that must rebuild history from first principles should run archive infrastructure or consume a dedicated indexer.| Workload | Recommended node shape | Data mode | Notes |
|---|---|---|---|
| Wallets and applications | Full node behind a private RPC gateway | State sync bootstrap, default pruning | Best for current blocks, balances, receipts, and recent logs. |
| Exchange deposits | Full node plus indexed log pipeline | State sync bootstrap plus durable scanner database | Use bounded RPC scans and idempotent crediting. Add archive/indexer access for long backfills. |
| Complete historical replay | Archive node | Replay from genesis, pruning = "nothing" | State sync does not provide pre-snapshot history. |
| Debug tracing | Archive node with private debug RPC | Replay from genesis, EVM indexer enabled | Keep debug, txpool, and personal off public endpoints. |
- Install Linux production nodes with
deploy.sh install --moniker <your-node-moniker>and manage them withdeploy.sh start,deploy.sh stop, andsystemd. - Bootstrap new non-archive nodes with State Sync; replay archive nodes from genesis.
- Keep RPC, REST, gRPC, WebSocket, and metrics endpoints on localhost or private interfaces unless a reverse proxy enforces TLS, authentication, rate limits, request size limits, and IP allowlists.
- Use the default public EVM namespace shape
eth,net,web3for externally exposed RPC. Enabletxpoolordebugonly on private archive or operations nodes. - For archive nodes, follow Archive Data Setup: set
pruning = "nothing", keep ABCI responses, enable the transaction index, and enable the EVM indexer. - Monitor local height, catching-up state, peer count, process restarts, disk growth, RPC latency, HTTP
429rates, and WebSocket reconnect storms.
Deploy script
To install or updatectmd, run the deploy.sh script. You can download and run the script manually:
Install from release
Recommended Linux install:deploy.sh install reads metadata.json, resolves .ctmd.latest_version, selects the current artifact and SHA-256 URL for the host platform, downloads the tarball, verifies SHA-256, and installs the ctmd binary with bundled shared libraries. It then initializes the node home, downloads genesis, repairs chain ID settings, and patches seeds and persistent peers from https://resources.c8ntinuum.io/peers.json.
For mainnet, the downloaded and local genesis.json files are verified against metadata.json field mainnet_genesis_sha256. If you pass a non-default --chain-id, the script skips the mainnet SHA-256 check.
The installer creates these managed paths:
| Path | Purpose |
|---|---|
/opt/ctmd-<version>/bin/ctmd | Versioned binary |
/opt/ctmd-<version>/lib/ | Bundled shared libraries |
/opt/ctmd | Symlink to the active version |
/usr/local/bin/ctmd | Symlink to the active binary |
/etc/systemd/system/ctmd.service | Linux systemd unit |
/var/lib/ctmd/ | Linux node home |
/var/cache/ctmd/ | Linux release download cache |
$HOME/.ctmd/releases/ctmd-<version>/ | macOS versioned install |
$HOME/.ctmd/current | macOS symlink to the active version |
$HOME/.ctmd/bin/ctmd | macOS CLI symlink |
$HOME/.ctmd/cache/downloads/ | macOS release download cache |
Build from source
If you are building locally instead of using a release, follow Build the Node, then verify the binary:Start sync
State sync is recommended for new nodes because it avoids replaying from genesis:Ports
| Port | Service | Exposure |
|---|---|---|
26656/tcp | P2P | Public or peer-restricted |
26657/tcp | CometBFT RPC | Localhost or reverse proxy only |
1317/tcp | Cosmos REST/LCD | Localhost or reverse proxy only |
9090/tcp | gRPC | Localhost or reverse proxy only |
8545/tcp | EVM JSON-RPC HTTP | Localhost or reverse proxy only |
8546/tcp | EVM JSON-RPC WebSocket | Localhost or reverse proxy only |
26660/tcp | CometBFT Prometheus metrics | Firewall-restricted |
6065/tcp | EVM JSON-RPC metrics | Firewall-restricted |
Health checks
Check local status:status reports the active install, binary version, node home, service state when present, latest height, catching-up state, and peer count.
Monitoring
Enable CometBFT metrics inconfig.toml:
--metrics on startup and this app config:
http://127.0.0.1:26660/metrics for CometBFT metrics and http://127.0.0.1:6065/debug/metrics/prometheus for EVM JSON-RPC metrics. Run node_exporter alongside ctmd for disk, CPU, memory, and network metrics.
Common recovery
Use the managed lifecycle commands for normal start, stop, and inspection:reset deletes the managed install, node home, service, cache, and Linux system user/group so a later install --moniker <name> can start from scratch. Do not run it unless you intend to delete local chain data and key material in the managed node home.
On macOS: