Hyperledger Iroha is a deterministic blockchain platform for permissioned and consortium deployments. It provides account/asset management, on-chain permissions, and smart contracts through the Iroha Virtual Machine (IVM).
Workspace status and recent changes are tracked in
status.md.
This repository ships two deployment tracks from the same codebase:
- Iroha 2: self-hosted permissioned/consortium networks.
- Iroha 3 (SORA Nexus): the Nexus-oriented deployment track using the same core crates.
Both tracks share the same core components, including Norito serialization, Sumeragi consensus, and the Kotodama -> IVM toolchain.
crates/: core Rust crates (iroha,irohad,iroha_cli,iroha_core,ivm,norito, etc.).integration_tests/: cross-component network/integration tests.IrohaSwift/: Swift SDK package.java/iroha_android/: Android SDK package.docs/: user/operator/developer documentation.
- Rust stable
- Optional: Docker + Docker Compose for local multi-peer runs
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --allNotes:
- Full workspace build can take about 20 minutes.
- Full workspace tests can take multiple hours.
- The workspace targets
std(WASM/no-std builds are not supported).
cargo test -p <crate>
cargo test -p <crate> <test_name> -- --nocapturecd IrohaSwift
swift testcd java/iroha_android
JAVA_HOME=$(/usr/libexec/java_home -v 21) \
ANDROID_HOME=~/Library/Android/sdk \
ANDROID_SDK_ROOT=~/Library/Android/sdk \
./gradlew testStart the provided Docker Compose network:
docker compose -f defaults/docker-compose.yml upUse the CLI against the default client config:
cargo run --bin iroha -- --config ./defaults/client.toml --helpFor daemon-specific native deployment steps, see crates/irohad/README.md.
Torii exposes both Norito and JSON APIs. Common operator endpoints:
GET /statusGET /metricsGET /v1/parametersGET /v1/events/sse
See the full endpoint reference in:
crates/iroha: client library.crates/irohad: peer daemon binaries.crates/iroha_cli: reference CLI.crates/iroha_core: ledger/core execution engine.crates/iroha_config: typed configuration model.crates/iroha_data_model: canonical data model.crates/iroha_crypto: cryptographic primitives.crates/norito: deterministic serialization codec.crates/ivm: Iroha Virtual Machine.crates/iroha_kagami: key/genesis/config tooling.
- Main docs index:
docs/README.md - Genesis:
docs/genesis.md - Consensus (Sumeragi):
docs/source/sumeragi.md - Transaction pipeline:
docs/source/pipeline.md - P2P internals:
docs/source/p2p.md - IVM syscalls:
docs/source/ivm_syscalls.md - Kotodama grammar:
docs/source/kotodama_grammar.md - Norito wire format:
norito.md - Current work tracking:
status.md,roadmap.md
Japanese overview: README.ja.md
Other overviews:
README.he.md, README.es.md, README.pt.md, README.fr.md, README.ru.md, README.ar.md, README.ur.md
Translation workflow: docs/i18n/README.md
- Contribution guide:
CONTRIBUTING.md - Community/support channels:
CONTRIBUTING.md#contact
Iroha is licensed under Apache-2.0. See LICENSE.
Documentation is licensed under CC-BY-4.0: http://creativecommons.org/licenses/by/4.0/