feat: Tails+Whonix support (rebased continuation of #634) - #1209
Open
stffinfcti wants to merge 31 commits into
Open
stffinfcti wants to merge 31 commits into
stffinfcti wants to merge 31 commits into
Conversation
)" This reverts commit 8bbdb48.
…arm.listen_on() normally
asb::network::transport::new() would use DNS(Tor or TCP), which will resolve DNS queries over plaintext first, before calling them over Tor Cf. cli::transport::new() which correctly does Tor or DNS(TCP) Fix the former to do the latter, delegating domain resolution over Tor as well
…a unified TorBackend
…user about listening on TCP/Onion if the environment doesn't support it (TUI questionnaire)
Bypassing Tor on TorBackend::Socks breaks everything, because /all/ traffic needs to go through the proxy (normal connect() is broken on Tails)
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Union ElectrumBalancerConfig socks5 field with upstream min_parallel_responses; regenerate Cargo.lock for the new swap-tor workspace member; pass TorBackend::None to the swarm builders in the test harness. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Documents that the GUI detects Tails/Whonix automatically, forces routing through the system Tor daemon, and disables hidden-service (maker) support there. Covers Tails Persistent Storage for the AppImage and wallet data directory. Updates eigenwallet#453 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…lver Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
cargo clippy --workspace --all-targets (deny-by-default never_loop) failed on three master-side loops that return on their first iteration. Apply the clippy suggestion (if let instead of loop) which preserves behavior. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- pair_to_socks: use the passed port for Ipv4/Ipv6 TargetAddr::Ip instead of a hardcoded 10; extend the unit test with non-10 IP:port cases - Cargo.toml: enable tokio-rustls/ring so the standalone binaries compile outside workspace feature unification - swap-tor: accept unquoted ID=tails in /etc/os-release - Cargo.lock: drop unrelated resolver churn (windows-sys, socket2, proc-macro-crate, windows-core edge bumps) - docs: note standalone monero-rpc-pool binaries ignore TOR_ENVIRONMENT - gui: separate torForced excuse from the Tor tooltip text Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
This is a rebase and continuation of #634 by @nabijaczleweli onto current master. The bulk of the code is theirs — this PR exists because #634 has been stalled since January on a rebase request (plus a reported "Failed to initialize Bitcoin wallet / EOF while parsing a value" failure), and I wanted to move it forward for #453.
My delta on top of nabijaczleweli's commits:
pair_to_socksconnected IP-literal targets to a hardcoded port 10 — it now uses the real port, with regression coverage for non-10 IP:port pairsID=tailsin /etc/os-releasetokio-rustls/ringso the standalone binaries build without relying on workspace feature unificationtails_whonix.mdxnotes that the standalonemonero-rpc-poolbinaries don't consultTOR_ENVIRONMENTThe
Revert "security(tauri): enable CSP (#851)"commit in the stack is maintainer-requested (from the #634 review) and is now a no-op — upstream reverted it separately in 8f909f1.Testing
cargo checkover all changed crates +unstoppableswap-gui-rs(--all-features --all-targets) — clean, pre-existing warnings onlycargo test -p swap-tor -p monero-rpc-pool --lib— pass, including the new non-10 IP:port casestsc --noEmit,eslint,vitest(5/5) cleanAI usage
The rebase, merge resolution, and follow-up fixes were prepared with AI assistance (Devin). Disclosed per the AI policy.
Bounty
Per the issue's "distributed among the contributors" clause, I expect the payout to be split with @nabijaczleweli, who wrote the original implementation and did the manual Tails/Whonix testing — flagging for @binarybaron to coordinate the split.
Bounty payout: @stffinfcti (to be split with @nabijaczleweli)
XMR payout address: 4AAuZiKFKLE8HWSUzMkjqHiNRG1n1ZF47cPdQM9K9rNPZZHxRdtXNTRNeNEUoMY86wTbBqbJwhpWecFyT4bzMwH31dDWjcG
Closes #453