opensystm / handshake-micro-grants

12 stars 5 forks source link

Super fast Fingertip #7

Open handshake-enthusiast opened 11 months ago

handshake-enthusiast commented 11 months ago

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:

What other pain points I have with Fingertip:

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 https://github.com/handshake-org/hnsd/pull/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:

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:

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 commented 3 months ago

How's this going?