{"id":25623849,"url":"https://github.com/base/blob-archiver","last_synced_at":"2025-04-05T06:01:26.772Z","repository":{"id":222073266,"uuid":"751145715","full_name":"base/blob-archiver","owner":"base","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-03T19:21:18.000Z","size":199,"stargazers_count":109,"open_issues_count":11,"forks_count":70,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-29T05:01:40.478Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/base.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":"2024-02-01T02:35:42.000Z","updated_at":"2025-03-24T13:23:45.000Z","dependencies_parsed_at":"2024-02-27T17:46:09.609Z","dependency_job_id":"71da3f9f-e896-4394-9e91-c9093a60b0ca","html_url":"https://github.com/base/blob-archiver","commit_stats":null,"previous_names":["base-org/blob-archiver","base/blob-archiver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fblob-archiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fblob-archiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fblob-archiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/base%2Fblob-archiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/base","download_url":"https://codeload.github.com/base/blob-archiver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294514,"owners_count":20915340,"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":"2025-02-22T12:10:56.773Z","updated_at":"2025-04-05T06:01:26.692Z","avatar_url":"https://github.com/base.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blob Archiver\nThe Blob Archiver is a service to archive and allow querying of all historical blobs from the beacon chain. It consists \nof two components:\n\n* **Archiver** - Tracks the beacon chain and writes blobs to a storage backend\n* **API** - Implements the blob sidecars [API](https://ethereum.github.io/beacon-APIs/#/Beacon/getBlobSidecars), which \nallows clients to retrieve blobs from the storage backend\n\n### Storage\nThere are currently two supported storage options:\n\n* On-disk storage - Blobs are written to disk in a directory\n* S3 storage - Blobs are written to an S3 bucket (or compatible service)\n\nYou can control which storage backend is used by setting the `BLOB_API_DATA_STORE` and `BLOB_ARCHIVER_DATA_STORE` to \neither `file` or `s3`.\n\nThe `s3` backend will also work with (for example) Google Cloud Storage buckets (instructions [here](https://medium.com/google-cloud/using-google-cloud-storage-with-minio-object-storage-c994fe4aab6b)). \n\n### Data Validity\nCurrently, the archiver and api do not validate the beacon node's data. Therefore, it's important to either trust the \nBeacon node, or validate the data in the client. There is an open [issue](https://github.com/base/blob-archiver/issues/4) \nto add data validation to the archiver and api.\n\n### Development\nThe `Makefile` contains a number of commands for development:\n\n```sh\n# Run the tests\nmake test\n# Run the integration tests (will start a local S3 bucket)\nmake integration \n\n# Lint the project\nmake lint\n\n# Build the project\nmake build\n\n# Check all tests, formatting, building\nmake check\n```\n\n#### Run Locally\nTo run the project locally, you should first copy `.env.template` to `.env` and then modify the environment variables\nto your beacon client and storage backend of choice. Then you can run the project with:\n\n```sh\ndocker compose up\n```\n\nYou can see a full list of configuration options by running:\n```sh\n# API\ngo run api/cmd/main.go\n\n# Archiver\ngo run archiver/cmd/main.go\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbase%2Fblob-archiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbase%2Fblob-archiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbase%2Fblob-archiver/lists"}