diff --git a/.gitignore b/.gitignore index 4107ecd1e..8a10c094c 100644 --- a/.gitignore +++ b/.gitignore @@ -59,8 +59,11 @@ src/exchange-tools/taler-exchange-keyup src/exchange-tools/taler-exchange-wire src/exchangedb/perf-exchangedb src/benchmark/taler-exchange-benchmark -src/benchmark/test_benchmark_home/.local/share/taler/exchange/live-keys/ -src/benchmark/test_benchmark_home/.local/share/taler/exchange/wirefees/ +src/benchmark/auditor.in +src/benchmark/exchange_benchmark_home/.local/share/taler/exchange/live-keys/* +src/benchmark/exchange_benchmark_home/.local/share/taler/auditors/ +src/benchmark/exchange_benchmark_home/.local/share/taler/auditor/ +src/benchmark/exchange_benchmark_home/.local/share/taler/exchange/wirefees/* src/json/test_json src/wire-plugins/test_ebics_wireformat src/wire-plugins/test_wire_plugin diff --git a/src/benchmark/example.conf b/src/benchmark/benchmark.conf similarity index 52% rename from src/benchmark/example.conf rename to src/benchmark/benchmark.conf index fba749fcb..4acffd8fd 100644 --- a/src/benchmark/example.conf +++ b/src/benchmark/benchmark.conf @@ -1,42 +1,57 @@ + +# This file is in the public domain. +# +[paths] +# Persistant data storage for the testcase +# This value is a default for `taler_config_home' +taler_test_home = exchange_benchmark_home/ + [taler] -# Must be EUR, as refresh CMDs have hardcoded currency. +# Currency supported by the exchange (can only be one) currency = EUR -[paths] -# Apparently ignored by the bank. -taler_run = $HOME/run -taler_test_home = /tmp/taler_test_home - [exchange] -base_url = http://localhost:18080/ -serve = tcp -port = 18080 - -# NOTE: this is the only value that cannot be -# generated on the fly, so it must be set beforehand. -master_public_key = VN3AZMENQAW2AWGY8SV7W9KF2ZG44GR904ADEWKT7K98FWBD0QWG -master_priv_file = ${TALER_RUN}/exchange/priv -db = postgres +# how long is one signkey valid? +signkey_duration = 4 weeks +# how long are the signatures with the signkey valid? +legal_duration = 2 years +# how long do we provide to clients denomination and signing keys +# ahead of time? +lookahead_provide = 4 weeks 1 day +# HTTP port the exchange listens to +port = 8081 +# Master public key used to sign the exchange's various keys +master_public_key = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG +# How to access our database +DB = postgres +# Base URL of the exchange. Must be set to a URL where the +# exchange (or the twister) is actually listening. +base_url = "http://localhost:8081/" +# Keep it short so the test runs fast. lookahead_sign = 12 h -[exchangedb] -wirefee_base_dir = ${TALER_TEST_HOME}/exchange/wirefees/ -auditor_base_dir = ${TALER_TEST_HOME}/auditor/sigs/ - [exchangedb-postgres] -config = postgres:///talercheck +config = "postgres:///talercheck" -[account-1] -url = payto://x-taler-bank/localhost:8080/2 -wire_response = ${TALER_TEST_HOME}/exchange/account-benchmark-2.json +[account-2] +# What is the bank account (with the "Taler Bank" demo system)? +URL = "payto://x-taler-bank/localhost:8082/2" +# This is the response we give out for the /wire request. It provides +# wallets with the bank information for transfers to the exchange. +wire_response = ${TALER_CONFIG_HOME}/account-2.json +# Which wire plugin should we use to access the account? plugin = taler_bank -taler_bank_auth_method = basic -username = Exchange -password = x -enable_debit = yes -enable_credit = yes +# Authentication information for basic authentication +taler_bank_auth_method = "basic" +username = user +password = pass + +enable_debit = YES +enable_credit = YES [fees-x-taler-bank] +# Fees for the forseeable future... +# If you see this after 2017, update to match the next 10 years... wire-fee-2018 = EUR:0.01 wire-fee-2019 = EUR:0.01 wire-fee-2020 = EUR:0.01 @@ -47,6 +62,7 @@ wire-fee-2024 = EUR:0.01 wire-fee-2025 = EUR:0.01 wire-fee-2026 = EUR:0.01 wire-fee-2027 = EUR:0.01 + closing-fee-2018 = EUR:0.01 closing-fee-2019 = EUR:0.01 closing-fee-2020 = EUR:0.01 @@ -58,6 +74,8 @@ closing-fee-2025 = EUR:0.01 closing-fee-2026 = EUR:0.01 closing-fee-2027 = EUR:0.01 +# Sections starting with "coin_" specify which denominations +# the exchange should support (and their respective fee structure) [coin_eur_ct_1] value = EUR:0.01 duration_overlap = 5 minutes diff --git a/src/benchmark/exchange_benchmark_home/.config/taler/account-2.json b/src/benchmark/exchange_benchmark_home/.config/taler/account-2.json new file mode 100644 index 000000000..9cc111ab7 --- /dev/null +++ b/src/benchmark/exchange_benchmark_home/.config/taler/account-2.json @@ -0,0 +1,5 @@ +{ + "url": "payto://x-taler-bank/localhost:8082/2", + "salt": "3XRYW2ST30TZBCEZMVSQ7GR0SJKJRN8DS4FE6N9QC7A80CC24VRGATJKY6EDK1YZ2B58FF3M6M1V32V4DHRWFWHDV79PVV5B8AWE8YR", + "master_sig": "RBMASGA36N44QGMCZ3QJQF1RYDH23TGXYW7J0W2GSZE2GKAQ3RXM5AJTS9RQ5PPNDE7C9CMYN4874J4RV49023HBDH66SPFM2N7VJ18" +} \ No newline at end of file diff --git a/src/benchmark/exchange_benchmark_home/.local/share/taler/exchange/offline-keys/master.priv b/src/benchmark/exchange_benchmark_home/.local/share/taler/exchange/offline-keys/master.priv new file mode 100644 index 000000000..394926938 --- /dev/null +++ b/src/benchmark/exchange_benchmark_home/.local/share/taler/exchange/offline-keys/master.priv @@ -0,0 +1 @@ +p^-33XX!\0qmU_ \ No newline at end of file diff --git a/src/benchmark/taler-exchange-benchmark.c b/src/benchmark/taler-exchange-benchmark.c index 96a9a7485..40526af33 100644 --- a/src/benchmark/taler-exchange-benchmark.c +++ b/src/benchmark/taler-exchange-benchmark.c @@ -320,6 +320,10 @@ int main (int argc, char *const *argv) { + + unsetenv ("XDG_DATA_HOME"); + unsetenv ("XDG_CONFIG_HOME"); + struct GNUNET_OS_Process *compute_wire_response; struct GNUNET_CONFIGURATION_Handle *cfg; struct GNUNET_GETOPT_CommandLineOption options[] = { @@ -360,7 +364,7 @@ main (int argc, GNUNET_GETOPT_OPTION_END }; - + if (GNUNET_SYSERR == (result = GNUNET_GETOPT_run ("taler-exchange-benchmark", options, @@ -430,6 +434,7 @@ main (int argc, (compute_wire_response); GNUNET_assert + /* Takes care of dropping all tables. */ (GNUNET_OK == TALER_TESTING_prepare_exchange (cfg_filename, &exchange_url)); // never used, we do all via handle.