docs: resume notes for LND wallet fix (in-progress, branch lnd-wallet-password-fix)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
91adc281ca
commit
459046b21c
@ -4,6 +4,55 @@ Last updated: 2026-06-14 (session on node .116 / archi-thinkpad)
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# ▶ IN PROGRESS — LND wallet auto-unlock fix (2026-06-14)
|
||||||
|
|
||||||
|
## RESUME PROMPT (paste into a fresh session, on .116 / archi-thinkpad, tree at /home/archipelago/Projects/archy)
|
||||||
|
|
||||||
|
> Resume the LND wallet-password fix. Read memory `project_lnd_wallet_password.md` FIRST (full
|
||||||
|
> root-cause + design + validated facts). Work is on branch `lnd-wallet-password-fix` (pushed to
|
||||||
|
> gitea-vps2, commit 91adc281, NOT merged to main, NOT shipped). Bug: hardcoded
|
||||||
|
> `WALLET_PASSWORD="hellohello"` left LND wallets LOCKED fleet-wide after OTA → Bitcoin-receive
|
||||||
|
> shows "wallet is locked" on every updated node. DONE + cargo-checked: per-node random secret
|
||||||
|
> (secrets/lnd-wallet-password), both init paths unified, candidate-unlock with fail-fast,
|
||||||
|
> login-time candidate-migration (ChangePassword). DETECTION GATE already shipped on main
|
||||||
|
> (commit 8c8e4d7a). DECISION: alpha, NO funds on nodes → destructive wipe+recreate is OK and
|
||||||
|
> wanted UNATTENDED for ALL nodes in the next update. A wallet locked with an unknown password is
|
||||||
|
> already inaccessible, so wiping loses nothing reachable.
|
||||||
|
|
||||||
|
## EXACT NEXT STEPS — LND fix (in order)
|
||||||
|
1. **Finish seed/fresh recovery** (REMAINING piece): in `container/lnd.rs ensure_wallet_initialized`,
|
||||||
|
when wallet.db exists but ALL unlock candidates fail → wipe wallet.db (+ macaroons + graph/chain
|
||||||
|
mainnet state, as root via host_sudo) and re-init fresh (random genseed + per-node secret) so the
|
||||||
|
node self-heals unattended at boot. (Login-time candidate-migration already handles nodes whose
|
||||||
|
pw matches.) Validate the wipe→reinit mechanic on the scratch LND first (see below).
|
||||||
|
2. **Scratch validation** (was in progress, .249 unreachable from .116's subnet → use a throwaway
|
||||||
|
`lnd-scratch` podman container on .116, regtest/neutrino, REST :18099 — already proven for
|
||||||
|
init/unlock/ChangePassword). Test: init(passA) → restart→LOCKED → delete wallet.db while locked →
|
||||||
|
confirm /v1/state→NON_EXISTING (may need container restart) → genseed+initwallet fresh → unlock.
|
||||||
|
NOTE: scratch wallet.db lives at the container's LND data dir (regtest), `podman exec lnd-scratch
|
||||||
|
find / -name wallet.db`. CLEAN UP: `podman rm -f lnd-scratch` when done.
|
||||||
|
3. `cargo check -p archipelago` (on .116 ~15-30s incremental; full test compile ~9min).
|
||||||
|
4. **End-to-end on .228** (reachable 192.168.1.x, SSH pw `archipelago`, UI pw unknown, NO funds —
|
||||||
|
has a locked unknown-pw wallet = perfect auto-recreate test): build binary
|
||||||
|
(`ARCHIPELAGO_TARGET=archipelago@192.168.1.228 scripts/deploy-to-target.sh` or per
|
||||||
|
reference_deploy_to_nodes), deploy, restart, confirm wallet auto-recreates+unlocks, lncli state
|
||||||
|
RPC_ACTIVE, lnd.newaddress returns an address. Run os-audit against .228 → lnd check PASS.
|
||||||
|
5. Merge `lnd-wallet-password-fix` → main, then **cut + publish v1.7.93-alpha** (carries the LND
|
||||||
|
fix). Ship ritual: create-release.sh 1.7.93-alpha → add CHANGELOG (≥3 layman bullets) → run
|
||||||
|
sync-whats-new.py (the new What's-New gate will require it) → publish-release-assets.sh gitea-vps2
|
||||||
|
→ push origin/gitea-vps2 + tags → verify live manifest==1.7.93-alpha. Heads-up: create-release
|
||||||
|
leaves core/Cargo.lock version-bump uncommitted (commit it as a chore, both .91 and .92 hit this).
|
||||||
|
|
||||||
|
## Context: how we got here (this session, all on node .116)
|
||||||
|
- Shipped **v1.7.91-alpha** (bitcoinReceive TS2538 build fix) and **v1.7.92-alpha** (ElectrumX
|
||||||
|
overlay-during-sync fix; L3 reboot os-audit gate; What's-New sync gate + 8-version backfill) —
|
||||||
|
both LIVE on vps2. Restored .116-local nginx `/lnd-connect-info` route (was dropped 2026-06-10).
|
||||||
|
- Triaged user symptoms: ElectrumX "can't connect" = electrs syncing / Bitcoin verifying (not a
|
||||||
|
regression); .228 "5/14 apps after reboot" = normal ~5min staggered startup (all 14 came up).
|
||||||
|
- LND lock bug found + detection gate shipped + forward fix & migration implemented (this section).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# ✔ DONE PASS — v1.7.91-alpha + v1.7.92-alpha (2026-06-14)
|
# ✔ DONE PASS — v1.7.91-alpha + v1.7.92-alpha (2026-06-14)
|
||||||
|
|
||||||
## Outcome (both releases PUBLISHED + LIVE on vps2)
|
## Outcome (both releases PUBLISHED + LIVE on vps2)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user