mirror repository of the tor core protocol in case of issues
Go to file
Micah Elizabeth Scott 903c6cf1ab hs_pow: client side effort adjustment
The goal of this patch is to add an additional mechanism for adjusting
PoW effort upwards, where clients rather than services can choose to
solve their puzzles at a higher effort than what was suggested in the
descriptor.

I wanted to use hs_cache's existing unreachability stats to drive this
effort bump, but this revealed some cases where a circuit (intro or
rend) closed early on can end up in hs_cache with an all zero intro
point key, where nobody will find it. This moves intro_auth_pk
initialization earlier in a couple places and adds nonfatal asserts to
catch the problem if it shows up elsewhere.

The actual effort adjustment method I chose is to multiply the suggested
effort by (1 + unresponsive_count), then ensure the result is at least
1. If a service has suggested effort of 0 but we fail to connect,
retries will all use an effort of 1. If the suggestion was 50, we'll try
50, 100, 150, 200, etc. This is bounded both by our client effort limit
and by the limit on unresponsive_count (currently 5).

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-05-10 07:40:46 -07:00
.gitlab/issue_templates Remove Proposal.md. 2021-02-12 20:39:48 +00:00
changes changes: Ticket 40634 (hs_pow) 2023-05-10 07:38:29 -07:00
contrib version: Bump version to 0.4.7.8-dev 2022-06-17 10:45:24 -04:00
doc hs_pow: Rate limited dequeue 2023-05-10 07:38:28 -07:00
m4 added check for compiler support of Wextra-semi 2022-11-01 15:32:43 -06:00
scripts gitlab-ci: Try enabling GPL mode so we test hs_pow 2023-05-10 07:38:29 -07:00
src hs_pow: client side effort adjustment 2023-05-10 07:40:46 -07:00
.appveyor.yml CI: Remove VS2015 AppVeyor build 2020-08-12 14:09:32 +03:00
.clang-format Add a dire warning about not reformatting the whole codebase yet. 2020-02-12 18:52:35 -05:00
.editorconfig Add .editorconfig to follow coding standards style 2018-06-17 19:24:40 -04:00
.gitignore ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
.gitlab-ci.yml gitlab-ci: Try enabling GPL mode so we test hs_pow 2023-05-10 07:38:29 -07:00
.travis.yml rust: Remove Rust support from tree 2021-10-06 15:12:04 -04:00
acinclude.m4 m4: Change LIBS order of TOR_SEARCH_LIBRARY() 2021-01-13 09:52:10 -05:00
autogen.sh Cleanup shellcheck warnings in autogen.sh 2019-01-18 13:49:30 +02:00
ChangeLog changelog: Update with latest releases 2023-01-12 12:11:16 -05:00
CODE_OF_CONDUCT Add CODE_OF_CONDUCT file 2018-07-05 11:22:33 +03:00
configure.ac ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
CONTRIBUTING Add CODE_OF_CONDUCT file 2018-07-05 11:22:33 +03:00
Doxyfile.in Remove last artifacts of Rust related code 2021-10-06 15:12:04 -04:00
INSTALL Remove old instructions from INSTALL 2018-07-03 16:34:52 +03:00
LICENSE Merge branch 'maint-0.3.5' into maint-0.4.4 2021-03-12 11:36:34 -05:00
Makefile.am ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
README.md readme: Fix sentence in Releases section 2022-03-09 14:13:34 -05:00
ReleaseNotes changelog: Update with latest releases 2023-01-12 12:11:16 -05:00
warning_flags.in Try @warning_flags to avoid bloating verbose make logs 2018-12-21 10:00:23 -05:00

Tor protects your privacy on the internet by hiding the connection between your Internet address and the services you use. We believe Tor is reasonably secure, but please ensure you read the instructions and configure it properly.

Build

To build Tor from source:

./configure
make
make install

To build Tor from a just-cloned git repository:

./autogen.sh
./configure
make
make install

Releases

The tarballs, checksums and signatures can be found here: https://dist.torproject.org

  • Checksum: <tarball-name>.sha256sum
  • Signatures: <tarball-name>.sha256sum.asc

Schedule

You can find our release schedule here:

Keys that CAN sign a release

The following keys are the maintainers of this repository. One or many of these keys can sign the releases, do NOT expect them all:

Development

See our hacking documentation in doc/HACKING/.

Resources

Home page:

Download new versions:

Documentation, including links to installation and setup instructions:

Frequently Asked Questions: