tjvrdev / python-bitcoinrpc Goto Github PK
View Code? Open in Web Editor NEWThis project forked from jgarzik/python-bitcoinrpc
Python interface to bitcoin's JSON-RPC API
This project forked from jgarzik/python-bitcoinrpc
Python interface to bitcoin's JSON-RPC API
AuthServiceProxy is an improved version of python-jsonrpc. It includes the following generic improvements: - HTTP connections persist for the life of the AuthServiceProxy object - sends protocol 'version', per JSON-RPC 1.1 - sends proper, incrementing 'id' - uses standard Python json lib - can optionally log all RPC calls and results - JSON-2.0 batch support It also includes the following bitcoin-specific details: - sends Basic HTTP authentication headers - parses all JSON numbers that look like floats as Decimal, and serializes Decimal values to JSON-RPC connections. Installation: - change the first line of setup.py to point to the directory of your installation of python 2.* - run setup.py Note: This will only install bitcoinrpc. If you also want to install jsonrpc to preserve backwards compatibility, you have to replace 'bitcoinrpc' with 'jsonrpc' in setup.py and run it again. Example usage: from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException # rpc_user and rpc_password are set in the bitcoin.conf file rpc_connection = AuthServiceProxy("http://%s:%[email protected]:8332"%(rpc_user, rpc_password)) best_block_hash = rpc_connection.getbestblockhash() print(rpc_connection.getblock(best_block_hash)) # batch support : print timestamps of blocks 0 to 99 in 2 RPC round-trips: commands = [ [ "getblockhash", height] for height in range(100) ] block_hashes = rpc_connection.batch_(commands) blocks = rpc_connection.batch_([ [ "getblock", h ] for h in block_hashes ]) block_times = [ block["time"] for block in blocks ] print(block_times) Logging all RPC calls to stderr: from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException import logging logging.basicConfig() logging.getLogger("BitcoinRPC").setLevel(logging.DEBUG) rpc_connection = AuthServiceProxy("http://%s:%[email protected]:8332"%(rpc_user, rpc_password)) print(rpc_connection.getinfo()) Produces output on stderr like: DEBUG:BitcoinRPC:-1-> getinfo [] DEBUG:BitcoinRPC:<-1- {"connections": 8, ...etc }
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.