{"id":13566811,"url":"https://github.com/bitsongofficial/bitsong-faucet","last_synced_at":"2026-03-01T05:37:55.481Z","repository":{"id":41832825,"uuid":"453970007","full_name":"bitsongofficial/bitsong-faucet","owner":"bitsongofficial","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-28T11:34:07.000Z","size":579,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-04T21:37:12.493Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/bitsongofficial.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}},"created_at":"2022-01-31T10:55:16.000Z","updated_at":"2024-10-16T16:41:34.000Z","dependencies_parsed_at":"2022-08-11T18:50:48.075Z","dependency_job_id":null,"html_url":"https://github.com/bitsongofficial/bitsong-faucet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsongofficial%2Fbitsong-faucet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsongofficial%2Fbitsong-faucet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsongofficial%2Fbitsong-faucet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsongofficial%2Fbitsong-faucet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitsongofficial","download_url":"https://codeload.github.com/bitsongofficial/bitsong-faucet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247103290,"owners_count":20884023,"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:02:17.269Z","updated_at":"2026-03-01T05:37:55.410Z","avatar_url":"https://github.com/bitsongofficial.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\n# 🌌Bitsong Faucet\nThis application enables the users to receiver coins on the Bitsong Testnet. It can be called  through simple HTTP GET requests,\nwhose  single query parameter is the address of the wallet who wants to receive the coins.\n\nIt is empowered by an anti-bruteforce attack system and a jobs queue built on Redis.\n\nIt is also possible to see a documentation for the available APIs at ```/api```.\n## 🚀 Tech Stack\n\n**Server:** NestJS, Node.js, Redis and Swagger\n\n**Benchmark:** Python\n## 🌎 Environment Variables\n\nTo run this project you need to create a ```.env``` file. You can copy the example file by typing:\n\n```\ncp .env.example .env\n```\n\nThen, you should edit the variables. Their explaination follows:\n\n`FAUCET_MNEMONIC`\nFaucet mnemonic used for transaction signing\n\n`FAUCET_ADDRESS`\nFaucet address used for transaction\n\n`ADDRESS_PREFIX`\nAddress prefix used for receiver address validation\n\n`RPC_URL`\nLink to Bitsong RPC API\n\n`NODE_PORT`\nNode port used by server instance\n\n`QUEUE_MAX_JOBS`\nThe maximum number of items in the queue\n\n`QUEUE_DURATION`\nThe maximum duration of a queued job\n\n`THROTTLER_TTL`\nThe maximum duration of each throttle\n\n`THROTTLER_LIMIT`\nThe number of times an endpoint can be called from the same ip address in a TTL\n\n`REDIS_HOST`\nRedis server hostname\n\n`REDIS_PORT`\nRedis server port\n## ⚙️ Run Locally\n\nClone the project\n\n```bash\n  git clone https://github.com/bitsongofficial/bitsong-faucet.git\n```\n\nGo to the project directory\n\n```bash\n  cd bitsong-faucet\n```\n\nInstall dependencies\n\n```bash\n  pnpm i\n```\n\nOr you can use:\n\n```bash\n  npm i\n```\n\nStart docker container (Redis):\n\n```bash\n  docker-compose up -d\n```\n\nStart the server on dev mode:\n\n```bash\n  pnpm start:dev\n```\n\nStart the server on debug mode:\n\n```bash\n  pnpm start:debug\n```\n\nStart the server on prod mode:\n\n```bash\n  pnpm start:prod\n```\n\nMoreover if you want to start docker service and Node.js server on debug mode, you can use:\n\n```bash\n  start:debug-docker\n```\n\nBuild the server for production:\n```bash\n  pnpm build\n```\n## 💥 Benchmark\n\nCreate a virtual enviroment on python:\n\n```bash\n  python3 -m venv benchmark/env\n```\n\nActive the virtual enviroment:\n\n```bash\n  source benchmark/env/bin/activate\n```\nInstall dependencies:\n\n```bash\n  pip3 install -r benchmark/requirements.txt\n```\nRun the benchmark:\n\n```bash\n  python3 benchmark/main.py\n```\n## 👤 Authors\n- `Angelo Recca` [@angelorc](https://github.com/angelorc)\n\n- `Giorgio Nocera` [@Giorgionocera](https://github.com/Giorgionocera)\n\n- `Davide Segullo` [@DavideSegullo](https://github.com/DavideSegullo)\n## 🆘 Support\n\nFor support, email g.nocera@bitsong.io or join our [Discord](https://discord.gg/5VT5fJmF).\n## 🔏 License\nCopyright © 2022 [BitSong](https://github.com/bitsongofficial).\n\nThis project is licensed by [MIT License](https://api.github.com/licenses/mit).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitsongofficial%2Fbitsong-faucet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitsongofficial%2Fbitsong-faucet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitsongofficial%2Fbitsong-faucet/lists"}