{"id":13564549,"url":"https://github.com/rollkit/go-da","last_synced_at":"2025-04-03T21:31:04.039Z","repository":{"id":195512500,"uuid":"693056062","full_name":"rollkit/go-da","owner":"rollkit","description":"Generic Data Availability Interface for Modular Blockchains","archived":false,"fork":false,"pushed_at":"2025-03-26T02:16:55.000Z","size":194,"stargazers_count":49,"open_issues_count":13,"forks_count":23,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-03-29T05:42:06.100Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rollkit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-18T08:59:24.000Z","updated_at":"2025-03-21T13:15:34.000Z","dependencies_parsed_at":"2023-09-18T10:55:35.965Z","dependency_job_id":"28bc7f86-3999-4247-95cf-4dea783edeac","html_url":"https://github.com/rollkit/go-da","commit_stats":null,"previous_names":["rollkit/go-da"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollkit%2Fgo-da","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollkit%2Fgo-da/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollkit%2Fgo-da/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollkit%2Fgo-da/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rollkit","download_url":"https://codeload.github.com/rollkit/go-da/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247083093,"owners_count":20880771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:32.830Z","updated_at":"2025-04-03T21:31:01.837Z","avatar_url":"https://github.com/rollkit.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# go-da\n\ngo-da defines a generic Data Availability interface for modular blockchains.\n\n\u003c!-- markdownlint-disable MD013 --\u003e\n[![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)\n[![golangci-lint](https://github.com/rollkit/go-da/actions/workflows/lint.yml/badge.svg)](https://github.com/rollkit/go-da/actions/workflows/lint.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/rollkit/go-da)](https://goreportcard.com/report/github.com/rollkit/go-da)\n[![codecov](https://codecov.io/gh/rollkit/go-da/branch/main/graph/badge.svg?token=CWGA4RLDS9)](https://codecov.io/gh/rollkit/go-da)\n[![GoDoc](https://godoc.org/github.com/rollkit/go-da?status.svg)](https://godoc.org/github.com/rollkit/go-da)\n\u003c!-- markdownlint-enable MD013 --\u003e\n\n## DA Interface\n\n| Method        | Params                                                   | Return          |\n| ------------- | -------------------------------------------------------- | --------------- |\n| `MaxBlobSize` |                                                          | `uint64`        |\n| `Get`         | `ids []ID, namespace Namespace`                          | `[]Blobs`       |\n| `GetIDs`      | `height uint64, namespace Namespace`                     | `[]ID`          |\n| `GetProofs`      | `ids []id, namespace Namespace`                     | `[]Proof`          |\n| `Commit`      | `blobs []Blob, namespace Namespace`                      | `[]Commitment`  |\n| `Validate`    | `ids []Blob, proofs []Proof, namespace Namespace`        | `[]bool`        |\n| `Submit`      | `blobs []Blob, gasPrice float64, namespace Namespace`    | `[]ID` |\n\nNOTE: The `Namespace` parameter in the interface methods is optional and used\nonly on DA layers that support the functionality, for example Celestia\nnamespaces and Avail AppIDs.\n\n## Implementations\n\nThe following implementations are available:\n\n* [celestia-da](https://github.com/rollkit/celestia-da) implements Celestia as DA.\n* [avail-da](https://github.com/rollkit/avail-da) implements Polygon Avail as DA.\n\nIn addition the following helper implementations are available:\n\n* [DummyDA](https://github.com/rollkit/go-da/blob/main/test/dummy.go) implements\na Mock DA useful for testing.\n* [Proxy](https://github.com/rollkit/go-da/tree/main/proxy) implements a proxy\nserver that forwards requests to a gRPC server. The proxy client\ncan be used directly to interact with the DA service.\n\n## Helpful commands\n\n```sh\n# Generate protobuf files. Requires docker.\nmake proto-gen\n\n# Lint protobuf files. Requires docker.\nmake proto-lint\n\n# Run tests.\nmake test\n\n# Run linters (requires golangci-lint, markdownlint, hadolint, and yamllint)\nmake lint\n```\n\n## Contributing\n\nWe welcome your contributions! Everyone is welcome to contribute, whether it's\nin the form of code, documentation, bug reports, feature\nrequests, or anything else.\n\nIf you're looking for issues to work on, try looking at the\n[good first issue list](https://github.com/rollkit/go-da/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).\nIssues with this tag are suitable for a new external contributor and is a great\nway to find something you can help with!\n\nPlease join our\n[Community Discord](https://discord.com/invite/YsnTPcSfWQ)\nto ask questions, discuss your ideas, and connect with other contributors.\n\n## Code of Conduct\n\nSee our Code of Conduct [here](https://docs.celestia.org/community/coc).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollkit%2Fgo-da","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frollkit%2Fgo-da","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollkit%2Fgo-da/lists"}