- 这个由ESP32-C3驱动的项目仅用50KB就拦截了53.7万个广告域名。
- 把5字节(40位)的域名哈希值存进闪存,查询时用二分查找,从而不占RAM。
- 花5美元,照着GitHub上的资料就能自己做一个ESP32-C3驱动的SuperMini广告拦截器。
在ESP32项目里,这个算是相当酷的。开发者ZedAxis(GitHub上的M-Abozaid)创造了一个由ESP32-C3驱动的小装置,仅用50KB就拦截了多达53.7万个广告域名。更棒的是,该设备处理一个拦截请求只要10毫秒(via Tom's Hardware)。
传统Pi-hole的做法是把整个黑名单都加载到RAM里,但ESP32只有几百KB内存,而且该项目中使用的ESP32-C3不像高端型号那样配有8MB PSRAM。为了绕过这一限制,ZedAxis把每个要拦截的域名做哈希,压缩到最多5字节(40位)。
然后,这些哈希值会被排序并直接写入芯片的闪存中。接着,当DNS请求到来时,定制固件会对请求进行哈希处理并执行二分查找。这意味着ESP32-C3的RAM在整个过程中根本用不到。总的来说,在眼下这场RAM大灾难中,这是一个相当巧妙的解决方案。
你也可以自己做一个SuperMini ESP32广告拦截器
整个项目都在GitHub上了
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.