Commit 60efce44 authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Enable ed25519 collator in voting.

Previously, I had left in some debugging code with /*XXX*/ after it,
which nobody noticed.  Live and learn!  Next time I will use /*XXX
DO NOT COMMIT*/ or something.

We need to define a new consensus method for this; consensus method
21 shouldn't actually be used.

Fixes bug 17702; bugfix on 0.2.7.2-alpha.
parent be6174f8
Loading
Loading
Loading
Loading

changes/bug17702

0 → 100644
+6 −0
Original line number Diff line number Diff line
  o Major bugfixes:
    - Actually enable Ed25519-based directory collation.
      Previously, the code had been written, but some debugging code that had
      accidentally been left in the codebase made it stay turned off.
      Fixes bug 17702; bugfix on 0.2.7.2-alpha.
+1 −1
Original line number Diff line number Diff line
@@ -159,7 +159,7 @@ dircollator_collate(dircollator_t *dc, int consensus_method)
  tor_assert(!dc->is_collated);
  dc->all_rsa_sha1_lst = smartlist_new();

  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING + 10/*XXX*/)
  if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
    dircollator_collate_by_rsa(dc);
  else
    dircollator_collate_by_ed25519(dc);
+7 −0
Original line number Diff line number Diff line
@@ -558,6 +558,13 @@ compute_consensus_method(smartlist_t *votes)
static int
consensus_method_is_supported(int method)
{
  if (method == MIN_METHOD_FOR_ED25519_ID_IN_MD) {
    /* This method was broken due to buggy code accidently left in
     * dircollate.c; do not actually use it.
     */
    return 0;
  }

  return (method >= MIN_SUPPORTED_CONSENSUS_METHOD) &&
    (method <= MAX_SUPPORTED_CONSENSUS_METHOD);
}
+4 −3
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@
#define MIN_SUPPORTED_CONSENSUS_METHOD 13

/** The highest consensus method that we currently support. */
#define MAX_SUPPORTED_CONSENSUS_METHOD 21
#define MAX_SUPPORTED_CONSENSUS_METHOD 22

/** Lowest consensus method where microdesc consensuses omit any entry
 * with no microdesc. */
@@ -87,11 +87,12 @@
#define MIN_METHOD_FOR_GUARDFRACTION 20

/** Lowest consensus method where authorities may include an "id" line for
 * ed25519 identities in microdescriptors. */
 * ed25519 identities in microdescriptors. (Broken; see
 * consensus_method_is_supported() for more info.) */
#define MIN_METHOD_FOR_ED25519_ID_IN_MD 21
/** Lowest consensus method where authorities vote on ed25519 ids and ensure
 * ed25519 id consistency. */
#define MIN_METHOD_FOR_ED25519_ID_VOTING MIN_METHOD_FOR_ED25519_ID_IN_MD
#define MIN_METHOD_FOR_ED25519_ID_VOTING 22

/** Default bandwidth to clip unmeasured bandwidths to using method >=
 * MIN_METHOD_TO_CLIP_UNMEASURED_BW.  (This is not a consensus method; do not