EgyptM-Abozaid/esp32-c3-adblock
Pi-hole-class DNS ad-blocker on a $2 ESP32-C3 (no PSRAM): 537k domains as 40-bit FNV-1a hashes in flash, binary-searched. UDP DNS sinkhole + web dashboard. https://youtube.com/shorts/RaxszOUMi8E?feature=share
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Ngày
#1 Repository Của Ngày
#1 Repository Của Ngày
🔒 Ad-block DNS kiểu Pi-hole trên con chip $2 ESP32-C3 — không cần PSRAM
DNS sinkhole dựa trên ESP32-C3, lưu danh sách chặn dưới dạng băm 40-bit trong flash, tìm kiếm nhị phân, chỉ dùng khoảng 50KB RAM.
esp32-c3-adblock là một DNS ad-blocker theo phong cách Pi-hole, thiết kế để chạy trên ESP32-C3 — một con chip chỉ khoảng $2 và không yêu cầu PSRAM. Thay vì lưu danh sách tên miền dưới dạng chuỗi trong RAM như các dự án khác, dự án này lưu các tên miền dưới dạng băm FNV-1a 40-bit đã được sắp xếp trong bộ nhớ flash, sau đó sử dụng tìm kiếm nhị phân để tra cứu. Kết quả: hơn 140.000 tên miền chiếm chỉ khoảng 0.7MB flash và được tra cứu trong khoảng 10ms, đồng thời tiết kiệm đáng kể bộ nhớ RAM so với các giải pháp truyền thống.
✨ Điểm nổi bật
- Băm FNV-1a 40-bit trong flash: Lưu danh sách tên miền dưới dạng băm cố định 5 byte trong flash thay vì chuỗi ký tự trong RAM.
- Tìm kiếm nhị phân: Tra cứu nhanh trong bảng băm đã sắp xếp chỉ với khoảng 18 lần đọc flash.
- Tiết kiệm RAM: Chỉ sử dụng khoảng 50KB RAM, phù hợp với các board ESP32-C3 không có PSRAM.
- Hỗ trợ cập nhật OTA: Cập nhật firmware và danh sách chặn qua WiFi từ bảng điều khiển web.
- Bảng điều khiển web: Theo dõi số lượt chặn/phát theo client, quản lý danh sách cho phép/chặn tùy chỉnh.
- Hỗ trợ mDNS: Truy cập dễ dàng qua http://c3adblock.local.
- Hỗ trợ PlatformIO: Dễ dàng build và flash bằng PlatformIO.
- Tùy chọn phân vùng linh hoạt: Chọn giữa hỗ trợ OTA hoặc danh sách lớn đến 537k tên miền.
💡 Vì sao đáng chú ý
Hầu hết các giải pháp DNS sinkhole trên ESP32 đều tải danh sách tên miền dưới dạng chuỗi vào RAM, đòi hỏi board phải có PSRAM để đủ bộ nhớ. esp32-c3-adblock khắc phục bằng cách lưu danh sách dưới dạng băm 40-bit trong flash — một cách tiếp cận không chỉ tiết kiệm RAM mà còn cho phép chạy trên những board giá rẻ và không có PSRAM như ESP32-C3. Kỹ thuật này cũng có thể áp dụng cho các chip lớn hơn như ESP32-S3, nơi nó cho phép lưu đến 2.7 triệu tên miền so với chỉ 466k với cách lưu chuỗi truyền thống.
#AdBlocker #DNS #ESP32 #PiHole #OpenSource #TiniX
Similar Projects
Discover other similar projects and AI models.
Your Gateway to Embedded Software Development Excellence :alien:
ESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.
📟 JSON library for Arduino and embedded C++. Simple and efficient.
An IoT Solution,Blinker library for embedded hardware. Works with Arduino R4, ESP32.
Free domain registration and practical DNS learning resources for everyone.
Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.