sudofeed

dev · · 21:09 · 2 min de citit

Sistemul DNS Sinkhole pentru ESP32-C3 Atinge o Compresie Masivă a Listei de Blocare

Un script personalizat de DNS sinkhole pentru microcontrollerul ESP32-C3 reduce semnificativ dimensiunea listelor de blocare a reclamelor prin transformarea domeniilor în valori de 40 de biți, comprimând o listă de text de 2.2 MB la doar 550 KB. Această optimizare este crucială pentru memoria RAM limitată a ESP32-C3, permițându-i să blocheze eficient peste 110.000 de domenii fără a le stoca direct.

Un dezvoltator a creat un sistem DNS sinkhole extrem de eficient pentru microcontrollerul ESP32-C3, reducând drastic cerințele de stocare pentru listele de blocare a domeniilor. Proiectul abordează provocarea de a integra o listă de blocare mare, de obicei peste 2 MB de text, în memoria RAM limitată a ESP32-C3 (aproximativ 170 KB liberi la rulare). Prin utilizarea unei tehnici de hashing, fiecare domeniu este convertit într-un hash FNV-1a de 40 de biți, care este apoi stocat într-un fișier plat compact și sortat. Această metodă comprimă datele la aproximativ 550 KB, făcându-le fezabile pentru dispozitivele embedded.

Implementarea tehnică implică parsarea formatelor standard de listă de blocare și generarea de hash-uri de 40 de biți pentru fiecare domeniu și subdomeniile sale. Aceste hash-uri sunt apoi sortate și scrise în memoria flash ca rânduri de 5 octeți. O interogare implică transformarea domeniului interogat într-un hash și căutarea acestuia în tabelul compact. Articolul detaliază algoritmul de hashing (FNV-1a) și manipularea biților utilizată pentru a obține reprezentarea de 40 de biți. De asemenea, discută ratele de coliziune, demonstrând că la 40 de biți, probabilitatea unui fals pozitiv (un domeniu neînregistrat blocat greșit) este extrem de scăzută, în jur de una la zece milioane de interogări.

Această abordare are un impact semnificativ asupra fezabilității rulării soluțiilor sofisticate de blocare a reclamelor sau a trackerelor pe dispozitive cu resurse limitate și consum redus de energie, cum ar fi ESP32-C3. Raportul de compresie, reducând dimensiunea listei de patru ori, permite liste de blocare mai mari sau reguli de filtrare mai complexe. Lucrările viitoare ar putea implica optimizarea suplimentară a algoritmului de căutare sau explorarea unor scheme de hashing și mai compacte, deși soluția actuală de 40 de biți oferă un echilibru excelent între dimensiune și acuratețe pentru aplicații embedded.

$ sursa --originală

dev.to

Rezumat realizat de Sudofeed pe baza articolului original. Drepturile asupra conținutului aparțin sursei originale.

citește originalul ↗