Bitcoin Forum
May 30, 2024, 07:43:33 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Why can't the Bitcoin development be more like Linux?  (Read 1778 times)
Kenshin (OP)
Sr. Member
****
Offline Offline

Activity: 280
Merit: 250


View Profile
July 08, 2014, 06:06:02 AM
 #1

Why can't the Bitcoin development be more like Linux?

Linux has a huge development team. So many people take part in updating it. If you run Linux on your computer, you will know there are always updates. All these updates are created by the open source community. So why can't Bitcoin development be more like Linux?

What are we missing? Or maybe the development team will grow as big as the team of Linux?

What do you think?
franky1
Legendary
*
Offline Offline

Activity: 4242
Merit: 4502



View Profile
July 08, 2014, 06:14:45 AM
 #2

there is a team of bitcoin-core people. a team of multibit people. a team of coinbase people a team of bitpay people. a team of bitcointalk people. a team of... you get my point, many teams

they all have their own little projects. linux however is not just a program, its a operating system where print driver group NEEDS to work with image editor and word document groups to ensure what word and image editors show on screen will be what comes out on a printer.

i can waffle on about other collaborations, but basically everyone needs to work together to some extent on a OS.

with bitcoin though it is decentralized, web designers do not have to collaborate with bitcoin-core developers as much as you think, maybe a couple hours a month if there is an update that has changed things..

bitpay web developers do not have to collaborate with coinbase developers at all.. apart from social events..

so bitcoin is more spread out in smaller groups each doing their own separate projects.

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
jubalix
Legendary
*
Offline Offline

Activity: 2618
Merit: 1022


View Profile WWW
July 08, 2014, 06:22:03 AM
 #3

how many people work on say the tcip protocol?

Admitted Practicing Lawyer::BTC/Crypto Specialist. B.Engineering/B.Laws

https://www.binance.com/?ref=10062065
Kenshin (OP)
Sr. Member
****
Offline Offline

Activity: 280
Merit: 250


View Profile
July 08, 2014, 06:42:23 AM
 #4

there is a team of bitcoin-core people.

I should have made my post more accurate. What I meant is Bitcoin-core development should be more like Linux kernel development.
franky1
Legendary
*
Offline Offline

Activity: 4242
Merit: 4502



View Profile
July 08, 2014, 06:49:24 AM
 #5

there is a team of bitcoin-core people.

I should have made my post more accurate. What I meant is Bitcoin-core development should be more like Linux kernel development.

in what way?

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
jbreher
Legendary
*
Offline Offline

Activity: 3038
Merit: 1660


lose: unfind ... loose: untight


View Profile
July 08, 2014, 07:14:21 AM
 #6

What are we missing?

Your contribution to the effort.

Anyone with a campaign ad in their signature -- for an organization with which they are not otherwise affiliated -- is automatically deducted credibility points.

I've been convicted of heresy. Convicted by a mere known extortionist. Read my Trust for details.
miohtama
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile WWW
July 08, 2014, 07:29:26 AM
 #7

Why can't the Bitcoin development be more like Linux?

Linux has a huge development team. So many people take part in updating it. If you run Linux on your computer, you will know there are always updates. All these updates are created by the open source community. So why can't Bitcoin development be more like Linux?

What are we missing? Or maybe the development team will grow as big as the team of Linux?

Linux developers deal with a shared code, but not shared data (whatever is inside the computers running Linux).

Bitcoin developers deal with shared code and shared data (blockchain). You can modify and extend Bitcoind as much as you want, but other Bitcoind nodes would reject your custom transactions. Thus, room for experimenting development ideas easily is smaller as you are still bound to global Bitcoin protocol rules.

And then altcoins were born.
Kenshin (OP)
Sr. Member
****
Offline Offline

Activity: 280
Merit: 250


View Profile
July 08, 2014, 07:37:05 AM
 #8

What are we missing?

Your contribution to the effort.

I wish I am a programmer, then I can help. But I am afraid I don't have the skill set to help.  Undecided
Justin00
Legendary
*
Offline Offline

Activity: 910
Merit: 1000


★YoBit.Net★ 350+ Coins Exchange & Dice


View Profile
July 08, 2014, 08:50:13 AM
 #9

People


Who's turn is it now ?

MyPotPlantDied
Member
**
Offline Offline

Activity: 71
Merit: 10


View Profile
July 08, 2014, 01:12:57 PM
 #10

It would be awesome though.... coders all around the world constantly improving and enhancing Bitcoin. But the logistics would be a nightmare.
Noruka
Sr. Member
****
Offline Offline

Activity: 910
Merit: 253


View Profile
July 08, 2014, 01:14:44 PM
 #11

Why can't the Bitcoin development be more like Linux?

Linux has a huge development team. So many people take part in updating it. If you run Linux on your computer, you will know there are always updates. All these updates are created by the open source community. So why can't Bitcoin development be more like Linux?

What are we missing? Or maybe the development team will grow as big as the team of Linux?

What do you think?

Linux development doesn't deal with billions of dollars of a store of value system
Joe_Bauers
Hero Member
*****
Offline Offline

Activity: 802
Merit: 1003


GCVMMWH


View Profile
July 08, 2014, 01:33:52 PM
 #12

Why can't the Bitcoin development be more like Linux?

Linus Torvalds.
franky1
Legendary
*
Offline Offline

Activity: 4242
Merit: 4502



View Profile
July 08, 2014, 01:37:10 PM
 #13


Linux development doesn't deal with billions of dollars of a store of value system

are you sure... wanna bet 1 satoshi on that??

#cough#
http://www.fujitsu.com/global/about/resources/news/press-releases/2011/0706-01.html
http://www.networkmagazineindia.com/200303/cover5.shtml
http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/5600e7927f00000150ba79d15b7d7ed8/7/jcr:frozenNode/rh:pdfFile.pdf
http://investors.redhat.com/releasedetail.cfm?releaseid=634480
..union bank
..banco do brasil
#cough#
........list goes on (but 10 seconds on google was enough for me)

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
ljudotina
Legendary
*
Offline Offline

Activity: 1260
Merit: 1029


View Profile
July 08, 2014, 02:32:25 PM
 #14

Why can't the Bitcoin development be more like Linux?

Linux has a huge development team. So many people take part in updating it. If you run Linux on your computer, you will know there are always updates. All these updates are created by the open source community. So why can't Bitcoin development be more like Linux?

What are we missing? Or maybe the development team will grow as big as the team of Linux?

What do you think?

Linux development doesn't deal with billions of dollars of a store of value system

Oh man...you have no idea what you are talking about don't you? Linux is fundation for huge part of internet as far as servers go. If it would have some critical issue, it would be disaster for servers, and anyone who uses linux based systems (hostings, banks etc.). I'd say linux is spine of Internet as far as software goes. Value that rests on linux fundation (only if you add banks that use it) is tens, hundreds or even thousands times larger than current worth of BTC. To that, add value of every other internet server (not server itself, but value of resources that are on that server) that is based on linux and you have value that you cant even pronounce.

Meuh6879
Legendary
*
Offline Offline

Activity: 1512
Merit: 1011



View Profile
July 08, 2014, 02:48:42 PM
 #15

Please ... don't compare an OS to a network  Roll Eyes
Ron~Popeil
Sr. Member
****
Offline Offline

Activity: 406
Merit: 250



View Profile
July 08, 2014, 02:50:56 PM
Last edit: July 08, 2014, 07:05:42 PM by Ron~Popeil
 #16

I don't really have an issue with the way it works now. The protocol is and should remain difficult to change. You could do a really cutting edge alt coin that way. The wisdom of crowds is a fascinating phenomenon.

DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 08, 2014, 03:05:32 PM
Last edit: July 08, 2014, 03:36:17 PM by DeathAndTaxes
 #17

Why can't the Bitcoin development be more like Linux?

Linux has a huge development team. So many people take part in updating it. If you run Linux on your computer, you will know there are always updates. All these updates are created by the open source community. So why can't Bitcoin development be more like Linux?

What are we missing? Or maybe the development team will grow as big as the team of Linux?

What do you think?

Linux development doesn't deal with billions of dollars of a store of value system

Oh man...you have no idea what you are talking about don't you? Linux is fundation for huge part of internet as far as servers go. If it would have some critical issue, it would be disaster for servers, and anyone who uses linux based systems (hostings, banks etc.). I'd say linux is spine of Internet as far as software goes. Value that rests on linux fundation (only if you add banks that use it) is tens, hundreds or even thousands times larger than current worth of BTC. To that, add value of every other internet server (not server itself, but value of resources that are on that server) that is based on linux and you have value that you cant even pronounce.

I think you misunderstand.   All linux "nodes" don't need to run the same linux kernel.  Nothing bad happens if they run different versions or even completely incompatible linux kernels.   All bitcoin nodes, must at all times, run "bitcoin kernels" (the core protocol) with identical outputs to any input.  If some nodes decide chain A is the longest valid chain, and some nodes decide chain B is the longest valid chain well that would be a billion dollar problem.  Any deviation no matter how small would cause a catastrophic fork in the network.

What actually makes large scale open source development in bitcoin land difficult is the "bitcoin-core" isn't just the "kernel", it isn't even just a node, it isn't even just a node and wallet.  It is the kernel, node, wallet, and and RPC server rolled into this single tightly coupled (never a good idea in software development) unified blob of dense code.   Now I am going so say something very heretical to the followers of the Church of Latter Day Satoshis, Satoshi wasn't a very good software developer (or cryptographer).   <Pause to collect your thoughts>.  He was a brilliant "idea guy".  Bitcoin as a concept was some amazing out of the box thinking and truly innovative.  The nuts and bolts of the first client however were a complete mess.   A lot of his early decisions have really hampered current day developers.  The developers can't easily make breaking changes and they need to ensure all future versions of the software are perfectly compatible with older versions of the software.  

The Linux equivalent would be if Linux didn't have a kernel and a series of packages and instead it was simply a multi GB single blob of code.  There was one repository and you had to use it all or use none of it.  If a single update on some package you weren't even using was updated well you had to download and install the new unified Linux software or remain out of date.  If the change was a breaking change you were required to upgrade or your server would be forked off the real internet.  I think you can how that might keep the Linux development team small and centralized.  That is how Bitcoin exists today.  Don't blame the current devs, just take a look at Satoshi's first client and you can see where that foundation was built.  The reality is the core protocol is never going to have more than a couple dozen developers.  The concepts are very difficult.  Most people (myself included) simply lack the competencies to do that kind of work.  The good news is you probably wouldn't need more than a couple dozen core developers if "core" actually meant the "core protocol" not "the core protocol, and a particular implementation a full node, an a particular implementation of a desktop wallet which uses that full node, and a particular implementation of an RPC server which allows direct integration at the node level".  What the core team could use is probably another couple hundred dedicated testers though.  If you are complaining about Bitcoin development and never run testnet for release candidate versions of clients well you have no room to complain.  

If the core protocol (the kernel if you will) was separated from the other functionality and developed as a smaller independent project it would be more manageable for a small dedicated core team.  This would be much like most "linux developers" aren't working on the linux kernel they are working on packages which rely on the linux kernel.  Today if you want to build a wallet you have three choices.  

The first would be to fork bitcoin-core and then keep it up to date until the end of time integrating all the changes to the mainline bitcoin-core; if you ever stop updating it then eventually it will be forked off the main network.  Also make sure that you all your future changes don't break compatibility with the mainline client.   

The second option would be to build a wallet front end which integrates with "bitcoin-core" node via RPC. Sadly some core functionality is missing so you this is less than optimal.  You will probably end up reimplementing a lot of low level functionality (like maintaining the UTXO) simply because what you need isn't available via the RPC calls.  This is arguably the safest option as the most it is the low level communications between nodes which need to be perfectly compatible and you would still be using bitcoin-core for that. 

The third option would be to build the core protocol, node, and wallet functionality from scratch.  Sounds easy but now make sure it is bit for bit compatible with bitcoin-core including handling of a million possible edge case scenarios (some of which haven't even occurred yet and the core team may not even be aware of).  Also make sure you re-implement all the bugs, weird design choices, and issues with third party packages (openssl encoding bugs, etc).  Have fun as not all of these are even well documented.   You should be a solid proponent of test driven development.   

Obviously none of those options are optimal.   However if you could just compile the bitcoin-kernel and consume that in your wallet or other bitcoin related service that would be better right?  It would be similar to how redhat consumes the linux kernel in their operating system.  Well that option requires breaking the "bitcoin-core" into components so the core protocol is an independent project.   It is a huge undertaking to decouple the kernel, node, wallet, and RPC server that Satoshi smashed together into a single unified blob of code, into separate projects which are still perfectly compatible with existing nodes.  That process has been painstakingly going on for years now and will probably take many years more.


bluemeanie1
Sr. Member
****
Offline Offline

Activity: 280
Merit: 257


bluemeanie


View Profile WWW
July 08, 2014, 03:17:23 PM
 #18

Well, I resolved to read D&T completely through next time I encountered one of his posts and by golly I did it!

I do agree, there are special considerations here.  It's not entirely analogous to the Linux kernel.  I have thought about building a general purpose library for cryptocurrencies.  Were at a point where very clear patterns have emerged and we can somewhat standardize these problems.  Forking bitcoin-qt is just simply not practical at this point.  I think one of the progressions were going to see in this space is better basic technological components because clearly there is a significant demand for innovations and a lot of unique perspectives that reflect on technology, networking and economics.

-bm

Just who IS bluemeanie?    On NXTautoDAC and a Million Stolen NXT

feel like your voice isn't being heard? PM me.   |   stole 1M NXT?
Marlo Stanfield
Sr. Member
****
Offline Offline

Activity: 490
Merit: 280



View Profile
July 08, 2014, 04:08:44 PM
 #19



What actually makes large scale open source development in bitcoin land difficult is the "bitcoin-core" isn't just the "kernel", it isn't even just a node, it isn't even just a node and wallet.  It is the kernel, node, wallet, and and RPC server rolled into this single tightly coupled (never a good idea in software development) unified blob of dense code.   Now I am going so say something very heretical to the followers of the Church of Latter Day Satoshis, Satoshi wasn't a very good software developer (or cryptographer).   <Pause to collect your thoughts>.  He was a brilliant "idea guy".  Bitcoin as a concept was some amazing out of the box thinking and truly innovative.  The nuts and bolts of the first client however were a complete mess.   A lot of his early decisions have really hampered current day developers.  The developers can't easily make breaking changes and they need to ensure all future versions of the software are perfectly compatible with older versions of the software.   



So do you think modern altcoins are generally going to be better off starting from scratch with their own new codebase rather than forking bitcoin and modifying it? That is assuming of course that the developers are capable of doing something like that well.
cr1776
Legendary
*
Offline Offline

Activity: 4060
Merit: 1303


View Profile
July 08, 2014, 06:20:07 PM
 #20

What do you think?

I think there are several points here.

First the protocol.  Think about tcp/ip, smtp, dns, ssh, ftp, http, https, ssl, pop, ntp, telnet etc.  How many developers at the protocol level are there?  How often and how many changes are there to the protocol itself?  Very few.  So from a core protocol level, the changes should be very few indeed.

Next an implementation of the protocol.  Bitcoin core/bitcoind is a reference implementation of the protocol, albeit an important one, but there are other implementations and other developers working in the bitcoin ecosystem.  If you look at the entire ecosystem and compare it to the Linux ecosystem, then things change.  There is a lot of money and there are a lot of developers working on various facets (e.g. colored coins, bitcoinj, bitcoinjs, exchanges, wallets, and many, many more).  I don't think you can compare the Linux kernel with bitcoin core, they are different beasts.  For example, you can run bitcoin without bitcoin core.  You can run Unix without a Linux kernel, but I'd say you couldn't run Linux without a Linux kernel, it would be something else.  Just because there are fewer developers working on bitcoin core, doesn't mean there are not enough developers working on the ecosystem itself.

:-)
Pages: [1] 2 »  All
  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!