tari-project / tari

The Tari protocol
https://tari.com
BSD 3-Clause "New" or "Revised" License
356 stars 220 forks source link

feat: add configurable exclude dialer addresses for universe #6543

Closed hansieodendaal closed 2 months ago

hansieodendaal commented 2 months ago

Description

Added user-configurable communication node addresses that should never be dialled. In Tari Universe the base node and wallet is configured in a listen-only TCP mode with a fake public address and when their addresses are propagated throughout the network, other peers should not try to dial them.

Motivation and Context

The previous implementation was hard-coded and did not work properly.

How Has This Been Tested?

Added unit tests. System-level testing.

What process can a PR reviewer use to test or verify this change?

Code review.

Breaking Changes

github-actions[bot] commented 2 months ago

Test Results (CI)

    3 files    129 suites   35m 2s :stopwatch: 1 310 tests 1 310 :white_check_mark: 0 :zzz: 0 :x: 3 928 runs  3 928 :white_check_mark: 0 :zzz: 0 :x:

Results for commit 21717d72.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 2 months ago

Test Results (Integration tests)

 2 files  11 suites   39m 34s :stopwatch: 36 tests 34 :white_check_mark: 0 :zzz: 2 :x: 38 runs  36 :white_check_mark: 0 :zzz: 2 :x:

For more details on these failures, see this check.

Results for commit 21717d72.

:recycle: This comment has been updated with latest results.

hansieodendaal commented 2 months ago

Currently, setting public_addresses = ["/ip4/0.0.0.0/tcp/xxxx",] for base node and public_addresses = ["/ip4/0.0.0.0/tcp/yyyy",] for wallet does not work, as the remote peer (i.e. seed node in this case) closes the channel once a connection has been made.

To allow a peer to advertize a public address of "/ip4/0.0.0.0/tcp/xxxx" and accept that it should keep open their inbound connections, but not try to connect to them, is for a next PR.