Google's protocol buffers cannot be used for the inner portions of
signed/hashed objects.
This SQL database layout will facilitate a cache-based transaction
processing architecture that will scale to billions of accounts and dozens
of transactions per second.
Add ping function to test connectivity, detect send buffer attacks, and sync time.
Report a client's own IP back to it.
Add a status field to transactions (optional, used for consensus building)
Update contact field:
Contact records are signed so you can't lie about other nodes
Contact record can contain multiple addresses (say, one IPv4 and one IPv6)
Contact record is timestamped, so you can't provide an obsolete one
Nodes can extend their contact record with an URL, organization name, or policy
Add a command to request contact information.
Allow nodes to locate nodes in their static trust list if they wish.
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