Skip to content

Learn how bitcoin development is done

July 10, 2020

Now we already know who enables Bitcoin with its work and use. But we only know who they are, we don’t know what tools they use or how they handle all of their enormous work. In this case, let’s think a little bit about these different technical issues that help make Bitcoin a reality.

programming language

First, We have to say that Bitcoin uses the C language (C Plus Plus) as the programming language.. You have probably heard of this programming language, which has been with us for more than 41 years and was designed by Bjarne Stroustrup. This programming language was chosen because it facilitated the object-oriented development so widespread in Bitcoin. All of this without losing quality in development and offering high performance.

The entire core of Bitcoin Core is written with C, more precisely standard C 11 (C 2011). In its early days, Bitcoin used Core C 98 (C 1998), but with the change in the standard, the developers allowed themselves to redesign various functions in order to optimize them, in particular to modularize and make each part of the c oacute more specific. I say as a result Bitcoin Core has gained speed, security and allows it to develop more securely over time. The standard was completely changed in 2016.

Learn how bitcoin development is done
Learn how bitcoin development is done

On the other hand, using C. facilitated creating a graphical interface for Bitcoin using the QT framework, a free software development, specially developed in C.

You know what? are GDP, the Bitcoin standardization center

On the other hand, standardization in Bitcoin is a very important thing. Think a little bit about How do you get hundreds of people to work from different locations and apply the same development rules at all times? The key is in programming codes and standardizing processes.

In Bitcoin, they usually program according to the indentation scheme (the way code is written). called GNU Style, with a few minor modifications. The result is that you can create clean, easy-to-read code for everyone.

But in addition to that There is an important tool for standardizing and controlling the development of Bitcoin, the BIP (Bitcoin Improvement Proposal or Bitcoin Improvement Proposal). This is a series of documents created by developers according to strict guidelines. The goal is to introduce an improvement that affects the development of Bitcoin.

For example, The Bitcoin upgrade known as SegWit was the first BIP-141. The same applies to the countless improvements that have been made to Bitcoin. So í Every developer who wants to change important functions in Bitcoin must submit a GDP and justify such changes, otherwise they will not be taken into account.

The development of this tool was thanks to the developers of Bitcoin, Amir Taaki and Luke Dashjr.

Free software licenses

Software licenses in the development world are very important as they help protect the project and the intellectual property it contains. In the case of Bitcoin, MIT was selected as the license. This is a very legal license for free software that allows you to copy, modify, and share the code for free. Nbsp; You can read the license under the following link.

however iquest; Why é Bitcoin chose this license? More than anything else, because the MIT license does not impose any usage restrictions like other licenses like GPL2 or GPL3. Instead, the spirit of this license is that everyone can use this software privately and with a sublicense. In short, it’s the spirit of Bitcoin’s economic freedom that led to the freedom to use its code this time.

Multi platform

On the other hand, Using a free license like MIT has allowed many developers to contribute a grain of sand so Bitcoin can run on any existing architecture. From PCs with Windows, Linux and MacOS operating systems to more minimalist systems. As a result, we can see that the presence of Bitcoin has reached all of these systems with no major problems. One of the clear advantages of free software and collaborative development.

Of course, they have a lot to do with the tools used to develop Bitcoin (C) available on all of these platforms. So í that the portability or ability to bring Bitcoin to different platforms is more than excellent.

Cryptography with its own seal

Another strange fact in the development of Bitcoin is the use of homemade cryptography, although this has not always been the case. During the initial development of Bitcoin, the cryptographic library used for its development was the well-known OpenSSL, which is widely used in GNU / Linux and most of the existing free software.

Gregory Maxwell, a Bitcoin developer, however decided to end this dangerous relationship. The problem is that OpenSSL has a messy development that has resulted in serious security bugs.that are unforgivable in the context of Bitcoin. Imagine for a moment that such an important function as SHA-256 or ECDSA is vulnerable in the implementation created by OpenSSL. This would also make Bitcoin vulnerable and compromise the security of the entire network.

Given this situation Gregory Maxwell decided to start your own crypto development outside of OpenSSL. In doing so, they created their own, more specific, and more secure cryptographic library that Bitcoin offers everything needed to work. A wise decision when we consider that OpenSSL has since had serious security bugs in several of its functions and actually resulted in a fork called LibreSSL, developed by cryptography specialists at OpenBSD, the system’s most secure operating system in the world.

Related: Blockchain security, know the elements that make it up

Git to control it and share everything

You will surely ask yourself now How do developers control all of these enormous efforts? Well, this is accomplished through the use of software called Git. This software is a software version controller or CVS (VCS).

Git keeps a history of every single change made in the Bitcoin software. Things as insignificant as a space or an additional comma (or less) are recorded by the software as a change in the history of software development. This story, by the way, works in a distributed way, with a central point where all development is centralized, but with full copies on the developers’ computers or those who make a copy of them.

So í People can make their changes and send them to the central server for analysis. If accepted, the changes are attached to the main history of the software and then synchronized with the other people involved in the development of the software.

But What for? Do we need something like git in bitcoin? If we take into account the distributed evolution of Bitcoin, its complexity, and the number of lines that make it up (over 400,000 lines), you’ll find that a tool like Git makes it easier to handle all of this.

On the other hand, the way Git works with Bitcoin is very similar, although Git’s technology has long been known in the world of software development. The development and creation of Git is thanks to Linus Torvalds, the creator of the Linux kernel and one of the most important personalities in the world of free software.