Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Peer DB does not respect TCP override #5998

Open
CjS77 opened this issue Nov 30, 2023 · 0 comments
Open

Peer DB does not respect TCP override #5998

CjS77 opened this issue Nov 30, 2023 · 0 comments
Labels
C-bug Category - fixes a bug, typically associated with an issue.

Comments

@CjS77
Copy link
Collaborator

CjS77 commented Nov 30, 2023

Describe the bug
If a peer has connected via Tor previously, asking it to connect via TCP/IP on subsequent connection requests is ignored.

To Reproduce
Steps to reproduce the behavior:

  1. Run a wallet, setting a custom base node. Let it connect via Tor.
  2. Change config.toml to ask the wallet to connect via tcp. Add all required overrides.
  3. Run the node and wallet again.
  4. Notice that it still connects via Tor.
  5. Stop node and wallet. Delete wallet's peer DB.
  6. Rerun node and wallet.
  7. Notice that wallet now connects via TCP.

Expected behavior
A direct request to connect via TCP should ignore any addresses stored in the peer DB and prefer to connect via TCP.

Screenshots
N/A

Desktop (please complete the following information):

  • OS & Version: Ubuntu 22.04.3 LTS
  • Wallet Version: Docker version 0.52.0
  • Node Version: Docker version 0.52.0+NoGitRepository-release

Smartphone (please complete the following information):
N/A

Additional context

Config.toml

# Config for launchpad v1.0.0
[base_node]
network = "stagenet"
grpc_address = "/ip4/0.0.0.0/tcp/18142"
override_from = "stagenet"
grpc_enabled = true

[base_node.storage]
# pruning_horizon = 10_080
# pruning_interval = 50
track_reorgs = true


[igor.base_node]
network = "igor"
base_node_identity_file = "/var/tari/base_node/config/igor/tar_base_node_id.json"
# Uncomment all gRPC server methods that should be denied default (only active when `grpc_enabled = true`)
grpc_server_deny_methods = []

[stagenet.base_node]
identity_file = "/var/tari/base_node/config/stagenet/tari_base_node_id.json"
# Uncomment all gRPC server methods that should be denied default (only active when `grpc_enabled = true`)
grpc_server_deny_methods = []


[nextnet.base_node]
identity_file = "/var/tari/base_node/config/nextnet/tari_base_node_id.json"
grpc_server_deny_methods = []

[base_node.p2p]
auxiliary_tcp_listener_address = "/dns4/base_node/tcp/18189"
#auxiliary_tcp_listener_address = "/ip4/0.0.0.0/tcp/18189"
user_agent = "Launchpad base node"

[base_node.p2p.transport]
type = "tor"

[base_node.p2p.transport.tor]
control_auth = "password=tari"
socks_address_override = "/dns4/tor/tcp/9050"
control_address = "/dns4/tor/tcp/9051"
# When these peer addresses are encountered when dialing another peer, the tor proxy is bypassed and the connection is
# made directly over TCP. /ip4, /ip6, /dns, /dns4 and /dns6 are supported. (e.g. ["/dns4/my-foo-base-node/tcp/9998"])
proxy_bypass_addresses = ["/dns4/wallet/tcp/18188"]
# When using the tor transport and set to true, outbound TCP connections bypass the tor proxy. Defaults to false for
# better privacy
proxy_bypass_for_outbound_tcp = true

[base_node.p2p.transport.tcp]
listener_address = "/dns4/base_node/tcp/18189"

[nextnet.p2p.seeds]
# DNS seeds hosts - DNS TXT records are queried from these hosts and the resulting peers added to the comms peer list.
dns_seeds = ["seeds.nextnet.tari.com"]
# Custom specified peer seed nodes
peer_seeds = [
    # 44444408d5fa29410d9752770f
    "2c84ccdf0dcb7b4845f167ea8988166384a36451d068e0ae1bb84b5bf0d52425::/onion3/7gwfakr7ko5uo3fl3yz3fsjc7elccbzter5botggodrmmwi2exm3vbid:18141",
    # bbbbbb87215db9ee00bb2763b5
    "64639314dc3c9a4b0fa57f812d68b381a882e72eb9cc20e861ce6e04936ef438::/onion3/lvsj75guqc4gfqasgyhg3of2clijf3vkgipbpufh6dmhyapp2dmuelad:18141",
]

[stagenet.p2p.seeds]
# DNS seeds hosts - DNS TXT records are queried from these hosts and the resulting peers added to the comms peer list.
dns_seeds = ["seeds.stagenet.tari.com"]
# Custom specified peer seed nodes
peer_seeds = []

[wallet]
override_from = "stagenet"
db_file = "wallet/wallet.dat"
grpc_enabled = true
grpc_address = "/ip4/0.0.0.0/tcp/18143"
password = "tari"
use_libtor = false
#gRPC authentication method (default = "none")
#grpc_authentication = { username = "admin", password = "xxxx" }

# A custom base node peer that will be used to obtain metadata from, example
# "0eefb45a4de9484eca74846a4f47d2c8d38e76be1fec63b0112bd00d297c0928::/ip4/13.40.98.39/tcp/18189"
# This is set internally by launchpad when the base node starts
# custom_base_node = "none"

[wallet.p2p]

[wallet.p2p.transport]
type = "tor"

[wallet.p2p.transport.tor]
control_auth = "password=tari"
socks_address_override = "/dns4/tor/tcp/9050"
control_address = "/dns4/tor/tcp/9051"
# When these peer addresses are encountered when dialing another peer, the tor proxy is bypassed and the connection is
# made directly over TCP. /ip4, /ip6, /dns, /dns4 and /dns6 are supported. (e.g. ["/dns4/my-foo-base-node/tcp/9998"])
proxy_bypass_addresses = ["/dns4/base_node/tcp/18189", "/ip4/127.0.0.1/tcp/18189", "/dns4/localhost/tcp/18189"]
proxy_bypass_for_outbound_tcp = true

[wallet.p2p.transport.tcp]
#listener_address = "/dns4/wallet/tcp/18188"
listener_address = "/dns4/wallet/tcp/18188"

[miner]
base_node_grpc_address = "/dns4/base_node/tcp/18142"
wallet_grpc_address = "/dns4/wallet/tcp/18143"
mine_on_tip_only = true
num_mining_threads = 4

[merge_mining_proxy]
monerod_url = [ # stagenet
    "http://stagenet.xmr-tw.org:38081",
    "http://stagenet.community.xmr.to:38081",
    "http://monero-stagenet.exan.tech:38081",
    "http://xmr-lux.boldsuck.org:38081",
    "http://singapore.node.xmr.pm:38081",
]
base_node_grpc_address = "/dns4/base_node/tcp/18142"
console_wallet_grpc_address = "/dns4/wallet/tcp/18143"
listener_address = "/dns4/tari_mm_proxy/tcp/18081"
submit_to_origin = true
monerod_username = ""
monerod_password = ""
monerod_use_auth = false
@CjS77 CjS77 added the C-bug Category - fixes a bug, typically associated with an issue. label Nov 30, 2023
CjS77 added a commit to tari-project/tari-launchpad that referenced this issue Dec 4, 2023
1. Wallet

There are 2 extra settings in the wallet config. clear_peer_db, clears
the peer database when configuring the wallet.
This should be true for at least the first run or until
tari-project/tari#5998 is fixed.

`interacive` must be false for the first run, and can be set to true
after that.
Adds a quick fix for the wallet for the non-interactive and peer DB
We only display the instructions for attaching to the docker wallet
instance if interactive is true, and the wallet is active.

bugs.

You can control whether the wallet is non-interactive (default. will run
on first startup), and whether the peer DB is deleted (true. shold let
2. Base node

Similarly to the wallet, there's an `interactive` setting for the base
node now that must be false on the first run.

A future PR should make these editable in the UI.
CjS77 added a commit to tari-project/tari-launchpad that referenced this issue Dec 4, 2023
1. Wallet

There are 2 extra settings in the wallet config. clear_peer_db, clears
the peer database when configuring the wallet.
This should be true for at least the first run or until
tari-project/tari#5998 is fixed.

`interacive` must be false for the first run, and can be set to true
after that.
Adds a quick fix for the wallet for the non-interactive and peer DB
We only display the instructions for attaching to the docker wallet
instance if interactive is true, and the wallet is active.

bugs.

You can control whether the wallet is non-interactive (default. will run
on first startup), and whether the peer DB is deleted (true. shold let
2. Base node

Similarly to the wallet, there's an `interactive` setting for the base
node now that must be false on the first run.

A future PR should make these editable in the UI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category - fixes a bug, typically associated with an issue.
Projects
None yet
Development

No branches or pull requests

1 participant