vote and consensus parsing using parse2, for dirserver
We need to be able to parse votes and the documents they refer to.
This ticket is a list of (hopefully) all the Items in network status documents and the documents referenced or contained therein.
Tickybox ticked means "there is a field in the relevant Rust datatype for this, and it implmmenets the appropriate parse2 trait(s)".
Network status document preamble etc.
This is intended to cover votes and plain consensuses and md consensuses.
-
network-status-version--- Document format version {#item:network-status-version} -
vote-status--- Declare document type {#item:vote-status} -
consensus-methods-- Supported consensus methods {#item:consensus-methods} -
consensus-method--- Consensus method used {#item:consensus-method} -
published--- Publication time {#item:published} -
valid-after--- Start of the Interval {#item:valid-after} -
fresh-until--- Time until no longer fresh {#item:fresh-until} -
valid-until--- Time until no longer valid {#item:valid-until} -
voting-delay--- Vote timing parameters {#item:voting-delay} -
client-versions--- Recommended Tor client software {#item:client-versions} -
server-versions--- Recommended Tor server software {#item:server-versions} -
package--- Software distribution hashes (obsolete) {#item:package} -
known-flags--- Router flags which could be determined {#item:known-flags} -
flag-thresholds--- Authority's performance thresholds {#item:flag-thresholds} -
required-/recommended-*-protocols--- Minimum protocol features {#item:required-relay-protocols} -
params--- Network parameters {#item:params} -
shared-rand-*-value--- Shared random values (in consensus) {#item:shared-rand-current-value} -
bandwidth-file-headers--- Bandwidth file metadata {#item:bandwidth-file-headers} -
bandwidth-file-digest--- Bandwidth file {#item:bandwidth-file-digest} -
dir-source--- Introduces authority entry {#item:dir-source} -
contact--- Authority contact information {#item:contact} -
vote-digest--- Contributing vote {#item:vote-digest} -
legacy-dir-key--- Superseded authority key {#item:legacy-dir-key} -
shared-rand-participate--- Indicates shared random participation {#item:shared-rand-participate} -
shared-rand-commit--- Shared random commitment {#item:shared-rand-commit} -
shared-rand-*-value--- Shared random values (in votes) {#authority-item-shared-rand-value}
Router status entries
-
r--- Introduce a router status entry {#item:r} -
a--- Further router address(es) (IPv6) {#item:a} -
s--- Router status flags {#item:s} -
v--- Relay's Tor (protocol) version {#item:v} -
pr--- Subprotocol capabilities supported {#item:pr} -
w--- Bandwidth estimate {#item:w} -
p--- Exit ports summary {#item:p} -
m--- Microdescriptor hashes {#item:m} -
id--- Relay's (ed25519) identity {#item:id} -
stats--- Statistics for this relay {#item:stats}
Consensus document footer etc.
-
directory-footer--- Introduce directory footer {#item:directory-footer} -
bandwidth-weights--- Weights to apply during path selection {#item:bandwidth-weights} -
directory-signature--- Signature {#item:directory-signature}
Directory authority key certificate
-
dir-key-certificate-version--- Introduce an auth key cert {#item:dir-key-certificate-version} -
dir-address--- Public directory service address {#item:dir-address} -
fingerprint--- authority identity, H(KP_auth_id_rsa) {#item:fingerprint} -
dir-identity-key--- authority identity key, KP_auth_id_rsa {#item:dir-identity-key} -
dir-key-published--- Certificate generation time {#item:dir-key-published} -
dir-key-expires-- Certificate expiry time {#item:dir-key-expires} -
dir-signing-key--- Signing key, KP_auth_sign_rsa {#item:dir-signing-key} -
dir-key-crosscert--- Cross-certificate by KP_auth_sign_rsa {#item:dir-key-crosscert} -
dir-key-certification--- Signature {#item:dir-key-certification}
Microdescriptors
-
“onion-key” NL (Optionally, a public key in PEM format) -
“ntor-onion-key” SP base-64-encoded-key NL -
“a” SP address “:” port NL -
"family" names NL -
"family-ids" SP ids SP NL -
“p” SP (“accept” / “reject”) SP PortList NL -
“p6” SP (“accept” / “reject”) SP PortList NL -
id(three variants)
Server descriptors
-
router--- Introduce a router descriptor {#item:router} -
identity-ed25519--- Specify the router's ed25519 identity {#item:identity-ed25519} -
master-key-ed25519--- Redundantly specify the router's ed25519 identity {#item:master-key-ed25519} -
bandwidth--- Report router's network bandwidth {#item:bandwidth} -
platform--- Describe the platform on which this relay is running {#item:platform} -
published--- Time this descriptor (and extra-info) was generated {#item:published} -
fingerprint-- Redundant hash of ASN-1-encoding of router identity key {#item:fingerprint} -
hibernating--- Whether the relay is hibernating {#item:hibernating} -
uptime--- How long this relay has been continuously running {#item:uptime} -
onion-key--- Relay's obsolete RSA TAP key {#item:onion-key} -
onion-key-crosscert--- Reverse signature by obsolete TAP key {#item:onion-key-crosscert} -
ntor-onion-key-- KP_ntor, the circuit extension key {#item:ntor-onion-key} -
ntor-onion-key-crosscert--- Reverse cert by K_ntor on KP_relayid_ed {#item:ntor-onion-key-crosscert} -
signing-key--- KP_relayid_rsa, relay's obsolete RSA identity key {#item:signing-key} -
accept,reject--- Exit policy {#item:accept} -
ipv6-policy--- Exit policy summary for IPv6 {#item:ipv6-policy} -
overload-general--- Relay is overloaded {#item:overload-general} -
contact--- Server administrator contact information {#item:contact} -
bridge-distribution-request--- Request distribution method {#item:bridge-distribution-request} -
family--- Group relays for the purposes of path selectdion {#item:family} -
family-cert--- Prove membership in a relay family {#item:family-cert} -
eventdns--- Declare support for non-obsolete DNS logic -
extra-info-digest--- Hash of the extra-info document {#item:extra-info-digest} -
hidden-service-dir--- Declares this router to be a Hidden Service directory {#item:hidden-service-dir} -
allow-single-hop-exits--- Declare support for single-hop exit circuits {#item:allow-single-hop-exits} -
or-address-- Alternative ORport address and port {#item:or-address} -
tunnelled-dir-server--- Accepts BEGIN_DIR relay message via ORport -
proto- Subprotocol capabilities supported {#item:proto} -
router-sig-ed25519--- Signature {#item:router-sig-ed25519} -
router-signature--- RSA signature {#item:router-signature}
Edited by Ian Jackson