summaryrefslogtreecommitdiff
path: root/experiment/env
blob: fdf256eb36dbebd5129194001aa2d98b4024af07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Important node names, DO NOT Adjust unless you know
# what you are doing, it most certain needs adjustings 
# in run.sh and other scripts since variable names depend on it.
# Make sure to name all hosts with the following format in jFed:
# 'Role'-N, add only 'Role' here, setup.sh will determine the rest.
# Nodes listed here will be parsed and exported in 
# <ROLE>_HOSTS=<Grid5000-node[s]> 
# (used to determine which script to execute in run.sh)
# Wallets are not needed explicitely since they can (and will be)
# exported as a wildcard (*).
NODES="Bank DB DNS Exchange Aggregator Closer Transfer Wirewatch Auditor Merchant Monitor EProxy Shard"

# DNS Zone to setup inside the grid for the experiment
DNS_ZONE=perf.taler

# Where this repository is located inside the image
# Should not need to be changed unless the image itself was adjusted
G5K_HOME=/root/taler/grid5k
# Which branch of this repository to checkout for
# configuration files
G5K_COMMIT_SHA=master

# The exchange which is responsible to generate key material
PRIMARY_EXCH=Exchange-1

# The dns loadbalancing domain of the exchange (proxy)
EXCHANGE_GW_DOMAIN=exchange.${DNS_ZONE}

# Arguments to pass to all taler-exchange-* binaries at startup.
# E.g. -L INFO
     TALER_ARGS="-L ERROR"
# Service specific arguments to pass at startup
AGGREGATOR_ARGS="-y"
      BANK_ARGS=""
    CLOSER_ARGS=""
  EXCHANGE_ARGS=""
  TRANSFER_ARGS=""
 WIREWATCH_ARGS=""
     EDDSA_ARGS=""
       RSA_ARGS=""
        CS_ARGS=""
# Additional arguments to prepend to taler-exchange-httpd.service
# files ExecStart command, e.g. /usr/bin/valgrind --log-file=/tmp/exchange-%N.log
EXCHANGE_CMD_PREFIX=""

# Maximal number of requests an exchange process should handle
# before it kills itself
EXCHANGE_MAX_REQUESTS=8192

# Which cipher the exchange should use
EXCHANGE_CIPHER=RSA

# When using the RSA cipher, which key size to use
RSA_KEY_SIZE=2048

# The lookahead sign duration for the exchange secmods
LOOKAHEAD_SIGN="2 days"

# Token used in Authorize: Bearer $TOKEN for the merchant
TALER_MERCHANT_TOKEN=taler-perf

# Datasource names registered in the grafana instance
PROMETHEUS_DATASOURCE_NAME=Prometheus
LOKI_DATASOURCE_NAME=Loki

# Grid5000 Proxy ports where the datasources are reachable for grafana.
# These values most certain do not need to be adjusted, unless their
# config in ../configs/etc/* is changed.
# Doc: https://www.grid5000.fr/w/HTTP/HTTPs_access
# Valid values: http/http8080, https/https8443
PROMETHEUS_G5K_PROXY_PORT=http8080
LOKI_G5K_PROXY_PORT=http

# Which version of postgres is installed in the environment
POSTGRES_VERSION=13
# Setup postgres to use RAM instead of disks to store WAL and data
POSTGRES_IN_MEMORY=false
# Exchange database configuration
DB_NAME=taler-exchange
DB_USER=taler
# Database password
DB_PASSWORD=taler
# The mininmum duration of a sql statement to be logged by log_min_duration_statement in ms
DB_MIN_DURATION_STATEMENT=80
# If exchanges should connect to pgBouncer rather than to the db directly
USE_PGBOUNCER=false
# If the taler-exchange database should be sharded
SHARD_DB=false
# If the taler-exchange database should be partitioned
# NOTE sharding and partitioning are mutually exclusive, if both are true, sharding will be tried
PARTITION_DB=true
# How many partitions of partitioned tables should be created
NUM_PARTITIONS=2

# Initial number of wallets to start in parallel per host.
# This is a bulk size with default = 10
# Start another bunch with `taler-perf start wallet <N>`
NUM_WALLET_PROCESSES=10
# Which benchmark to use of the wallet-cli (bench1, bench2)
WALLET_BENCHMARK=bench1
# Request the exchange via https instead of http
WALLET_USE_HTTPS=true
# Run a withdraw only experiment
WALLET_WITHDRAW_ONLY=false
# How the wallets select merchants, possible values: 'zipf' and 'rand'
# If the configured value is neither zipf or rand, a single merchant is taken
WALLET_MERCHANT_SELECTION=normal
# How many merchants should be used to select randomly from
WALLET_NUM_MERCHANTS=1000
# Needed for wallets to accept self signed certificates
NODE_TLS_REJECT_UNAUTHORIZED=0

# Other wallet options mostly for performance experiments
# Note: comment if not wanted
TALER_WALLET_SYNC_CRYPTO=1
TALER_WALLET_PRIMITIVE_WORKER=1
TALER_WALLET_INSECURE_TRUST_EXCHANGE=1
# Do batch withdrawals of a reserve rather than single coins
TALER_WALLET_BATCH_WITHDRAWAL=1

# Number of deposits per wallet iteration (withdraw)
# Amount to withdraw is caluclated as follows:
# (num_deposits + 1) * 10 
# This must also be configured in WITHDRAW ONLY
NUM_DEPOSITS=20
# If the number of deposits should be selected randomly
# from 1 to NUM_DEPOSITS
RAND_DEPOSITS=true

# Initial number of exchange processes to run.
# default = 10
# Start another bunch with `taler-perf start exchange <N>`
NUM_EXCHANGE_PROCESSES=1

# Number of other exchange-* processes to run
# This setting is static, default = 1
# For the aggregator the number will be actually 2^n (so 0 will be 1 process)
# If you want no aggregator just set it to -1
NUM_AGGREGATOR_PROCESSES=0
    NUM_CLOSER_PROCESSES=1
   NUM_TRANSER_PROCESSES=1
NUM_WIREWATTCH_PROCESSES=1

# If the auditor should be setup or not when the node is added in the rspec
TALER_SETUP_AUDITOR_REPLICATION=0

# If prometheus node exporter should be enabled
# Most certainly this is true, since otherwise no overview
# of services and running wallets can be generated in grafana.
ENABLE_EXPORTERS=true

# Host where grafana is reachable including scheme and port.
# If this one or the key is left empty, no grafana instance
# is assumed, Loki and Prometheus will run anyway since they are used by rsyslog.
GRAFANA_HOST=https://147.87.255.221:3000
# API key for grafana
# Needs admin level since datasources need to be updated.
# This can be generated by a grafana admin in 'Configuration->API keys->Add API key'
GRAFANA_API_KEY=

# If the data persisted from prometheus and loki from a
# previous experiment should be removed before starting
# a new one (NOTE: this is always the case for logs)
REMOVE_PREVIOUS_EXPERIMENT_DATA=true

# If *_COMMIT_SHA is not empty the corresponding
# binary is rebuilt from source on the specified commit
# with *_CFLAGS before starting the experiment.
# NOTE: if you missed it, you can use `taler-perf rebuild` in a running experiment
LIBMICROHTTPD_COMMIT_SHA=""
    LIBMICROHTTPD_CFLAGS=""
       
GNUNET_COMMIT_SHA=""
    GNUNET_CFLAGS=""

EXCHANGE_COMMIT_SHA=""
    EXCHANGE_CFLAGS=""

MERCHANT_COMMIT_SHA=""
    MERCHANT_CFLAGS=""

WALLET_COMMIT_SHA=""