ctmd node binary from source. Use this page when you need a local developer build, an installed binary, or a self-contained distribution bundle.
The
ctmd source (Apache 2.0) will be published in a public GitHub repository; the repository is to be announced. The steps on this page assume a checkout of that repository. Until it is published, use the release binaries listed in metadata.json: install them with deploy.sh as described in Full Node Installation, or, for a validator, with the manual mainnet install.What gets built
The top-level Makefile buildsctmd 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.modandevmd/go.mod make- Rust and Cargo for
rust/sp1verifier - A working C toolchain for CGO builds
- macOS dynamic-library tooling:
otoolandinstall_name_tool - Linux dynamic-library tooling:
ldd;patchelfis recommended
gcc. To build without ledger support:
goleveldb unless ROCKSDB_REQUIRED=true is set. The build expects RocksDB 10.9.1, the version the grocksdb v1.10.7 bindings target. The Makefile checks only that RocksDB headers and libraries are present, not their version.
macOS setup
Install the Xcode Command Line Tools:brew info rocksdb; the build expects 10.9.1. 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:10.9.1 development package, install it. Otherwise, build RocksDB 10.9.1 from source and set ROCKSDB_PREFIX, ROCKSDB_INCLUDE_DIR, or ROCKSDB_LIB_DIR so the Makefile can find it, or build with ROCKSDB_ENABLED=false. Distribution packages may be older than 10.9.1, and the Makefile accepts an older version without warning, so check the package version first.
Build commands
Check the local environment:build/dist:
Outputs
make build writes:
make install writes:
make dist writes:
Verify the binary
For a development build:ctmd is not found after make install, confirm that BINDIR is on your PATH: