exchange/src/auditor
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
..
.gitignore remove master_pub from DB 2021-01-15 11:53:54 +01:00
auditor-basedb.age fix auditor test case, re-generate basedbs 2021-12-01 14:21:35 +01:00
auditor-basedb.fees force use of Taler PD when getting libexec dir 2020-12-11 12:51:00 +01:00
auditor-basedb.mpub fix auditor test case, re-generate basedbs 2021-12-01 14:21:35 +01:00
auditor-basedb.sql fix auditor test case, re-generate basedbs 2021-12-01 14:21:35 +01:00
auditor.conf use BASE_URL consistently 2020-12-25 09:04:27 +01:00
generate-auditor-basedb-template.conf move basedb generation to auditor/ 2019-09-06 02:45:57 +02:00
generate-auditor-basedb.conf fix auditor test DB generation logic and re-generate databases 2021-09-05 16:00:42 +02:00
generate-auditor-basedb.sh fix auditor test DB generation logic and re-generate databases 2021-09-05 16:00:42 +02:00
generate-revoke-basedb.sh fix auditor test case, re-generate basedbs 2021-12-01 14:21:35 +01:00
Makefile.am introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
report-lib.c introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
report-lib.h fix auditor FTBFS 2021-10-27 09:23:14 +02:00
revoke-basedb.age -basedb 2021-12-01 15:04:57 +01:00
revoke-basedb.fees misc clean ups 2020-12-11 23:10:32 +01:00
revoke-basedb.mpub -basedb 2021-12-01 15:04:57 +01:00
revoke-basedb.sql -basedb 2021-12-01 15:04:57 +01:00
taler-auditor-dbinit.c fix warning 2021-11-16 16:56:30 +01:00
taler-auditor-exchange.c -remove sessions also from auditor 2021-08-23 08:24:59 +02:00
taler-auditor-httpd_deposit-confirmation.c 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
taler-auditor-httpd_deposit-confirmation.h make code compiler without warnings with latest libmicrohttpd API 2020-04-09 00:59:55 +02:00
taler-auditor-httpd_exchanges.c -remove sessions also from auditor 2021-08-23 08:24:59 +02:00
taler-auditor-httpd_exchanges.h make code compiler without warnings with latest libmicrohttpd API 2020-04-09 00:59:55 +02:00
taler-auditor-httpd_mhd.c make code compiler without warnings with latest libmicrohttpd API 2020-04-09 00:59:55 +02:00
taler-auditor-httpd_mhd.h make code compiler without warnings with latest libmicrohttpd API 2020-04-09 00:59:55 +02:00
taler-auditor-httpd.c -fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
taler-auditor-httpd.h fix #6939 in exchange 2021-07-24 09:00:35 +02:00
taler-auditor-sync.c -fix misc. compiler warnings 2021-11-19 10:57:27 +01:00
taler-auditor.in install into usr/share/taler/exchange 2021-07-26 16:16:52 +02:00
taler-helper-auditor-aggregation.c introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
taler-helper-auditor-coins.c The current recoup API is broken. I guess this is another example where "trivial" API changes turn out to have (multiple!) unexpected consequences. 2022-01-11 12:47:35 +01:00
taler-helper-auditor-deposits.c introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
taler-helper-auditor-render.py the big EC rename 2020-03-22 00:50:18 +01:00
taler-helper-auditor-reserves.c The current recoup API is broken. I guess this is another example where "trivial" API changes turn out to have (multiple!) unexpected consequences. 2022-01-11 12:47:35 +01:00
taler-helper-auditor-wire.c introducing GNUNET_TIME_Timestamp, recoup now with amounts 2021-12-14 16:04:40 +01:00
test-auditor.conf restructure configuration, move bank account credentials from exchange-account-XXX to exchange-accountcredentials-XXX 2021-08-03 21:58:36 +02:00
test-auditor.sh fix auditor test case, re-generate basedbs 2021-12-01 14:21:35 +01:00
test-revocation.sh -vanilla DB has no deposits, hence no lag 2021-09-27 11:36:09 +02:00
test-sync-in.conf fix sync issues, add rudimentary test 2021-01-13 19:47:45 +01:00
test-sync-out.conf fix sync issues, add rudimentary test 2021-01-13 19:47:45 +01:00
test-sync.sh fix more typos 2021-04-23 23:53:52 +02:00