cashless2ecash

cashless2ecash: pay with cards for digital cash (experimental)
Log | Files | Refs | README

README (3611B)


      1 # Cashless to E-Cash
      2 
      3 This project realizes a framework to enable withdrawal of digital cash for GNU Taler through a trusted third party. The integration addresses a report commissioned by the European Central Bank (ECB), which identified the universal acceptance as one of the most important aspects of a digital euro. This will lead to better acceptance of GNU Taler by better integrating its ecosystem into the existing systems.
      4 
      5 The following tree describes the structure of the document and a rough description of each directory
      6 ```
      7 .
      8 ├── bruno		: contains some manual http requests for the bruno rest client.
      9 ├── c2ec		: contains code of the c2ec component
     10 ├── cli			: contains code of the management cli
     11 ├── docs		: contains the thesis
     12 ├── install		: contains scripts for the installation of c2ec
     13 ├── Makefile		: Makefile contains build commands for creating c2ec executable and 
     14 ├── poster 		: containes the poster (requirement of the BFH for all their thesis projects)
     15 ├── README		: this file
     16 ├── schemaspy		: contains the schema of the database
     17 ├── simulation		: contains code of the c2ec simulation (testing)
     18 ├── specs		: contains various specifications (also old stuff)
     19 └── wallee-c2ec		: contains the source code of the Wallee PayDroid app
     20 ```
     21 
     22 ## Installation
     23 
     24 Hint: the following process can be achieved by editing the `setup` script in this repository and then executing `./setup` (if you agree with the default values, just run the script (not recommended, probably won't even work))
     25 
     26 1. Clone this repository
     27 2. Define variables
     28 	2.1 C2EC_HOME: Everything that is installed here. (default: $HOME)
     29 	2.2 C2EC_USER: The user owning c2ec. (default: current user (whoami)
     30 	2.3 C2EC_POSTGRES_USER: The postgres username (user which is allowed to create schemes etc.)
     31 	2.4 C2EC_POSTGRES_PASSWORD: The postgres users password
     32 	2.5 C2EC_DB_NAME: Name of the database which shall keep the schema
     33 	2.6 C2EC_DB_ADMIN_PW: The admin password of the database user
     34 	2.7 C2EC_DB_OPERATOR_PW: Password of the operator database user
     35 	2.8 C2EC_DB_API_PW: Password of the api database user
     36 	2.9 C2EC_FILE_PERMISSIONS: The permissions of the files created during the installation (executable, config, log, etc.) 
     37 3. Execute: `make install`
     38 
     39 ## Running C2EC
     40 
     41 Execute: `.$C2EC_HOME/c2ec &`
     42 
     43 ## Managing Providers and Terminals
     44 
     45 To manage providers and terminals, use the CLI.
     46 
     47 Therefore build the CLI first and run it. It uses the same variables as the installation.
     48 
     49 1. Execute: `make cli`
     50 2. Run CLI: `.$C2EC_HOME/c2ec-cli`
     51 
     52 ## Testing
     53 
     54 For testing, a simulation is available which allows simulation against the C2EC component. Before running the simulation make sure to register the simulation provider (which will setup the simulation client at C2EC. Be aware, that the simulation can only be run when the production flag in the c2ec-config is set to `false`). You can setup the simulation provider and terminal using the cli (execute the following commands in the cli):
     55 
     56 1. connect to database: `db` or set PG env variables
     57 2. setup registration: `sim`
     58 3. Note the terminal user id and the access token (in a password manager or similar)
     59 
     60 It's best to use the c2ec_operator user to connect to the db when using the cli.
     61 
     62 Build the simulation and run. It uses the same variables as the installation.
     63 
     64 1. Execute: `make simulation`
     65 2. Edit the configuration of the simulation at `$C2EC_HOME/simulation-config.yaml`
     66 3. Restart the c2ec process `.$C2EC_HOME/c2ec &`
     67 4. Execute: `.$C2EC_HOME/c2ec-simulation $C2EC_HOME/simulation-config.yaml`
     68 
     69