Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Super fast Fingertip #7

Open
handshake-enthusiast opened this issue Oct 19, 2023 · 1 comment
Open

Super fast Fingertip #7

handshake-enthusiast opened this issue Oct 19, 2023 · 1 comment

Comments

@handshake-enthusiast
Copy link

Problem

Disclaimer: The following section primarily reflects my personal experience and opinions.

At the moment the best way and the defacto standard to resolve Handshake domains on computers is Fingertip (see the table in the notes). It's an elegant small app which does its job well. Kudos to the Impervious team. It has some problems, but the biggest problem is speed.

I'm attaching a video which demonstrates how long it takes to sync:

  • from the first start ~2 minutes 37 seconds
  • after stop-start ~2 minutes 37 seconds
  • after the app restart ~ 5 minutes 47 seconds (an outlier)

What other pain points I have with Fingertip:

  • a few times Fingertip started to take 100% of my CPU power, so my battery quickly depleted while unplugged without me even noticing the problem until it's too late
  • sometimes Fingertip stops resolving Handshake domains, so I have to restart it

This made its usage less appealing for me considering it takes at least two and a half minutes to syncronise after the start. My experience profoundly changed after discovering the 'checkpoints' feature.

What will you be building? Why is that a valuable open source contribution to Handshake?

There is a feature released in hnsd v2 called "checkpoints". You can read about it in handshake-org/hnsd#99, but what's particularly important is the tremendous sync speed up. Fingertip uses hnsd under the hood. However, the latest Fingertip release happened on Sep 23, 2021. The release was more than two years ago, but the checkpoints feature was merged into hnsd less than one year ago. Then, in February 2023 the feature was implemented and submitted as a pull request to Fingertip by Rithvik Vibhu. It hasn't been merged since then.

I'm using a version of Fingertip that incorporates enhancements by Rithvik Vibhu and Matthew Zipkin. I'm attaching a video which demonstrates how much faster it syncronises:

  • from the first start ~37 seconds
  • after stop-start ~5 seconds
  • after the app restart ~5 seconds

I'm going to release a new version of Fingertip which includes the checkpoints feature and a number of improvements. This will make Fingertip tremendously faster and hence better UX-wise. This is going to be a (hopefully) temporary fork until the Impervious team is back and releasing new versions. My primary objective is to provide users with a significantly faster version of Fingertip. I'm going to establish a simple landing page which will be accessible via an ICANN domain and a Handshake domain. The page will act as a wiki and will contain information on how to install Fingertip on different OSes and in different browsers.

What have you built previously?

https://github.com/handshake-enthusiast/handshake-enthusiast#readme

What are completion criteria?

The release in my fork will include:

I aim to, but do not promise, test and include binaries for additional OSes in the near future:

A one page wiki which describes how to install Fingertip on different OSes and in different browsers accessible via:

  • an ICANN domain
  • a Handshake domain

When will this be completed (max 4 weeks)?

Approximately 2 weeks after the grant is awarded.

What is your contact information?

Email: turbine_verbose0s@icloud.com

Notes

  1. The license is permissive for what I'm going to accomplish
  2. I conducted some research to determine the popularity of different Handshake resolvers. Below is a table showing how many times each resolver was mentioned in Handshake Telegram chats:
Resolver Handshake HNS HNS Tech
Beacon 163 83
Fingertip 234 205
HNSNS 17 3
HNSDNS 2 2
@NetOpWibby
Copy link

How's this going?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants