mirror of
https://github.com/wownero/wowlet.git
synced 2026-10-17 07:11:29 +02:00
wowlet: broadcast txs over Tor via wownerod --tx-proxy (gated on HAS_TOR_BIN; Config::broadcastOverTor default on) — hides tx origin IP, complements embedded-node receive privacy; activates when Tor is bundled (depends build)
This commit is contained in:
@@ -77,6 +77,20 @@ void DaemonManager::start() {
|
|||||||
if (conf()->get(Config::pruneBlockchain).toBool())
|
if (conf()->get(Config::pruneBlockchain).toBool())
|
||||||
arguments << "--prune-blockchain";
|
arguments << "--prune-blockchain";
|
||||||
|
|
||||||
|
// wowlet: broadcast our OWN txs through Tor — hides the originating IP (the embedded node already
|
||||||
|
// gives us scan/receive privacy; this closes the send side). Sync stays on clearnet for speed.
|
||||||
|
// wownerod queues local txs until the proxy is reachable, so it tolerates Tor still bootstrapping.
|
||||||
|
// Only when Tor is actually bundled (HAS_TOR_BIN) — --tx-proxy is exclusive, so without a running
|
||||||
|
// Tor it would silently stall broadcasts. Builds without embedded Tor fall back to clearnet relay.
|
||||||
|
#if defined(HAS_TOR_BIN)
|
||||||
|
if (conf()->get(Config::broadcastOverTor).toBool()) {
|
||||||
|
quint16 torPort = conf()->get(Config::useLocalTor).toBool()
|
||||||
|
? conf()->get(Config::socks5Port).toString().toUShort()
|
||||||
|
: conf()->get(Config::torManagedPort).toString().toUShort();
|
||||||
|
arguments << "--tx-proxy" << QString("tor,127.0.0.1:%1,16").arg(torPort);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
qDebug() << QString("Starting wownerod: %1 %2").arg(this->daemonPath, arguments.join(" "));
|
qDebug() << QString("Starting wownerod: %1 %2").arg(this->daemonPath, arguments.join(" "));
|
||||||
|
|
||||||
m_process->start(this->daemonPath, arguments);
|
m_process->start(this->daemonPath, arguments);
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
|
|||||||
{Config::runLocalNode,{QS("runLocalNode"), true}}, // wowlet: run own node by default
|
{Config::runLocalNode,{QS("runLocalNode"), true}}, // wowlet: run own node by default
|
||||||
{Config::pruneBlockchain,{QS("pruneBlockchain"), false}}, // full archival by default
|
{Config::pruneBlockchain,{QS("pruneBlockchain"), false}}, // full archival by default
|
||||||
{Config::wownerodPath,{QS("wownerodPath"), ""}}, // optional override; bundled by default
|
{Config::wownerodPath,{QS("wownerodPath"), ""}}, // optional override; bundled by default
|
||||||
|
{Config::broadcastOverTor,{QS("broadcastOverTor"), true}},// wowlet: --tx-proxy our txs through Tor (hide originating IP)
|
||||||
{Config::amountPrecision, {QS("amountPrecision"), 12}},
|
{Config::amountPrecision, {QS("amountPrecision"), 12}},
|
||||||
{Config::dateFormat, {QS("dateFormat"), "yyyy-MM-dd"}},
|
{Config::dateFormat, {QS("dateFormat"), "yyyy-MM-dd"}},
|
||||||
{Config::timeFormat, {QS("timeFormat"), "HH:mm"}},
|
{Config::timeFormat, {QS("timeFormat"), "HH:mm"}},
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ public:
|
|||||||
runLocalNode,
|
runLocalNode,
|
||||||
pruneBlockchain,
|
pruneBlockchain,
|
||||||
wownerodPath,
|
wownerodPath,
|
||||||
|
broadcastOverTor,
|
||||||
|
|
||||||
// Network -> Proxy
|
// Network -> Proxy
|
||||||
proxy,
|
proxy,
|
||||||
|
|||||||
Reference in New Issue
Block a user