Refactor the feedback loop in Casper to improve message queuing and processing

Description

This work is the outcome of RChain-3578 which investigated the increase in time to propose. The recommendation was to improve the Casper feedback loop.

When Casper is missing some dependencies, it will ask for it using CommUtil.sendBlockRequest.

Only node in state Running will answer messages of type HasBlockRequest

Only node in state Running will answer messages of type HasBlock

Entries from requested blocks must be "maintained". If a block was requested, but data is not received in some defined timeout, a request must be sent to a peer from a waitinglist.

Entries from requested blocks can be removed once the block is added by casper

 

Assignee

Pawel Szulc

Reporter

Kelly Foster

Priority

Medium

Components

Story Points

8

Epic Link

None

Fix versions

None

Labels

None

Sprint

None
Configure