• asynchronous rob's avatar
    Implement the Statement Distribution Subsystem (#1326) · 8348cc4c
    asynchronous rob authored
    * set up data types and control flow for statement distribution
    * add some set-like methods to View
    * implement sending to peers
    * start fixing equivocation handling
    * Add a section to the statement distribution subsystem on equivocations and flood protection
    * fix typo and amend wording
    * implement flood protection
    * have peer knowledge tracker follow when peer first learns about a candidate
    * send dependents after circulating
    * add another TODO
    * trigger send in one more place
    * refactors from review
    * send new statements to candidate backing
    * instantiate active head data with runtime API values
    * track our view changes and peer view changes
    * apply a benefit to peers who send us statements we want
    * remove unneeded TODO
    * add some comments and improve Hash implementation
    * start tests and fix `note_statement`
    * test active_head seconding logic
    * test that the per-peer tracking logic works
    * test per-peer knowledge tracker
    * test that peer view updates lead to messages being sent
    * test statement circulation
    * address review comments
    * have view set methods return references