Skip to content
/ hyle Public

A sequencing and settlement layer to help you build provable apps that are minimally, yet sufficiently, onchain.

Notifications You must be signed in to change notification settings

Hyle-org/hyle

Repository files navigation

Hylé

Telegram Chat Build Status Code Coverage Twitter

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.ron config.ron

If a file named config.ron 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.

About

A sequencing and settlement layer to help you build provable apps that are minimally, yet sufficiently, onchain.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages