Bitcoin Forum
April 26, 2024, 11:29:09 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: python-bitcoinlib v0.1 release  (Read 820 times)
Peter Todd (OP)
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1149


View Profile
March 15, 2014, 01:49:52 PM
 #1


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)

iQGrBAEBCACVBQJTJFkFXhSAAAAAABUAQGJsb2NraGFzaEBiaXRjb2luLm9yZzAw
MDAwMDAwMDAwMDAwMDA3OGEyNGUxNTBlNTc2ZGVjZWUyYWQzMGNhMmE2YTRhMmM3
NGVkYmJkNjM2NDViNjcvFIAAAAAAFQARcGthLWFkZHJlc3NAZ251cGcub3JncGV0
ZUBwZXRlcnRvZC5vcmcACgkQJIFAPaXwkftZiwgAk8YVN9t76tKIKcWKyrGgv8yk
UZGZkkrowED0lyhMXfmviezeWhjvHZgQrwha2hAuik36WEBN1jnv9wuJ6g9tnxGY
PyG8n1SV2rtQ/QIJyL6wOuqL3UZi6d6IdZ/udVmyGwz+XhE89AwitR0++MvxkPNv
i9R3Gw5Z1CnS2W0jGpAT88k3q3pqEzbYutP/FaylL2+6MuSUGwHUoY8dqcRkwkw1
eIrd2W33x4NvuxYPLnHR64uE0B8KoreZOyyskMdeMsKtZNflkfgfMiD10xnw2PGx
z8S42wPbrI5ZYLL1OLdRfuKMdQ4qOyF4jfV+QRZWQ5t5Qh1akVWmz7ffFHGo0Q==
=k1pi
-----END PGP SIGNATURE-----

"There should not be any signed int. If you've found a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714130949
Hero Member
*
Offline Offline

Posts: 1714130949

View Profile Personal Message (Offline)

Ignore
1714130949
Reply with quote  #2

1714130949
Report to moderator
Peter Todd (OP)
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1149


View Profile
March 15, 2014, 02:33:09 PM
 #2

Also, for those who don't know the history of python-bitcoinlib, credit where credit is due: my fork is based on Jeff Garzik's implementation and and the bulk of the code structure is his work, modulo "pythonizing" that I have done.

xjabc
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
March 21, 2014, 02:38:17 AM
 #3

Thank you for your excellent work.
Seems examples can't run properly in python2.7, but OK in py3.3.
Peter Todd (OP)
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1149


View Profile
March 21, 2014, 03:42:36 PM
 #4

Thank you for your excellent work.
Seems examples can't run properly in python2.7, but OK in py3.3.


That's probably true. The examples are meant as stand-alone programs and all have the "#!/usr/bin/python3" line at the top which makes most Unix/Linux style systems run them using the Python3 interpreter when executed. Pretty much all Linux distributions these days have Python3 support, and many are making Python3 the default Python interpreter used in the near future.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!