I've been hacking away every now and then on an open source bitcoin payment service (BPS - https://github.com/matholroyd/bps
), where the intention is that individuals or small businesses can use it to accept payments.
Currently its not useable as some key features for a v1 release are missing, but I figure I should announce it rather than just sitting on it. You can see a demo BPS setup at https://bps.herokuapp.com. It is running in "demo" mode so you can log in as admin, etc.
Here's a breakdown of the key features and limitations:Features:
Missing features - would want in v1 release:
- Designed from ground-up to be hosted on Heroku (http://heroku.com) using their free plan. Consequently should be trivial for someone familiar with Rails to get it running on another host.
- Has simple API 3rd parties can use to make payments.
- With small knowledge of Heroku/Rails/Ruby, anyone can setup a payment service for themselves + friends. Step-by-step instructions are given on github page.
- Automated backups.
- Automatic forwarding of payments, e.g. to personal wallet on desktop computer.
- Sending bitcoins to someone else.
- Admin interface looks ugly.
Limitations - due to Heroku free plan
- Private keys stored encrypted on server.
- Encrypting of private keys before they even hit the server - aka Blockchain.info style.
- Email notifications of payments.
- Emailing of backups.
- Instructions on hosting besides Heroku.
Goals of project
- Rails apps hosted on the free plan are "hibernated" by Heroku if they have not been accessed for some time, hence the first person to use the service after a while has to wait ~15 seconds before the app will give a response.
- Automatic checking of payments can only be done every ~1 hour on the free plan at most. Any more frequently and you have to start paying.
I realize there are many bitcoin payment services out there, many fantastic. My motivations for hacking on BPS, besides being a bit of fun, were:
- Make it easy for bitcoin enthusiasts to get their friends into accepting bitcoin payments. BPS is designed to be setup on Heroku by one person, then "locked" to another person.
- Only have to remember a domain name when paying someone, rather then copy/paste bitcoin addresses. E.g. if a friend has a BPS setup for themselves, you can go to their site to get a unique bitcoin address while leaving a description of the payment, e.g. "Payment for dinner last night".
- 3rd parties can take advantage of the API to make sending bitcoins to customer's trivial. For example on http://bitpiggy.com, customers buying bitcoins currently have to type in their bitcoin address. However, if someone has a BPS setup for themselves, and BitPiggy was altered to understand the API, then customers could instead just type in their BPS domain name, e.g. bps.bobsmith.com.
- Continuing on from the previous point, bitcoin clients could be altered to understand the API, and thus when using them to pay someone, you could type in their BPS domain.
- Reduce reliance on 3rd parties for shops to accept bitcoin payments.
Also one final note. I suspect there's some projects out there with the similar intentions. Thus hopefully there's something unique about this BPS project that is of benefit to people out there.