ESP32-C3 Adblock

(github.com)

86 points | by jayhoon 7 hours ago

14 comments

  • timvdalen 1 hour ago
    > The trick everyone misses:

    Please just write the first sentence of your README yourself

    • dwedge 50 minutes ago
      Apparently solving blocking extra domains due to hash collisions (reducing from 1 to 0) would be extra space "to solve a problem I don't have".

      I dislike when LLMs talk to me like that. I hate it when humans do it, confidently spewing their overconfident llm assumptions to others

      • lifeisloving 45 minutes ago
        I actually thought this was one of the more communicative parts of the readme and quite liked their explanation.
  • waysa 24 minutes ago
    I think it could fit even more domains using a Bloom Filter or similar probabilistic data structure. With a chance of false-positives of course. But that's a trade-off the project already makes.
  • yoavm 1 hour ago
    If you're ever thinking about getting an ESP32-C3, do yourself a favor and get the variant that you can connect an external antenna to. The normal C3 has a built-in antenna that is extremely weak, making it useless for most things I was planning using it for.
  • muti 5 hours ago
    Weird how the readme talks about hash collisions, but not in the way I would expect. Two blocked domains with the same hash isn't a problem, they both need to be blocked.

    Where hash collisions matter is false positives, e.g. if hash(google.com) = hash(adserver.com). There does appear to be a web dashboard and /unblock api so should be straightforward to resolve.

    • zamadatix 4 hours ago
      Yeah, I think they have it backwards. As you say, regardless of how many entries you have locally, the collision risk comes from false positive hash matches not from worrying if the positive hashes collide.
  • BLKNSLVR 3 hours ago
    I'm a bit of a paranoid freak that likes lists, so I've got a PiHole that has a total list of 14-16M blocked domains.

    Great idea, and good for casual blocking, but I'm almost moving to an "allow list" mindset. This solution would probably work better for that, I wonder if the good parts of the internet would fit into an 140k list.

    • reader9274 1 hour ago
      Do you host your lists somewhere you can share?
    • oso2k 1 hour ago
      Tbh, for the ESP32-C3’s perf, an allow list would likely save RAM and CPU time.
  • 1vuio0pswjnm7 4 hours ago
    Whitelist/allowlist is easier, e.g., it's smaller

    Depends on the user but not everyone is visiting new websites everyday

    Even for those that are, the number of domain-IP mappings needed will be relatively small

    Definitely under 140,000

    Most DNS data I use is "static", it rarely changes. As such most times I don't have to make DNS queries. I store the domain-IP mappings in proxy memory; this is faster than DNS

    No "blocklist" needed

    • sheept 4 hours ago
      I would think that a regular user of Hacker News would be visiting new websites every day (though it'd definitely still be below 140k)
      • Etheryte 1 hour ago
        This is all a guesstimate, but my gut feel is that a considerable part of the HN population doesn't even read the linked content, only the comment section here.
        • jasonjmcghee 1 hour ago
          I sure hope that's not true. Maybe hit the comments section first?
          • lhoff 43 minutes ago
            Depends on the content, for all of these model release marketing sites, I for example only read the comments.

            If i would estimate it, I only take a look at 1/4 of the links where i read the comments.

          • dwedge 48 minutes ago
            With github being the exception, I use comments to see if the article is AI. If it is, I prefer the condensed opinions in the comments. Not to say it can't be interesting I just don't want to waste time reading overly verbose generated text.
  • anilakar 2 hours ago
    There's no point in using PlatformIO for ESP32 MCUs. The native ESP-IDF extension works much better.

    I would only recommend using it instead of the standard Arduino Processing IDE.

  • jolux 2 hours ago
    10ms? Good grief that’s slow.
  • fwip 5 hours ago
    Cool idea, latency might be too high, wish the docs weren't all AI vomit.
    • snailmailman 4 hours ago
      The biggest benefit of my local dns server is latency. On wired internet, my dns is <1ms from my PC.

      Upstream dns for me is pretty quick. Google and cloudflare dns are ~5ms from me. But WiFi latency alone is ~8ms most of the time in my experience. On my fiber internet, pinging a dns server in some random upstream server miles away is lower latency than WiFi 10 feet away. But the real issue on WiFi is any packet loss at all adding 50-100ms to that at random depending on interference.

      With DNS you are paying this latency cost all the time on nearly every request.

    • thenthenthen 4 hours ago
      This will be slow for one user, let alone more than one
    • danw1979 1 hour ago
      “The trick everyone misses”
  • rekoil 2 hours ago
    "They were too preoccupied with whether they could, they never stopped to think whether they should"

    Jokes aside, very impressive that it works!

  • nicman23 2 hours ago
    i dont get pihole. just use a proper dns? if you want local, just use unbound?
    • Tajnymag 2 hours ago
      Pihole and unbound can work together. Pihole isn't a good DNS server, it's a good adblocking DNS server.
    • dannyw 1 hour ago
      people like ease of use, UI, docs, and community.

      after all, why use opnSense; just use suricata and $PROPER_X! why use TrueNAS; just use $DISTRO and ZFS!

  • manlymuppet 2 hours ago
    Wow, this is an atrocious name for a project haha. Cool though.
  • aiXis 2 hours ago
    [flagged]