Skip to content

Working with Iroha Binaries

The Iroha 3 operator workflow revolves around three primary binaries:

  • irohad for running a peer daemon
  • iroha for CLI and operator commands
  • kagami for keys, genesis, localnets, and profiles

Build from Source

From the upstream workspace root:

bash
cargo build --release -p irohad -p iroha_cli -p iroha_kagami

The release binaries are then available in target/release/.

To inspect the command surface:

bash
./target/release/irohad --help
./target/release/iroha --help
./target/release/kagami --help

Run Directly from the Repository

If you do not want to install anything globally, use cargo run:

bash
cargo run --bin irohad -- --help
cargo run --bin iroha -- --help
cargo run --bin kagami -- --help

Docker Image

The upstream workspace uses kagami localnet and kagami docker to generate Docker Compose files that match the checked-out code. The hyperledger/iroha:dev image can be used with those generated files.

Run the CLI in a container:

bash
docker run -t hyperledger/iroha:dev iroha --help

Run Kagami in a container:

bash
docker run -t hyperledger/iroha:dev kagami --help

For peer startup, generate a localnet and Compose file first:

bash
cargo run --bin kagami -- localnet --build-line iroha3 --peers 4 --out-dir ./localnet
cargo run --bin kagami -- docker --peers 4 --config-dir ./localnet --image hyperledger/iroha:dev --out-file ./localnet/docker-compose.yml --force
docker compose -f ./localnet/docker-compose.yml up

Which Binary Should I Use?

  • Use irohad when you are starting or operating peers.
  • Use iroha when you need to query the ledger, submit transactions, or inspect operator endpoints.
  • Use kagami when you need keys, genesis manifests, profile bundles, or localnet assets.