Bitcoin Forum
November 12, 2024, 09:32:27 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Minimalist version of the original Bitcoin client  (Read 848 times)
remotemass (OP)
Legendary
*
Offline Offline

Activity: 1122
Merit: 1017


ASMR El Salvador


View Profile WWW
August 01, 2014, 01:33:18 AM
 #1

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

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
juju
Sr. Member
****
Offline Offline

Activity: 381
Merit: 250



View Profile
August 01, 2014, 02:32:29 AM
 #2

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.
bg002h
Donator
Legendary
*
Offline Offline

Activity: 1466
Merit: 1048


I outlived my lifetime membership:)


View Profile WWW
August 01, 2014, 02:39:27 AM
 #3

I'm no expert coder, but I hear the early versions were quite a tangled mess...

Hardforks aren't that hard. It’s getting others to use them that's hard.
1GCDzqmX2Cf513E8NeThNHxiYEivU1Chhe
franky1
Legendary
*
Offline Offline

Activity: 4396
Merit: 4761



View Profile
August 01, 2014, 03:38:20 AM
 #4

*cough* bitcoinJ *cough*

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
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!