Skip to content

WIP: Make consensus reactor more like state machine #1495

@melekes

Description

@melekes

Proposal by @milosevic.

Input/Ouput queues

Introduce bounded input / output queues

blank diagram - page 1 2

These queues exist right now in the form of MConnection#sendQueue and Reactor#Receive. Receive is ok. Testing requires setting up the whole consensus and not easy. Tracking of what's been send again is hard.

Move mempool txs into consensus

Combining with ^^, tx can be treated as any other incoming message. When a client sends a tx, we call mempool#CheckTx (which itself calls app) and, if CheckTx passes, we send it to consensus queue.

Handle votes in parallel

to speed up consensus. Right not we're processing them sequencially case mi = <-cs.peerMsgQueue

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions