Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: add readme #32

Merged
merged 4 commits into from
Jan 19, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# go-da

go-da defines a generic Data Availability interface for modular blockchains.

<!-- markdownlint-disable MD013 -->
[![build-and-test](https://github.com/rollkit/go-da/actions/workflows/ci_release.yml/badge.svg)](https://github.com/rollkit/go-da/actions/workflows/ci_release.yml)
[![golangci-lint](https://github.com/rollkit/go-da/actions/workflows/lint.yml/badge.svg)](https://github.com/rollkit/go-da/actions/workflows/lint.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/rollkit/go-da)](https://goreportcard.com/report/github.com/rollkit/go-da)
[![codecov](https://codecov.io/gh/rollkit/go-da/branch/main/graph/badge.svg?token=CWGA4RLDS9)](https://codecov.io/gh/rollkit/go-da)
[![GoDoc](https://godoc.org/github.com/rollkit/go-da?status.svg)](https://godoc.org/github.com/rollkit/go-da)
<!-- markdownlint-enable MD013 -->

## DA Interface

| Method | Params | Return |
| ----------- |-------------------------------| -------------|
| `MaxBlobSize` | | `uint64` |
| `Get` | `ids []ID` | `[]Blobs` |
| `GetIDs` | `height uint64` | `[]ID` |
| `Commit` | `blobs []Blob` | `[]Commitment` |
| `Validate` | `ids []Blob, proofs []Proof` | `[]bool` |

## Implementations

The following implementations are available:

* [celestia-da](https://github.com/rollkit/celestia-da) implements Celestia as DA.
* [avail-da](https://github.com/rollkit/avail-da) implements Polygon Avail as DA.

In addition the following helper implementations are available:

* [DummyDA](https://github.com/rollkit/go-da/blob/main/test/dummy.go) implements
a Mock DA useful for testing.
* [Proxy](https://github.com/rollkit/go-da/tree/main/proxy) implements a proxy
server that forwards requests to a gRPC server. The proxy client
can be used directly to interact with the DA service.

## Helpful commands

```sh
# Generate protobuf files. Requires docker.
make proto-gen

# Lint protobuf files. Requires docker.
make proto-lint

# Run tests.
make test

# Run linters (requires golangci-lint, markdownlint, hadolint, and yamllint)
make lint
```

## Contributing

We welcome your contributions! Everyone is welcome to contribute, whether it's
in the form of code, documentation, bug reports, feature
requests, or anything else.

If you're looking for issues to work on, try looking at the
[good first issue list](https://github.com/rollkit/go-da/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
Issues with this tag are suitable for a new external contributor and is a great
way to find something you can help with!

Please join our
[Community Discord](https://discord.com/invite/YsnTPcSfWQ)
to ask questions, discuss your ideas, and connect with other contributors.

## Code of Conduct

See our Code of Conduct [here](https://docs.celestia.org/community/coc).
Loading