Subject: [Bitcoin-development] python-bitcoinlib v0.1 release - a low-level Python2/3 interface to the Bitcoin protocol

From: Peter Todd <[email-masked]>
Date: Sat, 15 Mar 2014 09:43:40 -0400

I noticed that the ngccbase Colored Coin client(1) added a
python-bitcoinlib dependency, specifically my fork. In addition there is
also now a rudementary python-bitcoinlib package in archlinux.

So with that in mind I'm releasing v0.1, perhaps somewhat arbitrarily:

    https://github.com/petertodd/python-bitcoinlib/tree/v0.1

This Python2/3 library provides an easy interface to the bitcoin data
structures and protocol. The approach is low-level and "ground up", with
a focus on providing tools to manipulate the internals of how Bitcoin
works in a Pythonic way, without straying far from the Bitcoin Core
implementation.

The current status of the library as of v0.1 is that the support for
data-structures related to transactions, scripting, addresses, and keys
are all quite usable and the API is probably not going to change that
much. Bitcoin Core RPC support is included and automatically converts
the JSON to/from Python objects when appropriate.  EvalScript(),
VerifyScript(), and SignatureHash() are all functional and pass all the
Bitcoin Core unittests, as well as a few that are still yet to be
merged.(2) You'll find some examples for signing pay2script-hash and
p2sh txouts in the examples/ directory; I personally used the
transaction signing functionality to make up a set of unittests related
to OP_CODESEPARATOR and FindAndDelete() recently. Finally my dust-b-gone
script(3) is another good example, specifically of the RPC
functionality.

I personally haven't had any need for the p2p network related code for
some time, so I'm sure it's not in a good state and it lacks unittests;
Bloom filters for one are missing the merkle-block support to actually
make them useful. But the RPC support makes up for that for many uses.

This release and others in the future are signed by my PGP key, as well
as every publicly pushed commit. You can verify the key via WoT, my
bitcointalk account, signing history in the Bitcoin Core repo, and
mailing list records among other sources.

Disclaimer: This is alpha code in a language not known for type-safety.
            I wouldn't personally use python-bitcoinlib for anything
            other than experiments and neither should you.

1) https://github.com/bitcoinx/ngcccbase
2) https://github.com/bitcoin/bitcoin/pull/3861
3) https://github.com/petertodd/dust-b-gone

- -- 
'peter'[:-1]@petertodd.org
000000000000000097649e8d66395b3cb4527263409adf628c76cc56af0434fe