View Issue Details

IDProjectCategoryView StatusLast Update
0003850Talertaler-merchant-demospublic2024-01-12 13:08
ReporterChristian Grothoff Assigned ToMarcello Stanisci Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version0.0Fixed in Version0.0 
Summary0003850: need demonstration
DescriptionWe need to have a reasonable toy merchant-mint setup to handle toy transactions. This involves running a toy merchant (toy.taler.net) where the user can 'donate' (i.e. "kudos"), and a toy wallet (demo.taler.net) where the toy merchant sends its coins.

Extra requirements:
0) Webpage should not look like crap
1) Toy merchant must actually have code that does the right thing, and must
   record list of successful transactions (we want to show this code)
2) Toy merchant must offer link to Taler extension for download, and
   link to demo.taler.net (so that the user can go there and 'withdraw'
   kudos).
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

The plan

IDSummaryStatusAssigned ToEstimated effort (hours)
0003763wallet needs to support simple spending of coins (sending data for /deposit to merchant) closedMarcello Stanisci
0003851need /admin/add/incoming request for (faking) bank deposits closedChristian Grothoff
This issue (hours)
Its children (hours)0
Together (hours)0
Nothing is missing: the plan can be finished.

Relationships

parent of 0003851 closedChristian Grothoff need /admin/add/incoming request for (faking) bank deposits 
parent of 0003763 closedMarcello Stanisci wallet needs to support simple spending of coins (sending data for /deposit to merchant) 

Activities

Marcello Stanisci

2015-07-30 11:40

reporter   ~0009510

Last edited: 2015-07-31 10:21

Some design points about the demo merchant.

1. No crypto in PHP.
that is due to the complexity required to compile the code from wrap.c in PHP. It's not possible to simply
take wrap.c and compile it in PHP to extend Zend/PHP. To do that, a lot of simple C statements (even functions
declarations!) must be mediated by some macros provided by Zend/PHP; in other words, that would mean to rewrite
a wrap_php.c. There could also be the chance of using other crypto modules for PHP, but it could be quite error
prone to manipulate binary data (like contracts, etc..) directly in PHP - to say one, a function like GNUNET_CRYPTO_signature_encode
must be implemented from scratch entirely in PHP!; moreover,these crytpo routines do not come from one single project.

2. PHP + C
In this case, the merchant has a "presentational" part in PHP, and a "backend" in C. That way, the presentational
part is a "gateway" (for the wallet) to the backend that will take care of signing/verifying/bundling binaries/
managing the DB. The advantage is that the merchant gets the dynamicity from PHP, and the availability of all
the useful libraries from the GNUNET realm for the C part. Again, it is handier for a real merchant to install
a C backend and make its website talking with that rather than implement crypto routines directly in its website's
language. Actually, in this scenario, the mint runner could also run some merchants management division.
To implement this point, some JSON interaction between the presentational part and the backend has to be designed,
plus some functions from the existing merchant (written in C) have to be adapted to the scenario.

3. No merchant in JavaScript
the emscripted modules will need some modifications to export the functions to be imported inside the main nodejs
application.

Marcello Stanisci

2015-07-31 16:59

reporter   ~0009511

Last edited: 2015-07-31 17:04

update: setting up DB and test-ish MHD daemon skeleton for merchant's C backend.

Marcello Stanisci

2015-08-03 16:47

reporter   ~0009526

Currently, some files implementing the merchant's HTTP daemon need to be placed inside the mint's
tree to be compiled. That's because they use a few routines (still?) not exported as shared library
by the mint (as TMH_PARSE_post_json, for instance). They are kept in 'merchant/src/backend/melted/'.

Marcello Stanisci

2015-08-04 17:08

reporter   ~0009538

adding contract generation and storing into DB

Marcello Stanisci

2015-08-06 16:49

reporter   ~0009543

mgmt of non-200 HTTP responses + modification of old merchant's tables.

Marcello Stanisci

2015-10-22 09:24

reporter   ~0009769

Achieved. Other issues have dedicated bug-reports

Issue History

Date ModifiedUsernameFieldChange
2015-06-21 09:15Christian GrothoffNew Issue
2015-06-21 09:15Christian GrothoffStatusnew => assigned
2015-06-21 09:15Christian GrothoffAssigned To => Marcello Stanisci
2015-06-21 09:19Christian GrothoffRelationship addedparent of 0003851
2015-06-21 09:20Christian GrothoffRelationship addedparent of 0003623
2015-07-30 11:40Marcello StanisciNote Added: 0009510
2015-07-30 11:46Marcello StanisciNote Edited: 0009510
2015-07-31 10:21Marcello StanisciNote Edited: 0009510
2015-07-31 16:59Marcello StanisciNote Added: 0009511
2015-07-31 17:04Marcello StanisciNote Edited: 0009511
2015-08-03 16:47Marcello StanisciNote Added: 0009526
2015-08-04 17:08Marcello StanisciNote Added: 0009538
2015-08-06 16:49Marcello StanisciNote Added: 0009543
2015-08-08 13:32Christian GrothoffRelationship addedchild of 0003763
2015-10-16 14:24Marcello StanisciRelationship replacedparent of 0003763
2015-10-22 09:23Marcello StanisciRelationship deletedparent of 0003623
2015-10-22 09:24Marcello StanisciNote Added: 0009769
2015-10-22 09:24Marcello StanisciStatusassigned => informing
2015-10-22 09:24Marcello StanisciResolutionopen => fixed
2015-10-22 23:08Christian GrothoffFixed in Version => 0.0
2015-10-22 23:09Christian GrothoffStatusinforming => closed
2015-11-29 12:48Christian GrothoffCategorymerchant (demonstrator) => merchant frontend (demonstrator)
2016-02-17 02:24Florian DoldCategorymerchant frontend (demonstrator) => merchant frontend (donations)
2024-01-12 13:08Christian GrothoffCategorymerchant frontend (donations) => Merchant frontends (Python3)
2026-08-23 14:16Florian DoldCategoryMerchant frontends (Python3) => taler-merchant-demos