Proto commits in SporeDB/sporedb

These 16 commits are when the Protocol Buffers files have changed:

Commit:151b884
Author:Lesterpig

Add P2P ECDHE-ECDSA-AES-256 encryption Refactor P2P management Fix #23

The documentation is generated from this commit.

Commit:0c5db54
Author:Lesterpig

Implement full state-transfer on startup Fix #7

Commit:733942c
Author:Lesterpig
Committer:Lesterpig

Implement full gossip network This patch allows more network topologies, reducing the number of required connections. The used protocol is a simple relaying (gossip) scheme. * Endorsements are directly relayed, no matter if there were already sent ; * Nodes can announce that they have some spores *without* sending the whole payload, using Gossip call function ; * This will both save bandwidth while enabling NAT-ed clients to fully take part in SporeDB networks ; * Spores are cached in a LRU cache to bound memory consumption over-time, while providing an efficient data-structure. The previous modifications do not break SporeDB P2P protocol backward-compatibility.

Commit:2661502
Author:Lesterpig
Committer:Lesterpig

Improve package synopsis, split Node from Peer

Commit:00bf56e
Author:Lesterpig

Add SCONTAINS and SMEMBERS functions to RPC

Commit:84aa5fd
Author:Lesterpig

Add SADD and SREM commands with set datatype

Commit:55f9201
Author:Lesterpig
Committer:Lesterpig

Improve handling of endorsements SporeDB nows correctly handles Endorsements received before their respective Spores. It uses a very simple "TTL" mechanism, trying to "resubmit" each Endorsement at most 20 times. In the future, this should be modified to a new "PendingEndorsement" pool, fetched when a new Spore is received, and garbage collected from time to time. Additionally, this commit adds a "debug routine" that prints some internal state information regularly (to be improved).

Commit:7c95426
Author:Lesterpig

Add trusted state-transfer

Commit:2c88ef5
Author:Lesterpig

Add emitter and signature fields in Spore

Commit:01c54db
Author:Lesterpig

Add Policy / KeyRing interactions and export cmd

Commit:acf59d1
Author:Lesterpig

Add signature verification and keyring init cmd

Commit:f271763
Author:Lesterpig

Add myc/protocol package

Commit:81bd597
Author:Lesterpig

Add binary for GRPC endpoint and client

Commit:fdfb9a2
Author:Lesterpig

Add beginning of policy management

Commit:ae18073
Author:Lesterpig

Add endorsement timeline, tests and benchmarks

Commit:8b514eb
Author:Lesterpig
Committer:Lesterpig

Add first files and configure CI