datahaven-xyz/datahavenPublic

An EVM compatible Substrate chain, powered by StorageHub and secured by EigenLayer

AI summary: A verifiable decentralized storage network secured by EigenLayer for AI training data and Web3 applications.

Stars
7.9K
Forks
146
Watchers
27
Open issues
0
Open PRs
1
Contributors
~10
Commits
424
Branches
43

RustGPL-3.0Created Mar 6, 2025Last push 3mo agoLatest release v0.26.0+-6 stars this week+-8 this month

Star history

since Nov 16, 2025
02K4K6KNov 2025Feb 2026May 2026Aug 2026
7.9K stars as of Aug 7, 2026, tracked back to Nov 16, 2025. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 1 commit2025-08-07: 1 commit2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 1 commit2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 1 commit2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 2 commits2025-08-19: 1 commit2025-08-20: 0 commits2025-08-21: 1 commit2025-08-22: 1 commit2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 5 commits2025-09-03: 2 commits2025-09-04: 2 commits2025-09-05: 1 commit2025-09-06: 0 commits2025-09-07: 2 commits2025-09-08: 2 commits2025-09-09: 1 commit2025-09-10: 1 commit2025-09-11: 4 commits2025-09-12: 5 commits2025-09-13: 0 commits2025-09-14: 1 commit2025-09-15: 1 commit2025-09-16: 2 commits2025-09-17: 6 commits2025-09-18: 8 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 1 commit2025-09-23: 4 commits2025-09-24: 3 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 1 commit2025-09-28: 0 commits2025-09-29: 2 commits2025-09-30: 5 commits2025-10-01: 1 commit2025-10-02: 2 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 4 commits2025-10-07: 2 commits2025-10-08: 3 commits2025-10-09: 3 commits2025-10-10: 6 commits2025-10-11: 3 commits2025-10-12: 1 commit2025-10-13: 2 commits2025-10-14: 1 commit2025-10-15: 8 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 2 commits2025-10-21: 1 commit2025-10-22: 1 commit2025-10-23: 4 commits2025-10-24: 3 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 4 commits2025-10-28: 3 commits2025-10-29: 4 commits2025-10-30: 6 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 2 commits2025-11-03: 4 commits2025-11-04: 2 commits2025-11-05: 1 commit2025-11-06: 2 commits2025-11-07: 4 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 7 commits2025-11-11: 0 commits2025-11-12: 1 commit2025-11-13: 1 commit2025-11-14: 0 commits2025-11-15: 1 commit2025-11-16: 2 commits2025-11-17: 0 commits2025-11-18: 2 commits2025-11-19: 2 commits2025-11-20: 1 commit2025-11-21: 0 commits2025-11-22: 6 commits2025-11-23: 0 commits2025-11-24: 2 commits2025-11-25: 3 commits2025-11-26: 1 commit2025-11-27: 2 commits2025-11-28: 2 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 7 commits2025-12-03: 2 commits2025-12-04: 2 commits2025-12-05: 2 commits2025-12-06: 0 commits2025-12-07: 1 commit2025-12-08: 0 commits2025-12-09: 2 commits2025-12-10: 2 commits2025-12-11: 0 commits2025-12-12: 2 commits2025-12-13: 0 commits2025-12-14: 1 commit2025-12-15: 1 commit2025-12-16: 2 commits2025-12-17: 0 commits2025-12-18: 2 commits2025-12-19: 3 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 1 commit2025-12-23: 1 commit2025-12-24: 1 commit2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 4 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 2 commits2026-01-03: 1 commit2026-01-04: 0 commits2026-01-05: 2 commits2026-01-06: 3 commits2026-01-07: 5 commits2026-01-08: 1 commit2026-01-09: 3 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 3 commits2026-01-13: 1 commit2026-01-14: 2 commits2026-01-15: 0 commits2026-01-16: 1 commit2026-01-17: 1 commit2026-01-18: 0 commits2026-01-19: 1 commit2026-01-20: 4 commits2026-01-21: 1 commit2026-01-22: 2 commits2026-01-23: 2 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 1 commit2026-01-27: 2 commits2026-01-28: 0 commits2026-01-29: 3 commits2026-01-30: 1 commit2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 3 commits2026-02-03: 2 commits2026-02-04: 1 commit2026-02-05: 3 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 1 commit2026-02-10: 2 commits2026-02-11: 0 commits2026-02-12: 1 commit2026-02-13: 0 commits2026-02-14: 1 commit2026-02-15: 0 commits2026-02-16: 1 commit2026-02-17: 1 commit2026-02-18: 1 commit2026-02-19: 0 commits2026-02-20: 2 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 3 commits2026-02-25: 2 commits2026-02-26: 0 commits2026-02-27: 1 commit2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 2 commits2026-03-03: 4 commits2026-03-04: 3 commits2026-03-05: 0 commits2026-03-06: 1 commit2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 1 commit2026-03-10: 0 commits2026-03-11: 2 commits2026-03-12: 0 commits2026-03-13: 3 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 2 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 1 commit2026-03-25: 0 commits2026-03-26: 2 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 1 commit2026-03-31: 1 commit2026-04-01: 0 commits2026-04-02: 1 commit2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 1 commit2026-04-12: 0 commits2026-04-13: 1 commit2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 1 commit2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
310 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Repeat trending

    4 trending appearances

What datahaven does

DataHaven provides a decentralized storage and retrieval network that separates physical data storage from cryptographic verification. Built on Substrate and StorageHub, it chunks and hashes files into Merkle trees, anchoring the commitments on-chain. This allows Main Storage Providers to serve data efficiently while Backup Storage Providers undergo randomized proof challenges to guarantee data redundancy, all economically secured via Ethereum restaking on EigenLayer.

Web3 developers, AI researchers, and data engineers needing highly secure, verifiable, and decentralized storage solutions integrated with the Ethereum ecosystem.

  • Verifiable data integrity: Files are chunked and hashed into Merkle trees with roots anchored on-chain for tamper-evident verification.
  • Dual-tier provider network: Main Storage Providers handle fast retrieval while Backup Storage Providers ensure redundancy.
  • EigenLayer restaking security: Validators register as operators via smart contracts, utilizing Ethereum's economic security.
  • EVM compatibility: Supports deploying Solidity smart contracts via Frontier pallets on the Substrate chain.
  • Trustless cross-chain bridging: Utilizes Snowbridge for native token transfers and message passing between Ethereum and DataHaven.
  • Cryptographic proof challenges: Network automatically penalizes providers through on-chain slashing if they fail to prove data custody.

Where teams use it

Verifiable AI Training Data

Storing massive datasets for machine learning models where researchers need cryptographic proof that the data has not been tampered with.

DePIN Infrastructure Storage

Providing persistent, tamper-proof storage for IoT sensor data and operational logs with provable data lineage.

Real World Asset Documentation

Securing immutable records of asset ownership and compliance data requiring on-chain verification.

Getting started: cd test && bun i && bun cli launch

README

main branch

DataHaven 🫎

AI-First Decentralized Storage secured by EigenLayer — a verifiable storage network for AI training data, machine learning models, and Web3 applications.

Overview

DataHaven is a decentralized storage and retrieval network designed for applications that need verifiable, production-scale data storage. Built on StorageHub and secured by EigenLayer's restaking protocol, DataHaven separates storage from verification: providers store data off-chain while cryptographic commitments are anchored on-chain for tamper-evident verification.

Core Capabilities:

  • Verifiable Storage: Files are chunked, hashed into Merkle trees, and committed on-chain — enabling cryptographic proof that data hasn't been tampered with
  • Provider Network: Main Storage Providers (MSPs) serve data with competitive offerings, while Backup Storage Providers (BSPs) ensure redundancy through decentralized replication with on-chain slashing for failed proof challenges
  • EigenLayer Security: Validator set secured by Ethereum restaking — DataHaven validators register as EigenLayer operators with slashing for misbehavior
  • EVM Compatibility: Full Ethereum support via Frontier pallets for smart contracts and familiar Web3 tooling
  • Cross-chain Bridge: Native, trustless bridging with Ethereum via Snowbridge for tokens and messages

Architecture

DataHaven combines EigenLayer's shared security with StorageHub's decentralized storage infrastructure:

┌─────────────────────────────────────────────────────────────────────────────┐
│                              Ethereum (L1)                                  │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  EigenLayer AVS Contracts                                             │  │
│  │  • DataHavenServiceManager (validator lifecycle & slashing)           │  │
│  │  • RewardsRegistry (validator performance & rewards)                  │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
│                                    ↕                                        │
│                          Snowbridge Protocol                                │
│                    (trustless cross-chain messaging)                        │
└─────────────────────────────────────────────────────────────────────────────┘
                                     ↕
┌─────────────────────────────────────────────────────────────────────────────┐
│                          DataHaven (Substrate)                              │
│  ┌───────────────────────────────────────────────────────────────────────┐  │
│  │  StorageHub Pallets                     DataHaven Pallets             │  │
│  │  • file-system (file operations)        • External Validators         │  │
│  │  • providers (MSP/BSP registry)         • Native Transfer             │  │
│  │  • proofs-dealer (challenge/verify)     • Rewards                     │  │
│  │  • payment-streams (storage payments)   • Frontier (EVM)              │  │
│  │  • bucket-nfts (bucket ownership)                                     │  │
│  └───────────────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────────┘
                                     ↕
┌─────────────────────────────────────────────────────────────────────────────┐
│                        Storage Provider Network                             │
│  ┌─────────────────────────────┐    ┌─────────────────────────────┐        │
│  │  Main Storage Providers     │    │  Backup Storage Providers   │        │
│  │  (MSP)                      │    │  (BSP)                      │        │
│  │  • User-selected            │    │  • Network-assigned         │        │
│  │  • Serve read requests      │    │  • Replicate data           │        │
│  │  • Anchor bucket roots      │    │  • Proof challenges         │        │
│  │  • MSP Backend service      │    │  • On-chain slashing        │        │
│  └─────────────────────────────┘    └─────────────────────────────┘        │
│  ┌─────────────────────────────┐    ┌─────────────────────────────┐        │
│  │  Indexer                    │    │  Fisherman                  │        │
│  │  • Index on-chain events    │    │  • Audit storage proofs     │        │
│  │  • Query storage metadata   │    │  • Trigger challenges       │        │
│  │  • PostgreSQL backend       │    │  • Detect misbehavior       │        │
│  └─────────────────────────────┘    └─────────────────────────────┘        │
└─────────────────────────────────────────────────────────────────────────────┘

How Storage Works

  1. Upload: User selects an MSP, creates a bucket, and uploads files. Files are chunked (8KB default), hashed into Merkle trees, and the root is anchored on-chain.
  2. Replication: The MSP coordinates with BSPs to replicate data across the network based on the bucket's replication policy.
  3. Retrieval: MSP returns files with Merkle proofs that users verify against on-chain commitments.
  4. Verification: BSPs face periodic proof challenges — failure to prove data custody results in on-chain slashing via StorageHub pallets.

Repository Structure

datahaven/
├── contracts/      # EigenLayer AVS smart contracts
│   ├── src/       # Service Manager, Rewards Registry, Slasher
│   ├── script/    # Deployment scripts
│   └── test/      # Foundry test suites
├── operator/       # Substrate-based DataHaven node
│   ├── node/      # Node implementation & chain spec
│   ├── pallets/   # Custom pallets (validators, rewards, transfers)
│   └── runtime/   # Runtime configurations (mainnet/stagenet/testnet)
├── test/           # E2E testing framework
│   ├── suites/    # Integration test scenarios
│   ├── framework/ # Test utilities and helpers
│   └── launcher/  # Network deployment automation
├── deploy/         # Kubernetes deployment charts
│   ├── charts/    # Helm charts for nodes and relayers
│   └── environments/ # Environment-specific configurations
├── tools/          # GitHub automation and release scripts
└── .github/        # CI/CD workflows

Each directory contains its own README with detailed information. See:

Quick Start

Prerequisites

  • Kurtosis - Network orchestration
  • Bun v1.3.2+ - TypeScript runtime
  • Docker - Container management
  • Foundry - Solidity toolkit
  • Rust - For building the operator
  • Helm - Kubernetes deployments (optional)
  • Zig - For macOS cross-compilation (macOS only)

Launch Local Network

The fastest way to get started is with the interactive CLI:

cd test
bun i                    # Install dependencies
bun cli launch           # Interactive launcher with prompts

This deploys a complete environment including:

  • Ethereum network: 2x EL clients (reth), 2x CL clients (lodestar)
  • Block explorers: Blockscout (optional), Dora consensus explorer
  • DataHaven node: Single validator with fast block times
  • Storage providers: MSP and BSP nodes for decentralized storage
  • AVS contracts: Deployed and configured on Ethereum
  • Snowbridge relayers: Bidirectional message passing

For more options and detailed instructions, see the test README.

Run Tests

cd test
bun test:e2e              # Run all integration tests
bun test:e2e:parallel     # Run with limited concurrency

NOTES: Adding the environment variable INJECT_CONTRACTS=true will inject the contracts when starting the tests to speed up setup.

Development Workflows

Smart Contract Development:

cd contracts
forge build               # Compile contracts
forge test                # Run contract tests

Node Development:

cd operator
cargo build --release --features fast-runtime
cargo test
./scripts/run-benchmarks.sh

After Making Changes:

cd test
bun generate:wagmi        # Regenerate contract bindings
bun generate:types        # Regenerate runtime types

Key Features

Verifiable Decentralized Storage

Production-scale storage with cryptographic guarantees:

  • Buckets: User-created containers managed by an MSP, summarized by a Merkle-Patricia trie root on-chain
  • Files: Deterministically chunked, hashed into Merkle trees, with roots serving as immutable fingerprints
  • Proofs: Merkle proofs enable verification of data integrity without trusting intermediaries
  • Audits: BSPs prove ongoing data custody via randomized proof challenges

Storage Provider Network

Two-tier provider model balancing performance and reliability:

  • MSPs: User-selected providers offering data retrieval with competitive service offerings
  • BSPs: Network-assigned backup providers ensuring data redundancy and availability, with on-chain slashing for failed proof challenges
  • Fisherman: Auditing service that monitors proofs and triggers challenges for misbehavior
  • Indexer: Indexes on-chain storage events for efficient querying

EigenLayer Security

DataHaven validators secured through Ethereum restaking:

  • Validators register as operators via DataHavenServiceManager contract
  • Economic security through ETH restaking
  • Slashing for validator misbehavior (separate from BSP slashing which is on-chain)
  • Performance-based validator rewards through RewardsRegistry

EVM Compatibility

Full Ethereum Virtual Machine support via Frontier pallets:

  • Deploy Solidity smart contracts
  • Use existing Ethereum tooling (MetaMask, Hardhat, etc.)
  • Compatible with ERC-20, ERC-721, and other standards

Cross-chain Communication

Trustless bridging via Snowbridge:

  • Native token transfers between Ethereum ↔ DataHaven
  • Cross-chain message passing
  • Finality proofs via BEEFY consensus
  • Three specialized relayers (beacon, BEEFY, execution)

Use Cases

DataHaven is designed for applications requiring verifiable, tamper-proof data storage:

  • AI & Machine Learning: Store training datasets, model weights, and agent configurations with cryptographic proofs of integrity — enabling federated learning and verifiable AI pipelines
  • DePIN (Decentralized Physical Infrastructure): Persistent storage for IoT sensor data, device configurations, and operational logs with provable data lineage
  • Real World Assets (RWAs): Immutable storage for asset documentation, ownership records, and compliance data with on-chain verification

Docker Images

Production images published to DockerHub.

Build optimizations:

Build locally:

cd test
bun build:docker:operator    # Creates datahavenxyz/datahaven:local

Development Environment

VS Code Configuration

IDE configurations are excluded from version control for personalization, but these settings are recommended for optimal developer experience. Add to your .vscode/settings.json:

Rust Analyzer:

{
  "rust-analyzer.linkedProjects": ["./operator/Cargo.toml"],
  "rust-analyzer.cargo.allTargets": true,
  "rust-analyzer.procMacro.enable": false,
  "rust-analyzer.server.extraEnv": {
    "CARGO_TARGET_DIR": "target/.rust-analyzer",
    "SKIP_WASM_BUILD": 1
  },
  "rust-analyzer.diagnostics.disabled": ["unresolved-macro-call"],
  "rust-analyzer.cargo.buildScripts.enable": false
}

Optimizations:

  • Links operator/ directory as the primary Rust project
  • Disables proc macros and build scripts for faster analysis (Substrate macros are slow)
  • Uses dedicated target directory to avoid conflicts
  • Skips WASM builds during development

Solidity (Juan Blanco's extension):

{
  "solidity.formatter": "forge",
  "solidity.compileUsingRemoteVersion": "v0.8.28+commit.7893614a",
  "[solidity]": {
    "editor.defaultFormatter": "JuanBlanco.solidity"
  }
}

Note: Solidity version must match foundry.toml

TypeScript (Biome):

{
  "biome.lsp.bin": "test/node_modules/.bin/biome",
  "[typescript]": {
    "editor.defaultFormatter": "biomejs.biome",
    "editor.codeActionsOnSave": {
      "source.organizeImports.biome": "always"
    }
  }
}

CI/CD

Local CI Testing

Run GitHub Actions workflows locally using act:

# Run E2E workflow
act -W .github/workflows/e2e.yml -s GITHUB_TOKEN="$(gh auth token)"

# Run specific job
act -W .github/workflows/e2e.yml -j test-job-name

Automated Workflows

The repository includes GitHub Actions for:

  • E2E Testing: Full integration tests on PR and main branch
  • Contract Testing: Foundry test suites for smart contracts
  • Rust Testing: Unit and integration tests for operator
  • Docker Builds: Multi-platform image builds with caching
  • Release Automation: Version tagging and changelog generation

See .github/workflows/ for workflow definitions.

Contributing

Development Cycle

  1. Make Changes: Edit contracts, runtime, or tests
  2. Run Tests: Component-specific tests (forge test, cargo test)
  3. Regenerate Types: Update bindings if contracts/runtime changed
  4. Integration Test: Run E2E tests to verify cross-component behavior
  5. Code Quality: Format and lint (cargo fmt, forge fmt, bun fmt:fix)

Common Pitfalls

  • Type mismatches: Regenerate with bun generate:types after runtime changes
  • Contract changes not reflected: Run bun generate:wagmi after modifications
  • Kurtosis issues: Ensure Docker is running and Kurtosis engine is started
  • Slow development: Use --features fast-runtime for shorter epochs/eras (block time stays 6s)
  • Network launch hangs: Check Blockscout - forge output can appear frozen

See CLAUDE.md for detailed development guidance.

License

GPL-3.0 - See LICENSE file for details

Links

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

50 total
  1. DataHaven v0.26.0v0.26.0Mar 12, 202613 downloads

    ### DataHaven v0.26.0 release - Stagenet & Testnet environments only The main highlight of this client release is the upgrade to the [StorageHub v0.4.3 release](https://github.com/Moonsong-Labs/storage-hub/releases/tag/v0.4.3). ## DataHaven Changes * fix: :bug: wire `trusted_msps` only when the provider is a BSP by @TDemeco in https://github.com/datahaven-xyz/datahaven/pull/458 * build: ⬆️ upgrade to StorageHub v0.4.3 by @TDemeco in https://github.com/datahaven-xyz/datahaven/pull/468 ## StorageHub Changes StorageHub v0.4.3 is a focused **bug-fix release** that resolves a **repeated fingerprint upload issue** affecting MSPs. When an MSP already stored a file and received a second upload request for a different file key sharing the same fingerprint, the deduplication logic incorrectly rejected the upload because no new chunks were inserted (resulting in `chunks_count` of 0). The fix makes the file fingerprint the authoritative indicator of file completeness in file storage, relegating chunk count to progress tracking only. An integration test covering the scenario has been added. See the full release notes at [StorageHub v0.4.3 release](https://github.com/Moonsong-Labs

  2. Runtime RT1400RT1400Mar 12, 202614 downloads

    ### DataHaven RT1400 runtime release - Stagenet & Testnet environments only This runtime release brings incremental improvements in the validator rewards & slashing core mechanics. ## Runtimes ### Stagenet ``` ✨ spec_version : 1400 🏋 size : 1917848 #️⃣ sha256 : 0x1a324022069b7499b8d0a080173de8de11a0632aec8d87dd1b8470b0f73417fd #️⃣ blake2-256 : 0xb8914f35f930d291acdec60740bc5435d1f76d17ba570f0919960517174bd7ca 🗳️ proposal (authorizeUpgrade) : 0xb251415411e58200420d6a23337f29aef9f8b4d0f14623012dda992f8d67ec78 ``` ### Testnet ``` ✨ spec_version : 1400 🏋 size : 1919003 #️⃣ sha256 : 0x2da7b8a98099d2186459a587d7e73b4e81c7f0d14fe906dd3b76ccef48fb77cf #️⃣ blake2-256 : 0xc852e7a3673598acf70ad5ae4821f96c9db689978a62719819b73647ce609862 🗳️ proposal (authorizeUpgrade) : 0xdbe89a3c2bd0a4e16076034b1a4d6d722575b4f368572aa48cc744612eadf19d ``` ## Build information WASM runtime built using `rustc 1.88.0 (6b00bc388 2025-06-23)` ## Changes * fix: 🩹 use post-treasury-split amount in AVS rewards message (#459) *

  3. DataHaven v0.25.0v0.25.0Feb 25, 202611 downloads

    ### DataHaven v0.25.0 release - Stagenet & Testnet environments only The main highlight of this client release is the upgrade to the [StorageHub v0.4.2 release](https://github.com/Moonsong-Labs/storage-hub/releases/tag/v0.4.2). ## DataHaven Changes * build: :arrow_up: upgrade to StorageHub v0.4.2 by @TDemeco in https://github.com/datahaven-xyz/datahaven/pull/457 ## StorageHub Changes StorageHub v0.4.2 focuses on **MSP file recovery from BSPs**, **further Backend→MSP upload performance gains**, **fisherman deletion robustness**, and **build toolchain compatibility**. Highlights include a new MSP task that detects missing or incomplete files after bucket root verification and recovers them from BSP peers via a new trusted-MSP authorisation flow, deeper batched-write optimisation for the trusted upload path with a configurable batch size, adaptive tip escalation for fisherman deletion extrinsics to recover from forest-root conflicts, a correctness fix preventing accidental RocksDB creation when opening forests from disk. See the full release notes at [StorageHub v0.4.2 release](https://github.com/Moonsong-Labs/storage-hub/releases/tag/v0.4.2). ## ⚠️ Breaking Changes ⚠

  4. Runtime RT1300RT1300Feb 26, 202615 downloads

    ### DataHaven RT1300 runtime release - Stagenet & Testnet environments only This runtime release brings incremental improvements for the integration with EigenLayer, specifically regarding the validator set update flow. ## Runtimes ### Stagenet ``` ✨ spec_version : 1300 🏋 size : 1915005 #️⃣ sha256 : 0xde0ee076c0a0e899f946749d771cb22a72801dc284b95391f7128155876885e6 #️⃣ blake2-256 : 0x5d2b0482495cfd3e6d6863937725871d20795d66fc82f96b2cd915a72f362e5d 🗳️ proposal (authorizeUpgrade) : 0x9c65594321ab3c06656ff288a3ab556802b8da686119306bbf18c96663a68bd6 ``` ### Testnet ``` ✨ spec_version : 1300 🏋 size : 1916466 #️⃣ sha256 : 0xf40a591ef99cbba728bff7d15a07106d6a695408dd8498f42f4f93bac1968cb9 #️⃣ blake2-256 : 0x0ac61e7482c316f7345aab456fce2d2473ff713ec46cdecbbd333b2034d9b929 🗳️ proposal (authorizeUpgrade) : 0x200f2f8c3ff2b24859ddc8a32ed503df580dd9cd61c008c60a917ef2e7ee03b4 ``` ## Build information WASM runtime built using `rustc 1.88.0 (6b00bc388 2025-06-23)` ## Changes * feat: automated validator set su

  5. DataHaven v0.24.0v0.24.0Feb 16, 202615 downloads

    ### DataHaven v0.24.0 release - Stagenet & Testnet environments only The main highlight of this client release is the upgrade to the [StorageHub v0.4.1 release](https://github.com/Moonsong-Labs/storage-hub/releases/tag/v0.4.1). ## DataHaven Changes * build: :arrow_up: Upgrade to StorageHub 0.4.1 by @ffarall in https://github.com/datahaven-xyz/datahaven/pull/445 ## StorageHub Changes StorageHub v0.4.1 focuses on **transaction-lifecycle resilience and operator configurability** in the client. See the full release notes at [StorageHub v0.4.1 release](https://github.com/Moonsong-Labs/storage-hub/releases/tag/v0.4.1). ## ⚠️ Breaking Changes ⚠️ - [PR #684](https://github.com/Moonsong-Labs/storage-hub/pull/684): adds configurable `extrinsic_mortality` surfaces for provider and fisherman blockchain-service configuration/CLI wiring. Provider operators, fisherman operators, and node/client integrators should review and propagate the new options (`--extrinsic-mortality`, `--fisherman-extrinsic-mortality`, plus TOML keys) where they maintain custom configuration paths. ## Dependency changes DataHaven: https://github.com/datahaven-xyz/datahaven/compare/v0.23.0...v0.24.

Code frequency

additions and deletions
+32.7K-32.7KWeek of 2025-08-10: +914 linesWeek of 2025-08-10: -493 linesWeek of 2025-08-17: +10,471 linesWeek of 2025-08-17: -2,622 linesWeek of 2025-08-24: +0 linesWeek of 2025-08-24: -0 linesWeek of 2025-08-31: +25,593 linesWeek of 2025-08-31: -2,893 linesWeek of 2025-09-07: +13,123 linesWeek of 2025-09-07: -1,989 linesWeek of 2025-09-14: +2,485 linesWeek of 2025-09-14: -2,674 linesWeek of 2025-09-21: +2,550 linesWeek of 2025-09-21: -457 linesWeek of 2025-09-28: +5,265 linesWeek of 2025-09-28: -491 linesWeek of 2025-10-05: +32,733 linesWeek of 2025-10-05: -5,623 linesWeek of 2025-10-12: +890 linesWeek of 2025-10-12: -710 linesWeek of 2025-10-19: +2,265 linesWeek of 2025-10-19: -882 linesWeek of 2025-10-26: +8,467 linesWeek of 2025-10-26: -4,258 linesWeek of 2025-11-02: +2,852 linesWeek of 2025-11-02: -904 linesWeek of 2025-11-09: +6,315 linesWeek of 2025-11-09: -18,860 linesWeek of 2025-11-16: +27,524 linesWeek of 2025-11-16: -4,118 linesWeek of 2025-11-23: +802 linesWeek of 2025-11-23: -1,577 linesWeek of 2025-11-30: +6,692 linesWeek of 2025-11-30: -5,264 linesWeek of 2025-12-07: +577 linesWeek of 2025-12-07: -207 linesWeek of 2025-12-14: +4,293 linesWeek of 2025-12-14: -431 linesWeek of 2025-12-21: +1,141 linesWeek of 2025-12-21: -2,907 linesWeek of 2025-12-28: +479 linesWeek of 2025-12-28: -2,131 linesWeek of 2026-01-04: +24,847 linesWeek of 2026-01-04: -6,567 linesWeek of 2026-01-11: +5,010 linesWeek of 2026-01-11: -5,996 linesWeek of 2026-01-18: +10,347 linesWeek of 2026-01-18: -10,270 linesWeek of 2026-01-25: +712 linesWeek of 2026-01-25: -187 linesWeek of 2026-02-01: +14,184 linesWeek of 2026-02-01: -907 linesWeek of 2026-02-08: +787 linesWeek of 2026-02-08: -331 linesWeek of 2026-02-15: +4,521 linesWeek of 2026-02-15: -1,092 linesWeek of 2026-02-22: +2,109 linesWeek of 2026-02-22: -899 linesWeek of 2026-03-01: +8,757 linesWeek of 2026-03-01: -19,908 linesWeek of 2026-03-08: +1,717 linesWeek of 2026-03-08: -168 linesWeek of 2026-03-15: +88 linesWeek of 2026-03-15: -37 linesWeek of 2026-03-22: +4,036 linesWeek of 2026-03-22: -3,582 linesWeek of 2026-03-29: +3,410 linesWeek of 2026-03-29: -2,819 linesWeek of 2026-04-05: +25,117 linesWeek of 2026-04-05: -534 linesWeek of 2026-04-12: +2,879 linesWeek of 2026-04-12: -25,956 linesWeek of 2026-04-19: +0 linesWeek of 2026-04-19: -0 linesWeek of 2026-04-26: +0 linesWeek of 2026-04-26: -0 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesAug 10, 2025Aug 2, 2026
+264K lines added, -138.7K removed over the last year.

Commits per week

last 52 weeks
210Week of 2025-08-03: 2 commitsWeek of 2025-08-10: 2 commitsWeek of 2025-08-17: 5 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 10 commitsWeek of 2025-09-07: 15 commitsWeek of 2025-09-14: 18 commitsWeek of 2025-09-21: 9 commitsWeek of 2025-09-28: 10 commitsWeek of 2025-10-05: 21 commitsWeek of 2025-10-12: 12 commitsWeek of 2025-10-19: 11 commitsWeek of 2025-10-26: 17 commitsWeek of 2025-11-02: 15 commitsWeek of 2025-11-09: 10 commitsWeek of 2025-11-16: 13 commitsWeek of 2025-11-23: 10 commitsWeek of 2025-11-30: 13 commitsWeek of 2025-12-07: 7 commitsWeek of 2025-12-14: 9 commitsWeek of 2025-12-21: 3 commitsWeek of 2025-12-28: 7 commitsWeek of 2026-01-04: 14 commitsWeek of 2026-01-11: 8 commitsWeek of 2026-01-18: 10 commitsWeek of 2026-01-25: 7 commitsWeek of 2026-02-01: 9 commitsWeek of 2026-02-08: 5 commitsWeek of 2026-02-15: 5 commitsWeek of 2026-02-22: 6 commitsWeek of 2026-03-01: 10 commitsWeek of 2026-03-08: 6 commitsWeek of 2026-03-15: 2 commitsWeek of 2026-03-22: 3 commitsWeek of 2026-03-29: 3 commitsWeek of 2026-04-05: 1 commitsWeek of 2026-04-12: 2 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsAug 3, 2025Jul 26, 2026
310 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 1 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 1 commitsSun 15:00 — 1 commitsSun 16:00 — 1 commitsSun 17:00 — 0 commitsSun 18:00 — 1 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 2 commitsSun 22:00 — 0 commitsSun 23:00 — 3 commitsMon 0:00 — 2 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 3 commitsMon 10:00 — 4 commitsMon 11:00 — 3 commitsMon 12:00 — 7 commitsMon 13:00 — 6 commitsMon 14:00 — 11 commitsMon 15:00 — 7 commitsMon 16:00 — 7 commitsMon 17:00 — 7 commitsMon 18:00 — 3 commitsMon 19:00 — 5 commitsMon 20:00 — 4 commitsMon 21:00 — 5 commitsMon 22:00 — 4 commitsMon 23:00 — 4 commitsTue 0:00 — 2 commitsTue 1:00 — 1 commitsTue 2:00 — 0 commitsTue 3:00 — 1 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 4 commitsTue 8:00 — 3 commitsTue 9:00 — 2 commitsTue 10:00 — 4 commitsTue 11:00 — 7 commitsTue 12:00 — 9 commitsTue 13:00 — 8 commitsTue 14:00 — 7 commitsTue 15:00 — 10 commitsTue 16:00 — 6 commitsTue 17:00 — 5 commitsTue 18:00 — 3 commitsTue 19:00 — 4 commitsTue 20:00 — 2 commitsTue 21:00 — 4 commitsTue 22:00 — 3 commitsTue 23:00 — 2 commitsWed 0:00 — 2 commitsWed 1:00 — 1 commitsWed 2:00 — 1 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 1 commitsWed 7:00 — 1 commitsWed 8:00 — 5 commitsWed 9:00 — 4 commitsWed 10:00 — 4 commitsWed 11:00 — 3 commitsWed 12:00 — 3 commitsWed 13:00 — 6 commitsWed 14:00 — 12 commitsWed 15:00 — 9 commitsWed 16:00 — 8 commitsWed 17:00 — 6 commitsWed 18:00 — 4 commitsWed 19:00 — 4 commitsWed 20:00 — 3 commitsWed 21:00 — 3 commitsWed 22:00 — 2 commitsWed 23:00 — 4 commitsThu 0:00 — 5 commitsThu 1:00 — 1 commitsThu 2:00 — 2 commitsThu 3:00 — 1 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 0 commitsThu 7:00 — 2 commitsThu 8:00 — 2 commitsThu 9:00 — 6 commitsThu 10:00 — 6 commitsThu 11:00 — 7 commitsThu 12:00 — 10 commitsThu 13:00 — 9 commitsThu 14:00 — 10 commitsThu 15:00 — 4 commitsThu 16:00 — 8 commitsThu 17:00 — 1 commitsThu 18:00 — 2 commitsThu 19:00 — 1 commitsThu 20:00 — 0 commitsThu 21:00 — 1 commitsThu 22:00 — 5 commitsThu 23:00 — 1 commitsFri 0:00 — 2 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 2 commitsFri 9:00 — 2 commitsFri 10:00 — 6 commitsFri 11:00 — 4 commitsFri 12:00 — 5 commitsFri 13:00 — 5 commitsFri 14:00 — 6 commitsFri 15:00 — 7 commitsFri 16:00 — 5 commitsFri 17:00 — 1 commitsFri 18:00 — 3 commitsFri 19:00 — 3 commitsFri 20:00 — 4 commitsFri 21:00 — 1 commitsFri 22:00 — 1 commitsFri 23:00 — 1 commitsSat 0:00 — 3 commitsSat 1:00 — 1 commitsSat 2:00 — 1 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 2 commitsSat 11:00 — 2 commitsSat 12:00 — 1 commitsSat 13:00 — 0 commitsSat 14:00 — 1 commitsSat 15:00 — 1 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 2 commitsSat 19:00 — 1 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jan 17, 2026daily#23+141
Jan 15, 2026daily#19+146
Jan 14, 2026daily#8+296
Jan 13, 2026daily#1+748
  • awesome-selfhosted/awesome-selfhosted

    A list of Free Software network services and web applications which can be hosted on your own servers

    311.2K stars

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    234.7K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    227K stars · Python

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust