RepositoryC++EGEgypt
M-Abozaid

M-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

3.4kstars
376forks
14issues
20views

Thành tựu nổi bật

Những danh hiệu mới nhất của dự án

1
TINIX TRENDING·Chủ đề: platformio

#1 Repository Của Ngày

1
TINIX TRENDING·Chủ đề: pi-hole

#1 Repository Của Ngày

1
TINIX TRENDING·Chủ đề: esp32

#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.

RepositoryPython
platformio/platformio-core

Your Gateway to Embedded Software Development Excellence :alien:

9.6k
Oct 16, 2026
RepositoryC++
esphome/esphome

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.

11.9k
Oct 23, 2026
RepositoryC++
bblanchon/ArduinoJson

📟 JSON library for Arduino and embedded C++. Simple and efficient.

7.2k
Oct 13, 2026
RepositoryC++
blinker-iot/blinker-library

An IoT Solution,Blinker library for embedded hardware. Works with Arduino R4, ESP32.

5.2k
Oct 21, 2026
RepositoryMarkdown
DigitalPlatDev/FreeDomain

Free domain registration and practical DNS learning resources for everyone.

206.0k
Aug 12, 2026
RepositoryC++
MarlinFirmware/Marlin

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.

17.6k
Oct 26, 2026
RepositoryC++
espressif/arduino-esp32

Arduino core for the ESP32 family of SoCs

17.6k
Oct 27, 2026
RepositoryC++
justcallmekoko/ESP32Marauder

A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32

12.9k
Oct 23, 2026
RepositoryC++
FastLED/FastLED

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.

7.5k
Oct 21, 2026