Η αρχιτεκτονική του hash-in-flash

Η βασική καινοτομία του project έγκειται στην αποφυγή της φόρτωσης ολόκληρων strings στη μνήμη RAM, η οποία αποτελεί το κύριο σημείο συμφόρησης (bottleneck) σε παρόμοιες υλοποιήσεις. Αντίθετα, το σύστημα μετατρέπει τα domains σε hashes 40-bit και τα αποθηκεύει σε ταξινομημένη μορφή στη flash μνήμη. Κατά την άφιξη ενός DNS query, το σύστημα εκτελεί binary search στη flash, επιτυγχάνοντας χρόνο απόκρισης περίπου 10ms.

Βελτιστοποίηση πόρων και hardware

Η επιλογή των 40 bits για τα hashes αποτελεί το «sweet spot» μεταξύ του μεγέθους της flash και της πιθανότητας συγκρούσεων (collisions). Με 141.000 domains, οι συγκρούσεις είναι πρακτικά μηδενικές, ενώ η χρήση του ESP32-C3 επιτρέπει την κατασκευή ενός λειτουργικού ad-blocker με κόστος υλικών περίπου 2 δολαρίων, χωρίς την ανάγκη για ακριβή PSRAM.

Διαχείριση και ασφάλεια

Παρά τους περιορισμένους πόρους, το firmware περιλαμβάνει ένα web dashboard για τη διαχείριση των blocklists και των ρυθμίσεων δικτύου. Η ασφάλεια ενισχύεται με HTTP Basic Auth για τα endpoints που τροποποιούν την κατάσταση της συσκευής, ενώ εφαρμόζονται τεχνικές προστασίας από CSRF (Cross-Site Request Forgery) μέσω custom headers, διασφαλίζοντας ότι η συσκευή δεν μπορεί να παραβιαστεί εύκολα από κακόβουλα scripts εντός του τοπικού δικτύου.

Μελλοντικές επεκτάσεις

Το project βρίσκεται σε συνεχή εξέλιξη, με στόχο τη βελτιστοποίηση της ταχύτητας αναζήτησης μέσω bucketed prefix indexing, το οποίο θα μειώσει τις απαιτούμενες αναγνώσεις από τη flash από 18 σε μόλις 1-2 ανά query, αυξάνοντας δραστικά το throughput του συστήματος.