{"id":21019508,"url":"https://github.com/ceramicnetwork/ceramic-anchor-service","last_synced_at":"2025-08-10T16:40:15.248Z","repository":{"id":37000397,"uuid":"253761555","full_name":"ceramicnetwork/ceramic-anchor-service","owner":"ceramicnetwork","description":"Layer 2 service for anchoring batches of Ceramic commits into a single blockchain transaction.","archived":false,"fork":false,"pushed_at":"2024-08-05T20:07:26.000Z","size":39712,"stargazers_count":36,"open_issues_count":28,"forks_count":19,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-01-14T01:49:37.986Z","etag":null,"topics":["ceramic"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceramicnetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2020-04-07T10:31:51.000Z","updated_at":"2024-10-16T17:52:28.000Z","dependencies_parsed_at":"2024-04-11T21:50:38.798Z","dependency_job_id":null,"html_url":"https://github.com/ceramicnetwork/ceramic-anchor-service","commit_stats":null,"previous_names":[],"tags_count":134,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicnetwork%2Fceramic-anchor-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicnetwork%2Fceramic-anchor-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicnetwork%2Fceramic-anchor-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramicnetwork%2Fceramic-anchor-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceramicnetwork","download_url":"https://codeload.github.com/ceramicnetwork/ceramic-anchor-service/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234868166,"owners_count":18899232,"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":["ceramic"],"created_at":"2024-11-19T10:32:40.405Z","updated_at":"2025-01-20T23:02:44.178Z","avatar_url":"https://github.com/ceramicnetwork.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ceramic Anchor Service\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fceramicnetwork%2Fceramic-anchor-service.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fceramicnetwork%2Fceramic-anchor-service?ref=badge_shield)\n\nCeramic Anchor Service is a proof of concept implementation of an anchor service according to the Ceramic [specification](https://github.com/ceramicnetwork/specs).\n\nThis implementation currently uses the Ethereum blockchain but is built in order to be blockchain agnostic. It is fairly easy to add more modules to support other blockchains as well.\n\n## Usage (Docker)\n\n### Docker\n\n**Build the CAS image:**\n```sh\ndocker build . --target base -t cas\n```\n\n### Docker Compose\n\nDocker compose will run two instances of CAS--the api in \"server\" mode and the anchor worker in \"anchor\" mode.\n\n```sh\ndocker compose up\ndocker compose down\n```\n\n## Usage (Node.js)\n\nIn order to run the simulation you need to install [Node.js](https://nodejs.org).\nOnly major version 16 of Node.js is supported.\n\nConfiguration file is located under `./config` directory.\n\nIn order to run the application, you need to start the IPFS, Ganache, Postgres nodes locally.\n\nYou could do that by running:\n```shell\ndocker-compose up ipfs ganache database\n```\n\nThen run the following commands in a new terminal:\n\n```sh\nnpm run build\nnpm run start\n```\n\n## Testing\n\n1. Install node modules by running `npm install`\n1. Build source with `npm run build`\n1. Compile smart contracts\n    1. Install [foundry](https://github.com/foundry-rs/foundry)\n    1. `npm run installContractDeps`\n    1. `npm run buildContract`\n1. Run the tests: `npm run test`\n1. (Optional) Run tests with coverage: `npm run coverage`\n\n## Contributing\n\n### Config\n\nValues in the config files get their types auto-generated by [node-config-ts](https://github.com/tusharmath/node-config-ts) when running `npm run postinstall`.\n\n## Maintainers\n[@stephhuynh18](https://github.com/stephhuynh18)\n\n## License\n\nApache-2.0 OR MIT\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fceramicnetwork%2Fceramic-anchor-service.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fceramicnetwork%2Fceramic-anchor-service?ref=badge_large)\n\n## Team\n\nBuilt with  \u003cimg src=\"./resources/heart.png\" width=\"20\"/\u003e  from the [3Box Labs](https://3box.io) team.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramicnetwork%2Fceramic-anchor-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceramicnetwork%2Fceramic-anchor-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramicnetwork%2Fceramic-anchor-service/lists"}