Make PARSEC work with single node

Description

Currently, the routing code is doing a lot of ugly special casing as a PARSEC can only be created from 2 members on.

It would help a node could simply create a PARSEC with itself and then vote for adding the second node, which would be an identical flow as for any further node addition.
Additionally, it will make the "proper common coin" work easier if instead of requiring a Distributed Key Generation algorithm at Network startup, we can just start from one bootstrap node and have him add peers without a special case.

The expected behaviour would be as follows:

  • Voting for an observation is enough to have it immediately reach consensus

  • Gossiping doesn't actually create new gossip messages as a node can't gossip to itself

  • We should add some tests to ensure a network starting with one node can grow to a normal functioning network of many nodes.

Environment

None

Status

Assignee

Fraser Hutchison

Reporter

Pierre Chevalier

Labels

External issue URL

None

External issue ID

None

Start date

2019/03/29

End date

2019/03/29

Task progress

None

Baseline start date

None

Baseline end date

None

Story Points

6

Components

Priority

Major
Configure