tBlock broadcasting when blocksonly enabled - electrum-personal-server - Maximally lightweight electrum server for a single user HTML git clone https://git.parazyd.org/electrum-personal-server DIR Log DIR Files DIR Refs DIR README --- DIR commit 67fdb35c8b5b3291e4a36cbb016cce5b2aa2d865 DIR parent 2be15670383b738770ef42b9a0d8f84a6341660e HTML Author: chris-belcher <chris-belcher@users.noreply.github.com> Date: Tue, 13 Nov 2018 16:59:36 +0000 Block broadcasting when blocksonly enabled Broadcasting while blocksonly is enabled is bad for privacy because it reveals to your peers that your transaction certainly came from your IP address. Diffstat: M electrumpersonalserver/server/comm… | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) --- DIR diff --git a/electrumpersonalserver/server/common.py b/electrumpersonalserver/server/common.py t@@ -225,11 +225,13 @@ def handle_query(sock, line, rpc, txmonitor): headers_hex, n = get_block_headers_hex(rpc, start_height, count) send_response(sock, query, headers_hex) elif method == "blockchain.transaction.broadcast": - try: - result = rpc.call("sendrawtransaction", [query["params"][0]]) - except JsonRpcError as e: - result = str(e) - logger.debug("tx broadcast result = " + str(result)) + if not rpc.call("getnetworkinfo", [])["localrelay"]: + result = "Broadcast disabled when using blocksonly" + else: + try: + result = rpc.call("sendrawtransaction", [query["params"][0]]) + except JsonRpcError as e: + result = str(e) send_response(sock, query, result) elif method == "mempool.get_fee_histogram": mempool = rpc.call("getrawmempool", [True])