Skip to content
Port of TorNS to Stem
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Proposal 279

This is an implementation of the "Tor side" of Proposal 279 ("naming layer api") so that actual naming plugins can be tested/prototyped "now" without changing Tor.

StemNS is a fork of the original TorNS by meejah, which is modified to use Stem instead of txtorcon.

Using This

It will currently connect to a system tor on localhost:9051 or you can change this to 9151 (in to react a Tor Browser Bundle instance.

Tor must be configured with the following option before launching StemNS:

__LeaveStreamsUnattached 1

If it's not, StemNS will exit with an error. In a typical Tor Browser installation, torrc-defaults is the correct place to add this option. The choice to not make StemNS configure this option itself is deliberate; making StemNS configure the option itself would leave a short window during initial connect where name resolution is incorrectly forwarded to the exit relay, which would be a security issue.

This actually works and launches two example services, reached via: ..onion where the two services are .pet.onion for the lookup (so try, e.g., "" in TBB).

The other one is .demo.onion and will always remap to txtorcon's documentation hidden-service. So .demo.onion will redirect you to txtorcon's documentation.

Naming Implementations


Code specific to StemNS, and the code StemNS inherits from TorNS, is licensed under the Unlicense (see LICENSE). StemNS inherits some code from OnioNS-client, which is licensed under the Modified/New BSD License (see LICENSE.OnioNS).

This product is produced independently from the Tor® anonymity software and carries no guarantee from The Tor Project about quality, suitability or anything else.

You can’t perform that action at this time.