823d8fd834 Don't disallow the stallMonitor in RPC tumbler (Adam Gibson)
Pull request description:
Prior to this commit, the 'testflag' was set for the Taker object that was created in running the tumbler via the RPC API. This flag prevents the function client_protocol.JMTakerClientProtocol.stallMonitor from running (which is useful in certain cases), which was not intended. After this commit, this flag is not set, so that when a transaction fails to go through, the stallMonitor will wake up after some time and retry the transaction, as should occur.
ACKs for top commit:
kristapsk:
cr utACK 823d8fd834 (did `grep -R testflag` and checked each occurance)
Tree-SHA512: de89d5c12e3595b96d9d579980ac59f81e40500fe98d97e5ea415c545a938b7f7e3d3621036f82953ab9fee657a44d847b95a33fea1d7cac629e1aeb88fe598f
Prior to this commit, the 'testflag' was set for the Taker object that
was created in running the tumbler via the RPC API. This flag prevents
the function client_protocol.JMTakerClientProtocol.stallMonitor from
running (which is useful in certain cases), which was not intended.
After this commit, this flag is not set, so that when a transaction
fails to go through, the stallMonitor will wake up after some time and
retry the transaction, as should occur.
62dc983f1a Check sha256 hashes for downloads before GPG signature validation (Kristaps Kaupe)
Pull request description:
See #1338. User got partially downloaded libsodium tarball for some reason and user got confused with GPG signature validation error and though there was some problem with that. Let's check sha256 hashes before and abort there on error.
Before:
```
gpg: BAD signature from "Frank Denis (Jedi/Sector One) <0daydigest@pureftpd.org>" [unknown]
Terminated
```
After:
```
libsodium-1.0.18.tar.gz: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
Libsodium was not built. Exiting.
```
Top commit has no ACKs.
Tree-SHA512: b86d76fbc675092d9774a9210475b9e7ec9f81a6a89bc239bc37d99e737edf8e3d14ed5bf4640a0c5cbf0aabf788012e7dcef781aef0be0106260cd6086959de
be518664c6 GPG release signature validation for libsodium and Tor (Kristaps Kaupe)
Pull request description:
JM had GPG validation initially, but for some reason it was removed in 2018 (#228), seems nobody remembers what was the reason.
Anyway, this is reimplementation, also doesn't depend on keyservers, necessary pubkeys are stored locally in repo.
Top commit has no ACKs.
Tree-SHA512: 9a1ba12b1ef27aec53ce1beed5f388ebfc7d25c87f84f858f6fca9bb66a415f8524ba97e10e4a5a51c8e7c4a2819cc1a69dc78034941c299065c93169dbb5deb
190d56e fix: update schedule type in API docs (Daniel)
57d1476 fix: remove redundant else branch (Daniel)
2cb41fc review: reaqd schedule from taker object (Daniel)
521189a fix: add auth check (Daniel)
ab2803e fix: include schedule in session instead of status flag (Daniel)
12bcbe1 docs: add flag to session response spec (Daniel)
cde5cfb feat: scheduler status flag in session (Daniel)
Prior to this commit, the tumbler algorithm assumed that destination
mixdepths of INTERNAL transactions were incremented by 1, but the
underlying taker code uses (mod maxmixdepth) logic always. This commit
takes the decision to make the usage of the wallet "purely" cyclic, that
is, not only the Taker object but also the tumbler algorithm now always
treat the wallet as a cycle. This is not problematic in a tumbler
algorith (or any other schedule generation algorithm), as long as we use
the strict rule of "always exit each mixdepth with a sweep", which the
tumbler always did and this commit does not change.
Also, and importantly, several much more detailed tests of the tumbler
schedule generation have been added.
da88b1f71c Bump local Tor to latest version (0.4.7.8) (Kristaps Kaupe)
Pull request description:
1) It is recommended upgrade, contains several bugfixes. See [ChangeLog](https://gitweb.torproject.org/tor.git/plain/ChangeLog?h=tor-0.4.7.8).
2) With 0.4.6.10 and shellcheck 0.8.0 installed on local machine, got this build error (which is fixed in 0.4.7.8):
```
./scripts/maint/checkShellScripts.sh
/usr/bin/shellcheck
/usr/bin/realpath
Unusual pattern permitted.h in ./scripts/maint/practracker/testdata
In /home/user/git/joinmarket-clientserver/deps/tor-0.4.6.10/src/test/test_rust.sh line 6:
export LSAN_OPTIONS=suppressions=${abs_top_srcdir:-../../..}/src/test/rust_supp.txt
^-------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
export LSAN_OPTIONS=suppressions="${abs_top_srcdir:-../../..}"/src/test/rust_supp.txt
gmake[2]: Entering directory '/home/user/git/joinmarket-clientserver/deps/tor-0.4.6.10'
SKIP: src/test/test_keygen.sh
SKIP: src/test/fuzz_static_testcases.sh
SKIP: src/test/test_key_expiration.sh
SKIP: src/test/test_zero_length_keys.sh
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
gmake[1]: *** [Makefile:24755: shellcheck] Error 1
gmake[1]: *** Waiting for unfinished jobs....
...
gmake: *** [Makefile:22315: check-am] Error 2
Building local Tor was requested, but not built. Exiting.
```
Top commit has no ACKs.
Tree-SHA512: a5206e27c3addc1614bbc261ac1f2ad7630ab713f3f61b63635f14a2d8efb60df89f5f1ca7238920bac0bf7ac557d72528008018d33f993a95930f96bfe148aa
d46a2c6057 Use valid tor_root also for tor_install() (Kristaps Kaupe)
Pull request description:
Affects combination of `--with-local-tor` and `--docker-install` in `install.sh`. Fixes#1318.
Top commit has no ACKs.
Tree-SHA512: 521d03f9c4f40ea7055b8f3d866b06bd5bd9b1428e56c4e642639681a68418e1c86aaac99804ad7d15f9d435926ba2e850f0479e4d7464c5ed2e26835165c177
Fixes#1314.
Prior to this commit, an attempt to start a maker bot which only
contained coins that were expired timelocked utxos (i.e. spendable),
in the RPC would result in the maker service starting but failing to
create offers. Instead, we want the maker service to not start as there
are no coins actually available for it.
83c6bc053a Allow bitcoin: prefix for addresses with sendpayment.py (Kristaps Kaupe)
Pull request description:
Before this change there were two ways of using `sendpayment.py` - you could either specify amount as a first argument and destination address as a second argument or just provide BIP21 URI. This allows to also specify amount as a first argument and BIP21 URI as a second argument, unless it contains amount. Useful, because a lots of wallets (in my case it was Blue Wallet) will give you BIP21 URI instead of pure Bitcoin address when using "Receive" even if you don't specify amount. And when you double click that URI, it will select all of it, not just address. So, basically, this allows to just paste adress with `bitcoin:` prefix too. Was already possible with Qt GUI after BIP21 / BIP78 payjoin functionality was added.
Top commit has no ACKs.
Tree-SHA512: c463a90eb99855fe4bb8f4646318bf1feb0c5b90027328d8e61b52fdb5ec9b3cf106be5b0bec520ca8c46d733b7dd0ad9a2565d7a0a37c6609e4e9f30d7be3ef