Dependencies: Boost 1_47 boost log http://boost-log.sourceforge.net/libs/log/doc/html/log/installation.html // this didn't work immediatly so I stopped messing with it but we should probably use it protocol buffers: expects ..\protobuf-2.4.1 and ..\protoc-2.4.1-win32 openssl sqlite (files are in git. ) mysql (we don't need this quite yet...) Using: pugixml version 1.0 download new versions at http://pugixml.org/ This is in the repo. you don't need to get it code from: // Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ---- // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2011 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. ---- How much do we want to depend on the DB? Right now we are pulling a lot of stuff out f the DB and storing it in various data structures. but is that necessary? Can't we keep everything in the DB? LedgerMaster for example. mFutureTransactions should be in the DB ValidationCollection There is some trade off since reconstructing a whole ledger from the DB is a bit intense. So it might be good to cache these in memory. Threads ---- Main thread Does all the work. Tasks are given to it through the messageQ Door thread Just accepts connections and then hands them off There is a thread for each peer? Peers are causing: updates to the current transaction list updates to the validated list you to relay messages to other peers update your known node list check if a transaction is valid Actualy I think this can all be in one thread. Commands to the app must be done by RPC.