View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003607 | Taler | other | public | 2015-01-08 20:05 | 2015-01-29 21:53 |
| Reporter | Christian Grothoff | Assigned To | Christian Grothoff | ||
| Priority | urgent | Severity | major | Reproducibility | N/A |
| Status | closed | Resolution | fixed | ||
| Product Version | git (master) | ||||
| Target Version | 0.0 | Fixed in Version | 0.0 | ||
| Summary | 0003607: restructure code to cleanly separate independent projects | ||||
| Description | I would like to end up in a situation where a wallet or merchant user does not need the mint logic. So we should try to really cleanly separate the various components. I've started to do so with the "new" Gits on git.taler.net, but (1) not all of the neuro-code has been moved, and (2) there are still "odd" interdependencies. Where I'd like to be (draft): ============================= 1) All crypto utilities (in particular the current RSA logic) should be moved into libgnunetutil/, demo-merchant may use those, but we should cleanly document those to make it easy to re-implement those functions, i.e. for merchants written in PHP or other server-scripty languages. 2) Mint-specific utilities (microhttpd.c) should not be exported and not live in src/util/ but in src/mint/ 3) Mint-client library should live in src/client/, not src/mint/ or src/util/, as it is an optional helper library that is nice for writing testcases against the mint, but should not be the only way to access the Mint anyway. 4) Database abstraction and json logic should probably for now simply be replicated if it is really used by both; that is not an API we would want to export and have to keep stable between mint/merchant --- makes no sense. => mint.git only exports a (clean) libtalermint (!) API => libgnunetutil can be used as quick'n easy crypto API for C hackers working on merchant/wallet logic, but not mandatory Ultimately, I'd like to also see a 'libtalerwallet' API for wallet developers that takes care of everything (mint interaction, merchant interaction, local DB) except GUI. But that'll be another bug report. | ||||
| Tags | No tags attached. | ||||
|
|
Mostly done. What is left in util: json.c - could become part of a public API libtalerutil util.c - some stuff dealing with 'amount's that could become part of a public API libtalerutil - some functions that might die - some crypto wrappers that might also be libtalerutil-ified db.c - could for now likely be duplicated to merchant, to be eliminated once we have proper DB abstraction layer rsa.c - already in libgnunetutil, but with incompatible API; will automatically die once code using it is moved to new API. |
|
|
src/mint: - should move DB API (and implementing plugins) into separate directory - do we want to move tools / mint_common-lib elsewhere? - we need man pages for all binaries! |
|
|
util.c was split into amount.c and crypto.c (and some stuff to GNUnet). The remaining function MAY also move to GNUnet eventually. db.c was moved into src/pq/ as it is PostGres-specific (layer 0). rsa.c is dead (now all in GNUnet). |
|
|
Still to do: * wallet Git * merchant Git |
|
|
Gits now exist for all 3 subprojects. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2015-01-08 20:05 | Christian Grothoff | New Issue | |
| 2015-01-08 20:05 | Christian Grothoff | Status | new => assigned |
| 2015-01-08 20:05 | Christian Grothoff | Assigned To | => Christian Grothoff |
| 2015-01-09 17:33 | Christian Grothoff | Description Updated | |
| 2015-01-09 17:33 | Christian Grothoff | Description Updated | |
| 2015-01-09 18:46 | Christian Grothoff | Note Added: 0008765 | |
| 2015-01-09 18:49 | Christian Grothoff | Note Added: 0008766 | |
| 2015-01-29 16:33 | Christian Grothoff | Priority | normal => urgent |
| 2015-01-29 16:43 | Christian Grothoff | Target Version | => 0.0 |
| 2015-01-29 20:55 | Christian Grothoff | Note Added: 0008825 | |
| 2015-01-29 20:56 | Christian Grothoff | Note Added: 0008826 | |
| 2015-01-29 21:35 | Christian Grothoff | Note Added: 0008828 | |
| 2015-01-29 21:35 | Christian Grothoff | Status | assigned => resolved |
| 2015-01-29 21:35 | Christian Grothoff | Fixed in Version | => 0.0 |
| 2015-01-29 21:35 | Christian Grothoff | Resolution | open => fixed |
| 2015-01-29 21:53 | Christian Grothoff | Status | resolved => closed |