The Handshake Browser Reference Client

Introducing “HandyBrowser” 🤝

BlockChannel
Jun 22 · 4 min read
Image for post
Image for post

To the Handshake Community,

📥 Download Now

It’s been a fun journey over the last ~2yrs helping get Handshake ready for mainnet. We helped the network launch Handshake in February with just HSD, and no HNSD light client as the network bootstrapped itself. Mining took center stage the first 140 days as we helped ensure the ecosystem was prepared for diverse participants with HandyMiner (built over a year+); and since then mining has matured into FPGAs and ASICS, as 5+ competing clients emerged as well. A truly decentralized mining launch.

For the next 140+ days, we’re now focusing on adoption and usage. With that comes HandyBrowser, a reference client for the community to build on top of. This is a pivotal moment for Handshake, much like the advent of Web3 Browsers with Cipher Browser (which my friends and I sold to Coinbase; and it is now Coinbase Wallet, their HD non-custodial wallet), users can now easily access the New Internet (powered by Handshake), with the lowest barrier to entry possible.

With HandyBrowser, the community now maintains full control of this implementation and what it will eventually offer. We wish to work alongside everyone to get the features we need so it can stand as a POC for Brave/Chrome/Opera and other major browsers. This also does a lot of the heavy lifting for a future mobile browser port if anyone is working in that direction.

HandyBrowser (aka “Handy”) is using node-webkit nw.js under the hood. Nw.js packages the latest chromium with the latest node.js and allows us granular security, html and many other features. Since we did not want users to manually have to modify system level configurations and run HNSD/HNS resolvers locally themselves, we rely on Docker. Docker allows us to create a lightweight linux virtual machine that installs HNS resolvers, and is pre-configured to use the HNS resolver.

We simply proxy all web traffic from the Chromium browser into the Docker machine which resolves via HSD and returns content! Docker generates a self-signed certificate on container creation which allows the user to proxy https traffic to the browser. During installation Docker runs a one-time install process, after that it won’t need to be run again, and you’ll be able to start browsing/resolving names immediately (even as the HSD fullnodes syncs in Docker).

Image for post
Image for post
Fig 1: Diagram showing how HandyBrowser (nw.js) communicates with the dockerized HSD container which holds the fullnode and recursive resolver that is used behind the scenes for the browser.

The Why
Why Nw.js over Electron? The lead-dev of this project has used Nw.js extensively in enterprise-class application for many years and knows the inside/outs of every piece of the framework. In addition, the window manager (urlbar) we wrote needed to control all windows (tabs) created within the application and IPC is not fun. Nw.js allowed us more flexibility for the task of building a web-browser while offering the security we needed: No browser windows have access to Node.js, just the window manager. More reasons here, including: "Even better, you can run Chrome Apps/extensions using NW.js".

(Fun Fact: Brave was written in Electron, before they moved to Muon, and then later onto Chromium. With NW.js and Chromium, we have a modern stack that is forward-compatible with current major browsers and the Handshake protocol itself, which is also written in Node.js.)

Image for post
Image for post
The official HandyBrowser (“Handy”) logo.
  • Imports Bookmarks locally from Google Chrome.
  • Bookmark Manager and Bookmarks Bar (with default bookmarks to get new users started in the ecosystem).
  • Network map for Handshake nodes; allows browser users to see the network grow globally as new browser users come online.
  • Custom “HNS Lock” that changes color between White [HNS]/Dark Grey[DNS]/Green [DNSSEC+HNS] to notate how you’re connecting over DNS.
  • Video playback support, enjoy YouTube and Netflix.
  • Donate modal for the HandyBrowser team.
  • Use the HandyBrowser Docker container as a proxy for your mainstream browser to resolve Handshake Names. After starting HandyBrowser, set your mainstream browser proxy to localhost:5301
  • UI indicators for the Docker HSD node syncing status, and option for nuking the docker image in the event of any weird beta edge cases.
Image for post
Image for post
Fig 2: Comparison of Handshake DNS versus the legacy DNS. Notice the reduction in hops and requests when HNS is both your recursive and authoritative resolver.

We’re excited for the community to get started, and we expect there to be discussion around the project, and likely technical questions and concerns on how to get started.

Please post relevant feedback on the HandyBrowser Github by creating a new issue, or if you wish to make an improvement, submit a PR directly to the project.

If you wish to discuss the browser with us in the community, you can reach out to us directly in our HandshakeTalk Telegram channel.

— The HandyBrowser Team (Alex, McKie, & Thomas)

BlockChannel

BlockChannel is a new media & educational hub focused on…

Sign up for BlockChannel

By BlockChannel

An educational new media org (+show) focused on the sociocultural/cryptoeconomic issues related to blockchains/crypto. Take a look

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

BlockChannel

Written by

BlockChannel is a new media & educational hub focused on the socio-cultural/economic issues related to blockchain technologies like BTC/ETH/& ZEC.

BlockChannel

BlockChannel is a new media & educational hub focused on the socio-cultural/economic issues related to blockchain technologies like BTC/ETH/& HNS. Visit BlockChannel.com for more resources; and SoundCloud.com/BlockChannelShow for our official podcast.

BlockChannel

Written by

BlockChannel is a new media & educational hub focused on the socio-cultural/economic issues related to blockchain technologies like BTC/ETH/& ZEC.

BlockChannel

BlockChannel is a new media & educational hub focused on the socio-cultural/economic issues related to blockchain technologies like BTC/ETH/& HNS. Visit BlockChannel.com for more resources; and SoundCloud.com/BlockChannelShow for our official podcast.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store