Peercoin website to give free peercoins
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app strip address before validation Jan 28, 2014
bin
config
db
lib
log
public
vendor/assets
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
config.ru

README.rdoc

Peercoin Faucet

A Rails application to run a peercoin faucet website.

Available on peercoinfaucet.com

You can also give and receive peercoins on the testnet blockchain on testnet.peercoinfaucet.com

Installation

  • Install Ruby 1.9+

  • Install the bundler gem (you may need root):

    gem install bundler
  • Install git

  • Clone the repository

    git clone https://github.com/sigmike/peercoin-faucet.git
    cd peercoin-faucet
  • Decide a database backend:

    • sqlite3: easiest to setup, only install the sqlite3 development libraries and you're ready, but may not be good enough for production

    • postgresql or mysql: install the development libraries, and create a database

  • Install the gems without the databases you don't want. Examples:

    bundle install --without mysql postgresql
    bundle install --without sqlite3 mysql
  • Create database.yml.

    • Example for sqlite3:

      production:
        adapter: sqlite3
        database: db/production.sqlite3
        pool: 5
        timeout: 5000
    • Example for postgresql:

      production:
        adapter: postgresql
        host: localhost
        database: peercoin_faucet
        username: peercoin_faucet
        password: password
        encoding: unicode
        pool: 5
    • Example for mysql:

      production:
        adapter: mysql2
        database: peercoin_faucet
        host: localhost
        username: peercoin_faucet
        password: password
  • Create config.yml

    cp config/config.yml{.example,}
  • Edit config.yml (see below)

  • Initialize the database

    RAILS_ENV=production bundle exec rake db:migrate
  • Make sure ppcoind is running with RPC enabled

  • Run the server

    RAILS_ENV=production bundle exec rails server
  • Connect to the server at localhost:3000/

To make it run in production I recommend Phusion Passenger with Apache or nginx.

To fulfill request and update state, commands must be run frequently with cron. To display the cron you must use, run:

bundle exec whenever -s "environment=production"

To automatically setup your cron, run:

bundle exec whenever --update-crontab -s "environment=production"

Configuration

Sample config file:

ppcoind_path: ppcoind
ppcoind_account: ""
amount_per_request: 0.1
minimum_confirmations: 3
request_time_frame_duration: 1 hour
time_between_request_fulfilling: 30 minutes
secret: GENERATE A SECRET WITH "rake secret" AND PASTE IT HERE
captcha: true
recaptcha:
  public_key: YOUR RECAPTCHA PUBLIC KEY
  private_key: YOUR RECAPTCHA PRIVATE KEY
donation_address: PAkkURv3ZxYDMiU2qYjyYZj3ENGcM2eAR5
donation_currency: peercoins
tracking_code: >
  <!-- REPLACE WITH YOUR TRAFFIC TRACKING CODE -->
canonical_host: example.com
donation_request_url: http://example.com/
ppcoind_path

Path to the ppcoind executable.

ppcoind_account

The account on ppcoind used to determine the peercoin address, balance and to make transactions. The default account is the empty string “”.

amount_per_request

Amount given to each request.

minimum_confirmations

Minimum confirmations to determine balance.

request_time_frame_duration

Current time is divided in steps of this duration. An IP cannot create two requests in the same time frame. Format: “<amount> <unit>” where unit can be second, minute, hour, week, month or year (plural form is allowed).

time_between_request_fulfilling

Requests will be processed at this frequency. Same format as request_time_frame_duration.

secret

A random string used to sign cookies and prevent session forging. Run +bundle exec rake secret+ to generate one and paste it there.

captcha

Set to false to remove the captcha.

recaptcha

Set your public and private keys here if you enabled the captcha.

tracking_code

The visitor tracking code. Copy/paste the code provided by Google Analytics or your other tracker.

canonical_host

Optional forced hostname for the website. Access to the website using another hostname will redirect to this hostname (see github.com/tylerhunt/rack-canonical-host).

donation_request_url

The link that will be displayed when the faucet is empty.

Author

Michael Witrant

If you want to donate for this project, send

  • Bitcoins to 1pfUuPS7sfY5TY3Wh5B91tqjxcvwDPLH1

  • Peercoins to PAkkURv3ZxYDMiU2qYjyYZj3ENGcM2eAR5