Impl - Handle Peer Remove

Description

  • Being a removed node, once we can see consensus on Observation::Remove(Us), every subsequent call (it can be seen as the last stable block in consensused_blocks is Observation::Remove(Us)) to vote_for(), handle_request(), handle_response(), create_gossip() and poll() must incur an error to be raised.

  • Once we reach consensus on Observation::Remove(X), remove the node from our peer_manager(), which means that any future create_gossip, handle_request or handle_response to or from that node would err as per normal rules.

    • If some node contacts us and this leads to us learning that Observation::Remove(them) reaches consensus, we send them a response as normal. This will inform them they were removed.

      • If they had been malicious and had contacted us after their own death, we would not have gotten to that point, thanks to normal malice handling rules

  • When some other node reaches consensus on Observation::Remove(X), we must update the state of their membership in peer_manager so we can easily detect Malice::InvalidGossipCreator from them later.

Environment

None

Activity

Show:
Nadia Burborough
September 11, 2018 at 12:30 PM

Task moved https://maidsafe.atlassian.net/browse/MAID-3013#icft=MAID-3013 via biggantt in program 'PARSEC'.
Details: Task synchronization

Nadia Burborough
September 11, 2018 at 12:29 PM

Task moved https://maidsafe.atlassian.net/browse/MAID-3013#icft=MAID-3013 via biggantt in program 'PARSEC'.
Details: Task synchronization

Nadia Burborough
September 11, 2018 at 12:29 PM

Task moved https://maidsafe.atlassian.net/browse/MAID-3013#icft=MAID-3013 via biggantt in program 'PARSEC'.
Details: Task synchronization

Fraser Hutchison
September 11, 2018 at 11:11 AM

After a brief discussion, we've agreed to not return an error from poll() after our own node has been removed from the section; it is simpler to make it continue to return None forever.

Done

Details

Assignee

Reporter

Labels

Start date

End date

Story Points

Components

Priority

Created August 7, 2018 at 4:06 PM
Updated September 12, 2018 at 2:17 PM
Resolved September 12, 2018 at 2:17 PM