Constellation-Labs / constellation

:milky_way::satellite: Decentralized Application Integration Platform
Apache License 2.0
153 stars 40 forks source link

Trigger fetching missing proposals when majority state chooser finds a gap #1464

Closed kpudlik closed 3 years ago

kpudlik commented 3 years ago

Node should fetch missing proposal if it receives newer one but didn't receive older one.

Example:

  1. A gossips proposal at height 8, whole cluster gets the proposal.
  2. A gossips proposal at height 10 but node D doesn't get proposal.
  3. A gossips proposal at height 12, whole cluster gets the proposal but D still didn't get 10.
  4. D should then ask original proposer for that proposal. If it doesn't work it should try asking different nodes and pull the missing proposal. Ideally fallback should be rather based on reputation instead of randomness.