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 --bin node

Run with Indexer

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

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

Interact with the Node

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

🐳 Getting Started with Docker

Build Locally

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

No packages published

Languages