CLI
The released binaries are named by architecture (e.g., ocf-amd64). The CLI root command is ocfcore in source. Examples below use the binary:
./ocf-amd64 --help | catCommands
Section titled “Commands”- start: Start the node and HTTP API.
- wallet: Wallet management commands for node owner identification.
- create: Generate a new Solana account managed by OCF.
- list: Display all accounts managed by OCF (default account marked with
*). - info: Show the default account information.
- version: Print version information.
- init: Initialize config (placeholder).
- update: Update the node (placeholder).
Flags (start)
Section titled “Flags (start)”--wallet.accountstring: Wallet account for node identification (defaults to the first managed account).--account.walletstring: Path to the keypair file for the managed account (auto-populated when using managed wallets).--bootstrap.addrstring: Legacy single-source bootstrap value (HTTP URL or one multiaddr). Default:http://152.67.71.5:8092/v1/dnt/bootstraps.--bootstrap.sourcestringSlice: Ordered bootstrap sources (HTTP URL,dnsaddr://host, or multiaddr). Repeat the flag to add more entries.--bootstrap.staticstringSlice: Static bootstrap multiaddrs that are appended after dynamic sources.--seedstring: Seed for deterministic peer key (use0to persist/load key). Default:0.--modestring:standalone,local, ornode/full(defaultnode).--tcpportstring: LibP2P TCP port. Default43905.--udpportstring: LibP2P QUIC UDP port. Default59820.--subprocessstring: Start a critical subprocess (kept alive by OCF).--public-addrstring: Public IP address to advertise (enables bootstrap role).--service.namestring: Local service name to register (e.g.,llm).--service.portstring: Local service port to register (e.g.,8080).--solana.rpcstring: Solana RPC endpoint used for SPL token verification. Default:https://api.mainnet-beta.solana.com.--solana.mintstring: SPL token mint the node must hold (defaultEsmcTrdLkFqV3mv4CjLF3AmCx132ixfFSYYRWD78cDzR).--solana.skip_verificationbool: Skip SPL token balance checks (testing only). Defaultfalse.--cleanslatebool: Remove local CRDT db on start. Defaulttrue.
CRDT Maintenance
Section titled “CRDT Maintenance”Tombstone compaction prevents the on-disk CRDT datastore from growing indefinitely as peers churn. Configure the compactor via the config file ($HOME/.config/ocf/cfg.yaml) or environment variables:
crdt.tombstone_retention(duration, default24h): How long to retain tombstones before they become eligible for compaction. Set to0to disable compaction.crdt.tombstone_compaction_interval(duration, default1h): How frequently to attempt compaction.crdt.tombstone_compaction_batch(int, default512): Maximum number of tombstone records removed per run.
Global Flags
Section titled “Global Flags”--configstring: Config file path (default is$HOME/.config/ocf/cfg.yaml).
Examples
Section titled “Examples”Start a standalone dispatcher:
./ocf-amd64 start --mode standaloneStart a node using a known bootstrap multiaddr:
./ocf-amd64 start --bootstrap.addr=/ip4/1.2.3.4/tcp/43905/p2p/<BOOTSTRAP_PEER_ID>Start a node with fallback bootstrap sources:
./ocf-amd64 start \ --bootstrap.source=https://bootstrap.ocf.example.com/v1/dnt/bootstraps \ --bootstrap.source=dnsaddr://bootstrap.ocf.example.com \ --bootstrap.static=/ip4/198.51.100.10/tcp/43905/p2p/<BOOTSTRAP_PEER_ID>Advertise as a public bootstrap:
./ocf-amd64 start --public-addr=203.0.113.10Register a local LLM service (worker):
./ocf-amd64 start \ --service.name=llm \ --service.port=8080Wallet Management
Section titled “Wallet Management”Create a new wallet for node identification:
./ocf-amd64 wallet createList managed wallets:
./ocf-amd64 wallet listShow the default wallet information:
./ocf-amd64 wallet infoAfter creating a wallet, start the node (the CLI automatically wires the default account):
./ocf-amd64 startTo point at a different managed account, pass its public key explicitly:
./ocf-amd64 start --wallet.account=<wallet_address>