This is part of the grand proposal 224. The task here is to implement the new descriptor format, HSDir caching for store/lookup and make sure relay can serve them. Note that this ticket does NOT require the client and service to support the new descriptor format. This is only on the relay side.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Ok big branch here. Some of it has been reviewed already in different branches but this one bring the whole feature together. Unfortunately, we need a single branch because all child tickets depends on each other.
Ok big branch here. Some of it has been reviewed already in different branches but this one bring the whole feature together. Unfortunately, we need a single branch because all child tickets depends on each other.
Did an initial gitlab review here of the following commits:
250cde9 * prop224: Descriptor decoding implementation394266f * prop224: Descriptor encoding implementation57084a4 * prop224: Add new cert type for hidden service61041e2 * trunnel: Uncomment link_specifier so we can use itceaf43b * Move token parsing code to parsecommon.{c|h}
I will review those commits more ASAP, and also move on to the other commits.
It adds support for fetching descs from HSDirs (using "/tor/hs/3/" path)
It adds high-level unittests for pushing/fetching descs from HSDirs.
It introduces a prefix for desc signatures.
It's rebased on latest git master.
It fixes a few bugs and improves some code.
Addresses check-spaces (although in its own commit).
David another thing we should discuss is whether we should guard all this HSDir cache code with a consensus parameter, or we should just leave it there active but unused till we deploy the rest of the prop224 parts.
I've merged all your things! minor fixes here and there mostly to follow some syntax but that's it. I've integrated them in the current commit that exists. The fetch feature has its own commit as well as the unit test for it. Finally, the "make check-spaces happy" is also its own commit.
On top of all this, I've added a commit for the consensus params (discussed in #19899 (moved)). This is imo ready for a merge_ready state that is put it in nickm's court.
@asn, can you confirm your happiness? :) Once you do, I'll create a merge request on Gitlab. Located in branch ticket17238_029_02.
I've merged all your things! minor fixes here and there mostly to follow some syntax but that's it. I've integrated them in the current commit that exists. The fetch feature has its own commit as well as the unit test for it. Finally, the "make check-spaces happy" is also its own commit.
On top of all this, I've added a commit for the consensus params (discussed in #19899 (moved)). This is imo ready for a merge_ready state that is put it in nickm's court.
Hmm, you mean af4d413?
I don't see a consensus param there. I only see a torrc option being introduced.
I don't think a torrc option is that useful: I'd actually like a real consensus param (like SRVAgreements). Am I reading this right?
Regarding HS stats, maybe let's find some time to discuss this during the dev meeting, and see what more people think? Specifically, should we add a new stats line for next gen onion services, or blend them with the old stats?
The former approach sounds more reasonable, but we should think of security issues here (gathering stats on a growing community) and also whether the current noise will make the stats useless until there are hundreds of next gen onion services.
A patch to add stats would be pretty small and easy whichever approach we follow, so we can also get it through in the next release.
re consensus param: Yes I did fail there. I just pushed a new branch with the top commit fixed. It should be a bit better now :).
re stats: Agree, we could also put some researchers in the loop! So I say let's postpone until dev meeting and anyway even if this gets in 029, the feature won't be enabled because of the consensus param.
I've looked at some of this code, and made suggestions for improvements on gitlab.
If the unit tests are comprehensive enough to exercise all the packing code, I'd like to make sure we test it on a big-endian system before merging, but those can be hard to come by these days.