<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirserver/src/database.rs, branch arti-v2.2.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.2.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.2.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-03-24T16:04:08Z</updated>
<entry>
<title>Fix typos</title>
<updated>2026-03-24T16:04:08Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2026-03-24T16:04:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1fb2b8dd4aee7c943ce90d6631be473f2a296fe6'/>
<id>urn:sha1:1fb2b8dd4aee7c943ce90d6631be473f2a296fe6</id>
<content type='text'>
Typos found with codespell
</content>
</entry>
<entry>
<title>tor-dirserver: Use collect instead of mutable for</title>
<updated>2026-03-09T08:31:28Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-25T11:16:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ec1dc8a0dba0c7e2389dcf6291c80b5626472354'/>
<id>urn:sha1:ec1dc8a0dba0c7e2389dcf6291c80b5626472354</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Use tor-llcrypto for digests</title>
<updated>2026-03-09T08:31:28Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-25T10:41:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c3738787191c3f21b74e592ea67cce6a60f1af53'/>
<id>urn:sha1:c3738787191c3f21b74e592ea67cce6a60f1af53</id>
<content type='text'>
This commit replaces the uses of sha1, sha2, and sha3 with their
respective pedants from tor-llcrypto for better consistency.

Internally, they still use the same logic and underlying crates but
let's use this encapsulation nonetheless.
</content>
</entry>
<entry>
<title>tor-dirserver: Improve hash wrapper macro docs</title>
<updated>2026-03-09T08:31:28Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-25T10:29:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=27a1ebcef3263522acb9a02763f52eadf113fe4c'/>
<id>urn:sha1:27a1ebcef3263522acb9a02763f52eadf113fe4c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Move schema to own file</title>
<updated>2026-03-09T08:31:28Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-25T09:11:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7814e15ae0f88da389349d2ada0e1101f235063c'/>
<id>urn:sha1:7814e15ae0f88da389349d2ada0e1101f235063c</id>
<content type='text'>
This commit moves the database schema into schema_v1.sql and uses
include_str to include it.  For now, the schema lives in the `src/`
directory.  If this becomes a problem because we get more schemas and
schema upgrades, we can move it into another sub directory, but let's
not overengineer the hierarchy there.
</content>
</entry>
<entry>
<title>tor-dirserver: Implement `State::AuthCerts`</title>
<updated>2026-03-09T08:31:23Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-09T13:13:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=03b54563e88b41c63bc176ecbfcac364b0a389f5'/>
<id>urn:sha1:03b54563e88b41c63bc176ecbfcac364b0a389f5</id>
<content type='text'>
This commit implements the logic required for retrieving, validating,
and storing authority certificates.

The implementation determines the missing certificates by looking at the
signatories of the unvalidated consensus and checking them in the db.
Afterwards, they will be queried and individually filtered and verified
before being inserted into the database.

A return of this implementation notably DOES NOT imply all missing
certificates have been downloaded.  This was chosen for a simplified
retry logic.
</content>
</entry>
<entry>
<title>tor-dirserver: Fix rustdoc comments</title>
<updated>2026-03-09T08:04:53Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-04T11:34:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=20b291d611933a2652b58606f75da66653b830f5'/>
<id>urn:sha1:20b291d611933a2652b58606f75da66653b830f5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Query missing descriptor logic</title>
<updated>2026-03-09T08:04:53Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-03T16:12:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c210e6eef0eb6050a4ac197a31829ea2f793333c'/>
<id>urn:sha1:c210e6eef0eb6050a4ac197a31829ea2f793333c</id>
<content type='text'>
This commit implements the logic for querying missing descriptors by
adding three new methods to ConsensusMeta:
* missing_servers
* missing_extras
* missing_micros

All of them essentially work the same, namely by querying the
consensus_router_descriptor_member database table alongside the docid of
the current consensus, left joining the respective router_descriptor and
returning the digests on all rows where the left join resulteed in a
NULL.

A small exception are extra-info descriptors.  There, we can only return
the ones where we have an accompanying server descriptor, hence why we
perform an inner join with the server descriptors between the from and
the left join.
</content>
</entry>
<entry>
<title>tor-dirserver: Rename `md` to `microdesc`</title>
<updated>2026-03-09T08:04:53Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-03T16:11:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d446471da842d4f67d17b3eb5110c3159e528206'/>
<id>urn:sha1:d446471da842d4f67d17b3eb5110c3159e528206</id>
<content type='text'>
This is better because it is returned by
`ConsensusFlavor::Microdesc::name()`.
</content>
</entry>
<entry>
<title>tor-dirserver: Fix extra info schema</title>
<updated>2026-03-09T08:04:52Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-02-03T15:46:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a32ff82449456a53e7bc3cbacda1ef2413993cd8'/>
<id>urn:sha1:a32ff82449456a53e7bc3cbacda1ef2413993cd8</id>
<content type='text'>
This commit fixes some parts in the extra-info related part of the
database schema.

Most notably, it changes the semantic to indicate that the sha1
represents the unsigned part of the extra-info document.

Likewise, it also ensures that the reference to an extra-info document
must not be null with a plain consensus but null with a microdescriptor
consensus.
</content>
</entry>
</feed>
