Commit Graph

53 Commits

Author SHA1 Message Date
Christian Grothoff
e7aeec04f4
The current recoup API is broken. I guess this is another example where "trivial" API changes turn out to have (multiple!) unexpected consequences.
The current "/recoup" API does not have clear idempotency semantics, as we've discussed on the phone.  This is already bad by itself, as it makes it hard to write down what the API does other than "whatever the implementation does".

However, it actually breaks correctness in this (admittedly kinda contrived, but not impossible) case:

Say that we have a coin A obtained via withdrawal and a coin B obtained via refreshing coin A. Now the denominations of A gets revoked..

The wallet does a recoup of A for EUR:1.

Now the denomination of B also gets revoked.  The wallet recoups B (incidentally also for EUR:1) and now A can be recouped again for EUR:1.  But now the exchange is in a state where it will refuse a legitimate recoup request for A because the detection for an idempotent request kicks in.

This is IMHO bad API design, and the exchange should simply always recoup the maximum amount.

Furthermore, we usually follow the principle of "API calls that take up DB space are paid".  With the current recoup API, I can do many tiny recoup requests which the exchange then has to store, right?

I guess it would not be a big change to remove the "amount" value from the recoup/recoup-refresh request bodies, right?

- Florian
2022-01-11 12:47:35 +01:00
Christian Grothoff
84c9adf5a6
v12: also do not sign over merchant_pub in REFUND signature, centralize logic 2021-12-25 14:58:04 +01:00
Christian Grothoff
87376e02eb
protocol v12 changes (/recoup split, signature changes) plus database sharding plus O(n^2)=>O(n) worst-case complexity reduction on coin balance checks 2021-12-25 13:56:40 +01:00
Christian Grothoff
2c14d33870
deduplicate melt signing logic, remove coin_pub from data being signed over 2021-12-25 13:56:40 +01:00
Christian Grothoff
1acc851deb
-fix recoup ugliness 2021-12-16 20:18:44 +01:00
Christian Grothoff
1a1fafbd43
introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
Christian Grothoff
935c2d4e62
-improve logging 2021-11-20 09:42:25 +01:00
Christian Grothoff
bdaaa0f6cb
-fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
Christian Grothoff
8175fdfa0f
introduce TALER_wallet_deposit_verify 2021-11-06 16:52:14 +01:00
Christian Grothoff
ba627bf84c
-fixes 2021-11-05 22:22:47 +01:00
Christian Grothoff
963a06c0aa
fix more FTBFS issues 2021-10-30 19:28:11 +02:00
Christian Grothoff
7ac57acb18
fix auditor FTBFS 2021-10-27 09:23:14 +02:00
Christian Grothoff
01e06eb715
-remove sessions also from auditor 2021-08-23 08:24:59 +02:00
Christian Grothoff
c559b1c935
complete implementation of long-polling for reserve status; remove support for multi-threaded exchange httpd 2021-08-23 00:00:32 +02:00
Christian Grothoff
33a28efef7
-more json_pack fixes 2021-07-31 21:48:36 +02:00
Christian Grothoff
fde9dc80f6
-more json_pack cleaning 2021-07-31 21:40:48 +02:00
Christian Grothoff
306a08a71c
-rename TALER_amount_get_zero to TALER_amount_set_zero 2021-07-23 13:02:04 +02:00
Christian Grothoff
9473ef4d86
fix remaining #6679 issues in exchange 2021-01-07 20:52:11 +01:00
Christian Grothoff
40551fa08e
add -i option to taler-auditor 2021-01-06 22:51:55 +01:00
Christian Grothoff
0e74fbef8d
add logic to report generation for missing auditor signatures 2020-12-22 18:38:14 +01:00
Christian Grothoff
fe232f1fed
integrate auditor signature check logic with taler-helper-auditor-coins 2020-12-22 18:27:34 +01:00
Christian Grothoff
6cceb617af
centralize (most) offline signing/verifying operations into offline_signatures.c 2020-12-04 20:29:18 +01:00
Christian Grothoff
8f0a4b6095
fix #6133: enable nice shutdown of auditor helpers with CTRL-C 2020-07-15 21:22:44 +02:00
Christian Grothoff
62d5aae119
check invariant that refund deadline should not be after wire deadline 2020-07-14 21:08:33 +02:00
Christian Grothoff
8e03498a48
add h_denom to melt signatures (for #6416) 2020-07-08 17:59:05 +02:00
Christian Grothoff
ed5b98a2c2
GNUNET_free_non_null is gone, use GNUNET_free 2020-07-05 16:58:43 +02:00
Christian Grothoff
4f82885560
towards changing timestamp in deposit confirmation (tests failing) 2020-07-05 16:35:00 +02:00
Christian Grothoff
5ac448738d
fix status code 2020-07-05 16:34:59 +02:00
Christian Grothoff
84a40be0bc
fix #6170 and rest of #6164 2020-04-08 23:52:01 +02:00
Christian Grothoff
50bc862a68
adapt to new GNUnet sign API (#6164) 2020-04-08 18:18:20 +02:00
Christian Grothoff
3404fda463
typos 2020-03-31 20:57:11 +02:00
Christian Grothoff
163b23f27a
removing inappropriate i18n code 2020-03-27 20:39:15 +01:00
Christian Grothoff
155a4bc11b
fix checks 2020-03-27 13:29:19 +01:00
Christian Grothoff
9f5dbcdfa7
comment fixes 2020-03-27 12:52:15 +01:00
Christian Grothoff
31746d8128
enable test 32 2020-03-27 12:30:31 +01:00
Christian Grothoff
4856d8114c
fix inconsistency in field naming 2020-03-27 11:11:45 +01:00
Christian Grothoff
9c6aa53c8c
improve coin audit logic 2020-03-27 10:43:49 +01:00
Christian Grothoff
6906538c12
missing break 2020-03-27 09:40:25 +01:00
Christian Grothoff
62b8ca0bd3
check coin history consistency 2020-03-27 09:35:42 +01:00
Christian Grothoff
f052527ea5
fix recoup-refresh audit logic 2020-03-26 20:54:41 +01:00
Christian Grothoff
51bdfab935
increment recoup progress points 2020-03-26 20:06:58 +01:00
Christian Grothoff
dff81f4577
more testing for auditor logic 2020-03-24 17:35:18 +01:00
Christian Grothoff
9ad9e7e064
add more tests 2020-03-24 17:23:27 +01:00
Christian Grothoff
240b23684d
finish review of coins auditor analysis logic, improve error handling 2020-03-23 22:27:31 +01:00
Christian Grothoff
0bd53ed443
scope reduction, mark possible places for improvement 2020-03-23 21:36:49 +01:00
Christian Grothoff
8acfca6718
refactor to avoid duping all the RSA keys on refresh processing 2020-03-23 21:32:30 +01:00
Christian Grothoff
0ff8ec8da9
fix comments and handling of revocations in coins auditor 2020-03-23 21:00:08 +01:00
Christian Grothoff
3480146a66
first pass at auditor-coins, also reviewing checks around amount arithmetic, can and should be made harsher 2020-03-22 23:32:06 +01:00
Christian Grothoff
bad9c719f8
stylefixes 2020-03-21 19:46:21 +01:00
Christian Grothoff
c277dc2a18
style fixes 2020-03-21 19:39:46 +01:00