After #21377 (moved) is implemented, the bandwidth authorities will start publishing the bandwidth files that they have used in their votes and these will be stored by CollectTor.
This is currently implemented in sbws, but it's possible that we still need to change the format of the bandwidth file.
As discussed in #28684 (moved), it would be a problem to parse files already archived if the format of the bandwidth file changes, so it would be better if this implemented in stem.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Thanks juga! Sounds good. Once the bwauth file format and a method of getting them have been added to the tor spec I'd be happy to help write a parser (or merge it if ya have a patch).
I'd be happy to help write a parser (or merge it if ya have a patch).
I'd encourage you to wait for the Tor features #21377 (moved) (bandwidth file URL), and maybe also #26698 (moved) (bandwidth-file-digest). There might be last-minute code or spec changes.
Thanks teor! I'd be happy to proceed with the parser part of this now. It's fine if there's spec tweaks up until our next Stem release, which is a very long ways out. That said, I'll hold off on the downloader component until #21377 (moved) has been merged since I need that for an end-to-end test.
To proceed with making a parser I need a copy of a bandwidth authority file for our unit tests. Per chance does anyone have one handy?
Thanks teor! I'd be happy to proceed with the parser part of this now. It's fine if there's spec tweaks up until our next Stem release, which is a very long ways out. That said, I'll hold off on the downloader component until #21377 (moved) has been merged since I need that for an end-to-end test.
To proceed with making a parser I need a copy of a bandwidth authority file for our unit tests. Per chance does anyone have one handy?
You should have three files in your unit tests:
a format version 1.0 file from Torflow,
a format version 1.1 file from sbws 0.1.0 to 1.0.0
If you want to parse a real file that contains thousands of relays, they are publicly archived by some directory authorities. You should get a sample from longclaw, which runs sbws, and another authority, which all run torflow.
In fact, you should have 4 files in your unit tests, because there are two different kinds of 1.2.0 files.
Since it'll change again with 1.0.3 (not released yet) and since, except for longclaw, there're no other authorities that has used sbws, do you really think it's needed to support the files produced by sbws 1.2.0?.
Thanks teor! I'd be happy to proceed with the parser part of this now.
It's basically implemented in sbws [0], but there're some changes to make
I guess it should inherit from stem.descriptor.Descriptor. It's not using regular expressions but after looking how you implemented other documents, might be easier to use them.
Probably there's no need to separate classes for header and bandwidth lines.
In fact, you should have 4 files in your unit tests, because there are two different kinds of 1.2.0 files.
Since it'll change again with 1.0.3 (not released yet) and since, except for longclaw, there're no other authorities that has used sbws, do you really think it's needed to support the files produced by sbws 1.2.0?.
People will expect stem to parse all available format versions.
Here's why we might need to parse each format version:
stem will need to parse 1.0.0 format files, because they're produced by Torflow on most authorities.
if anyone is keeping an archive of bandwidth files from longclaw, then it may contain 1.1.0 format files, and it will contain 1.2.0 format files.
if stem's parser is ready before longclaw deploys sbws 1.0.3, then it should be able to parse 1.2.0 format files.
And more generally:
The bandwidth file format is forward-compatible: a well-written parser should be able to handle 1.0.0, 1.1.0, 1.2.0, and all future 1.x format versions. And it's worth testing the parser with all available format versions, to make sure it produces useful results.
If you want to parse a real file that contains thousands of relays, they are publicly archived by some directory authorities. You should get a sample from longclaw, which runs sbws, and another authority, which all run torflow.
Fixed in the parser. I would advise for the spec to say which is preferred, explaining that allowance of the other is kept only for backward compatability. The way the spec's being changed here (simply citing both header dividers) makes it confusing which is the right one going forward.
Stem can create bandwidth files, so I need to know which is preferred.
Fixed in the parser. I would advise for the spec to say which is preferred, explaining that allowance of the other is kept only for backward compatability. The way the spec's being changed here (simply citing both header dividers) makes it confusing which is the right one going forward.
Stem can create bandwidth files, so I need to know which is preferred.
I'd say 5 because that was the first we wrote in the spec and what sbws currently writes. 4 was a typo bug when it was first implemented in sbws.
atagar, sorry i haven't still looked at your code, will do it before the end of the week, but don't wait for me.
If if find later something missing, we can always open a new ticket.