Subject: Re: [Bitcoin-development] Development priorities

From: Jeff Garzik <[email-masked]>
Date: Thu, 16 Jun 2011 13:59:56 -0400

On Thu, Jun 16, 2011 at 12:32 PM, Gavin Andresen
<[email-masked]> wrote:
> 1) Scaling-up issues, like disconnections when downloading the block chain.
>
> 2) Wallet security.

Agreed, though security professionals (and luke-jr) are already
pointing out the wallet crypto mainly eliminates a bit of bad PR,
rather than being a major crime deterrent.

zooko on IRC had a pretty good suggestion:  introduce a built-in
facility for air-gapped wallets (multiple wallets), so that loss of
your everyday transactional wallet does not mean loss of everything.

You can do this manually, but we need something for all the people who
(a) don't know crypto, and (b) simply download and run the client
without thinking much about security.

> 3) Unit testing framework.  There was a PULL that had the start of
> boost unit tests; I think that is a critical need, along with a good
> suite of test cases.

Three points, on testing:

T1) autotools has a minimal testing framework built into it.  "make
check" builds, and then runs tests.  Each test is a program or script,
that returns 0 on success and 1 on failure.  "make distcheck" builds,
runs tests, and then creates the distribution tarball if the tests
succeed.

T2) I wouldn't narrow the focus to "unit tests", as stress tests and
other comprehensive, automated tests are quite useful as well

but most importantly...

T3) Don't hold v0.4 release for this.  As we say in kernel-land, we
have a test lab called "the internet"  Test suites have clear software
engineering value, but they largely "guard the past" -- making sure
you don't repeat past mistakes, rather than being a good indicator of
possible upcoming problems.  The best testing is always in the field.
That always finds more problems than unit testing ever does.

-- 
Jeff Garzik
exMULTI, Inc.
[email-masked]