Skip to content

Commit

Permalink
Merge #1688: tumblerguide doc: small fixes/updates
Browse files Browse the repository at this point in the history
4040ace update sourcing commitments link (Marnix)
26c157d small fixes/updates in tumblerguide doc (Marnix)

Pull request description:

  small fixes and link updates

ACKs for top commit:
  kristapsk:
    ACK 4040ace

Tree-SHA512: 4f1d5a593c87296f091d5aa801ddef8a5eca51884b14c22f0b8d41a3cdacb9d2b094654bedd3335f51d319bb02c3e486e96f632de9791b1d0f52192acba83594
  • Loading branch information
kristapsk committed Apr 4, 2024
2 parents fd96f96 + 4040ace commit 239ac46
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions docs/tumblerguide.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Note that the tumbler can be run as a script:

or from the JoinmarketQt app in the "Multiple Joins" tab (see [the guide](JOINMARKET-QT-GUIDE.md)),

or using the RPC-API via a webapp like [JAM](https://github.com/joinmarket-webui/joinmarket-webui).
or using the RPC-API via a webapp like [JAM](https://github.com/joinmarket-webui/jam).

# Contents

Expand All @@ -30,8 +30,9 @@ or using the RPC-API via a webapp like [JAM](https://github.com/joinmarket-webui

7. [Tweaking the schedule](#tweaking)

8. [How often do retries occur](#how-often-do-retries-occur)

8. [Possible failure vectors](#failure-vectors)
9. [Possible failure vectors](#failure-vectors)

<a name="introduction" />

Expand Down Expand Up @@ -111,7 +112,7 @@ Amounts and times: these are both randomized. You can't control how much goes to
<a name="basic" />

First, note you can use more than 3 destination addresses (and it's good to do so), if you're mixing through more than the default 4 mixdepths.
Second, note that the tumbler algorithm as of [this commit](ADD_LINK_HERE), now **cycles** through the default 5 mixdepths, instead of creating extra ones. This means that the mixdepth path goes as follows:
Second, note that the tumbler algorithm as of [this commit](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1324/commits/d3dc9d7bbd8f0464f86ff086f86e8d52e56424ac), now **cycles** through the default 5 mixdepths, instead of creating extra ones. This means that the mixdepth path goes as follows:

Phase 1:
* Sweep from mixdepth 2 to mixdepth 3
Expand Down Expand Up @@ -168,7 +169,7 @@ Delaying the whole process by stopping and restarting it is quite sensible anywa

### Reminder about commitments.

Follow the [usage guide](USAGE.md) on how to fund your wallet. Don't neglect to read [this](https://github.com/JoinMarket-Org/joinmarket/wiki/Sourcing-commitments-for-joins) page, otherwise you could encounter problems.
Follow the [usage guide](USAGE.md) on how to fund your wallet. Don't neglect to read [this](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/SOURCING-COMMITMENTS.md) page, otherwise you could encounter problems.

This is actually a really important area with the tumbler, because we use sweeps often. It's not really crucial to use 3 utxos to fund at the start, but try to fund with 2, anyway. And:

Expand Down Expand Up @@ -196,7 +197,7 @@ In this implementation, each coinjoin has an associated "schedule" of format lik

For the `sendpayment.py` script, this schedule can indeed be simply written in a file and passed as a parameter (for this reason it's likely the tumbler and sendpayment scripts can merge in future).

As you can imagine, the idea for the `tumbler.py` script, and the MultiJoin wizard in [JoinmarketQt](JOINMARKET-QT-GUIDE.md#tumbler) is simply that a tumbler *schedule* is generated, according to the algorithm introduced in [this PR](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/387) ([code](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/77422231207c7c3e984a88e944b6c715cece46b5/jmclient/jmclient/schedule.py#L87)), however here it is persisted - see the next section.
As you can imagine, the idea for the `tumbler.py` script, and the MultiJoin wizard in [JoinmarketQt](JOINMARKET-QT-GUIDE.md#tumbler) is simply that a tumbler *schedule* is generated, according to the algorithm introduced in [this PR](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/387) ([code](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/fd96f960895c35579407b81236b0679f63871b8f/src/jmclient/schedule.py#L91)), however here it is persisted - see the next section.

<a name="logging" />

Expand Down Expand Up @@ -264,7 +265,7 @@ This tweaking process is repeated as many times as necessary until the transacti

## How often do retries occur?

This is hardcoded currently to `20 * maker_timeout_sec`, the figure 20 being hardcoded is due to me not wanting yet another config variable, although that could be done of course. This is the rate at which the stall monitor wakes up in the client protocol, the setting is in the code [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/acc00fc6f5a1cd1f21052c5af06cd06e78c6edda/jmclient/jmclient/client_protocol.py#L359-L363). Note that by default this is fairly slow, 10 minutes.
This is hardcoded currently to `20 * maker_timeout_sec`, the figure 20 being hardcoded is due to me not wanting yet another config variable, although that could be done of course. This is the rate at which the stall monitor wakes up in the client protocol, the setting is in the code [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/fd96f960895c35579407b81236b0679f63871b8f/src/jmclient/client_protocol.py#L608-L611). Note that by default this is fairly slow, 10 minutes.

<a name="failure-vectors" />

Expand Down

0 comments on commit 239ac46

Please sign in to comment.