"$2 ESP32-C3 microcontroller module" ... "It blocks ads and tracking domains across devices on a home or small office network by filtering DNS requests."
So, if you want to use a locked down router, this device adds a blocklist, and you resolve your systems DNS requests through it, via wifi.
Personally, i'd just get a different router, although for $2, its a cheap stop gap.
"Instead of storing domain strings in RAM, the project stores them as sorted 40-bit FNV-1a hashes in flash memory and uses binary search to check DNS requests."
"C++ firmware extracts the domain, hashes it (including parent suffixes), and performs a binary search against the flash hash table. If the domain is on the blocklist, the ESP32-C3 returns 0.0.0.0 to block the request. Otherwise, it forwards the query to an upstream DNS server and returns the response to the client.
This method fits over 140,000 domains into ~0.7 MB of flash memory while using only ~50 KB of RAM. A lookup takes around 10 ms (including WiFi round-trip time), requiring about 18 flash reads."
Nice demonstration of an embedded software technique, to create a device I can't imagine a practical use for, although I'm sure someone else can.
I can see it being useful if you aren’t allowed to change the router (living with roommate, weird landlord, ISPs in certain countries). Otherwise OpenWRT or similar would be better. Still it’s an interesting application of the hardware.
"$2 ESP32-C3 microcontroller module" ... "It blocks ads and tracking domains across devices on a home or small office network by filtering DNS requests."
So, if you want to use a locked down router, this device adds a blocklist, and you resolve your systems DNS requests through it, via wifi.
Personally, i'd just get a different router, although for $2, its a cheap stop gap.
"Instead of storing domain strings in RAM, the project stores them as sorted 40-bit FNV-1a hashes in flash memory and uses binary search to check DNS requests."
"C++ firmware extracts the domain, hashes it (including parent suffixes), and performs a binary search against the flash hash table. If the domain is on the blocklist, the ESP32-C3 returns 0.0.0.0 to block the request. Otherwise, it forwards the query to an upstream DNS server and returns the response to the client.
This method fits over 140,000 domains into ~0.7 MB of flash memory while using only ~50 KB of RAM. A lookup takes around 10 ms (including WiFi round-trip time), requiring about 18 flash reads."
Nice demonstration of an embedded software technique, to create a device I can't imagine a practical use for, although I'm sure someone else can.
I can see it being useful if you aren’t allowed to change the router (living with roommate, weird landlord, ISPs in certain countries). Otherwise OpenWRT or similar would be better. Still it’s an interesting application of the hardware.