Implement per-peer membership list

Description

To implement detection of certain types of malice, we need to know which peers our peers know about. To achieve this, add a per-peer membership list peers: BTreeSet<PeerId> to peer_list:eer. Update this list when:

  • We detect that the peer reached consensus on Genesis - add all the genesis members to the list

  • We detect that the peer reached consensus on AddPeer(other_peer) - add other_peer to the list

  • We detect that the peer reached consensus on RemovePeer(other_peer) - remove other_peer from the list

  • We detect that the peer reached consensus on {{Accusation { offender, .. }}} - remove offender from the list.

Environment

None

Status

Assignee

Fraser Hutchison

Reporter

Adam Cigánek

Labels

External issue URL

None

External issue ID

None

Start date

2018/10/08

End date

2018/10/08

Task progress

None

Baseline start date

None

Baseline end date

None

Components

Priority

Minor
Configure