Skip to main content

Bitcoin/PostgreSQL bridge

Project description

https://travis-ci.org/tinybike/coinbridge.svg?branch=master https://badge.fury.io/py/coinbridge.svg

Bridge between Bitcoin and PostgreSQL.

Coinbridge connects the Bitcoin daemon (bitcoind) and a local PostgreSQL database. It listens for transaction confirmations and automatically updates a transactions table in your database.

Includes a “payment” method which uses free, instant Bitcoin transfers between accounts in the same wallet, and standard Bitcoin transactions otherwise. Also includes a comprehensive wrapper for Bitcoin’s JSON-RPC functionality.

Coinbridge has been tested with Bitcoin, but it should work for any altcoin that shares Bitcoin’s RPC command suite (i.e., most of them). To add a different coin, enter the new coin’s information into coinbridge/data/coins.json. For wallet listener functionality, you also need to create a coinbridge/newcoin-listen script with newcoin-cli (or newcoind) in place of bitcoin-cli, and point the new coin’s walletnotify to this script in newcoin’s configuration file.

Bitcoin: 1CjevDn76Yg5TsEZLkbKy2A6g5hYPE3gAG

Installation

$ pip install coinbridge

Depending on your system, compiling Bitcoin from scratch can be a headache. On Ubuntu, you can simply install bitcoind from the bitcoin PPA:

$ apt-get install python-software-properties
$ add-apt-repository ppa:bitcoin/bitcoin
$ apt-get update
$ apt-get install bitcoind

A convenience script, init.sh, is included that will do some initial configuration for you. I have only tested this on Ubuntu 12.04/14.04 so far. The below steps are only necessary if init.sh does not work for you:

  1. Set up a pgpass file so transaction confirmations can be autologged to Postgres. Replace HOST, PORT, USER, DATABASE, PASSWORD with your own settings. Note: coinbridge/db.py expects the username to be coinbridge. If you use a different username, you must also create a coinbridge/data/pg.cfg file (containing the HOST:PORT:USER:DATABASE:PASSWORD string) so that Python can connect to Postgres.

    $ touch ~/.pgpass
    $ echo HOST:PORT:USER:DATABASE:PASSWORD >> ~/.pgpass
    $ chmod 600 ~/.pgpass
  2. Set environment variables:

    $ echo "export BRIDGE=/path/to/coinbridge" >> ~/.profile
    $ echo "export PGPASSFILE=$HOME/.pgpass" >> ~/.profile
    $ source ~/.profile
  3. Finally, you need to point Bitcoin’s walletnotify at coinbridge/bitcoin-listen:

    $ apt-get install jq
    $ echo "walletnotify=$BRIDGE/coinbridge/bitcoin-listen %s" >> ~/.bitcoin/bitcoin.conf

Usage

from coinbridge import Bridge

bridge = Bridge()
bridge.payment(from_account, to_account, amount)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coinbridge-0.1.4.tar.gz (11.1 kB view details)

Uploaded Source

File details

Details for the file coinbridge-0.1.4.tar.gz.

File metadata

  • Download URL: coinbridge-0.1.4.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for coinbridge-0.1.4.tar.gz
Algorithm Hash digest
SHA256 68286bfc77f43434bad840bf5827e74a113e2e93f5dc0ed25c9d215ecf2e42b1
MD5 03d80e593cbebb0b925c66ad8b4dbe3c
BLAKE2b-256 4a6041b41be89279da47a44c747cb05eed66a90706752bf9e5c2841be6defdd3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page