diff --git a/i2p2www/pages/site/get-involved/roadmap.html b/i2p2www/pages/site/get-involved/roadmap.html index 4db810f644b93803ab955d5f7d01c83cf2375d48..86680bd500d363959af4dccd9114c1af29ae55d8 100644 --- a/i2p2www/pages/site/get-involved/roadmap.html +++ b/i2p2www/pages/site/get-involved/roadmap.html @@ -197,8 +197,6 @@ Continue work on testnet </li><li> i2psnark UI performance </li><li> -geti2p/i2p docker image available at our download page -</li><li> libsam: example with ANC integration </li><li> libsam: use the best from the duplicated libraries making one improved one diff --git a/i2p2www/spec/proposals/150-garlic-farm-protocol.rst b/i2p2www/spec/proposals/150-garlic-farm-protocol.rst index f059dd2b2c610be31f0ce06fd22fb86b543c79e0..50e9e7f63214d13be63d35b66b23f8a4a6c77e93 100644 --- a/i2p2www/spec/proposals/150-garlic-farm-protocol.rst +++ b/i2p2www/spec/proposals/150-garlic-farm-protocol.rst @@ -3,7 +3,7 @@ Garlic Farm Protocol ==================== .. meta:: :author: zzz - :created: 2019-05-03 + :created: 2019-05-02 :thread: http://zzz.i2p/topics/2234 :lastupdated: 2019-05-03 :status: Open @@ -80,27 +80,27 @@ responses do not contain Log Entries, and are fixed-size. -======================== ====== =========== =========== ===================================== -Message Number Sent By Sent To Notes -======================== ====== =========== =========== ===================================== -RequestVoteRequest 1 Candidate Follower Standard Raft RPC -RequestVoteResponse 2 Follower Candidate Standard Raft RPC -AppendEntriesRequest 3 Leader Follower Standard Raft RPC -AppendEntriesResponse 4 Follower Leader Standard Raft RPC -ClientRequest 5 Follower Leader Response is AppendEntriesResponse -AddServerRequest 6 new server Leader Must contain a single ClusterServer log entry only -AddServerResponse 7 Leader new server -RemoveServerRequest 8 Follower Leader Must contain a single ClusterServer log entry only +======================== ====== =========== ================= ===================================== +Message Number Sent By Sent To Notes +======================== ====== =========== ================= ===================================== +RequestVoteRequest 1 Candidate Follower Standard Raft RPC; must not contain log entries +RequestVoteResponse 2 Follower Candidate Standard Raft RPC +AppendEntriesRequest 3 Leader Follower Standard Raft RPC +AppendEntriesResponse 4 Follower Leader / Client Standard Raft RPC +ClientRequest 5 Client Leader / Follower Response is AppendEntriesResponse; must contain Application log entries only +AddServerRequest 6 Client Leader Must contain a single ClusterServer log entry only +AddServerResponse 7 Leader Client Leader will also send a JoinClusterRequest +RemoveServerRequest 8 Follower Leader Must contain a single ClusterServer log entry only RemoveServerResponse 9 Leader Follower -SyncLogRequest 10 Leader Follower Must contain a single LogPack log entry only +SyncLogRequest 10 Leader Follower Must contain a single LogPack log entry only SyncLogResponse 11 Follower Leader -JoinClusterRequest 12 Leader new server Invitation to join -JoinClusterResponse 13 new server Leader -LeaveClusterRequest 14 Leader Follower Command to leave +JoinClusterRequest 12 Leader New Server Invitation to join; must contain a single Configuration log entry only +JoinClusterResponse 13 New Server Leader +LeaveClusterRequest 14 Leader Follower Command to leave LeaveClusterResponse 15 Follower Leader -InstallSnapshotRequest 16 Leader Follower Must contain a single SnapshotSyncRequest log entry only -InstallSnapshotResponse 17 Follower Leader Raft Section 7 -======================== ====== =========== =========== ===================================== +InstallSnapshotRequest 16 Leader Follower Must contain a single SnapshotSyncRequest log entry only +InstallSnapshotResponse 17 Follower Leader Raft Section 7 +======================== ====== =========== ================= ===================================== Definitions @@ -133,6 +133,7 @@ All values are unsigned big-endian. Message type: 1 byte Source: ID, 4 byte integer Destination: ID, 4 byte integer + Destination: Usually the actual destination ID (see notes), 4 byte integer Term: Current term (or candidate term for RequestVoteRequest), 8 byte integer Last Log Term: 8 byte integer Last Log Index: 8 byte integer @@ -292,7 +293,7 @@ All values are unsigned big-endian. Message type: 1 byte Source: ID, 4 byte integer - Destination: ID, 4 byte integer + Destination: Usually the actual destination ID (see notes), 4 byte integer Term: Current term, 8 byte integer Next Index: Initialized to leader last log index + 1, 8 byte integer Is Accepted: 1 if accepted, 0 if not accepted (1 byte) @@ -300,6 +301,14 @@ Message type: 1 byte {% endhighlight %} +Notes +````` + +The Destination ID is usually the actual destination for this message. +However, for AppendEntriesResponse, AddServerResponse, and RemoveServerResponse, +it is the ID of the current leader. + + Justification =============