* feat: implement exponential backoff for paid_invoices_stream across all Lightning backends
- Add exponential backoff retry logic to CLN REST, LND REST, and LND gRPC backends
- Start with 1 second delay, exponentially increase up to 5 minutes maximum
- Reset delay to 1 second on successful reconnection
- Improve error logging to include retry delay information
- Replace fixed delays with adaptive backoff to handle network issues gracefully
- Prevents system overload during persistent connection problems
Resolves issues with rapid reconnection attempts that could overwhelm Lightning nodes during network instability.
* remove unused import
* feat: extend exponential backoff to all remaining backends and invoice listener
- Implement exponential backoff in LNbits paid_invoices_stream for both SSE and WebSocket modes
- Add exponential backoff guidance comments to Blink and Strike backends (not implemented)
- Apply exponential backoff to invoice_listener in tasks.py that calls paid_invoices_stream
- Ensure consistent retry behavior across all Lightning backend integrations
- Improve system resilience during network interruptions and backend failures
All backends and the invoice listener now use the same exponential backoff strategy:
- Start with 1 second delay, exponentially increase up to 5 minutes maximum
- Reset delay to 1 second on successful reconnection
- Enhanced error logging with retry delay information
* blink + strike remove comments
* remove hardcoded values in favor of settings
* immediate first retry
* wip store balance
* store balances in watchdog worker
* move mint_auth_database setting
* auth db
* balances returned as Amount (instead of int)
* add test for balance change on invoice receive
* fix 1 test
* cancel tasks on shutdown
* watchdog can now abort
* remove wallet api server
* fix lndgrpc
* fix lnbits balance
* disable watchdog
* balance lnbits msat
* test db watcher with its own database connection
* init superclass only once
* wip: log balance in keysets table
* check max balance using new keyset balance
* fix test
* fix another test
* store fees in keysets
* format
* cleanup
* shorter
* add keyset migration to auth server
* fix fakewallet
* fix db tests
* fix postgres problems during migration 26 (mint)
* fix cln
* ledger
* working with pending
* super fast watchdog, errors
* test new pipeline
* delete walletapi
* delete unneeded files
* revert workflows
* `PaymentResult`
* ledger: rely on PaymentResult instead of paid flag. Double check for payments marked pending.
* `None` is `PENDING`
* make format
* reflected changes API tests where `PaymentStatus` is used + reflected changes in lnbits
* reflect changes in blink backend and tests
* fix lnbits get_payment_status
* remove paid flag
* fix mypy
* remove more paid flags
* fix strike mypy
* green
* shorten all state checks
* fix
* fix some tests
* gimme ✅
* fix............
* fix lnbits
* fix error
* lightning refactor
* add more regtest tests
* add tests for pending state and failure
* shorten checks
* use match case for startup check - and remember modified checking_id from pay_invoice
* fix strike pending return
* new tests?
* refactor startup routine into get_melt_quote
* test with purge
* refactor blink
* cleanup responses
* blink: return checking_id on failure
* fix lndgrpc try except
* add more testing for melt branches
* speed things up a bit
* remove comments
* remove comments
* block pending melt quotes
* remove comments
---------
Co-authored-by: lollerfirst <lollerfirst@gmail.com>
* NUT-04: add description
* skip test for deprecated api
* fix for lndgrpc
* add test for cli
* add two random tests
* add max length to request model validator
* skip cli test with description for deprecated api
* add cli test for invoice command
* default value to None
* log cln error
* return a string
* update corelightningrest to work with latest ver using rune
* fix mpp spec and backend support check
* refactor validation in ledger
* remove weird error
* fix mpp melt model
* corelightningrest.py: Added Multi-Mint payout support
lndrest.py: fix `quote.amount` is not always in sats + better checks
* small fix
* Fix quote.unit str2unit conversion + add missing imports
* settings enable mpp corelightning (default false)
* small fix
* fix `paid_invoice_stream`
* make format
* handle runes
* load rune
* rename to MINT_CORELIGHTNING_REST_RUNE
* try without cert
* port
* try except callback dispatcher
* clean up cln-rest streaming parser
* conftest: mint_corelightning_enable_mpp
* enable mpp in regtest.yaml
* fix error handling clnrest, remove lndrest changes
* CLNRest + CoreLightningRest
* clean up corelightningrest and get last index before starting the stream
* clean up
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
Co-authored-by: Richard Bensberg <r@coinbatsu.com>