Note: This project is experimental use at your own risk.
Fingertip is a menubar app that runs a lightweight decentralized resolver to resolve names from the Handshake root zone. It can also resolve names from external namespaces such as the Ethereum Name System. Fingertip integrates with letsdane to provide TLS support without relying on a centralized certificate authority.
You can use a pre-built binary from releases or build your own from source.
You can set these as environment variables prefixed with FINGERTIP_
or store it in the app config directory as fingertip.env
# letsdane proxy address
PROXY_ADDRESS=127.0.0.1:9590
# hnsd root server address
ROOT_ADDRESS=127.0.0.1:9591
# hnsd recursive resolver address
RECURSIVE_ADDRESS=127.0.0.1:9592
# Connect your own Ethereum full node/or blockchain provider such as Infura
#ETHEREUM_ENDPOINT=/home/user/.ethereum/geth.ipc or
#ETHEREUM_ENDPOINT=https://mainnet.infura.io/v3/YOUR-PROJECT-ID
Go 1.16+ is required.
$ git clone https://github.com/buffrr/fingertip
$ brew install dylibbundler git automake autoconf libtool unbound
$ git clone https://github.com/imperviousinc/fingertip
$ cd fingertip && ./builds/macos/build.sh
For development, you can run fingertip from the following path:
$ ./builds/macos/Fingertip.app/Contents/MacOS/fingertip
Configure your IDE to output to this directory or continue to use build.sh
when making changes (it will only build hnsd once).
Follow hnsd build instructions for windows. Copy hnsd.exe binary and its dependencies (libcrypto, libssl and libunbound dlls) into the fingertip/builds/windows
directory.
You no longer need to use MSYS shell.
$ choco install mingw
$ go build -trimpath -o ./builds/windows/ -ldflags "-H windowsgui"
Follow hnsd build instructions for Linux. Copy hnsd binary into the fingertip/builds/linux/appdir/usr/bin
directory.
$ go build -trimpath -o ./builds/linux/appdir/usr/bin/
Fingertip uses hnsd a lightweight Handshake resolver, letsdane for TLS support and go-ethereum for .eth and Ethereum HIP-5 lookups.
The name "fingertip" was stolen from @pinheadmz