Commit Graph

556 Commits

Author SHA1 Message Date
Christian Grothoff
3599ac0ac2
-complete extended reserve history signature check logic to libtalerexchange 2022-05-22 23:51:14 +02:00
Christian Grothoff
40daa209fb
-more work on reverse history 2022-05-22 18:21:15 +02:00
Christian Grothoff
8658ae03ca
-towards purse merge and history requests in reserve history (incomplete) 2022-05-22 16:58:48 +02:00
Christian Grothoff
4a5d71cca2
-implement reserve history DB logic 2022-05-22 16:18:09 +02:00
Christian Grothoff
96fb11bed0
-fix 2022-05-22 14:46:23 +02:00
Christian Grothoff
802649c270
-add DB logic for purse expiration 2022-05-17 08:50:42 +02:00
Christian Grothoff
02716c4084
-add skeleton logic for purse expiration 2022-05-16 15:43:40 +02:00
Christian Grothoff
d803d86bf9
-work purse_deposit conflict handling 2022-05-16 14:01:04 +02:00
Marco Boss
42f3f83b7d
add recoup_by_reserve as sql function 2022-05-13 15:28:43 +02:00
Christian Grothoff
35b4a51e14
combine auto-commited transactions in refresh/reveal into one big transaction 2022-05-12 13:31:15 +02:00
Christian Grothoff
93eb88a8c9
-fix argument order 2022-05-12 11:10:32 +02:00
Christian Grothoff
06bfbd9150
-sql fixes 2022-05-08 22:36:39 +02:00
Christian Grothoff
60c08dccec
expand P2P query logic 2022-05-08 21:04:55 +02:00
Christian Grothoff
d3a6388199
pass purse_fee to determine how purse creation is paid for 2022-05-08 11:37:37 +02:00
Christian Grothoff
7ebdac0a8b
-investigate FIXME 2022-05-02 20:51:34 +02:00
Christian Grothoff
40440604dd
-address some FIXMEs 2022-05-02 19:55:40 +02:00
Marco Boss
72ae759fa0
include shard domain and remote users in taler config 2022-05-02 00:27:59 +02:00
Christian Grothoff
7718cd4153
skeleton for batch withdraw logic (not finished) 2022-05-01 12:45:12 +02:00
Christian Grothoff
336f2d8991
-misc. minor fixes 2022-04-26 17:46:36 +02:00
Christian Grothoff
932cef3d8c
-complete purses_get draft implementation 2022-04-26 13:34:18 +02:00
Christian Grothoff
efb8c8037b
-implement purses get db sketch 2022-04-26 13:24:51 +02:00
Christian Grothoff
505989a507
-mark FIXMEs 2022-04-25 13:30:03 +02:00
Christian Grothoff
b4965db0d2
-fix fieldnames, regenerated DBs 2022-04-24 20:49:11 +02:00
Christian Grothoff
aedd2014ec
-misc p2p fixes 2022-04-24 15:29:58 +02:00
Christian Grothoff
345c141bad
-work on p2p payments 2022-04-23 20:50:27 +02:00
Christian Grothoff
a13f90a15e
add wirewatch shutdown shard cleanup logic 2022-04-14 00:00:50 +02:00
Christian Grothoff
3893afa49c
-implementing purse merge DB logic 2022-04-12 11:58:21 +02:00
Christian Grothoff
7a1dcc52ca
-towards new GET /contracts/$C_PUB hander 2022-04-11 16:48:30 +02:00
Marco Boss
0a10644b81
improve some queries for sharding 2022-04-06 13:33:47 +02:00
Christian Grothoff
f3a4b00907
adapt to latest GNUnet API: GNUNET_JSON_spec_mark_optional() changed 2022-04-05 17:15:50 +02:00
Christian Grothoff
7191641406
implement more DB functions 2022-04-04 20:42:26 +02:00
Christian Grothoff
831e32b7ad
-add logic for econtract_sig signatures 2022-04-04 07:29:50 +02:00
Marco Boss
ae75ff2cb4
extend sharding logic that shard nodes can be initialied and dropped 2022-04-02 18:43:49 +02:00
Marco Boss
ca536c0379
fix return 2022-04-02 14:25:04 +02:00
Marco Boss
1b76ba5e9a
Include sharding sql logic 2022-04-02 09:28:25 +02:00
Christian Grothoff
caf66486e7
work on purse creation logic 2022-04-01 16:39:07 +02:00
Marco Boss
75c1e10a67
add shard init for shard node 2022-03-31 21:31:07 +02:00
Marco Boss
0cf9a9984c
add sharding logic 2022-03-31 17:00:44 +02:00
Christian Grothoff
747ae5ef09
privatize more signature structs, simplify code 2022-03-31 12:37:39 +02:00
Christian Grothoff
1f1d675f3d
-remove tiny field, no longer needed 2022-03-27 14:34:44 +02:00
Christian Grothoff
b9a9af3a59
new aggregator mega transaction logic 2022-03-27 13:48:25 +02:00
Christian Grothoff
d0a69da895
towards removing tiny bit 2022-03-27 10:32:28 +02:00
Christian Grothoff
098d572471
change sharding strategy for refund table 2022-03-26 10:47:10 +01:00
Christian Grothoff
783e2ae424
add partitions to new p2p tables 2022-03-26 09:00:19 +01:00
Christian Grothoff
b856d56d95
rework deposits sharding, towards making aggregator faster (not necessarily done) 2022-03-24 17:33:29 +01:00
Christian Grothoff
6ffc2c68a3
better query 2022-03-24 09:05:55 +01:00
Christian Grothoff
f091808425
more skeleton logic for P2P operations on DB 2022-03-23 12:25:45 +01:00
Christian Grothoff
c7e2d206ba
add logic to check timestamp, revise history balance calculation logic in client 2022-03-21 03:59:31 +01:00
Christian Grothoff
1f86b02ffa
first rough-cut implementation of /reserves//history endpoint 2022-03-21 03:04:47 +01:00
Christian Grothoff
f5f15e6531
first rough-cut implementation of POST /reserves//status 2022-03-21 02:39:36 +01:00
Christian Grothoff
dee45bf022
return new global fees from /keys 2022-03-20 09:44:42 +01:00
Christian Grothoff
69927847cc
-style fixes 2022-03-20 02:38:48 +01:00
Christian Grothoff
f5e5f4b843
more work on recoup_by_reserve: add new materialized index to avoid hitting all partitions for the query 2022-03-19 14:05:45 +01:00
Christian Grothoff
280f94c3a6
improve style of some SQL queries (no semantic change) 2022-03-19 08:27:01 +01:00
Christian Grothoff
badfde8962
add deposits_by_coin table to speed-up certain queries (in theory) 2022-03-18 15:47:25 +01:00
Christian Grothoff
142a369e43
add selection by shard, ignore KYC in revocation test aggregation 2022-03-18 08:54:08 +01:00
Christian Grothoff
23af6c3c41
change table structures again to shard better by coin_pub and not use known_coin_id so much 2022-03-18 01:57:39 +01:00
Christian Grothoff
bab36a2ac8
-remove dead field, return h_commitment_age to auditor 2022-03-17 14:45:12 +01:00
Christian Grothoff
12809b28ec
-misc fixes 2022-03-17 14:16:34 +01:00
Christian Grothoff
a8d80d519d
attempt to make GRID5K_MARCO_OPT superfluous 2022-03-14 07:34:21 +01:00
Marco Boss
7a74cde9c7
add option to exclude reserve history in grid5k experiments 2022-03-10 10:26:44 +01:00
Christian Grothoff
a080f11890
add more logic for new global fees 2022-03-05 17:14:32 +01:00
Christian Grothoff
57470e4c08
-more work on global_fees 2022-03-05 16:16:38 +01:00
Christian Grothoff
7ff58c3d8f
refactor /wire to include logic to return the wad fee (for W2W payments) 2022-03-05 14:36:55 +01:00
8a906bf96c
sync tables "extensions" and "extension_details" with auditor 2022-03-05 13:39:01 +01:00
Marco Boss
f5e1cf5e6d
rewrite query for recoup_by_reserve 2022-03-04 13:22:28 +01:00
Christian Grothoff
f9a2808ed0
-fix kyc test 2022-03-04 00:30:43 +01:00
Christian Grothoff
1643b745af
use 32 byte hash for hpayto, use that for joins on queries to better align queries with partitions 2022-03-03 23:52:08 +01:00
Christian Grothoff
f951cdef8c
include shard when marking deposits tiny/done to make better use of partitions/shards 2022-03-03 19:39:25 +01:00
Christian Grothoff
476ae53808
simply defer all, only way to do well with partitions 2022-03-03 17:48:00 +01:00
Marco Boss
57e3864c09
Include partitioning in dbinit 2022-03-02 19:03:54 +01:00
Marco Boss
7f30609ff0
use plain uint32_t 2022-03-02 17:22:43 +01:00
7624db4efd
-refactor TALER_AgeMask.mask -> TALER_AgeMask.bits
also: fix off-by-one in TALER_age_restriction_commit
2022-03-02 10:59:42 +01:00
Marco Boss
2abe9bf6d7
include partitioning logic in dbinit 2022-03-02 10:50:51 +01:00
Christian Grothoff
e24a6369aa
test-sync passes again 2022-02-28 23:18:40 +01:00
Christian Grothoff
3d4e580699
work on auditor-sync update to latest DB 2022-02-28 22:41:24 +01:00
Christian Grothoff
ee79f31275
-work on test_sync.sh, incomplete 2022-02-28 22:41:24 +01:00
Christian Grothoff
23bc09fe3c
get test-auditor and #7181 to pass 2022-02-28 20:37:19 +01:00
Christian Grothoff
8f77bda2e0
-towards getting auditor tests to pass again with new logic 2022-02-28 16:13:30 +01:00
Marco Boss
3d52f52164
Fix ON CONFLICT statements for distributed tables 2022-02-24 14:31:19 +01:00
Christian Grothoff
5e5004020e
-fix aggregator with deferred constraint 2022-02-24 10:06:43 +01:00
7910ca183f
double melt test no works with age restriction
- added missing field h_age_commitment in exchange's error response
- slight refactoring
2022-02-22 18:35:10 +01:00
26158fc725
[age restriction] progress 16/n - refresh/reveal/link tests
Age restriction works now with withdraw, melt/refresh/reveal and link,
including tests.

However, there is still a problem with the tests:  The melting operation
"refresh-melt-failing-age" that should fail (because of conflict), but
currently fails for other reasons.  I decided to disable that particular
test (and the next) and submit the patch I have so far.
2022-02-22 14:34:47 +01:00
Christian Grothoff
544ba42f44
-big renaming of structs for consistent naming with P suffix 2022-02-21 00:23:23 +01:00
Christian Grothoff
bc150693de
-work around missing constraint, if not present 2022-02-20 19:26:01 +01:00
71af4c539e
-reducing FIXMEs re: age restriction
- deposit info now carries h_age_commitment
- benchmark does age commitment, too
2022-02-18 02:07:38 +01:00
f4f502d037
-minor merge conflict resolves 2022-02-18 00:50:31 +01:00
a78b3345fb
[age restriction] progress 15/n - melt/refresh/reveal and recoup
Added age restriction support for
  - melt/refresh/reveal
  - recoup

However, tests are not yet implemented for those flows.

Also: minor fixes and refactoring.
2022-02-18 00:30:19 +01:00
Christian Grothoff
f74757e234
-another OEC FIXME 2022-02-17 15:28:00 +01:00
Christian Grothoff
a351bfc4b4
-fix CS nonce reuse check logic 2022-02-17 15:18:09 +01:00
8bdf6ab19d
[age restriction] progress 14/n - withdraw and deposit
Age restriction support for
  - withdraw is done and tested
  - deposit is done and tested

TODOs:
  - melt/refresh/reveal
  - link

------

Added functions
 - TALER_age_restriction_commit
 - TALER_age_commitment_derive
 - TALER_age_commitment_hash
 - TALER_age_restriction_commitment_free_inside
 - Hash of age commitment passed around API boundaries

Exchangedb adjustments for denominations
 - all prepared statements re: denominations now handle age_mask
 - signature parameters adjusted

Hash and signature verification of /keys adjusted
 - Hashes of (normal) denominations and age-restricted denominations are
   calculated seperately
 - The hash of the age-restricted ones will then be added to the other
   hash
 - The total hash is signed/verified

Tests for withdraw with age restriction added
 - TALER_EXCHANGE_DenomPublickey now carries age_mask
 - TALER_TESTING_cmd_withdraw_amount* takes age parameter
 - TALER_TESTING_find_pk takes boolean age_restricted
 - WithdrawState carries age_commitment and its hash
 - withdraw_run derives new age commitment, if applicable
 - Added age parameter to testing (13 as example)

Various Fixes and changes
 - Fixes of post handler for /management/extensions
 - Fixes for offline tool extensions signing
 - Slight refactoring of extensions
 - Age restriction extension simplified
   - config is now global to extension
   - added global TEH_age_restriction_enabled and TEH_age_mask in
     taler-exchange-httpd
   - helper functions and macros introduced
2022-02-16 22:01:05 +01:00
Christian Grothoff
ef938e0f7a
-correctly implement CS idempotency check on withdraw 2022-02-15 17:07:13 +01:00
Christian Grothoff
bd77bcb52d
-towards fixing the protocol 2022-02-14 23:02:25 +01:00
Christian Grothoff
c2549e8b1e
-address FIXMEs 2022-02-12 11:24:32 +01:00
Christian Grothoff
bc14c215b3
-doxygen fixes 2022-02-12 11:12:33 +01:00
Christian Grothoff
819b67426c
-doxygen fixes 2022-02-12 10:33:23 +01:00
Christian Grothoff
532d4ad0dc
-fixes to tests, and half-baked fixes for CS-/link (still fails) 2022-02-10 23:39:00 +01:00
Christian Grothoff
b2e6fcae1a
fix DB API for generic blinded planchet storage 2022-02-07 13:14:25 +01:00
Christian Grothoff
fb9ba5b1d2
-rename fest 2022-02-07 12:33:35 +01:00
1962ed6b0b
improvements in extension handling
- extensions_sig is needed globally
- keep original json with config of extension
- fixed various bugs re: extension handling
2022-01-22 00:26:43 +01:00