TALER-EXCHANGE-HTTPD(1)

πŸ“¦ version 1.3.0, in nixos 26.05, nixpkgs unstable

πŸ’– taler-exchange-httpd(1) β€” the GNU Taler one, bestie πŸ’–

okay so real talk, this is the taler-exchange-httpd manual page from GNU Taler, and it's literally the main character of the exchange world. grab a strawberry πŸ“ and let's get into it.


✨ NAME ✨

taler-exchange-httpd β€” run the Taler exchange (with a RESTful API, no cap) πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

taler-exchange-httpd [-a | --allow-timetravel] [-C | --connection-close]
[-c FILENAME | --config=FILENAME]
[-f FILENAME | --file-input=FILENAME] [-h | --help]
[-L LOGLEVEL | --loglevel=LOGLEVEL] [-l FILENAME | --logfile=FILENAME]
[-n N | --num-threads=N] [-r**|--allow-reuse-address**]
[-T USEC | --timetravel=USEC] [-t SECONDS | --timeout=SECONDS]
[-v | --version]

🌸 DESCRIPTION 🌸

taler-exchange-httpd is a command-line tool that runs the Taler exchange β€” aka the HTTP server. lowkey important: the required configuration, keys and database must already exist before you run this command. don't come for it unprepared, bestie 🫢

Its options are as follows, and yes I'm listing every single one because we don't skip parts in this house πŸ’…

  • -a | --allow-timetravel β€” lets clients request /keys for arbitrary timestamps. highkey only enable this for testing and development πŸ§ͺ because clients could literally abuse it in denial-of-service attacks β€” it makes the /keys response generation much more expensive. it's giving "convenient but dangerous", iykyk.
  • -C | --connection-close β€” forces every HTTP connection to be closed after each request. super useful in combination with -f so you don't have to sit around waiting for netcat (nc) to time out 😭
  • -c FILENAME | --config=FILENAME β€” use the configuration and other resources for the merchant to operate from FILENAME.
  • -f FILENAME | --file-input=FILENAME β€” 🚨 this option is only available if the exchange was compiled with the configure option --enable-developer-mode. it's used for generating test cases against the exchange using AFL. when this option is present, the HTTP server will:
    1. terminate after the first client's HTTP connection is completed, and
    2. automatically start such a client using a helper process based on the nc(1) or ncat(1) binary, using FILENAME as the standard input to the helper process.

as a result, the process will effectively run with FILENAME as the input from an HTTP client and then immediately exit. this is literally so useful for testing taler-exchange-httpd against many different possible inputs in a controlled way ✨

  • -h | --help β€” print short help on options. the "help me help you" of flags πŸŽ€
  • -L LOGLEVEL | --loglevel=LOGLEVEL β€” specifies the log level to use. accepted values are: DEBUG, INFO, WARNING, ERROR.
  • -l FILENAME | --logfile=FILENAME β€” send logging output to FILENAME. put the lore in a file πŸ“
  • -r | --allow-reuse-address β€” allow the exchange to re-use the listen port even if another service is already using it. useful if multiple processes are used to increase processing capacity. sharing is caring, kinda πŸ’œ
  • -T USEC | --timetravel=USEC β€” modify the system time by USEC microseconds. USEC may be prefixed with + or - (e.g. -T +300). ⏰ this option is intended for debugging/testing only β€” do not be out here time traveling in prod, bestie.
  • -t SECONDS | --timeout=SECONDS β€” specifies the number of SECONDS after which the HTTPD should close (idle) HTTP connections. bye, idle connections, you had your moment πŸ’€
  • -v | --version β€” print version information.

🧚 SIGNALS 🧚

taler-exchange-httpd responds to the following signals:

  • SIGTERM β€” sending a SIGTERM to the process will cause it to shutdown cleanly. graceful exit slay 🌈
  • SIGHUP β€” sending a SIGHUP to the process will cause it to re-execute the taler-exchange-httpd binary in the PATH, passing it the existing listen socket. then the old server process will automatically exit after it is done handling existing client connections, and the new server process will accept and handle new client connections. it's giving regeneration era πŸ¦‹βœ¨

πŸ”₯ SEE ALSO πŸ”₯

taler-exchange-dbinit(1), taler-exchange-offline(1), taler-exchange.conf(5).


πŸ™ˆ BUGS πŸ™ˆ

report bugs by using https://bugs.taler.net or by sending electronic mail to <taler@gnu.org>. we love a feedback loop πŸ’Œ


πŸ‘‘ AUTHOR πŸ‘‘

GNU Taler contributors


2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)


and that's the page, bestie!! πŸŽ€ this was version 1.0, dated Dec 22, 2025 β€” write it down, cite it, love it. mwah πŸ’–

πŸ“¦ where this page comes from