A sequencing and settlement layer to help you build provable apps that are minimally, yet sufficiently, on-chain.
This repository hosts the work-in-progress Rust client for the Hylé chain.
The older, but still maintained, Cosmos SDK-based client can be found at hyle-cosmos.
Current Status: 🚧 Work in Progress (WIP)
To launch a single-node devnet (consensus disabled) for building and debugging smart contracts:
cargo build
HYLE_RUN_INDEXER=false cargo run --bin node
To enable the indexer, ensure you have a running PostgreSQL server:
# Start PostgreSQL with default configuration:
docker run -d --rm --name pg_hyle -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres
You can configure Hylé using environment variables or a configuration file:
Copy the default configuration file to the directory where the node will run:
cp ./src/utils/conf_defaults.ron config.ron
If a file named config.ron
is present, it will be automatically loaded at node startup.
Examples of configuration via environment variables:
HYLE_RUN_INDEXER=false
HYLE_CONSENSUS__SLOT_DURATION=100
You can interact with the node using the CLI tool hyled
:
cargo run --bin hyled -- --help
To install it for easier access:
cargo install --path . --bin hyled
hyled --help
docker build . -t hyle
docker run -v ./db:/hyle/data -e HYLE_RUN_INDEXER=false -p 4321:4321 -p 1234:1234 hyle
🛠️ Note: If you encounter permission issues with the
/hyle/data
volume, add the--privileged
flag.
To start the monitoring stack:
docker compose -f tools/docker-compose.yml up -d
Grafana is accessible at: http://localhost:3000
To stop the monitoring stack:
docker compose -f tools/docker-compose.yml down
Run the following command to enable the profiling
profile, which is optimised but retains debug symbols:
cargo run --profile profiling
- For advanced analysis, we recommend Samply.
Hylé includes built-in support for the dhat
crate, which uses the Valgrind DHAT viewer for memory profiling.
To enable this feature, add the dhat
feature flag. Use it selectively, as it has a runtime performance cost.