<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate, branch feature/miner-integration</title>
<subtitle>[no description]</subtitle>
<id>https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/atom?h=feature%2Fminer-integration</id>
<link rel='self' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/atom?h=feature%2Fminer-integration'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/'/>
<updated>2026-05-19T19:29:38+00:00</updated>
<entry>
<title>docs: add REMOTES.md, mark step 7 complete in integration plan</title>
<updated>2026-05-19T19:29:38+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T19:29:38+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=018887c54b225bb07d52b764c84f20b876742996'/>
<id>urn:sha1:018887c54b225bb07d52b764c84f20b876742996</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(tollgate_core): add extern C guards, fix stratum_proxy function name, conditional NAPT</title>
<updated>2026-05-19T16:56:49+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T16:56:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=e75c350c70c2c3233207e3182c2ba8bb9c04bde8'/>
<id>urn:sha1:e75c350c70c2c3233207e3182c2ba8bb9c04bde8</id>
<content type='text'>
- Add extern "C" guards to tollgate_core.h and tollgate_platform.h for
  C++ compatibility (needed for NerdQAxePlus integration)
- Fix tollgate_core_stratum_proxy_start -&gt; _init to match implementation
- Make ip_napt_enable conditional on CONFIG_LWIP_IPV4_NAPT for
  compatibility with projects that don't enable NAPT
</content>
</entry>
<entry>
<title>docs: update checklist — steps 1-6 complete, step 7 in progress with integration points identified</title>
<updated>2026-05-19T14:41:59+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T14:41:59+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=5583f4de647678321fad5f2b3df2b64ece54f0bd'/>
<id>urn:sha1:5583f4de647678321fad5f2b3df2b64ece54f0bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: update MINER_INTEGRATION_PLAN.md checklist — steps 1-4 complete</title>
<updated>2026-05-19T14:11:30+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T14:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=6bbc2e644f9c672d046acb7c86078722da90925f'/>
<id>urn:sha1:6bbc2e644f9c672d046acb7c86078722da90925f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add tollgate_core ESP-IDF component with mining support</title>
<updated>2026-05-19T11:00:37+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T11:00:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=6a61810943a9bb7df9c4ec48cdefbe54ac9c1275'/>
<id>urn:sha1:6a61810943a9bb7df9c4ec48cdefbe54ac9c1275</id>
<content type='text'>
Cherry-picked component skeleton from feature/tollgate-core-component arch branch,
extended with mining payment and stratum proxy modules.

Component structure:
  components/tollgate_core/
    include/tollgate_core.h       — public API (core + mining)
    include/tollgate_platform.h   — platform interface (config + mining callbacks)
    src/tollgate_core.c           — orchestrator (init, payment, tick, owner)
    src/tollgate_core_cashu.c/h   — Cashu V3 token decode/verify
    src/tollgate_core_dns.c/h     — per-client DNS hijack/forward
    src/tollgate_core_firewall.c/h — per-client NAT filter
    src/tollgate_core_session.c/h — session lifecycle
    src/tollgate_core_mining.c/h  — hashprice, share validation, client stats
    src/tollgate_core_stratum_proxy.c/h — local SV1 TCP server
    idf_component.yml             — IDF Component Manager metadata

Also fixes nucula_src save_proofs visibility (public).

idf.py build: PASS
make test-unit: PASS (19 suites, 344+ assertions)
</content>
</entry>
<entry>
<title>fix: ESP-IDF build on master — negentropy_lib component + merge leftovers</title>
<updated>2026-05-19T10:46:54+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T10:46:54+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=62bce81d26994bd242035905c94d611cf956bd37'/>
<id>urn:sha1:62bce81d26994bd242035905c94d611cf956bd37</id>
<content type='text'>
- Create components/negentropy_lib/ wrapping negentropy submodule
  - CMakeLists.txt references submodule sources via relative path
  - OpenSSL SHA-256 compat using mbedTLS for ESP32
  - Enables C++ exceptions + RTTI for negentropy_wrapper.cpp
- Remove esp_littlefs, esp_timer from REQUIRES (transitive via wisp_relay)
- Keep tcp_transport (direct dep of stratum_client.c via esp_transport.h)
- Fix config.c duplicate seed_relays/sync_interval/fallback_interval blocks
- Remove leftover merge conflict marker in tollgate_api.c
- Add MINER_INTEGRATION_PLAN.md with miner integration checklist

idf.py build: PASS (1.3MB, 68% free)
make test-unit: PASS (19 suites, 344+ assertions)
</content>
</entry>
<entry>
<title>docs: update merge plan checklists — all items complete</title>
<updated>2026-05-19T09:07:31+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T09:07:31+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=4af9a0042f2dbe053cacec8427f7f370bd0e0f22'/>
<id>urn:sha1:4af9a0042f2dbe053cacec8427f7f370bd0e0f22</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: resolve merge conflicts + test build fixes</title>
<updated>2026-05-19T09:04:12+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T09:04:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=55917e09b186c44afc53fc0dd2d3635b34febcd8'/>
<id>urn:sha1:55917e09b186c44afc53fc0dd2d3635b34febcd8</id>
<content type='text'>
- config.h: remove duplicate nostr_sync fields
- Makefile: add mint_health stub for test_session_payment_method
- test_tollgate_client_mining: inline market_t stub to avoid dependency cascade
- CMakeLists: add negentropy_adapter.c + esp_littlefs + negentropy REQUIRES
</content>
</entry>
<entry>
<title>feat(mining): Bitcoin mining-for-bandwidth payment system</title>
<updated>2026-05-19T08:55:18+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T08:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=e366ceb336550a72c76efea4c98a2a08cca27bce'/>
<id>urn:sha1:e366ceb336550a72c76efea4c98a2a08cca27bce</id>
<content type='text'>
New modules:
- mining_payment.c/h: hashprice calc (nbits-&gt;difficulty-&gt;sat/GH/s/day),
  share validation, client stats, allotment conversion (ms + bytes)
- stratum_client.c/h: SV1 upstream pool connection (subscribe/authorize/submit)
- stratum_proxy.c/h: Local SV1 TCP server for downstream miners, job broadcast
- sw_miner.c/h: Software SHA256d miner (ESP32 CPU fallback)
- asic_miner.c/h: ASIC detection stub (BM1366/BM1368 SPI)

Config:
- config.h/c: mining_payout_mode_t enum (auto/pool/upstream/proxy_only),
  stratum pool settings, mining port, hashprice override, sandbox mint access
- Defaults fill nostr_seed_relays (8/8) and nostr_relays (4/4) with fast relays

Integration into existing modules:
- session.h/c: payment_method_t enum (CASHU/MINING/BYTES)
- firewall.h/c: firewall_set_mining_port(), firewall_set_sandbox_mint_access()
- tollgate_api.c: GET /mining/job, POST /mining/share, GET /mining/stats
- tollgate_client.h/c: TG_CLIENT_MINING state, mining discovery tag parsing
- tollgate_main.c: mining init in start_services(), stratum_client_tick() in loop
- captive_portal.c: tabbed Cashu/Mine UI with live hashrate polling

Unit tests (69 new assertions across 4 suites):
- test_mining_payment (23 tests): nbits-&gt;difficulty, hashprice, client stats, allotment
- test_stratum_proxy (21 tests): job set/get, stats, type validation
- test_session_payment_method (12 tests): PAYMENT_METHOD enum, bytes/cashu methods
- test_tollgate_client_mining (20 tests): mining tag parsing, discovery struct
- test_firewall_sandbox (16 tests): client grant/revoke, max clients, setters

Enhanced test stubs:
- BaseType_t/pdPASS in freertos/task.h
- lwip: sockets.h, etharp.h, prot/ip.h, prot/ip4.h, prot/tcp.h, netif.h
- dns_server.h, esp_wifi_ap_get_sta_list.h

Build fixes:
- cvm_server.c: replace esp_timer_get_time() with xTaskGetTickCount(),
  fix process_relay_message() 3-arg call to 2-arg, add WS keepalive ping
- stratum_proxy.c: widen task_name buffer 16-&gt;20
- sw_miner.c: add missing #include esp_random.h
- nucula_src: save_proofs() moved to public in wallet.hpp

Nostr relay updates:
- nostr_seed_relays: +relay.anzenkodo.workers.dev, +nostr.koning-degraaf.nl,
  +knostr.neutrine.com, +nostr.einundzwanzig.space (8/8 slots)
- nostr_relays: +relay.anzenkodo.workers.dev, +nostr.koning-degraaf.nl (4/4 slots)

Squash-merge of feature/mining-payment (5 commits: c75230e..9d98ba1)
</content>
</entry>
<entry>
<title>docs: update relay lists + add merge plan</title>
<updated>2026-05-19T08:44:12+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-19T08:44:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=163b8badec9359373a8fc016c2b1fe9ee38e6406'/>
<id>urn:sha1:163b8badec9359373a8fc016c2b1fe9ee38e6406</id>
<content type='text'>
- nostr_relays: 2-&gt;4 (+relay.anzenkodo.workers.dev, +nostr.koning-degraaf.nl)
- nostr_seed_relays: 4-&gt;8 (+relay.anzenkodo.workers.dev, +nostr.koning-degraaf.nl,
  +knostr.neutrine.com, +nostr.einundzwanzig.space)
- Add MERGE_PLAN.md with squash-merge execution checklist
</content>
</entry>
</feed>
