A complete bitcoin implementation in Python?

10

5

I recently became aware that python-bitcoinlib is not a full bitcoin node implementation, but rather a set of tools to work with bitcoin-core cpp. I would like to know whether there are some fundamental issues with implementing a complete bitcoin node using python? Also if it were to be tried as a code-golf exercise (the shortest code to get the full node running) how many lines of code will it amount to in python ??

user2277550

Posted 2015-12-07T11:58:30.453

Reputation: 691

Performance-wise this would be bad idea, as Python dynamic programming language tend to use more RAM on data structures. It could be however interesting exercise.Mikko Ohtamaa 2015-12-07T18:48:10.020

1@MikkoOhtamaa: Python is perfectly capable of handling the performance requirements of a Bitcoin node. The answers so far point to several projects that do this.Greg Hewgill 2015-12-07T19:15:32.343

@GregHewgill: But none of those can serve as a complete replacement for bitcoin-core, right?user2277550 2015-12-07T19:17:17.423

1@user2277550: I don't see why not. There's no underlying reason why Python would be unsuitable for this purpose. It's certainly more than capable enough. It sounds like you're asking whether somebody else has already written in Python exactly what you have in mind. Maybe, maybe not. But it's possible to do so.Greg Hewgill 2015-12-07T19:19:42.833

@GregHewgill: Links or didn't happen :)Mikko Ohtamaa 2015-12-07T19:20:23.983

1@MikkoOhtamaa: The existing answers already have several links. I'm not sure what more you're asking for.Greg Hewgill 2015-12-07T19:21:08.833

@GregHewgill: Ok thanks - seeing the answer now.Mikko Ohtamaa 2015-12-07T19:25:13.917

Answers

7

AFAIK, there is no fundamental issues with implementing a complete bitcoin node using python, there is even some cool projects of Bitcoin full node in Python

Wats0ns

Posted 2015-12-07T11:58:30.453

Reputation: 96

5

That strongly depends on your definition of complete. There are a number of implementations that implement parts of the Bitcoin node functionality. For example cdecker/pycoin has a solid network implementation, but does not include wallet management code and validation logic. richardkiss/pycoin on the other hand has some of the wallet logic, but lacks networking. Other libraries include:

But as far as I know there is no standalone client that includes a wallet as well as the networking code.

cdecker

Posted 2015-12-07T11:58:30.453

Reputation: 7 878

2

Check out Tinychain.

It isn't complete and will never inter-operate with the real Bitcoin network, but it is a "code golf" approach to implementing all the Bitcoin core ideas (validation, POW mining, peer-to-peer architecture, data structures like TxIn/TxOut/Block, etc) in Python.

justinmoon

Posted 2015-12-07T11:58:30.453

Reputation: 311

1

There is a project, which is a complete bitcoin implementation in python. The source code at https://github.com/csunny/py-bitcoin

陈发强

Posted 2015-12-07T11:58:30.453

Reputation: 11