1 unstable release
new 0.13.0-rc.3 | Mar 31, 2025 |
---|
#2 in #indexer
190KB
1K
SLoC
[!IMPORTANT]
main
is the development branch. When building applications or running examples, use the latest release instead.
Hylé
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)
📎 Useful Links
🚀 Getting Started
With Cargo
Start a Single-Node Devnet
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
Run with Indexer
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
Configuration
You can configure Hylé using environment variables or a configuration file:
Using a Configuration File
Copy the default configuration file to the directory where the node will run:
cp ./src/utils/conf_defaults.toml config.toml
If a file named config.toml
is present, it will be automatically loaded at node startup.
Using Environment Variables
Examples of configuration via environment variables:
HYLE_RUN_INDEXER=false
HYLE_CONSENSUS__SLOT_DURATION=100
🐳 Getting Started with Docker
Build Locally
# 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
Run Locally with Docker
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.
📊 Monitoring with Grafana and Prometheus
Starting Services
To start the monitoring stack:
docker compose -f tools/docker-compose.yml up -d
Access Grafana
Grafana is accessible at: http://localhost:3000
Stopping Services
To stop the monitoring stack:
docker compose -f tools/docker-compose.yml down
🛠️ Profiling and Debugging
Profiling Build
Run the following command to enable the profiling
profile, which is optimised but retains debug symbols:
cargo run --profile profiling
CPU Profiling
- For advanced analysis, we recommend Samply.
Memory Profiling
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.
Dependencies
~4–25MB
~307K SLoC