summaryrefslogtreecommitdiff
path: root/40/4e510d46a2d6f6d2f91c38235c394b69633ff2
blob: ad11d71f09d1d7c3819e805ed76a458e879bc6b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <laanwj@gmail.com>) id 1XCPNt-0006el-8J
	for bitcoin-development@lists.sourceforge.net;
	Wed, 30 Jul 2014 08:37:17 +0000
Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.213.173 as permitted sender)
	client-ip=209.85.213.173; envelope-from=laanwj@gmail.com;
	helo=mail-ig0-f173.google.com; 
Received: from mail-ig0-f173.google.com ([209.85.213.173])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1XCPNp-0003zk-4U
	for bitcoin-development@lists.sourceforge.net;
	Wed, 30 Jul 2014 08:37:17 +0000
Received: by mail-ig0-f173.google.com with SMTP id h18so6907738igc.0
	for <bitcoin-development@lists.sourceforge.net>;
	Wed, 30 Jul 2014 01:37:07 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.42.38.137 with SMTP id c9mr3453809ice.94.1406709427821; Wed,
	30 Jul 2014 01:37:07 -0700 (PDT)
Received: by 10.64.27.228 with HTTP; Wed, 30 Jul 2014 01:37:07 -0700 (PDT)
In-Reply-To: <CALEpF5ab+T6k+QXK-AujQQcYPq_PyoaxB3KDGctRe1KicZpfWA@mail.gmail.com>
References: <CALEpF5ab+T6k+QXK-AujQQcYPq_PyoaxB3KDGctRe1KicZpfWA@mail.gmail.com>
Date: Wed, 30 Jul 2014 10:37:07 +0200
Message-ID: <CA+s+GJAksf9NorY0gF4YTjeh+JJtO+LM0foyuLHi0gUux6ZL8w@mail.gmail.com>
From: Wladimir <laanwj@gmail.com>
To: Caleb Roger Davis <moabtek@gmail.com>
Content-Type: text/plain; charset=UTF-8
X-Spam-Score: -1.6 (-)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(laanwj[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1XCPNp-0003zk-4U
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Bitcoin development (testing & where to
 get Wallet code)
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 30 Jul 2014 08:37:17 -0000

On Wed, Jul 30, 2014 at 12:32 AM, Caleb Roger Davis <moabtek@gmail.com> wrote:
> I have several Bitcoin contributions I would like to make, mostly for
> learning purposes to get started:
>
> I would like to contribute to unit and/or other types of tests (code), not
> production code.

Low-level unit tests are in `src/test`. These use the boost
unit-testing framework. You can run them with 'make check' or
`src/test/test_bitcoin`.

High-level RPC tests are in `qa/rpc-tests`. These are Python scripts
that can be invoked manually, and are based on our own simple
framework.

There is also a java-based 'comparison tool' that tests high-level
behavior with regard to the block chain. It is based on bitcoinj and
acts as an external node. This is not part of the github bitcoin
repository itself, but of bitcoinj (AFAIK).

> I would like to understand the Bitcoin code (as much as possible from top to
> bottom)

See https://www.bitcoin.org/en/developer-guide

> I would like to write a Bitcoin wallet in another language (so would like to
> know where to get the "Bitcoin - Core Wallet" code, but not sure where it
> resides.

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, and also hard to port as it relies
on a full node in the same process. It's better to look at SPV
wallets, for example the bitcoinj-based ones.

> I am a seasoned software developer, but I do need direction on where to get
> started.  If there is a wiki doc for new developers that would reduce my
> searching and experimentation that would be great.

Something like that would be useful, yes.

> For each of the three items above, I would like to know the tools and
> frameworks I 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 ), and also
> where to get started looking at the bitcoin core code and also the wallet
> code (where is the initial starting point and then I could trace from there
> ).

If you want to work on Bitcoin Core, a Linux box (or VM) is the best
development environment. Getting started building on WIndows or Mac is
harder (but possible). There is work in progress to make building the
dependencies easier for those.

Wladimir