Skip to content

covalenthq/ewm-das

Repository files navigation

DAS-Pinner + Light-Client

Go CI

DAS-Pinner is a lightweight IPFS service that stores and pins data on the IPFS network using web3.storage. It is designed to work seamlessly with the DAS Light-Client, enabling the retrieval of data from the IPFS network and its verification using the DAS protocol.

DAS Light-Client is a lightweight client that retrieves data from the IPFS network and verifies it using the DAS protocol. It is intended to complement the DAS-Pinner service, facilitating efficient data storage and retrieval from the IPFS network.

Current Iteration

DAS-Pinner + Light-Client

Previous Iteration

Iteration #1

Table of Contents

Building from Source

Prerequisites

  • Go 1.22 or later

Build Commands

Clone the repository:

git clone https://github.com/covalenthq/ewm-das
cd ewm-das

Install dependencies:

make deps

Build binaries:

make

Note: To build das-pinner with experimental features (stacking erasure coded cells together), run:

make build-pinner EXTRA_TAGS="-tags experimental"

The binaries will be built in the bin directory.

Clean Up

To clean up the build artifacts, run:

make clean

Running the Service

Light-Client

DAS-Pinner

Development

Formatting and Linting

To format the code, run:

make fmt

To lint the code, run:

make vet
make staticcheck

Note: The staticcheck command requires the staticcheck binary to be installed. For more information, see the staticcheck documentation.

Testing

To run tests, use the following command:

make test

To run tests with a coverage report:

make test-cover

TODO

TESTNET

  • LC workload management - verify only 1 validated (post consensus) block specimen cid per block height
  • DAS-pinner parity development to replace ipfs-pinner
  • Packaging and installation improvements
  • Workload distribution system v1
  • Authorization layer for LC proof submission v1 (PoA)
  • Guarantee LCs perform minimum sampling for availability
  • Collection-Reward distribution system v1

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Contributing

TODO: Add contribution guidelines