/hyle

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

Primary LanguageRustApache License 2.0Apache-2.0

Hylé

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

Repository for the Hylé chain. This repository is for the work-in-progress rust client. The older (but still maintained) Cosmos SDK based client can be found at hyle-cosmos.

Current status: WIP

Useful links

Getting Started with Cargo

cargo build
cargo run --bin node

Getting Started with Docker

Build locally

  docker build . -t hyle_image:v1

Run locally with Docker

  docker run -v ./db:/hyle/data -p 4321:4321 -p 1234:1234 hyle_image:v1

If you have permission errors when accessing /hyle/data volume, use "--privileged" cli flag.

Run locally with grafana and prometheus

Starting services

  docker compose -f tools/docker-compose.yml up -d

Submit blob transaction

  curl -X POST --location 'http://localhost:4321/v1/tx/send/blob' \
--header 'Content-Type: application/json' \
--data '{
    "identity": "ident",
    "blobs": [
        {
            "contract_name": "contrat de test",
            "data": []
        }
    ]
}'

Access Grafana

  http://localhost:3000

Stopping

  docker compose -f tools/docker-compose.yml down

Profiling and debugging

Run cargo run --profile profiling to enable the profiling profile, which is optimised but retains debug information.

CPU profiling

The tokio-console can be used for some simple debugging.

Otherwise, we recommend (samply)[https://github.com/mstange/samply].

Memory profiling

Hylé has built-in support for the dhat crate, which uses the valgrind dhat viewer for memory profiling. This has a runtime performance cost, so should only be enabled when needed. The corresponding feature is dhat.