public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Brenton Camac <bpcamac@gmail•com>
To: bitcoingrant@gmx•com
Cc: bitcoin-development@lists•sourceforge.net
Subject: Re: [Bitcoin-development] Modularizing Bitcoin
Date: Thu, 16 May 2013 09:43:14 -0700	[thread overview]
Message-ID: <6645EE84-9A7E-41E3-A592-4EBC9A56DFD6@gmail.com> (raw)
In-Reply-To: <20130516100206.82680@gmx.com>

[-- Attachment #1: Type: text/plain, Size: 3729 bytes --]

It would be nice if that modularization effort would first and foremost focus on defining the protocols and APIs of the various modules (their responsibilities and patterns of interaction), rather than merely refactoring existing code.

Such an approach has many benefits.  

First, it promotes diversity of implementations.  Diverse implementations are now possible because the correctness of an implementation is now determined entirely by the compliance of its external behavior with the stated protocols and not its internal design. Thus this approach allows for equivalent but alternate implementations. Consequently, this approach -

1. increases the available pool of developers
2. reduces the impact any one implementation defect can have on the overall Bitcoin infrastructure
3. allows enhancement/optimization work of modules to proceed more easily as coupling with external modules is reduced

Second, and just as important, it allows analysis and critiquing of Bitcoin's infrastructure to be undertaken at a higher level than source code: i.e. abstract entities of the protocols and APIs.  Such scrutiny is important to being able to effectively manage the evolution of a system's architecture.

Its been my first-hand experience across many projects that this strategy contributes directly to significant improvements to quality when developing large, distributed, complex software systems.  Indeed, its considered a best practice when developing enterprise-grade software.

I would be happy to collaborate with others in such an undertaking.

- Brenton



On May 16, 2013, at 3:02 AM, bitcoingrant@gmx•com wrote:

> One of the primary upcoming priorities for bitcoin’s infrastructure, beyond the bloom filter, will be the continued modularization of the system.
> Here at the Bitcoin Grant, we would like to jump start this development with a financial incentive and initiate an ongoing conversation on how we can work together towards developing a smarter, more efficient system of tomorrow, today.
> Up for grabs: 500 bitcoins or $500,000; whichever is greater.
> Taking on a project of this scope is a highly intensive, technical undertaking and we believe excellent developers should be compensated as such, especially when it comes to open source projects.
> One of the main goals will be to separate the wallet from the node, as we have already done with mining. This way, the wallet, which will only hold private keys and create transactions, would pass transactions directly to a relay node, based on the bloom filter. Meanwhile, the block node will maintain the block chain and validate and relay new blocks.
> Such developments would significantly strengthen the system. Modularization would make cancer attacks less likely and increase the node count, which, currently, is fairly low.
> This is by no means is a feature request, merely ideas as to initiate a discussion. We welcome any feedback or suggestions. And of course, let us know if you would like to contribute to this project by submiting a grant proposal.
> http://bitcoingrant.org
>  
> 
>   ------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d_______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists•sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[-- Attachment #2: Type: text/html, Size: 8374 bytes --]

  parent reply	other threads:[~2013-05-16 16:43 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-16 10:02 bitcoingrant
2013-05-16 10:27 ` Addy Yeow
2013-05-16 16:43 ` Brenton Camac [this message]
2013-05-16 19:35 ` Mike Hearn
2013-05-20  5:16 ` Quinn Harris
2013-05-26 23:53 ` Luke-Jr
2013-05-16 10:48 bitcoingrant
2013-05-16 10:55 ` Addy Yeow
2013-05-26 23:57   ` Luke-Jr
2013-05-26 21:46 Ron
2013-05-27  2:57 Tamas Blummer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6645EE84-9A7E-41E3-A592-4EBC9A56DFD6@gmail.com \
    --to=bpcamac@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=bitcoingrant@gmx$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox