Bitcoin code review process like?

On June 19, Chaincode developer John Newbery gathered a team of developers to test a proposed change to the Bitcoin (Bitcoin Code) code.

Taking place through Internet Relay Chat (IRC), they discuss whether this change will help prevent a group of fraudulent miners from speeding up Bitcoin block creation. This is a positive issue that helps to limit issues related to security risks or adverse effects.

Newbery’s goal is to pass on what he knows about Bitcoin code review.

Is this the time to make a solid change?

Newbery writes, explaining attack vectors:

“We can exploit this by pushing the difficulty in the future, and then dragging the next block back to the present.”

But the fact that Newbery is even hosting sessions like this and this could be seen as a sign of the maturity of the Bitcoin developer community, as this is an example of how programmers are. Leading members of the project have worked hard to make the project more comprehensive. Before, the code review process had never been discussed so openly and in depth.

Newbery created the Bitcoin Core Review Club to give its developers advice on how to spot a change, and determine if it benefits the crypto market. death or not. Minutes of the meeting are now posted on the website each week.

This could be because Bitcoin Code is open source on GitHub and anyone with an internet connection can access – or even change it. This process has driven the project from coders who used to be known as YouTube’s “monolithic blob” to software that is easier for developers with less critical bugs. People are constantly working to improve it, with the ultimate goal of making it a worthy code base for the future of money.

So the above club could also be one of the contributors to the Bitcoin code. Unlike proprietary code, anyone can see and use this type of code – what is known as “open source”.

One reason Bitcoin is also known as programmable money is because unlike other digital currencies, anyone in the world with the right knowledge can try adding new feature codes. money. One of the ways to learn the codebase is to review and test the code the programmer comes up with, to make sure it actually works and doesn’t make any mistakes or – unfortunate real case – accidentally splitting in two Bitcoin network.

But through the code pages and hundreds of proposed changes, it’s hard to know where to start.

The club website explains:

“This IRC club is for people who want to help look at a Bitcoin Core pull request – (A kind of feature on Github) but find the process too intimidating.”

“Evaluating and testing pull requests is the best way to start contributing to Bitcoin Core, but it’s hard to know where to start. There are hundreds of different pull requests, many of which require knowledge in certain contexts, and contributors and reviewers often use unfamiliar terms. “

Thus, while anyone can see or change the code of this digital currency, it is not easy to do so. You need knowledge and practice to be able to examine them.

The process goes like this:

Anyone can do it

For starters, users can visit GitHub – a site that hosts all kinds of open source projects. There’s a dedicated app for Bitcoin Core, which implements the basic bitcoin software most users use.

You may have noticed that there are a lot of things on GitHub, but the code review is essentially looking at pull requests – the feature that contains a bunch of changes that developers across the ecosystem have submitted. come to review.

In other words, there are 300 changes that have not been fully considered to be formally added to the code base, from making the code description document easier to read to improving bitcoin’s performance.

At this point, developers are trying to decide whether or not these changes should be approved. The problem is that very few developers have enough experience reviewing code changes to determine if they should be formally added to the code base. Hence, a contributor to Bitcoin Core once described the pull request list as the graveyard of good ideas.

That is why Newbery is trying to help with this process.

So how does one really consider these changes? As Newbery describes on the club’s website, there are a few important steps to get started, such as going through the ‘contributing to the Bitcoin Core tutorial’ section, and revising C ++, the Bitcoin Core programming language.

The next thing is simply to choose a change to review. With over 300 pull requests, where to start? The best option for those who don’t know the codebase is the changes that are specifically labeled “good firsts”.

When the preliminary process is over, the developer needs to clone the repository, or use git to make a copy of the code base to their computer so they can check if the change is working. move according to plan not.

Just one simple command is needed to copy the entire code base to the computer.

From there, you can review the pull request. Developers say it is advisable to run all the tests on the system, to make sure the code changes don’t accidentally coincide with another piece of code, then move on to look at the rest of the code.

For reviewers
What reviewers need to consider?

First, there are special concerns. Determining whether new change – especially important one – is essentially consensus-based, meaning that most active contributors will agree to change.

In another club meeting, Newbery said:

“My thoughts on opening pull requests: nobody owes you an rating. Anyone who reviews your code is helping you. If you make a pull request, you are competing with other pull requests. ”

“If you have doubts about how useful your pull request will be, ask # bitcoin-core-dev or ask other contributors directly,” Newbery mentions another IRC group. where developers can ask questions regarding the Bitcoin Core development process.

That said, the developers don’t always agree on whether the change is worth adding. The team of developers focused on controversial code changes for a week. Some believe that evil outclasses good, while others still think it can be helpful.

But even with a good general idea, there are other secondary concerns. An error occurred or not? Does changing the code come with tests that ensure it will work as planned? These are questions that need a lot of consideration to be answered.

During the May 29 meeting, for example, developers looked over the performance enhancement of the Bitcoin node’s wallet.

A contributor with the pseudonym Ariard led the meeting by giving the review process they developed. “First, I tried to define PR (Pull request) type: Documentation, code type, bug fixes, new feature or additional testing. Because [in my opinion] these will guide you to define, how much time will you need to review and what type of testing is needed” the developer said.

Another reviewer pointed out that they noticed an improvement just by checking how long the code took to work – before and after. “My 10000 keys enter from 8 minutes to 3 seconds xD,” said another user, jb55.

The meeting minutes are added with more tips on how to streamline this process and make it easier to review, with more meetings scheduled in the future. A few sequels will be hosted by Bitcoin writer and contributor David Harding.

Leave a Reply