VersionCheckerm_vc;///< Dummy object to check & update the protocol version.
BlockChainm_bc;///< Maintains block database.
TransactionQueuem_tq;///< Maintains a list of incoming transactions not yet in a block on the blockchain.
BlockQueuem_bq;///< Maintains a list of incoming blocks not yet on the blockchain (to be imported).
mutablestd::recursive_mutexx_stateDB;// TODO: remove in favour of copying m_stateDB as required and thread-safing/copying State. Have a good think about what state objects there should be. Probably want 4 (pre, post, mining, user-visible).
OverlayDBm_stateDB;///< Acts as the central point for the state database, so multiple States can share it.
Statem_preMine;///< The present state of the client.
Statem_postMine;///< The state of the client which we're mining (i.e. it'll have all the rewards added).
std::unique_ptr<std::thread>m_workNet;///< The network thread.
std::atomic<ClientWorkState>m_workNetState;
mutablestd::mutexx_net;///< Lock for the network. // TODO: make network thread-safe.
std::unique_ptr<PeerServer>m_net;///< Should run in background and send us events when blocks found and allow us to send blocks as required.
std::unique_ptr<std::thread>m_work;///< The work thread.
std::atomic<ClientWorkState>m_workState;
boolm_paranoia=false;
boolm_doMine=false;///< Are we supposed to be mining?
boolm_doMine=false;///< Are we supposed to be mining?