Avoid re-importing all static-address tapscripts on every startup
I maintainer di solito rispondono entro 7 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Segui il percorso di avvio del gestore degli indirizzi statici, le chiamate a WalletKit ListAddresses e ImportTaprootScript, il caricamento degli indirizzi statici persistiti e la costruzione dell’indice degli script in fase di esecuzione. Aggiungi la copertura per i casi con tutti gli indirizzi importati, con indirizzi parzialmente mancanti e con wallet sostituiti, quindi verifica che ogni indirizzo persistito venga indicizzato e che gli script già importati non vengano importati nuovamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Multi-address static-address support causes Loop's persisted address set to grow over time: one address can be added by loop static new, each fractional loop-in, and each withdrawal that creates change.
During startup, the static-address manager currently calls ImportTaprootScript sequentially for every persisted address. On a normal restart, these are duplicate wallet write RPCs. This makes startup cost grow with the full address history, relies on matching LND's "already exists" error text, and can eventually run into the manager's initialization timeout.
Originally raised by @starius in this PR #1139 comment.
Proposed improvement
- Call WalletKit
ListAddressesonce and build a set of addresses already imported into LND. - Load every persisted static-address record and derive its P2TR address locally.
- Call
ImportTaprootScriptonly for addresses missing from LND. - Build the in-memory script index from every persisted address, whether or not it needed importing.
The Loop database should remain the source of truth. In particular, avoid a database-only "imported" flag because it can become stale if the user replaces or restores the LND wallet. Comparing against LND on startup preserves the current repair behavior.
LND currently has no batch ImportTapscript RPC, so a wallet with all scripts missing still requires individual imports. Bounded concurrency could improve that uncommon recovery path; the longer-term solution would be an LND batch-import RPC backed by one wallet transaction.
Validation
- Measure LND and Loop startup with 0, 100, and 1,000 persisted static addresses.
- Cover the normal restart case where every script is already imported.
- Cover fully and partially missing scripts, including a replaced LND wallet.
- Verify the runtime script index contains every persisted address in all cases.
- Verify normal restarts do not issue duplicate import RPCs.
- Lingua principale
- Go
- Stelle
- 593
- Fork
- 138
- Merge medio
- 4g 9h
- PR unite (30g)
- 14
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di lightninglabs/loop
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
lightninglabs/loop#1246 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
lightninglabs/loop#1208 · 1 commento ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
lightninglabs/loop#1172 ·
I maintainer di solito rispondono entro 7 giorni
-
Track armed static address HTLCs after aborted swapsForse di nuovo libera @hieblmi l’ha presa 104 giorni fa e non c’è nessuna pull request aperta. Aperta
lightninglabs/loop#1171 · 1 assegnatario ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
lightninglabs/loop#1170 ·
I maintainer di solito rispondono entro 7 giorni
Tutte le issue di lightninglabs/loop
Issue simili
-
Mend: dependency security vulnerability
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
kube-tarian/sigrun#202 ·
-
question raised-by:verifier
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
medici-finance/assay#4013 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
tsukumogami/tsuku#2775 ·
I maintainer di solito rispondono entro 1 giorno
-
automation models
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
I maintainer di solito rispondono entro 1 giorno