Published on: 2014-07-30T08:37:07+00:00
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.Bitcoinj is a Java-based library that provides everything to plug together a basic SPV wallet and runs in the JVM.On 29/07/2014, Caleb Roger Davis expressed his interest in contributing to Bitcoin for learning purposes. He wanted to contribute to unit and/or other types of tests (code), not production code, understand the Bitcoin code (as much as possible from top to bottom), and write a Bitcoin wallet in another language. Caleb was interested in Clojure, a modern dialect of Lisp, and Felipe Micaroni Lalli suggested implementing Bitcoin in Clojure or Scheme. The discussion also included links to stack exchange and PGP ID, and Caleb requested direction on where to get started.The conversation between Caleb and Felipe Micaroni Lalli revolved around Bitcoin development. Caleb expressed his interest in contributing to Bitcoin development for learning purposes and asked for guidance on where to get started. He mentioned that he wanted to contribute to unit and other types of tests, understand the Bitcoin code, and write a Bitcoin wallet in another language. Felipe was also interested in implementing Bitcoin in Clojure or Scheme and shared a link to a related question on bitcoin.stackexchange.com. Caleb did not confirm whether he wanted to tackle writing Bitcoin in Clojure, but said that he wanted to create a toolkit first to learn more about how it works. The conversation ended with Caleb sharing his contact information.The email conversation is about a seasoned software developer who wants to contribute to Bitcoin for learning purposes. He wants to work on unit and/or other types of tests and understand the Bitcoin code from top to bottom. Additionally, he wants to write a Bitcoin wallet in another language. The developer needs direction on where to get started and tools and frameworks he would need to work on tests and look at the Bitcoin core and wallet code. He also wants to know if there is a separate area for core wallet development on Github and mailing lists. On a related note, Felipe Micaroni Lalli, Bitcoin Paranoid Android developer, expresses his interest in implementing Bitcoin in Clojure or Scheme and shares his PGP ID and BTC address. Caleb Roger Davis responds to the email with questions and requests for information.The writer, a seasoned software developer, seeks guidance on how to contribute to Bitcoin for learning purposes. They express interest in contributing to unit tests and understanding the Bitcoin code from top to bottom. Additionally, they would like to write a Bitcoin wallet in another language but are unsure where to get the "Bitcoin - Core Wallet" code. The writer requests information on the tools and frameworks needed to work on tests and preferred IDE and full development stack, as well as guidance on where to start looking at the Bitcoin core code and the wallet code. They inquire about whether there is a separate area for core wallet development on Github and mailing lists. The writer hopes that there is a wiki doc for new developers that would reduce their searching and experimentation time.
Updated on: 2023-08-01T10:07:58.778270+00:00