What is Bcoin?
Bcoin is an implementation of the Bitcoin protocol which is written in JavaScript and C/C++ for Node.js. So basically, Bcoin is a Bitcoin Full node implementation in form of a library where you can call functions and consensus code directly which isn't possible with Bitcoin core. This opens up a whole new dimension for companies and developers to integrate Bitcoin Blockchain into their Application interfaces and make things work. Seems interesting and it is. One can easily go through the source code of bcoin as it is completely open-source and one can understand and contribute to it in every technical or non-technical way possible. For technical contributions, basic Javascript will do the job and for Non-technical ones, just patience will do the trick. Just going through the documentation will get you a long way into understanding the internal working of Bitcoin. Think of Bcoin as Bitcoin but the code is in Javascript(and much well written)., but in reality, it is much more.
Advantages of JavaScript?
Faster - Javascript is a much faster language than anything on the market at this point in time. So this might have been an obvious choice for the developers of bcoin to start writing in JavaScript from scratch.
Ubiquitous - Javascript is currently present everywhere on the web and is here to stay as it is so versatile and can be used in every device present on the planet may whether Desktop or Mobile.
Let's Start Contributing to Bcoin.
1. Build & install
Bcoin is meant to be installed via Git for security purposes, as there are security issues when installing via npm. Refer to this official guide to get Bcoin up and running in your local system.
2. Play with tests
From inside bcoin repo directory:
Run all tests:
npm run test
Run one test:
npm run test-file test/address-test.js
Tests are by far the best starting place for anyone who is looking to know more about the codebase.
Conclusion
You can start contributing in many ways. Some of them are as follows:
- Try breaking the test. If you succeed in breaking anything which shouldn't break, then you have found a major bug. Just open a PR talking about what you did or better if you know how to solve the issue open a PR with your code commits.
- Documentations are the best way to get started learning about the repo. But also for contributions also docs are best. If while going through the docs you find a typo or something missing you can just add the instructions that make the job easier for another user and open a PR.
- If you are a coding veteran you might want something more. Then check out the Taproot Branch of the Bcoin repo and contribute to that. Bcoin team is currently working on implementing the Taproot feature which they will be releasing in the upcoming release. The taproot feature needs contributors for a range of things from testing to bug fixes to tracking the latest changes from Bitcoin-core and much more.