lnd.xprv/tor
Wilmer Paulino d6c2957f3c
tor: add inital tor controller implementation
In this commit, we add our inital implementation of a Tor Controller.
This commit includes the ability for the controller to automatically
signal the Tor daemon to create a v2 onion service. This will be
expanded later on to support creating v3 onion services.

Before allowing the controller to interact with the Tor daemon, the
connection must be authenticated first. This commit includes support for
the SAFECOOKIE authentication method as a sane default.

Co-Authored-By: Eugene <crypt-iq@users.noreply.github.com>
2018-06-04 20:41:36 -07:00
..
controller.go tor: add inital tor controller implementation 2018-06-04 20:41:36 -07:00
net.go tor: streamline package to better follow the Effective Go guidelines 2018-06-04 20:41:28 -07:00
onionaddr.go tor: add onion address implementation 2018-06-04 20:41:30 -07:00
README.md tor: add inital tor controller implementation 2018-06-04 20:41:36 -07:00
tor.go tor: return the connection's actual remote address rather than the proxy's 2018-06-04 20:41:35 -07:00

tor

The tor package contains utility functions that allow for interacting with the Tor daemon. So far, supported functions include:

  • Routing all traffic over Tor's exposed SOCKS5 proxy.
  • Routing DNS queries over Tor (A, AAAA, SRV).
  • Limited Tor Control functionality (synchronous messages only). So far, this includes:
    • Support for SAFECOOKIE authentication only as a sane default.
    • Creating v2 onion services.

In the future, the Tor Control functionality will be extended to support v3 onion services, asynchronous messages, etc.

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/tor