upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MINER_INTEGRATION_PLAN.md29
-rw-r--r--REMOTES.md128
2 files changed, 147 insertions, 10 deletions
diff --git a/MINER_INTEGRATION_PLAN.md b/MINER_INTEGRATION_PLAN.md
index 646109b..00c4a0c 100644
--- a/MINER_INTEGRATION_PLAN.md
+++ b/MINER_INTEGRATION_PLAN.md
@@ -122,16 +122,25 @@ with existing main/ code. The component is ready for consumption by external pro
122 - `main/main.cpp:307-313` — task creation (add tollgate tasks) 122 - `main/main.cpp:307-313` — task creation (add tollgate tasks)
123 - `components/connect/connect.c:162` — APSTA mode already supported 123 - `components/connect/connect.c:162` — APSTA mode already supported
124 124
125### Step 7: Implement NerdQAxePlus TollGate Integration — IN PROGRESS 125### Step 7: Implement NerdQAxePlus TollGate Integration — COMPLETE (commit `83e09ab9`)
126 126
127- [ ] Create `main/tollgate_platform.cpp` — implements platform interface with NVS config + ASIC state 127- [x] Create `main/tollgate_platform.cpp` — implements platform interface with NVS config + ASIC state
128- [ ] Create `main/boards/tollgate_board.h/cpp` — TollGateBoard extends NerdAxe (AP+STA WiFi) 128- [x] Create `main/tollgate_nerdqaxe.h` — init declarations for main.cpp/asic_result_task.cpp
129- [ ] Patch `main/tasks/asic_result_task.cpp` — `#ifdef TOLLGATE` hook on share accepted 129- [x] Patch `main/tasks/asic_result_task.cpp` — `#ifdef TOLLGATE` hook on share accepted
130- [ ] Patch `main/main.cpp` — `#ifdef TOLLGATE` init block (AP, DNS, captive portal, stratum proxy) 130- [x] Patch `main/main.cpp` — skip `wifi_softap_off()`, call `tollgate_nerdqaxe_init()` after mining starts
131- [ ] Create `main/lwip_tollgate_hooks.h` — LWIP hook forwarding to tollgate_core 131- [x] Update `main/CMakeLists.txt` — conditional TOLLGATE sources via `$ENV{TOLLGATE}`
132- [ ] Update `main/CMakeLists.txt` — conditional TOLLGATE sources 132- [x] Update top-level `CMakeLists.txt` — `-DTOLLGATE` compile definition when env var set
133- [ ] Update top-level `CMakeLists.txt` — `-DTOLLGATE` compile definition when env var set 133- [x] Add TollGate NVS keys to `main/nvs_config.h`
134- [ ] Build: `BOARD=NERDAXE TOLLGATE=1 idf.py build` 134- [x] Symlink `components/tollgate_core` from esp32-miner-integration worktree
135- [x] Build: `BOARD=NERDAXE TOLLGATE=1 idf.py build` — PASS (2.9MB)
136- [x] Stock build: `BOARD=NERDAXE idf.py build` — PASS (unaffected)
137- [x] tollgate_core: extern "C" guards, stratum_proxy_init name fix, conditional NAPT
138- [x] `ngit init` NerdQAxePlus as separate nostr repo (`esp-miner-nerdqaxeplus-tollgate`)
139- [x] Push to `git.orangesync.tech` GRASP server
140- [x] Cross-reference documentation (REMOTES.md in both repos)
141
142Note: `main/boards/tollgate_board.h/cpp` and `main/lwip_tollgate_hooks.h` deferred —
143using simpler `#ifdef TOLLGATE` patches directly in existing files instead.
135 144
136### Step 8: Hardware Testing on NerdAxe Ultra 145### Step 8: Hardware Testing on NerdAxe Ultra
137 146
diff --git a/REMOTES.md b/REMOTES.md
new file mode 100644
index 0000000..ed77001
--- /dev/null
+++ b/REMOTES.md
@@ -0,0 +1,128 @@
1# Git Remotes — esp32-tollgate
2
3## Nostr Identity
4
5- **npub:** `npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl`
6- **naddr coordinate:** `naddr1qq8x2umsxvez6ar0d3kxwct5v5pzq4hfjdk4edzdm4at33gxl07ge33pgvd8uqc0rj9chnjjegtu4xpcqvzqqqrhnyq3gamnwvaz7tmjv4kxz7fwdenkjapwv3jhv3t9utz`
7- **ngit version:** 2.3.0
8
9## Remotes
10
11| Name | URL | Type | Purpose |
12|------|-----|------|---------|
13| `origin` | `nostr://npub12m5.../relay.ngit.dev/esp32-tollgate` | nostr (ngit) | Primary ngit relay |
14| `orangesync` | `nostr://npub12m5.../ngit.orangesync.tech/esp32-tollgate` | nostr (ngit) | Self-hosted ngit relay |
15
16## Infrastructure
17
18| Service | URL | Role |
19|---------|-----|------|
20| GRASP (Git Server) | `https://git.orangesync.tech` | Git smart HTTP over Nostr (NIP-34) |
21| ngit Relay (Nostr) | `wss://ngit.orangesync.tech` | Nostr relay for git state events |
22| GitWorkshop | `https://workshop.orangesync.tech` | Web UI for browsing nostr git repos |
23| relay.ngit.dev | `wss://relay.ngit.dev` | Public ngit relay (secondary) |
24
25## GRASP Servers
26
27Configured in NIP-34 repo announcement:
28
29- `git.orangesync.tech` (self-hosted, primary)
30- `relay.anzenkodo.workers.dev`
31- `nostr.koning-degraaf.nl`
32- `relay.damus.io`
33- `nos.lol`
34
35## Additional Relays
36
37- `wss://ngit.orangesync.tech` (self-hosted, for state events)
38
39## Branches
40
41| Branch | HEAD | Status | Merged into master |
42|--------|------|--------|--------------------|
43| `master` | `62bce81` | Production | — |
44| `feature/miner-integration` | `e75c350` | Active — tollgate_core C++ compat + NerdQAxePlus integration | No |
45| `feature/tollgate-core-component` | `144b48f` | Active — original tollgate_core extraction + E2E fixes | No |
46| `feature/display-fix` | `565d6a7` | Stale — Playwright E2E test plan for /setup | No |
47| `feature/cvm-integration` | `2cd372c` | Merged to master | Yes (squashed) |
48| `feature/local-relay` | `25eb0c5` | Merged to master | Yes (squashed) |
49| `feature/mining-payment` | `ef9ae98` | Merged to master | Yes (squashed as `e366ceb`) |
50| `backup/multi-mint-support-pre-rebase` | `ef2de0f` | Backup only | N/A |
51
52## Local Worktrees
53
54| Path | Branch | Purpose |
55|------|--------|---------|
56| `/home/c03rad0r/esp32-tollgate` | `master` | Main repo (clean, for other LLM sessions) |
57| `/home/c03rad0r/esp32-miner-integration` | `feature/miner-integration` | tollgate_core + mining integration |
58| `/home/c03rad0r/esp32-tollgate-arch` | `feature/tollgate-core-component` | Architecture branch (original component extraction) |
59
60## Cross-Referenced Repositories
61
62### esp-miner-nerdqaxeplus-tollgate (NerdQAxePlus Fork)
63
64- **Identifier:** `esp-miner-nerdqaxeplus-tollgate`
65- **Clone:** `/home/c03rad0r/esp-miner-nerdqaxeplus`
66- **Branch:** `develop` (HEAD `83e09ab9`)
67- **Upstream:** `https://github.com/shufps/ESP-Miner-NerdQAxePlus`
68- **Dependency:** Uses `tollgate_core` component from `feature/miner-integration` branch (symlinked at `components/tollgate_core`)
69- **Build:** `BOARD=NERDAXE TOLLGATE=1 idf.py build`
70- **See:** `REMOTES.md` in that repo for full details
71
72### tollgate_core Component
73
74- **Source:** `components/tollgate_core/` on `feature/miner-integration` branch
75- **Files:** 7 C source files, 2 public headers, CMakeLists.txt, idf_component.yml
76- **Design doc:** `docs/TOLLGATE_CORE_DESIGN.md` on `feature/tollgate-core-component` branch
77
78## Backup Bundles
79
80| File | Contents | Size |
81|------|----------|------|
82| `/home/c03rad0r/mining-work-backup/feature-miner-integration-latest.bundle` | `feature/miner-integration` branch | ~950KB |
83| `/home/c03rad0r/mining-work-backup/feature-mining-payment.bundle` | `feature/mining-payment` branch | ~755KB |
84| `/home/c03rad0r/mining-work-backup/nerdqaxeplus-tollgate.bundle` | NerdQAxePlus `develop` branch | ~48MB |
85
86### Restore from bundle
87
88```bash
89# Clone from bundle
90git clone feature-miner-integration-latest.bundle -b feature/miner-integration esp32-tollgate-restored
91
92# Or fetch into existing repo
93git remote add bundle-src /home/c03rad0r/mining-work-backup/feature-miner-integration-latest.bundle
94git fetch bundle-src
95git checkout -b feature/miner-integration bundle-src/feature/miner-integration
96```
97
98## How to Push
99
100```bash
101# Push all branches to orangesync
102git push orangesync --all
103
104# Push specific branch
105git push orangesync feature/miner-integration
106
107# Push to both remotes
108git push origin master && git push orangesync master
109
110# Update repo metadata
111ngit repo edit -d -g git.orangesync.tech --relay wss://ngit.orangesync.tech
112
113# Sync (force GRASP servers to update)
114ngit sync -d -v
115```
116
117## Nostr Push Troubleshooting
118
119The "failed to list from https://..." messages during `git push` are **cosmetic noise** from third-party nostr relays that don't support git smart HTTP. The actual push succeeds — look for "Everything up-to-date" or "new state" from the primary relay in the output.
120
121Key pattern:
122```
123failed to list from https://nos.lol/... ← cosmetic, ignore
124failed to list from https://relay.damus.io/... ← cosmetic, ignore
125To nostr://npub.../ngit.orangesync.tech/esp32-tollgate
126 = [up to date] master -> master ← actual result
127Everything up-to-date
128```