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 sane to provide TLS support without relying on a centralized certificate authority.
For handshake domains fingertip can be thought as a user-friendly wrapper of SANE, it uses hardcoded community-hosted external proof services, and DNS over HTTPS for name resolution. An advanced user is welcome to use sane directly.
You can use a pre-built binary from releases or build your own from source.
To run pre-build AppImage on Linux you might need libfuse
:
apt install libfuse2`
You can set these as environment variables prefixed with FINGERTIP_
or store it in the app config directory as fingertip.env
# sane 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.21+ is required.
$ brew install dylibbundler git automake autoconf libtool unbound getdns
$ git clone https://github.com/randomlogin/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 Linux. Copy hnsd binary into the fingertip/builds/linux/appdir/usr/bin
directory.
$ go build -trimpath -o ./builds/linux/appdir/usr/bin/
To create an AppImage run the following script:
bash builds/linux/create_appimage.sh
Due to the difference in hnsd behaviour on Windows and other platforms (and overall complexity of building for windows), stateless DANE is not supported on Windows. The version from the v0.0.3 release should be used for usual DANE.
Fingertip uses hnsd a lightweight Handshake resolver, sane and getdns for TLS support and go-ethereum for .eth and Ethereum HIP-5 lookups.
The name "fingertip" was stolen from @pinheadmz