{"id":29574746,"url":"https://github.com/pyropy/registry","last_synced_at":"2025-07-19T08:39:36.602Z","repository":{"id":247950179,"uuid":"822691075","full_name":"pyropy/registry","owner":"pyropy","description":"Simple golang app that interacts with eth and ipfs. ","archived":false,"fork":false,"pushed_at":"2024-07-03T23:11:18.000Z","size":166,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-07-11T13:57:31.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyropy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-01T16:08:29.000Z","updated_at":"2024-07-11T13:57:37.121Z","dependencies_parsed_at":"2024-07-11T14:08:40.605Z","dependency_job_id":null,"html_url":"https://github.com/pyropy/registry","commit_stats":null,"previous_names":["pyropy/registry"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pyropy/registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyropy%2Fregistry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyropy%2Fregistry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyropy%2Fregistry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyropy%2Fregistry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyropy","download_url":"https://codeload.github.com/pyropy/registry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyropy%2Fregistry/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265905116,"owners_count":23846696,"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-07-19T08:39:36.079Z","updated_at":"2025-07-19T08:39:36.589Z","avatar_url":"https://github.com/pyropy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# File Registry\n\n![robot](banner.jpg)\n\nFile registry is a simple application that allows you to upload files to IPFS and register them on any EVM compatible\nblockchain.\n\n## Usage\n\nTo see the list of available commands, run the `make help` command:\n\n```bash\nUsage:\n  make [target]\n\nTargets:\n  all                    Build all packages and executables.\n  build                  Build the app.\n  clean                  Remove all executables and keys.\n  clean                  Run the app.\n  compile                Compile the solidity contract.\n  deploy                 Deploy the solidity contract.\n  dev-keygen             Generate a new development key (WARNING! Do not use for production).\n  devtools               Install recommended developer tools.\n  devtools-update        Update recommended developer tools.\n  help                   Get more info on make commands.\n  install-golangcilint   Install golangci-lint.\n  lint                   Lint whole repository.\n  test                   Run the tests.\n\n```\n\n## Dependencies\n\nFile registry requires the following dependencies to be installed:\n\n| Dependency | Usage                                                                          |\n|:----------:|--------------------------------------------------------------------------------|\n| **`geth`** | Used to generate private key used for signing the transactions.                |\n|   `solc`   | Used to compile Solidity contract to bytecode and generate JSON ABI file.      |\n|  `abigen`  | Used to generate Go interface for deploying and interacting with the contract. |\n\n### Optional dependencies\n\nIPFS node is also required to run the application. You can download ipfs daemon binary using your package manager or\nopt to use the one provided in `docker-compose.yml` file.\n\n### Installing dependencies\n\nTo easily install the dependencies using `brew`, run the following command:\n\n```bash\nmake devtools\n```\n\n## Building from the source\n\nIn order to build file registry binary, run the following command:\n\n```bash\nmake build\n```\n\nIf you wish to compile the Solidity contract before building the binary, you can run the following command:\n\n```bash\nmake all\n```\n\n## Generating private key\n\nBefore running the application, you need to generate a private key that will be used for signing the transactions. To\ngenerate a new private key, run the following command:\n\n```bash\nmake dev-keygen\n```\n\nThis will generate a new private key saved under `/tmp/eth_pk_file` and password file under `/tmp/eth_pk_password`.\n\n**WARNING!** Do not use the generated private key for production purposes. It is recommended to use a hardware wallet or\na secure key management system for production.\n\n## Running the application\n\nIn order to run the application you will need to setup your environment variables first. Example `.env.example` file is\nprovided in the repository. You can copy the example file and adjust the values to your needs.\n\nOnce you have configured the environment variables, you can run the application by running previously built binary or by\nexecuting `make run` command.\nIf you prefer to run the application in the docker container, there is a provided `docker-compose.yml` file.\n\n## Example requests\n\n### Upload file and register it in the file registry\n\nExample request:\n\n```bash\ncurl --location 'localhost:8000/v1/files' \\\n--form 'filePath=\"/tmp/coin.png\"' \\\n--form 'file=@\"/path/to/file\"'\n```\n\nExample response:\n\n```json\n{\n  \"cid\": \"/ipfs/bafkreihxhjf56iyjmxshsjsd5hjeqzpsmt2ftsltr6ykdat55kemzyo5uu\"\n}\n```\n\n### Retrieve file CID from the file registry\n\nExample request:\n\n```bash\ncurl --location 'http://localhost:8000/v1/files?filePath=%2Ftmp%2Fcoin.png'\n```\n\nExample response:\n\n```json\n{\n  \"cid\": \"/ipfs/bafkreihxhjf56iyjmxshsjsd5hjeqzpsmt2ftsltr6ykdat55kemzyo5uu\"\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyropy%2Fregistry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyropy%2Fregistry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyropy%2Fregistry/lists"}