Skip to content

dirauth consensus algorithm

Arti dirauth will need to be able to calculate consensuses given votes. (Votes can come from C Tor or from Arti dirauth #1928, and are exchanged via dircache #1924.)

  • New netdoc parser/printer (try to make a new derive macro) !3135 (merged)
  • Encode whole of vote/consensus doc in format for new derive macro
    • Use multiple-include technique to to prepare for defining votes as well as md consensuses, removing the generic on NetworkStatus.
    • Derive (or implement) parse2 traits for types in the main part of tor-netdoc.
    • Implement a derive macro for netdoc writing - this can be done with the existing traits, I think.
      • Ensure that the new writing algorithm sorts its output (for reproducibility)
    • Implement the printing traits for votes (by derive)
  • Function for calculating consensus field-by-field
  • CLI utility for testing the votes-to-consensus calculator
  • Plugin for C Tor
  • Changes to C Tor to call the plugin (needs help from a C Tor dev)
Edited by Ian Jackson