Skip to content

ZeroDAO/melodot

Repository files navigation

1. Introduction

Melodot is designed as a data availability layer for GB-level data throughput, featuring:

  1. Utilizes KZG commitments to ensure data is correctly encoded.
  2. Incorporates "farmers" so the system doesn't rely on the "minimal honest sampler" assumption.
  3. Distributively produced, achieving complete decentralization.
  4. Distributive data storage for availability.
  5. Validators act more like light clients, making it easier for sharding.

Melodot is actively under development; modules and interfaces are subject to significant changes. More details can be found in the documentation.

2. Building

Setup rust

Install Rust:

curl https://sh.rustup.rs -sSf | sh

You will also need to install the following packages:

mac

brew install cmake pkg-config openssl git llvm

Known Issue: Currently, it is not possible to compile on Mac. We will address this issue later.

Linux

sudo apt install cmake pkg-config libssl-dev git clang libclang-dev protobuf-compiler

More:Melodot is based on Substrate, for more information please go to Substrate.

Build

  1. Compile the melodot-node
make build-default
  1. Compile the light node, which may automatically install the sqlite database:
make build-light
  1. Compile the farmer node, which may automatically install the sqlite database:
make build-farmer

3. Run

You can start a development chain with:

make run-dev

To launch a light node:

make run-light-dev

You can also start a farmer node:

make run-farmer

4. Development

Test All

Use the following command to run all tests:

make test

You can learn more detailed testing methods from the testing guide , light client testing guide and farmer testing guide.

5. Docker

Start a Docker container:

./scripts/docker_run.sh

You can learn more about Docker examples from the testing guide and light client testing guide.

Reference