Coder Social home page Coder Social logo

faucet's People

Contributors

boz avatar dmikey avatar flavioespinoza avatar sacreman avatar tombeynon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

faucet's Issues

Faucet Security

Purpose

To prevent abuse of the faucet by scripting new user accounts, we should implement a check to validate that a GitHub account is older than 6 months.

Requirements

  • The Users API allows to get public and private information about the authenticated user.
  • The field "created_at": "2008-01-14T04:33:35Z", should be used to validate the user was created more than 6 months ago.
  • Display an error message when a user's account is less than 6 months old. "Sorry we could not verify your account. Please contact us on discord.akash.network to get funding."
  • Perform this check when clicking "Connect to GitHub" and display any error messages on the following page.

Test Cases

  • Create a new GitHub account, try to request funding from the Facuet, and you should be rejected.

Other Context

User Login API Documentation

akash network faucet server

To support both testnet and mainnet onboarding, we need a configurable faucet server.

Requirements

  • Written in go with cosmos-sdk or nodejs with akashjs for communicating with networks.
  • Built into a docker image for deployment.
  • Configurable via command-line flags and environment variables.
  • Gate fund distribution by a github login (oauth)
  • Store distribution information (user-id from oauth, wallet address, amount, time) in a PostgreSQL database.
  • Allow rate-limiting distribution to users (once a day, etc...)
  • Serve both the front-end html (details in another ticket, initial server can be very rough), and any REST API that may be necessary.

Required Configuration

Name Default Description
NETWORK_RPC_NODE RPC node to access the network
NETWORK_CHAIN_ID chain-id of network to send funds on
POSTGRES_URL Postgres connection settings
FAUCET_DISTRIBUTION_AMOUNT 10000000uakt Token amount to send to users
FAUCET_WAIT_PERIOD 24h Minimum period of time between one user getting funds twice
FAUCET_REQUIRE_AUTH true Require (github.com oauth) authentication before sending funds

Also needed is a way to import a private key or wallet when running in docker.

Misc

A similar project (golang, cosmos-sdk, dockerized) can be found here.

I don't know if akashjs will support the wallet operations we need here. @dmikey might know how to make importing keys work in nodejs with akashjs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.