exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

exchange.conf (5799B)


      1 # This file is in the public domain.
      2 #
      3 [exchange]
      4 
      5 # Master public key used to sign the exchange's various keys
      6 # This must be adjusted to your actual installation.
      7 # MASTER_PUBLIC_KEY = 98NJW3CQHZQGQXTY3K85K531XKPAPAVV4Q5V8PYYRR00NJGZWNVG
      8 
      9 # How many digits does the currency use by default on displays.
     10 # Hint provided to wallets. Should be 2 for EUR/USD/CHF,
     11 # and 0 for JPY. Default is 2 as that is most common.
     12 # Maximum value is 8. Note that this is the number of
     13 # fractions shown in the wallet by default, it is still
     14 # possible to configure denominations with more digits
     15 # and those will then be rendered using 'tiny' fraction
     16 # capitals (like at gas stations) when present.
     17 CURRENCY_FRACTION_DIGITS = 2
     18 
     19 # Attribute encryption key for storing attributes encrypted
     20 # in the database. Should be a high-entropy nonce.
     21 ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE
     22 
     23 # Set to YES to enable AML/KYC.
     24 ENABLE_KYC = NO
     25 
     26 # Set to YES to signal to the merchant backend that it should
     27 # swap the terms-of-service and KYC auth authentication steps
     28 # in the user experience.
     29 KYC_SWAP_TOS_ACCEPTANCE = NO
     30 
     31 # Set to YES to disable direct deposits.
     32 DISABLE_DIRECT_DEPOSIT = NO
     33 
     34 # How long do we allow /keys to be cached at most? The actual
     35 # limit is the minimum of this value and the first expected
     36 # significant change in /keys based on the expiration times.
     37 # Used to artificially reduce caching (addresses #5747).
     38 MAX_KEYS_CACHING = forever
     39 
     40 # After how many requests should the exchange auto-restart
     41 # (to address potential issues with memory fragmentation)?
     42 # If this option is not specified, auto-restarting is disabled.
     43 # MAX_REQUESTS = 100000
     44 
     45 # How to access our database
     46 DB = postgres
     47 
     48 # Network configuration for the normal API/service HTTP server
     49 # serve via tcp socket (on PORT)
     50 SERVE = tcp
     51 
     52 # Unix domain socket to listen on,
     53 # only effective with "SERVE = unix"
     54 UNIXPATH = ${TALER_RUNTIME_DIR}httpd/exchange-http.sock
     55 UNIXPATH_MODE = 660
     56 
     57 # Linear component for the STEFAN curve
     58 STEFAN_LIN = 0.0
     59 
     60 # HTTP port the exchange listens to
     61 PORT = 8081
     62 
     63 # Base URL of the exchange (public-facing).  Due to reverse proxies,
     64 # this may or may not match our port or hostname at all and can thus
     65 # not be determined automatically. Note that a globally reachable name
     66 # is required, so 'localhost' will not work except for testing.
     67 # Required for wire transfers as we need to include it in the wire
     68 # transfers to enable tracking.
     69 BASE_URL = http://localhost:8081/
     70 
     71 # How long should the aggregator sleep if it has nothing to do?
     72 AGGREGATOR_IDLE_SLEEP_INTERVAL = 60 s
     73 
     74 # What type of asset is the exchange managing? Used to adjust
     75 # the user-interface of the wallet.
     76 # Possibilities include: "fiat", "regional" and "crypto".
     77 # In the future (and already permitted but not yet supported by wallets)
     78 # we also expect to have "stock" and "future" (and more).
     79 # Default is "fiat".
     80 ASSET_TYPE = "fiat"
     81 
     82 # FIXME: document!
     83 ROUTER_IDLE_SLEEP_INTERVAL = 60 s
     84 
     85 # How big is an individual shard to be processed
     86 # by taler-exchange-expire (in time).  It may take
     87 # this much time for an expired purse to be really
     88 # cleaned up and the coins refunded.
     89 EXPIRE_SHARD_SIZE = 60 s
     90 
     91 # How long should the transfer tool
     92 # sleep if it has nothing to do?
     93 TRANSFER_IDLE_SLEEP_INTERVAL = 60 s
     94 
     95 # How long should the closer tool
     96 # sleep if it has nothing to do?
     97 CLOSER_IDLE_SLEEP_INTERVAL = 60 s
     98 
     99 # Values of 0 or above 2^31 disable sharding, which
    100 # is a sane default for most use-cases.
    101 # When changing this value, you MUST stop all
    102 # aggregators and manually run
    103 #
    104 # $ taler-exchange-dbinit -s
    105 #
    106 # against the exchange's database. Otherwise, the
    107 # aggregation logic will break badly!
    108 AGGREGATOR_SHARD_SIZE = 2147483648
    109 
    110 # Values of 0 or above 2^31 disable sharding, which
    111 # is a sane default for most use-cases.
    112 # When changing this value, you MUST stop all
    113 # aggregators and manually run
    114 #
    115 # $ taler-exchange-dbinit -s
    116 #
    117 # against the exchange's database. Otherwise, the
    118 # aggregation logic will break badly!
    119 ROUTER_SHARD_SIZE = 2147483648
    120 
    121 # How long should wirewatch sleep if it has nothing to do?
    122 # (Set very aggressively here for the demonstrators to be
    123 # super fast.)
    124 WIREWATCH_IDLE_SLEEP_INTERVAL = 1 s
    125 
    126 # how long are the signatures with the signkey valid?
    127 SIGNKEY_LEGAL_DURATION = 2 years
    128 
    129 # Directory with our terms of service.
    130 TERMS_DIR = ${TALER_DATA_HOME}terms/
    131 
    132 # Etag / filename for the terms of service.
    133 TERMS_ETAG = exchange-tos-v0
    134 
    135 # Directory with our privacy policy.
    136 PRIVACY_DIR = ${TALER_DATA_HOME}terms/
    137 
    138 # Etag / filename for the privacy policy.
    139 PRIVACY_ETAG = exchange-pp-v0
    140 
    141 # Where are the Typst templates for form rendering.
    142 TYPST_TEMPLATES = @taler-exchange
    143 
    144 # Location of the (externally packaged) AML SPA
    145 AML_SPA_DIR = $PREFIX/share/taler-exchange-aml-webui/
    146 
    147 # Location of the (externally packaged) KYC SPA
    148 KYC_SPA_DIR = $PREFIX/share/taler-exchange-kyc-webui/
    149 
    150 [exchange-sanctionscheck]
    151 # Name where we store the sanctions check offset.
    152 MIN_ROW_FILENAME = ${HOME}/.cache/sanctionscheck-offset.bin
    153 
    154 # Sanction list match rating that must be exceeded for an automated
    155 # freeze of the account (without manual investigation first).
    156 # Both this and the FREEZE_CONFIDENCE_LIMIT must be met.
    157 FREEZE_RATING_LIMIT = 0.9
    158 
    159 # Sanction list confidence that must be exceeded for an automated
    160 # freeze of the account (without manual investigation first).
    161 # Both this and the FREEZE_RATING_LIMIT must be met.
    162 FREEZE_CONFIDENCE_LIMIT = 0.9
    163 
    164 # Value that the rating divided by the confidence must exceed to
    165 # trigger a (manual) investigation. At 0.95, a modest
    166 # 0.8 match with low 0.5 confidence will trigger (1.6), but a
    167 # good 0.9 match with a super-high 1.0 confidence would not (0.9 < 0.95).
    168 # OTOH, a bad 0.2 match with super-low 0.1 confidence would again
    169 # trigger (2.0 > 0.95).
    170 INVESTIGATION_LIMIT = 0.9