Pages:
Author

Topic: Bitcoin is not really open source. Why not? - page 4. (Read 2874 times)

legendary
Activity: 4410
Merit: 4788
December 06, 2016, 09:38:11 AM
#7
Open source means that anybody can access the whole source code. And this IS possible.
Documentation would be nice, documented lines would be great, a good programming style (including well chosen variable and function names) would be super, but you cannot really ask for this; quite a lot of production code lacks one or more of these points, quite a lot of open source projects lack one or more of these points.

Imho OP has a confusion on this matter. Open source doesn't mean teaching/learning code.

Yes, it would be nice to have that, but I don't think that it's Bitcoin Dev team's "job" to do that. It could be an idea for a side project/website though...

the dictionary definition of open source is that the code is not locked away in some vault that only available to authorised people.
BUT
the concept and context of bitcoins openness is that anyone should be able to get involved. which can actually be hindered by the ettiquete some devs have. especially if its required that their code should be peer reviewed.

this is how bugs happen. by not clearly laying out the code. people gloss over the code and just think. 'this guy looks like he knows what he is doing lets just let the code fly' and not actually reading line by line and running scenarios.

its already happened a couple times even after being so called 'peer reviewed'
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
December 06, 2016, 09:22:54 AM
#6
Open source means that anybody can access the whole source code. And this IS possible.
Documentation would be nice, documented lines would be great, a good programming style (including well chosen variable and function names) would be super, but you cannot really ask for this; quite a lot of production code lacks one or more of these points, quite a lot of open source projects lack one or more of these points.

Imho OP has a confusion on this matter. Open source doesn't mean teaching/learning code.

Yes, it would be nice to have that, but I don't think that it's Bitcoin Dev team's "job" to do that. It could be an idea for a side project/website though...
legendary
Activity: 3906
Merit: 1373
December 06, 2016, 09:19:54 AM
#5
OP is having issues with:
updated documentation that actually explain it properly
code lacking comments.
signposting to the best source of code, comments, documentation.

though it is open source, the organisation of HOW its open is missing.
back in my day nearly every line of code had comments to explain what it does.
back in my day nearly every line of code had namespaces/variables with WORDS that explained what it does not just characters

there are many modules that do have comments and variables with understandable names. but there are some without.

EG https://github.com/bitcoin/bitcoin/blob/master/src/secp256k1/src/ecdsa_impl.h
if you see a module assign variables 'b1' 'rs' 'rr' 's1' 'u1' 'u2' 'sn' 'pr' without commenting what they do. it helps no one.

yes with a couple re reads and running it through your mind in what used to be called 'pseudocode' you get the gist of it eventually. but its still badly organised

the funnier part is that many core devs get very snobby if forum posts are not wrote in 100% white paper approved level of English grammar, even when knowing forums are just for common/social communication where only 10% of the planet deem English to be their first language. but their own code lacks the basic coding etiquette

Thank you. This is much closer to the explanation that I was looking for.

Cool
legendary
Activity: 3906
Merit: 1373
December 06, 2016, 09:18:17 AM
#4
Bitcoin is not open source because only a relatively small cross section of Bitcoin users understand the programming.

I don't think you understand what the words "open source" mean.

- snip -
Do you know how many lines of code you could write to fill 41 MB of computer hard drive memory? Thousands!

I think it's on the order of hundreds of thousands.

What do all these lines of code do?

They run the bitcoin protocol.

What do they do to your computer?

Display stuff on your screen. Accept input from your keyboard and mouse. Interact with your network interface to find peers and share information. validate transactions and blocks. Generate private keys. Encrypt your wallet.  Basically, all the things necessary to implement the bitcoin protocol AND operate as a bitcoin wallet.

How do they work with your Internet connection,

Through well established protocols such as TCP/IP and UDP.

and what is really being sent over the Internet when you have Bitcoin running?

Transactions, blocks, version messages, basic protocol comuications.

Is there really anybody who knows the whole thing?

Yes.

The point is, Bitcoin is not really open source, because it is not open to the vast majority of minds that use it.

It is open to anyone and everyone that WANTS to take the time to learn it.  It is a voluntary system and nobody is FORCED to understand it if they don't want to.

The average person could understand the whole Encyclopedia Britannica easier than he could understand what goes on with the Bitcoin programming in his computer.

Complete nonsense.

And probably fewer than 99% of programmers understand it, to say nothing of lay people.

Any programmer that wants to understand it, has the opportunity to do so.  It isn't very complicated at all.


Ah! You, then, are one of the very few who understand the full extent of Qt programming in Bitcoin? All right! We have a winner. One person in thousands (hundreds 0f thousands) who understands Bitcoin programming. So, it is open source to you. I think that if you look at the full meaning of "open source," you will find that open source really says that it has to be available for understanding by anyone. Bitcoin source code is available for understanding only by a relatively few programmers.

Cool
legendary
Activity: 4410
Merit: 4788
December 06, 2016, 09:11:15 AM
#3
OP is having issues with:
updated documentation that actually explain it properly
code lacking comments.
signposting to the best source of code, comments, documentation.

though it is open source, the organisation of HOW its open is missing.
back in my day nearly every line of code had comments to explain what it does.
back in my day nearly every line of code had namespaces/variables with WORDS that explained what it does not just characters

there are many modules that do have comments and variables with understandable names. but there are some without.

EG https://github.com/bitcoin/bitcoin/blob/master/src/secp256k1/src/ecdsa_impl.h (grabbed randomly)
if you see a module assign variables 'b1' 'rs' 'rr' 's1' 'u1' 'u2' 'sn' 'pr' without commenting what they do. it helps no one.

yes with a couple re reads and running it through your mind in what used to be called 'pseudocode' you get the gist of it eventually. but its still badly organised

the funnier part is that many core devs get very snobby if forum posts are not wrote in 100% white paper approved level of English grammar, even when knowing forums are just for common/social communication where only 10% of the planet deem English to be their first language. but their own code lacks the basic coding etiquette
legendary
Activity: 3472
Merit: 4801
December 06, 2016, 08:53:53 AM
#2
EDIT:  I've really got to learn to stop responding to trolls.

Bitcoin is not open source because only a relatively small cross section of Bitcoin users understand the programming.

I don't think you understand what the words "open source" mean.

- snip -
Do you know how many lines of code you could write to fill 41 MB of computer hard drive memory? Thousands!

I think it's on the order of hundreds of thousands.

What do all these lines of code do?

They run the bitcoin protocol.

What do they do to your computer?

Display stuff on your screen. Accept input from your keyboard and mouse. Interact with your network interface to find peers and share information. validate transactions and blocks. Generate private keys. Encrypt your wallet.  Basically, all the things necessary to implement the bitcoin protocol AND operate as a bitcoin wallet.

How do they work with your Internet connection,

Through well established protocols such as TCP/IP and UDP.

and what is really being sent over the Internet when you have Bitcoin running?

Transactions, blocks, version messages, basic protocol comuications.

Is there really anybody who knows the whole thing?

Yes.

The point is, Bitcoin is not really open source, because it is not open to the vast majority of minds that use it.

It is open to anyone and everyone that WANTS to take the time to learn it.  It is a voluntary system and nobody is FORCED to understand it if they don't want to.

The average person could understand the whole Encyclopedia Britannica easier than he could understand what goes on with the Bitcoin programming in his computer.

Complete nonsense.

And probably fewer than 99% of programmers understand it, to say nothing of lay people.

Any programmer that wants to understand it, has the opportunity to do so.  It isn't very complicated at all.
legendary
Activity: 3906
Merit: 1373
December 06, 2016, 08:33:59 AM
#1
Bitcoin is not open source because only a relatively small cross section of Bitcoin users understand the programming.

I use Bitcoin Core for Windows found through the link at https://bitcoin.org/en/download. The name of the current version file that I download is "bitcoin-0.13.1-win64-setup.exe." The download screen says that the size of the file is 12.5 MB (megabytes). The Windows (zip) of the same program says it is 22.6 MB. I use the smaller of these two.

While I really don't know what the difference is between these downloads, the smaller of the two installed to my "Program Files" directory in my computer, at 41 MB. (The whole blockchain is well over 100 GB (gigabytes).)

Do you know how many lines of code you could write to fill 41 MB of computer hard drive memory? Thousands!

What do all these lines of code do? What do they do to your computer? How do they work with your Internet connection, and what is really being sent over the Internet when you have Bitcoin running? Is there really anybody who knows the whole thing?

The point is, Bitcoin is not really open source, because it is not open to the vast majority of minds that use it. The average person could understand the whole Encyclopedia Britannica easier than he could understand what goes on with the Bitcoin programming in his computer. And probably fewer than 99% of programmers understand it, to say nothing of lay people.

Cool
Pages:
Jump to: