Skip to content

Commit

Permalink
Merge bitcoin#30805: test: Add explicit onion bind to p2p_permissions
Browse files Browse the repository at this point in the history
082779d test: Add explicit onion bind to p2p_permissions (Ava Chow)

Pull request description:

  When the bind option is replaced in the bitcoin.conf, bitcoind will attempd to bind to the default tor listening port. If another bitcoind is running that is already bound to that port, the bind will fail which, since bitcoin#22729, causes the test to fail.

  This failure can be avoided by explicitly binding the tor port when the bind is removed.

ACKs for top commit:
  tdb3:
    ACK 082779d
  theStack:
    re-ACK 082779d
  glozow:
    ACK 082779d

Tree-SHA512: 4acb69ea2e00aeacf9e7c9ab9595ceaf0e0d2adbd795602034b2184197d9bad54c7bc9f3da43ef9c52a71869fe96ba8c87fc5b7c37880f258f5a2aaab2b4046c
  • Loading branch information
glozow committed Sep 11, 2024
2 parents c66c683 + 082779d commit 0725a37
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions test/functional/p2p_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@
from test_framework.test_node import ErrorMatch
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
append_config,
assert_equal,
p2p_port,
tor_port,
)
from test_framework.wallet import MiniWallet

Expand Down Expand Up @@ -57,11 +59,14 @@ def run_test(self):
# by modifying the configuration file.
ip_port = "127.0.0.1:{}".format(p2p_port(1))
self.nodes[1].replace_in_config([("bind=127.0.0.1", "whitebind=bloomfilter,forcerelay@" + ip_port)])
# Explicitly bind the tor port to prevent collisions with the default tor port
append_config(self.nodes[1].datadir_path, [f"bind=127.0.0.1:{tor_port(self.nodes[1].index)}=onion"])
self.checkpermission(
["-whitelist=noban@127.0.0.1"],
# Check parameter interaction forcerelay should activate relay
["noban", "bloomfilter", "forcerelay", "relay", "download"])
self.nodes[1].replace_in_config([("whitebind=bloomfilter,forcerelay@" + ip_port, "bind=127.0.0.1")])
self.nodes[1].replace_in_config([(f"bind=127.0.0.1:{tor_port(self.nodes[1].index)}=onion", "")])

self.checkpermission(
# legacy whitelistrelay should be ignored
Expand Down

0 comments on commit 0725a37

Please sign in to comment.