Bitcoin P2P router, in python
Fetching latest commit…
Cannot retrieve the latest commit at this time
This python script (node.py) is a client node for the bitcoin network. It is based on ArtForz' public domain half-a-node at http://pastebin.com/ZSM7iHZw In its current form, node.py does nothing more than listen for new transactions and blocks, perform verification checks on the data, and store them in a database. Script verification is a separate, manual process (testscript.py). It is therefore not safe for general use. See BUGS and TODO files. A simple HTTP server for JSON-RPC API calls is also included. Send the "help" RPC call for a list of supported commands. It might be useful as the base for a P2P monitoring node, or similar tasks. Dependencies: python-bitcoinlib, https://github.com/jgarzik/python-bitcoinlib GEvent, http://www.gevent.org/ python-leveldb, http://code.google.com/p/py-leveldb/ Command line usage: ./node.py my-config-file The configuration file is a key=value text file, with the following settings: # hostname or IP address of network node to connect to host=127.0.0.1 # port of network node to connect to (default: 8333) port=8333 # JSON-RPC server user, password. Uses HTTP Basic authentication. rpcuser=XXXX rpcpass=YYYY # JSON-RPC server incoming TCP port (default: 9332) rpcport=9332 # database directory db=/tmp/chaindb # log filename, or '-' or no-value for standard output log=/tmp/chaindb/node.log # if present, import these blocks into the block database loadblock=/tmp/blk0001.dat # if present, disable all signature checking in new blocks # (disabled by default) nosig=1 # if present, force signature checking on all blocks, # even those normally skipped because they were prior # to a checkpoint. # (disabled by default) forcesig=1 node.py connects to a single remote node, and does not accept incoming P2P connections. If the connection is lost, node.py exits. See the "mini-node" branch for a single-file, non-chaindb node.