mirror of
https://github.com/JoinMarket-Org/joinmarket-clientserver.git
synced 2026-08-13 12:33:40 +02:00
79 lines
3.4 KiB
Markdown
79 lines
3.4 KiB
Markdown
# Command line scripts for Joinmarket
|
|
|
|
(If upgrading to version 0.3.0+, don't forget to read [this](../docs/SEGWIT-UPGRADE.md) on upgrading the wallet.)
|
|
|
|
All user level scripts here.
|
|
|
|
(The phrase "normal Joinmarket" in the below refers to the [existing repo](https://github.com/Joinmarket-Org/joinmarket).
|
|
|
|
The subdirectories `logs` and `wallets` have the same role as in normal Joinmarket.
|
|
The subdirectory `cmtdata` contains only your `commitments.json` storage of your used
|
|
commitments (ignored by github of course!). The filename is set in joinmarket.cfg.
|
|
|
|
The `joinmarket.cfg` will be created and maintained in this directory.
|
|
|
|
Brief explanation of the function of each of the scripts:
|
|
|
|
### sendpayment.py
|
|
|
|
Either use the same syntax as for normal Joinmarket:
|
|
|
|
`python sendpayment.py -N 3 -m 1 -P wallet.jmdat 50000000 <address>`
|
|
|
|
or use the new schedule approach. For an example, see the [sample schedule file](https://github.com/AdamISZ/joinmarket-clientserver/blob/master/scripts/sample-schedule-for-testnet).
|
|
Do:
|
|
|
|
`python sendpayment.py -S sample-schedule-for-testnet wallet.jmdat`
|
|
|
|
Note that the magic string `INTERNAL` in the file creates a payment to a new address
|
|
in the next mixdepth (wrapping around to zero if you reach the maximum mixdepth).
|
|
|
|
To pay a fraction of the total in a mixdepth you can simply make the amount field
|
|
in the schedule a decimal instead of an integer (0.0 < amt < 1.0 of course).
|
|
|
|
The schedule file can have any name, and is a comma separated value file, the lists
|
|
must follow that format; see the comment in the sample file above (each list is length 5 items).
|
|
|
|
*This part can be ignored for a first run:
|
|
|
|
Additional fields in config: in the config section `[DAEMON]` you can specify whether
|
|
to run the daemon as a separate process or not. By default, the daemon will run in the
|
|
same Python process, for maximum convenience, so you needn't separately start `joinmarketd.py` (see below).
|
|
|
|
You can run the daemon separately by setting `nodaemon=0` in `[DAEMON]`. You can choose to use ssl within this single-process configuration with `use_ssl=true` (again, see below for more on this).*
|
|
|
|
### tumbler.py
|
|
|
|
This is an extension of the functionality of `sendpayment.py` in that it auto-generates
|
|
a schedule of payments to internal and external addresses, following the same algo
|
|
as in normal Joinmarket and described [here](https://github.com/JoinMarket-Org/joinmarket/wiki/Step-by-step-running-the-tumbler).
|
|
|
|
For detailed information on how to use this, please read [this](https://github.com/AdamISZ/joinmarket-clientserver/tree/master/docs/tumblerguide.md).
|
|
|
|
### wallet-tool.py
|
|
|
|
This is the same as in normal Joinmarket.
|
|
|
|
### joinmarketd.py
|
|
|
|
This file is to be considered experimental for now. It only
|
|
takes two arguments, the port it serves on (default 27183), and whether to use TLS for
|
|
client-server communication (default 0=no tls, 1=tls):
|
|
|
|
`python joinmarketd.py [port number] [1/0]`
|
|
|
|
To use tls you must create a `key.pem` and `cert.pem` in a subdirectory `/ssl`, representing
|
|
a self-signed certificate. This needs some work to be cleaned up, but does work already.
|
|
|
|
### add-utxo.py
|
|
|
|
This works exactly as in normal Joinmarket, with the exception of the location
|
|
of the `commitments.json` file, explained above.
|
|
|
|
### sendtomany.py
|
|
|
|
As above.
|
|
|
|
### genwallet.py
|
|
|
|
Non-interactively generate a wallet, giving only wallet name and password. Returns wallet seed as `recovery_seed:`. Useful for automating JoinMarket deployments.
|