View Issue Details

IDProjectCategoryView StatusLast Update
0006563Talerdocumentationpublic2026-09-05 19:19
ReporterFlorian Dold Assigned ToFlorian Dold  
PrioritynormalSeveritytextReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Versionpost-1.0 
Summary0006563: document recommended rules for wallet's auto-refresh
DescriptionThe wallet currently implements very simple rules for auto-refresh:

1. After 75% of a denomination's "deposit lifespan" has passed, we do "auto-refresh check" for all coins of the exchange
2. During this auto-refresh check, all coins that are >50% into their deposit lifespan are auto-refreshed.

This heuristic makes sure that we don't to many separate refreshes.

But I recall that Christian had some more thoughts on this, but I can't find this discussion anymore.

We have to make sure that the rules allow for an easy estimation of the refresh cost in "fee summary" that the wallet generates for the wallet (for exchanges where the fee structure satisfies certain, yet to be defined, rules for a "reasonable" fee structure).
TagsNo tags attached.

Relationships

has duplicate 0007847 closedFlorian Dold DoS when all wallet try to refresh coins at the same time 

Activities

Christian Grothoff

2025-10-23 17:53

manager   ~0026237

I have now drafted DD71 for this.

Florian Dold

2026-09-05 19:19

manager   ~0029900

commit e5eb252f1f81efa5bf2dd411a4fbcb63cd3da4ca (HEAD -> master, origin/master, origin/HEAD)
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:12:01 2026 +0200

    wallet web UI: translate coin renewal messages
    
    Add German, Swiss German, French, and Italian translations for renewal
    warnings, recovery notices, and conditional holding costs.

commit b2bb8012f047bcb578226109213cf1c18183bf70
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:12:01 2026 +0200

    wallet web UI: show coin renewal warnings and holding costs
    
    Show expiration risks, dismissible renewal notices, and expandable cost
    bounds in scoped balances. Indicate when a background report is pending.
    Report supported browser power observations, using unknown when readings
    are missing or inconclusive.

commit fd79c569c35812b76d39ba073d78e928f61a4512
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:12:01 2026 +0200

    wallet-core: report renewal risks and costs from background snapshots
    
    Compute scoped expiration risks, recovery notices, and conditional annual
    cost bounds in a maintenance task. Calculate outside the database
    transaction and persist results only while their input generation remains
    current. Wake maintenance on relevant changes and validity boundaries.
    
    Balance queries read persisted reports without denomination selection or
    history scans. Retain known warnings during recomputation and withhold
    stale cost bounds. Reuse current reports after reopening the wallet.

commit d0d6d67c3c6eb4c3906dcdc22ef1d479e5b9b6ee
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:12:00 2026 +0200

    wallet-core: schedule and execute DD71 automatic renewal
    
    Persist private execution deadlines and cap randomized retries by coin
    lifetime. Revalidate selected outputs and input ownership before melting,
    and retain commitments when an earlier melt may have reached the exchange.
    
    Accept transient host power observations and persist recovery metadata for
    coins renewed near expiration.

commit eadc578f3e29bc60715f5bde271d3b3f8f2e78f7
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:11:23 2026 +0200

    wallet-core database: persist automatic renewal state
    
    Store denomination deadlines, melt commitments, recovery notices, and
    notice dismissal. Migrate native SQLite databases to schema version 22.
    
    Define persisted renewal reports and generation tokens, with shared
    transaction hooks for atomic invalidation when their inputs change.

commit daa6250585b1d6036410272fa8cf6cf51f874ac1
Author: Florian Dold <dold@taler.net>
Date: Sat Sep 5 18:11:23 2026 +0200

    wallet-core: define DD71 greedy renewal policy and cost bounds
    
    Evaluate lifetime extension, free renewal on external power, and emergency
    renewal in strict priority order. Use deterministic greedy outputs for
    eligibility and bound projected holding costs over reachable denominations.
    Provide a yielding calculation for background maintenance.

Issue History

Date Modified Username Field Change
2020-09-03 17:26 Florian Dold New Issue
2020-09-05 13:58 Christian Grothoff Severity minor => text
2020-10-11 21:17 Christian Grothoff Category other => documentation
2023-04-04 15:57 Florian Dold Target Version => 0.10
2023-12-22 14:26 Christian Grothoff Target Version 0.10 => post-1.0
2025-10-23 12:48 Christian Grothoff Assigned To => Christian Grothoff
2025-10-23 12:48 Christian Grothoff Status new => confirmed
2025-10-23 17:53 Christian Grothoff Note Added: 0026237
2025-10-23 17:54 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2026-08-22 20:59 Florian Dold Relationship added has duplicate 0007847
2026-09-05 19:19 Florian Dold Status confirmed => resolved
2026-09-05 19:19 Florian Dold Resolution open => fixed
2026-09-05 19:19 Florian Dold Note Added: 0029900