Ensure elections have more than voter
because having one voter doesn't make any sense, and causes panics in the
Some refactoring is also done in ElectionWaitTUI to improve readability.
Ensure we process the start message before processing evals
This is why we've sometimes seen panics when FinalJoinIDs is nil
Check for nil pointer
We've been seeing nil pointer panics in this function.
Close files used in marshalling
Print helpful error message when the map schema is incompatible
Speed up marshalling by storing keys in separate files
Won't do TODO
It's basically not possible to have "no limit" (and this is actually a good
Control sync filter via the new custom syncer
We have too much stuff in main.go
Log reading and unmarshalling of elections file
Actually use custom syncer and fix inheritance from DefaultSyncer
I forgot to actually use the new tallyard syncer in 1e94d712 (making that commit
essentially a no-op).
Also, we want to make sure we correctly initialize the custom syncer with
NewDefaultSyncer, which sets important values like ParseEventContent.
Fix panic when our device doesn't have election private keys
In cases where the user joins an election on another computer, we need to make
sure we don't panic merely because our device doesn't have the private keys to
fully verify sum+evals messages. This change simply marks the verification
process of the election as failed.
In the future we can use something like SSSS to share keys between tallyard