Author

Topic: How many working hours does it need to code something like bitcoin from scratch? (Read 320 times)

staff
Activity: 4172
Merit: 8419
People said Satoshi Nakamoto's first code that was submitted.... was very sloppy.
Anyone who said that was an idiot or just trying to make themselves look greater by alleging a great work was lesser.  It's simply not true.

It is true that Bitcoin today does a lot more than the original software did, and does it with a lot more performance and to get there required many changes.  The fact that the original code wasn't built that way wasn't a deficiency.  In fact, if the original code had been built with the structure suited for the later feature set that would have been a lot of unnecessary and bug-introducing complexity.
legendary
Activity: 3430
Merit: 1957
Leading Crypto Sports Betting & Casino Platform
People said Satoshi Nakamoto's first code that was submitted.... was very sloppy. I do not know if he quickly threw a bunch of things together to create it or given more time... he would have made it more presentable. I think Satoshi provided the bones for the skeleton project and he coded it in a way that it could be used.

Other people submitted a more "fleshy" body to the bones to make it more presentable and they added more streamline code that made the body into a Olympic Athlete.

So if someone wanted to re-create it from the start... they should not aim for an Olympic athlete.... but rather a skeleton project of a bunch of ideas. (A team with different skill sets and knowledge.. will probably do this a lot quicker .. than one person)  Wink
staff
Activity: 3248
Merit: 4110
Gmaxwell probably gives the best metric that we have, although probably isn't a brilliant indicator. However, you wouldn't want to code Bitcoin of today as a sole effort, you would get a basic viable product out there, and then rely on the community to help. Just as Satoshi did. This is generally the case for a lot of open source projects, and with company funded assets, they usually have more than one person working on it.
member
Activity: 237
Merit: 19

So 1 person would need over 50 years to code something like bitcoin from scratch? Well...Makes it not become easier I think.
Bitcoin Core with its current feature set without having another implementation that they could gawk at.

If you drop features or assume the other programmer could read Bitcoin Core's codebase than it would take a lot less time -- which is part of how there are a number of other implementations.

These figures don't include time for research and design, however.  And if you didn't have access to Bitcoin Core (or similar) there would be a substantial amount of that required.

For example, Bech32(m) has a really solid man year of R&D time in it alone, even though its implementation is short (0.15kloc. 0.25 person-months per COCOMO).  There are a number of small parts of Bitcoin Core that were novel tech which had much higher R&D costs than typical for industrial programming problems.

So the COCOMO estimates assume that you've received the high level design and feature requirements as inputs and are not doing a large amount of novel invention and research (though it does assume you're doing some), but it also doesn't assume that you've got access to the source code of another complete implementation.

It really depends on what you're asking, exactly.

I understand. I know there is no exact answer possible. But when u have no clue about it it's hard to imagine.

Here I copy the noob explaination about what's needed:
https://bitcointalksearch.org/topic/my-perfect-crypto-money-5350644


Hey all.

Since years I had a concept for a coin that would fit all needs (imo) and want to know some opinions on it.
I see so many stupid and nonsens in the world of cryptos and i asked myself, why not take your concept and start to build it up and share it, maybe it opens some doors to realize it.

So i want share my coin, thats not created yet! So feel free to contibute with ideas!

BlueCredit - System

The ECredit - System is divided in two related coins (good to compare with ETH and Gas).

1. BlueCredits (or HardCredits)
There is a total supply of x BC, no decimal places.
Generating GreenCredits, every x transactions the same amount (1BC generates 1 GC every x transactions).

2. GreenCredits (or SoftCredits)
No max. supply. No decimal places. Used as daily fast money and are required to send BlueCredits.


So BlueCredits generating GreenCredits like ETH gas. But in this case the "gas" is the actual money we use and BlueCredits are more an investment system that generates new money.

The transaction fee is determinated on x% of any amount. 50% of the transaction fees goes to the miners that solve the transactions, the other 50% get burned! This is how the coin regulates itself.

Also the sender can decide how "safe" each transaction has to be - the encryption can be raised unlimited (what means that a higher encryption need more time/work for the miner to do the transaction). This would make it stay safe also when the time of quantum computing is arrived.

Miners are only using their power to solve transactions - there is no rising difficulty or something else they need to solve (no more wasted energy) - an eco friendly mining system. Every miner who solve a transaction get the 50% fees from it.


In this system investors could have a lot of interest in BlueCredits to hold cause they generating new supply. On the other hand the GreeCredit would be the payment methode for any time and any "money" transaction. It would regulate it self with the burning effect and could handle a stable finance system.

Feel free do destroy my idea!  Cheesy


staff
Activity: 4172
Merit: 8419
So 1 person would need over 50 years to code something like bitcoin from scratch? Well...Makes it not become easier I think.
Bitcoin Core with its current feature set without having another implementation that they could gawk at.

If you drop features or assume the other programmer could read Bitcoin Core's codebase than it would take a lot less time -- which is part of how there are a number of other implementations.

These figures don't include time for research and design, however.  And if you didn't have access to Bitcoin Core (or similar) there would be a substantial amount of that required.

For example, Bech32(m) has a really solid man year of R&D time in it alone, even though its implementation is short (0.15kloc. 0.25 person-months per COCOMO).  There are a number of small parts of Bitcoin Core that were novel tech which had much higher R&D costs than typical for industrial programming problems.

So the COCOMO estimates assume that you've received the high level design and feature requirements as inputs and are not doing a large amount of novel invention and research (though it does assume you're doing some), but it also doesn't assume that you've got access to the source code of another complete implementation.

It really depends on what you're asking, exactly.
legendary
Activity: 3444
Merit: 10558
So 1 person would need over 50 years to code something like bitcoin from scratch? Well...Makes it not become easier I think.
The time is a bit overestimated but also it is not just implementation of bitcoin, implementing takes a lot less time. But I suppose it is mostly the optimization of the code and usually optimizing and bechmarking takes a lot more time than implementing.
member
Activity: 237
Merit: 19
sloccount run against current git-master, with leveldb removed (since that was developed independently of Bitcoin):


Total Physical Source Lines of Code (SLOC)                = 208,911
Development Effort Estimate, Person-Years (Person-Months) = 54.57 (654.89)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 2.45 (29.38)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 22.29
Total Estimated Cost to Develop                           = $ 7,372,266
 (average salary = $56,286/year, overhead = 2.40).


So-- it says 55 person years.  Of course, this kind of estimation is a bit bullshitty, but it's about the best you could do.  Bitcoin is a lot trickier than many of the industrial tasks used to calibrate those estimates, otoh the industrial developers those estimates are based on are a lot less productive than some that exist.

There has been more than 55 person years put into the codebase for sure.


So 1 person would need over 50 years to code something like bitcoin from scratch? Well...Makes it not become easier I think.
newbie
Activity: 33
Merit: 0
Lesser than the time taken while developing it back in 2008. Technology and knowledge has evolved a lot but yes if you are creating something that could change the entire financial system it would still require a lot of man hours
staff
Activity: 4172
Merit: 8419
sloccount run against current git-master, with leveldb removed (since that was developed independently of Bitcoin):


Total Physical Source Lines of Code (SLOC)                = 208,911
Development Effort Estimate, Person-Years (Person-Months) = 54.57 (654.89)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 2.45 (29.38)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule)  = 22.29
Total Estimated Cost to Develop                           = $ 7,372,266
 (average salary = $56,286/year, overhead = 2.40).


So-- it says 55 person years.  Of course, this kind of estimation is a bit bullshitty, but it's about the best you could do.  Bitcoin is a lot trickier than many of the industrial tasks used to calibrate those estimates, otoh the industrial developers those estimates are based on are a lot less productive than some that exist.

There has been more than 55 person years put into the codebase for sure.
member
Activity: 237
Merit: 19
and make it happen

OP already got his answer. I'd like to point this out though ^^
Even if an expert programmer with a great imagination would code "a new Bitcoin", there's by far no guarantee it could become this successful.
So for Bitcoin also "the stars have aligned right", in order to "make it happen".

Well, it's gone to far away. Sure beeing successful like btc is a whole different discussion.

I just wanted to lern to imagine a little bit how much work into a code like this is going. I don't have these technical knowlage to imagine.

I have a idea for a coin and maybe i want realize it in future. So knowing the requirered resources is important i guess.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
and make it happen

OP already got his answer. I'd like to point this out though ^^
Even if an expert programmer with a great imagination would code "a new Bitcoin", there's by far no guarantee it could become this successful.
So for Bitcoin also "the stars have aligned right", in order to "make it happen".
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
So if bitcoin would not exist - how many working hours would it need to code it?
To code it? Probably some hours, especially if you type quickly.

To think it, envision it and trying to make it true with every available resource? Well that's much tougher, you get it right? If Bitcoin wouldn't exist, you wouldn't “just code it”. You'd have to combine all these pieces through a Proof of Work block chain and make it happen, just like that guy did, back in 2009.

As for Bitcoin Core v0.21.1, it really depends on the effort and the knowledge. It would probably take more than a year, for a developing team, to cover what they've already done.
legendary
Activity: 1583
Merit: 1276
Heisenberg Design Services
As others has pointed out, there are insanely huge difference between the first version of Bitcoin Core and the recently available version and I don't think it's possible for a single person to code something such complex from scratch. Even satoshi referenced various articles and mechanisms while building Bitcoin and they merged altogether the failed components and created a successful network i.e Adam Back's mining mechanism was used in PoW, P2P mechanism was used for communication between the nodes and a few more. On top of all these things, satoshi even had a goal to achieve - the decentralized P2P e-cash system. Later on, we all know that hundreds of developers worked together for 10 years to achieve the current codebase.

This is the same workflow which happens in any open source development like Linux Kernel or proprietary development like Windows. MS-DOS 1.0 had 4,000 lines of code whereas Windows 10 which was based on NT kernel has a mammoth 50 million lines of code. Do we think a former CEO like Ballmer or current CEO like Satya know where a particular feature of Windows is hidden in 50 million lines? The same stuff happens in Bitcoin as well, it's impossible for one single person to re-create Bitcoin 2021 from scratch without the help of hundreds of developers.

Even today, when new developers try to onboard onto Core development, the experienced devs request them to work on a single feature alone as we are in need of devs specializing in a particular feature of Bitcoin and not to work on multiple features.
member
Activity: 180
Merit: 38
copper member
Activity: 1624
Merit: 1899
Amazon Prime Member #7
The actual coding would be the easy part. The time-consuming part of developing software such as bitcoin core is the meetings for things such as requirements gathering, planning, discussing roadblocks, and edge cases.

There were 17 developers who contributed to the most recent release of bitcoin core. This release did not build bitcoin core from scratch, but rather implemented some upgrades, and some contributors helped more than others.
legendary
Activity: 2114
Merit: 1292
There is trouble abrewing
there is a big difference between implementing an already existing protocol well and inveting a strong new protocol.
the former (create software which as good as Bitcoin Core) is not that hard because everything you need to implement already exists and you can just translate it then spend time securing the implementation.
the later on the other hand is extremely hard and there really isn't any time frame you can put on it. it may take a couple of years or decades to invent something new, useful and strong.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Thousands of man hours per week.

It's not as super complex as the Linux kernel but at tens of thousands of source code lines, the comprehensive integration testing it received for each pull request and code review that follows before each major release, this is not something you, or even Satoshi, can pull off by yourself.

Sure you can write the initial program in about ~200 hours, but that's where it ends.

Maintaining it is something different. You usually can't use software in its original form because it has tons of flaws, that require dedicated people to fix them whenever they can in addition to others supplying new features. Most projects can't afford the luxury time to run review sessions on each major software release.
member
Activity: 237
Merit: 19
Loaded question.

Bitcoin of 2009 or bitcoin of 2021? There have been many many updates & changes to the code.
It's like asking how long to design a car? A Ford Model T from 1908 or a 2020 Bugatti Divo? Going to be 2 different answers.

How good a programmer are you? Do you understand cryptography? Is it just you or do you have a team?

-Dave

Let's say Bitcoin today.

The number of working hours depend on 1 person (I'm not a programmer, that's why I'm asking cause I can't really imagine the work). I also don't know how big the difference between a good programmer and a "normal" one, but I don't think a good one would be 100x faster than a normal one. Just go with the average.

I know there is no exact answer, but if I'm a solo average programmer (who know what I'm doing), would I need 100 hours or 1000 as example?
legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
Loaded question.

Bitcoin of 2009 or bitcoin of 2021? There have been many many updates & changes to the code.
It's like asking how long to design a car? A Ford Model T from 1908 or a 2020 Bugatti Divo? Going to be 2 different answers.

How good a programmer are you? Do you understand cryptography? Is it just you or do you have a team?

-Dave
member
Activity: 237
Merit: 19

I don't mean any options doing copies or something exactly like bitcoin. It's just a reference on the complexity of the task.

So if bitcoin would not exist - how many working hours would it need to code it?
Jump to: