c8ntinuum builds the ctmd node binary from source. Use this page when you need a local developer build, an installed binary, or a self-contained distribution bundle. For local chain startup after the binary is built, see Local Development.

What gets built

The top-level Makefile builds ctmd from evmd/cmd/evmd. Builds use CGO and first build the Rust SP1 verifier dynamic library from rust/sp1verifier. The usual developer targets are:
make build creates a development binary under build/. make install installs the binary into BINDIR, which defaults to $(go env GOPATH)/bin or $HOME/go/bin if GOPATH is not available.

Prerequisites

  • Go matching go.mod and evmd/go.mod
  • make
  • Rust and Cargo for rust/sp1verifier
  • A working C toolchain for CGO builds
  • macOS dynamic-library tooling: otool and install_name_tool
  • Linux dynamic-library tooling: ldd; patchelf is recommended
Ledger support is enabled by default and requires gcc. To build without ledger support:
RocksDB support is enabled by default. If RocksDB is not detected, the build falls back to goleveldb unless ROCKSDB_REQUIRED=true is set.

macOS setup

Install the Xcode Command Line Tools:
For a local RocksDB-backed build, install RocksDB and companion libraries with Homebrew:
The build system uses Homebrew prefixes when available and uses install_name_tool to fix local dynamic-library paths.

Linux setup

Install the core build tools and dynamic-library helpers:
If your distribution ships an appropriate RocksDB development package, install it. Otherwise, build RocksDB from source and set ROCKSDB_PREFIX, ROCKSDB_INCLUDE_DIR, or ROCKSDB_LIB_DIR so the Makefile can find it.

Build commands

Check the local environment:
Build a development binary:
Install the binary:
Install into a custom directory:
Create a self-contained distribution bundle under build/dist:
Useful build overrides:

Outputs

make build writes:
make install writes:
make dist writes:
When RocksDB is enabled, install and dist targets also bundle the required RocksDB dynamic libraries that the build system can detect.

Verify the binary

For a development build:
For an installed build:
If ctmd is not found after make install, confirm that BINDIR is on your PATH:

Troubleshooting