• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tari-project / tari / 39271715184
76%

Build:
DEFAULT BRANCH: development
Ran 19 Oct 2026 04:09PM UTC
Jobs 1
Files 814
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Oct 2026 02:44PM UTC coverage: 76.127% (-0.2%) from 76.361%
39271715184

push

github

web-flow
fix(comms): check resolved dial addresses, per-address dialer failures, tokio-util 0.7 and tower 0.5 (#8140)

## Description

Hardening of the comms dialer, DNS resolution and identity edge cases
(SPEC-F of the 2026-10-07 `tari_comms` audit, findings W13, W20, W23,
W26, W27), plus the tokio-util 0.7 / tower 0.5 upgrade (SPEC-G, W32).

Before this PR:
- **A peer-claimed `/dns4` name was judged only by its text.** The IP it
resolved to was never checked, so a name could resolve to loopback, LAN
or metadata addresses, or into `excluded_dial_addresses`.
- **One Noise failure on a peer's first address abandoned all its other
addresses.**
- **Our own outbound identity-exchange timeout banned the honest peer**
(`BAN_DURATION_SHORT`).
- **Identity-point public keys were accepted by the Noise DH resolver.**
- **`min_peer_version` was documented but never read.**

Wire-compatible: no protobuf message, Noise parameter,
identity-signature challenge or wire byte changes. No new ban types.

### Changes
- **Post-resolution address policy**
(`net_address/dial_address_policy.rs`, `transports/`).
- New `DialAddressPolicy`, passed per address through a new
default-implemented `Transport::dial_with_policy`. The dialer is the
only code that knows an address's source, so the policy is built per
address rather than per transport.
- After a DNS name resolves, the resolved `SocketAddr` is refused
(`PermissionDenied`) if it is internal, unless `allow_test_addresses` is
set or the address came from config. `excluded_dial_addresses` always
apply. The checked address is the one connected to, so there is no
rebinding window.
- Applied on TCP, the SOCKS proxy-bypass path, TCP-with-Tor (names
resolved through Tor) and the hidden-service transport. Through a SOCKS5
proxy the proxy resolves names, so the checks rely on the proxy's egress
policy; this is documented in code and both presets.
- NAT64: `64:ff9b::/96` is checked as its embedded IPv4 address and
`64:ff9b:1::/48` counts as i... (continued)

523 of 539 new or added lines in 16 files covered. (97.03%)

1151 existing lines in 46 files now uncovered.

136399 of 179174 relevant lines covered (76.13%)

1157652.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
0.0
0.0% comms/core/src/transports/hidden_service_transport.rs
3
84.91
56.33% comms/core/src/transports/dns/system.rs
2
43.1
-1.54% comms/core/src/transports/socks.rs
2
0.0
0.0% comms/core/src/transports/tcp_with_tor.rs
1
99.26
comms/core/src/net_address/dial_address_policy.rs
1
94.62
-0.25% comms/core/src/noise/crypto_resolver.rs
1
96.55
-3.45% comms/core/src/peer_validator/config.rs
1
96.5
3.0% comms/core/src/transports/tcp.rs

Coverage Regressions

Lines Coverage ∆ File
391
57.84
-5.91% base_layer/core/src/chain_storage/blockchain_database.rs
266
33.85
-45.7% base_layer/core/src/base_node/rpc/query_service.rs
76
85.1
-11.21% base_layer/core/src/base_node/sync/header_sync/validator.rs
63
82.67
15.56% comms/dht/src/inbound/dht_handler/task.rs
44
59.37
-0.66% base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs
39
72.15
-4.11% base_layer/core/src/base_node/sync/horizon_state_sync/synchronizer.rs
25
92.5
2.33% base_layer/transaction_components/src/tari_amount.rs
25
83.45
4.44% comms/dht/src/discovery/service.rs
24
76.3
-0.76% comms/core/src/connectivity/manager.rs
22
72.49
9.93% comms/dht/src/network_discovery/discovering.rs
20
95.46
1.2% comms/dht/src/inbound/decryption.rs
13
81.14
-1.58% base_layer/core/src/test_helpers/blockchain.rs
11
50.94
-5.19% base_layer/core/src/base_node/sync/rpc/service.rs
9
67.57
-8.11% comms/core/src/peer_manager/error.rs
8
88.69
-2.38% comms/core/src/connection_manager/common.rs
8
82.0
-4.0% comms/core/src/test_utils/mocks/connectivity_manager.rs
7
75.73
-6.8% base_layer/core/src/blocks/accumulated_data.rs
7
72.79
-0.43% base_layer/wallet/src/output_manager_service/storage/sqlite_db/mod.rs
7
97.8
1.16% comms/core/src/peer_validator/helpers.rs
7
97.79
1.06% comms/dht/src/dht.rs
7
99.13
-0.05% comms/dht/src/network_discovery/test.rs
6
81.82
-9.09% base_layer/common_types/src/types/fixed_hash.rs
6
36.36
0.0% base_layer/transaction_components/src/lib.rs
6
87.14
-2.49% comms/core/src/protocol/rpc/status.rs
5
92.71
-0.32% comms/core/src/multiplexing/yamux.rs
5
95.54
2.34% comms/dht/src/peer_validator.rs
4
88.64
-4.55% base_layer/core/src/test_helpers/block_spec.rs
4
84.39
-0.59% comms/core/src/protocol/rpc/client/mod.rs
4
87.04
1.26% comms/dht/src/network_discovery/rebootstrap.rs
3
51.32
-3.95% base_layer/core/src/validation/error.rs
3
71.7
-0.09% base_layer/wallet/src/transaction_service/storage/sqlite_db.rs
3
64.86
-8.11% comms/core/src/peer_manager/peer_features.rs
3
92.38
-0.91% comms/core/src/protocol/messaging/outbound.rs
3
55.56
0.0% comms/dht/src/network_discovery/error.rs
2
87.45
-0.2% base_layer/core/src/proof_of_work/cuckaroo_pow.rs
2
97.47
0.0% base_layer/transaction_components/src/consensus/consensus_encoding/hashing.rs
2
89.03
0.0% comms/core/src/connection_manager/peer_connection.rs
2
93.44
1.62% comms/core/src/peer_manager/identity_signature.rs
2
80.45
-0.21% comms/dht/src/connectivity/mod.rs
1
81.5
-0.16% base_layer/core/src/chain_storage/lmdb_db/lmdb.rs
1
82.86
5.44% base_layer/core/src/validation/helpers.rs
1
78.72
-0.13% base_layer/wallet/src/storage/sqlite_db/wallet.rs
1
93.23
-0.38% comms/core/src/connectivity/proactive_dialer.rs
1
68.97
0.99% comms/core/src/connectivity/requester.rs
1
49.06
-0.94% comms/core/src/connectivity/selection.rs
1
78.57
-1.43% comms/core/src/test_utils/mocks/connection_manager.rs
Jobs
ID Job ID Ran Files Coverage
1 39271715184.1 19 Oct 2026 04:09PM UTC 814
76.13
GitHub Action Run
Source Files on build 39271715184
  • Tree
  • List 814
  • Changed 75
  • Source Changed 31
  • Coverage Changed 75
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39271715184
  • bff7a150 on github
  • Prev Build on development (#39220716938)
  • Next Build on development (#39401183523)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc