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
Fixes#1306.
Prior to this commit, it was possible (unlikely) for a peer to exist in
the active_directories nick in OnionMessageChannel, but to have False
entries (i.e. disconnected) for every directory, meaning that the random
choice from those directories raised an Exception which was not caught,
causing a crash.
This is now fixed by checking whether the list of directories to be
chosen from randomly, is empty, and if so raising the correct Exception
type, namely OnionDirectoryPeerNotFound.
Fixes#1277.
Adds a separate document tor.md detailing installation and configuration
requirements for both Makers and Takers, in particular details how to
configure for the serving of an ephemeral onion service.
Fixes#1215.
Prior to this commit it was possible to send a non-coinjoin transaction
while the maker service was running, over the RPC-API call direct-send.
However this was not intentional, as it is not usually safe to perform
UTXO database write actions when the effective 'lock' on write actions
is already held by a long running service/action such as yield generator
or tumbler. This commit prevents that call being successful if the
current state of the JMWalletDaemon is not CJ_NOT_RUNNING.
This commit also disables freeze actions in the same situation, and
changes the HTTP error code for these cases to 400.
Add a new helper module to calculate fidelity bonds values and stats, and a script to use it.
The goal is to give as much information as possible to the user before
committing to a fidelity bond.