Dev branch for age restriction, deposit policies, Brandt-Vickrey auctions etc.
Go to file
2015-09-21 10:43:22 +02:00
contrib expanding test to cover multi-wire format scenarios (#3972) 2015-09-20 14:02:10 +02:00
doc add option -C to force closing of connections 2015-09-21 10:43:22 +02:00
m4 ship LIBCULR_CHECK_CONFIG macro (#3844) 2015-06-19 15:31:34 +02:00
src add option -C to force closing of connections 2015-09-21 10:43:22 +02:00
.gitignore implement #3972: support multiple wire formats concurrently 2015-09-20 13:48:15 +02:00
.gitmodules -initial import for mint 2015-01-08 18:37:20 +01:00
AUTHORS -initial import for mint 2015-01-08 18:37:20 +01:00
bootstrap -initial import for mint 2015-01-08 18:37:20 +01:00
ChangeLog -initial import for mint 2015-01-08 18:37:20 +01:00
configure.ac fixing configure.ac to prepare compilation of libtalerutil_wallet under emscripten 2015-07-16 15:47:07 +02:00
COPYING -initial import for mint 2015-01-08 18:37:20 +01:00
INSTALL first stab at establishing proper plugin API, main HTTP code compiles, other binaries FTBFS right now 2015-03-20 23:51:28 +01:00
Makefile.am bringing copyright tags up to FSF standard 2015-02-08 00:17:40 +01:00
NEWS -initial import for mint 2015-01-08 18:37:20 +01:00
README README fix 2015-08-04 09:58:54 +02:00

                       Welcome to GNU Taler


What is Taler?
==============

Taler is an electronic payment system providing the ability to pay
anonymously using digital cash.  Taler consists of a network protocol
definition (using a RESTful API over HTTP), a Mint (which creates
digital coins), a Wallet (which allows customers to manage, store and
spend digital coins), and a Merchant website which allows customers to
spend their digital coins.  Naturally, each Merchant is different, but
Taler includes code examples to help Merchants integrate Taler as a
payment system.

Taler is currently developed by a worldwide group of independent free
software developers and the DECENTRALISE team at Inria Rennes.  Taler
is free software and a GNU package (http://www.gnu.org/).

This is not even a release yet, but some raw development prototype
that does not work yet.  This package also only includes the Taler
mint, not the other components of the system.

Documentation about Taler can be found at http://taler.net/.


Dependencies:
=============

These are the direct dependencies for running a Taler mint:

- GNUnet            >= 0.10.2
- GNU libmicrohttpd >= 0.9.38
- Postgres          >= 9.3



Project structure is currently as follows:

src/include/
  -- installed headers for public APIs

src/util/
  -- common utility functions (currency representation,
     Taler-specific cryptography, Taler-specific json
     support)

src/pq/
  -- Postgres-specific utility functions

src/mintdb/
  -- Mint database backend (with DB-specific plugins)

src/mint/
  -- taler mint server

src/mint-tools/
  -- taler mint helper programs

src/mint-lib/
  -- libtalermint: C API to issue HTTP requests to mint


Getting Started
==============

The following steps illustrate how to set up a mint HTTP server.
They take as a stub for configuring the mint the content of 'contrib/mint-template/config/'.

1) Create a 'test/' directory and copy the stubs in it:

mkdir -p test/config/
cp mint/contrib/mint-template/config/* test/config/
cd test/

2) Create the mint's master with the tool 'gnunet-ecc':

gnunet-ecc -g1 master.priv

3) Edit config/mint-common.conf by replacing the right value on the line with the
MASTER_PUBLIC_KEY entry with the fresh generated (ASCII version of) master.priv.
This ASCII version is obtained by issuing:

gnunet-ecc -p master.priv

4) Generate other mint related keys ('denomination' and 'signing' keys), by issuing:

taler-mint-keyup -d `pwd` -m master.priv

5) Check with:

taler-mint-keycheck -d `pwd`

6) A mint needs a database to operate, so the following instructions relate to
how to set up PostgreSQL. On debian, the two packages needed are:

* postgresql
* postgresql-client

For other operating systems, please refer to the relevant documentation.

In this settlement, the mint wll use a database called 'talercheck' and will
run under the username through which 'taler-mint-httpd' is launched. Thus assuming
that this user is 'demo', we need to create a 'demo' role for postgresql and make
him the owner of 'talercheck' database.

To perform these administrative tasks we have to impersonate the 'postgres' (by default,
postgres installation assigns privileges to such a user) user, then connect to the running DBMS.
Issue the following:

su # give your root password
su - postgres
psql # this is the command-line client to the DMBS
# the following lines are SQL
CREATE USER demo;
CREATE DATABASE talercheck OWNER demo;
# quit with CTRL-D

7) If any previous step has been successful, it is now possbile to start up the
mint web server (by default it will listen on port 4241); issue:


taler-mint-httpd -d `pwd` # assuming we did not move outside of the 'test' directory