<div dir="ltr">Hello Tor developers, <div><br></div><div>I am interested in becoming an open source contributor for Tor, but I don't know where to start some guidance would be appreciated.</div><div><br></div><div>Thank you,</div><img width="1" height="1" src="http://s.bl-1.com/y2TQJ1S.gif"></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 12, 2017 at 8:00 AM,  <span dir="ltr"><<a href="mailto:tor-dev-request@lists.torproject.org" target="_blank">tor-dev-request@lists.torproject.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send tor-dev mailing list submissions to<br>
        <a href="mailto:tor-dev@lists.torproject.org">tor-dev@lists.torproject.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev" rel="noreferrer" target="_blank">https://lists.torproject.org/<wbr>cgi-bin/mailman/listinfo/tor-<wbr>dev</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:tor-dev-request@lists.torproject.org">tor-dev-request@lists.<wbr>torproject.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:tor-dev-owner@lists.torproject.org">tor-dev-owner@lists.<wbr>torproject.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of tor-dev digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Proposal 281: downloading microdescriptors in bulk<br>
      (Nick Mathewson)<br>
<br>
<br>
------------------------------<wbr>------------------------------<wbr>----------<br>
<br>
Message: 1<br>
Date: Fri, 11 Aug 2017 13:36:00 -0400<br>
From: Nick Mathewson <<a href="mailto:nickm@torproject.org">nickm@torproject.org</a>><br>
To: <a href="mailto:tor-dev@lists.torproject.org">tor-dev@lists.torproject.org</a><br>
Subject: [tor-dev] Proposal 281: downloading microdescriptors in bulk<br>
Message-ID:<br>
        <CAKDKvux=<a href="mailto:eJBh_JsEeiqnhbEbcgRVeMRrbm2G7itZ8kXy4%2BM26A@mail.gmail.com">eJBh_<wbr>JsEeiqnhbEbcgRVeMRrbm2G7itZ8kX<wbr>y4+M26A@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="UTF-8"<br>
<br>
Filename: 281-bulk-md-download.txt<br>
Title: Downloading microdescriptors in bulk<br>
Author: Nick Mathewson<br>
Created: 11-Aug-2017<br>
Status: Draft<br>
<br>
1. Introduction<br>
<br>
  This proposal describes a ways to download more microdescriptors<br>
  at a time, using fewer bytes.<br>
<br>
  Right now, to download N microdescriptors, the client must send<br>
  about 44*N bytes in its HTTP request.  Because clients can request<br>
  microdescriptors in any combination, the directory caches cannot<br>
  pre-compress responses to these requests, and need to use less<br>
  space-efficient on-the-fly compression algorithms.<br>
<br>
  Under this proposal, clients simply say "Send me the<br>
  microdescriptors I need", given what I know.<br>
<br>
2. Combined microdescriptor downloads<br>
<br>
2.1. By diff<br>
<br>
  If a client has a consensus with base64 sha3-256 digest X, and it<br>
  previously had a consensus with base64 sha3-256 digests Y then<br>
  it may request all the microdescriptors listed in X but not Y,<br>
  by asking for the resource:<br>
      /tor/micro/diff/X/Y<br>
<br>
  Clients SHOULD only ask for this resource compressed.<br>
<br>
  Caches MUST NOT answer this request unless they recognize the<br>
  consensus with digest X, and digest Y.<br>
  digest Y.  If answering, caches MUST reply with all of the<br>
  microdescriptors that the cache holds that were listed by<br>
  consensus X, and MUST omit all the microdescriptors that were<br>
  omitted listed in consensus Y.<br>
<br>
2.2. By consensus:<br>
<br>
  If a client has fewer than NMNM% of the microdescriptors listed in a<br>
  consensus X, it should fetch the resource<br>
      /tor/micro/full/X<br>
<br>
  Clients SHOULD only ask for this resource compressed.<br>
<br>
  Caches MUST NOT answer this request unless they recognize the<br>
  consensus with digest X. They should send all the microdescriptors<br>
  they have that are listed in that consensus.<br>
<br>
2.3. When to make these requests<br>
<br>
  Clients should decide to use this format in preference to the<br>
  old download-by-digest format if the consensus X lists their<br>
  preferred directory cache as using a new DirCache subprotocol<br>
  version. (See 5 below.)<br>
<br>
3. Performance analysis<br>
<br>
  This is a back-of-the-envelope analysis using a month's worth of<br>
  consensus documents, and a randomly chosen sample of<br>
  microdescriptors.<br>
<br>
<br>
  On average, about 0.5% of the microdescriptors change between any<br>
  two consensuses.  Call it 50.  That means 50*43 bytes == 2150<br>
  bytes to request the microdescriptors.  It means ~24530 bytes of<br>
  microdescriptors downloaded, compressed to ~13687 bytes by zstd.<br>
<br>
  With this proposal, we're down to 86 bytes for the request, and we<br>
  can precompute the compressed output, making it save to use lzma2,<br>
  getting a compressed result more like 13362.<br>
<br>
  It appears that this change would save about 15% for incremental<br>
  microdescriptor downloads, most of that coming from the reduction<br>
  in request size.<br>
<br>
  For complete downloads, a complete set of microdescriptors is about<br>
  7700 microdesciptors long.  That makes the total number of bytes<br>
  for the requests 7700*43 == 331100 bytes.  The response, if<br>
  compressed with lzma instead of zstd, would fall from 1659682 to<br>
  1587804 bytes, for a total savings of 20%.<br>
<br>
<br>
5. Compatibility<br>
<br>
   Caches supporting this download protocol need to advertise<br>
   support of a new DirCache subprotocol version.<br>
<br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
______________________________<wbr>_________________<br>
tor-dev mailing list<br>
<a href="mailto:tor-dev@lists.torproject.org">tor-dev@lists.torproject.org</a><br>
<a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev" rel="noreferrer" target="_blank">https://lists.torproject.org/<wbr>cgi-bin/mailman/listinfo/tor-<wbr>dev</a><br>
<br>
<br>
------------------------------<br>
<br>
End of tor-dev Digest, Vol 79, Issue 4<br>
******************************<wbr>********<br>
</blockquote></div><br></div>