Author

Topic: Minimalist version of the original Bitcoin client (Read 844 times)

legendary
Activity: 4270
Merit: 4534
*cough* bitcoinJ *cough*
donator
Activity: 1464
Merit: 1047
I outlived my lifetime membership:)
I'm no expert coder, but I hear the early versions were quite a tangled mess...
sr. member
Activity: 381
Merit: 250
Does anyone agree that would be interesting to create a minimalist version of the original bitcoin client that would be ideal for learning purposes. It would strip everything that is not relevant for the most simple implementation of code possible. Things like script operands and so would be stripped, making the client as thin and with as few lines of code as possible. Only the most basic features would be there but still you would have a blockchain and mining, node discovery and network,transactions processing to allow for sending and receiving BTC, address creation and wallet management.
It would still be it but it would be an extreme light code that would be ideal for learning.
Ideally with only some 4k or 5k lines of code instead of the original 12k.
It main purpose would be as a pedagogic tool for newbie coders to learn about the bitcoin internals from the standpoint of aiming to further the knowledge when you quite understand Satoshi paper but would like more exposure and understanding of the internals in terms of code.

Maybe we could have that baby both in C++ and Java (Swing).
I am willing to help in what I can, as a nerd  Wink

I remember reading two articles on Ken Shirriff's blog that is a step in that direction - http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html and one about Mining Bitcoins.

This goes through generating an address, and broadcasting a transaction, he does it all in Python IIRC. You should avoid pythons random generator, it is not cryptographically strong according to Ken's article. This is lacking alot of the code you mention for the Blockchain, etc.
legendary
Activity: 1122
Merit: 1017
ASMR El Salvador
Does anyone agree that would be interesting to create a minimalist version of the original bitcoin client that would be ideal for learning purposes. It would strip everything that is not relevant for the most simple implementation of code possible. Things like script operands and so would be stripped, making the client as thin and with as few lines of code as possible. Only the most basic features would be there but still you would have a blockchain and mining, node discovery and network,transactions processing to allow for sending and receiving BTC, address creation and wallet management.
It would still be it but it would be an extreme light code that would be ideal for learning.
Ideally with only some 4k or 5k lines of code instead of the original 12k.
It main purpose would be as a pedagogic tool for newbie coders to learn about the bitcoin internals from the standpoint of aiming to further the knowledge when you quite understand Satoshi paper but would like more exposure and understanding of the internals in terms of code.

Maybe we could have that baby both in C++ and Java (Swing).
I am willing to help in what I can, as a nerd  Wink
Jump to: