Begin coding the 'NetworkOPs' layer. This will provide most of the
functions 'client' code will want to call such as functions to lookup
transactions, check on their status, get balances, and so on. Much of the
RPC layer will be a thin wrapper over these functions.
The purpose of this layer is to permit the node to support these functions
regardless of its operating mode or available data, as long as it's
connected to the network. If synchronized and tracking the current ledger,
it can do most functions locally. If not, it can ask for help from other
nodes. If hopeless, it can return an error code.
Raw account class (address + public key)
Account State class (account + balance + ledgers valid)
Raw Hanko class
Low-level tranasaction class
Small wallet and key bits
Misc updates to the protocol.
Protocol addition to allow code to wait for replies, but that may not be a good idea.
Changes include:
Passing objects through ... is a no no.
Don't include windows.h on non-Windows
_vsnprintf doesn't exist on non-Windows
A map's first type is const, so a lot of code had to be changed from 'uint160&' to 'const uint160&'
itoa not available on non-Windows
Fix macro silliness when a parameter to a macro contains a comma.
<: is a digraph, so don't use "...shared_ptr<::google::..."
Must match filename case
Add const-correct 'escape' function to SqliteDatabase
Add const-correct 'begin' function to uint160