-
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