Bitcoin development (testing & where to get Wallet code)



Summary:

A developer named Caleb Roger Davis has expressed his desire to contribute to the Bitcoin community for learning purposes. He wants to contribute to unit and/or other types of tests (code), not production code. The low-level unit tests are in `src/test`, while high-level RPC tests are in `qa/rpc-tests`. There is also a java-based 'comparison tool' that tests high-level behavior with regard to the block chain. All of the wallet code is in `src/wallet.cpp` and `src/walletdb.cpp`. If the purpose is just studying, the bitcoin core wallet is not the most readable wallet code around. If Caleb wants to write a Bitcoin wallet in another language, it's better to look at SPV wallets, for example, the bitcoinj-based ones. Caleb wants to understand the Bitcoin code as much as possible from top to bottom, and for this, he can refer to https://www.bitcoin.org/en/developer-guide. He is also interested in finding the tools and frameworks he would need to understand and initially work on tests, how to run the existing tests to get code coverage and find where coverage is needed, what is the preferred IDE and full development stack, etc. If he wants to work on Bitcoin Core, a Linux box (or VM) is the best development environment. Wladimir suggests that getting started building on Windows or Mac is harder (but possible), and there is work in progress to make building the dependencies easier for those.


Updated on: 2023-06-09T01:39:35.937569+00:00