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
Note: if you need sp1 verifier, enable the feature: sp1
cargo run -F sp1
To run the indexer, you can use the --pg
node argument:
cargo run -- --pg
It will start a postgres server for you, and will close it (with all its data) whenever you stop the node. This is usefull during development.
If you want data persistance, you can run the PostgreSQL server:
# Start PostgreSQL with default configuration:
docker run -d --rm --name pg_hyle -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres
and then in the hyle
root:
cargo run
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
# Build the dependency image, this is a cache layer for faster iteration builds
docker build . -t hyle-dep -f Dockerfile.dependencies
# Build the node image
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.