You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Review of the CoinPeerManager port (#794) required two fixes, both in the new
--coin-p2p-discover opt-in path.
CR-1 — daemonless cold-start dial wedge: CoinClient::connect() early-returned on
an empty target list without arming the reconnect loop, and update_dial_targets()
ignored empty lists. So --coin-p2p-discover WITHOUT --coin-p2p-connect on a first
run with DNS unavailable (empty initial dial) armed nothing and wedged until
restart. Fix: connect() arms the 30s reconnect loop unconditionally (empty-plan
guard on the tick so current()/advance() never throw), and update_dial_targets()
kicks an immediate dial on the empty->non-empty transition — so the arm connects
as soon as fixed seeds (t+60s) / HTTP seeds (t+90s) arrive. Extracted
arm_reconnect_timer() helper. Regression pin added
(empty_connect_arms_without_wedging).
CR-2 — overlap filter + coind -20 penalty were dormant as wired: main_dash never
called set_getpeerinfo_fn, so m_coind_peers stayed empty and no peer was ever
Source::coind — the active daemon-disjointness never engaged (only passive
independence). Fix: added NodeRPC::getpeerinfo() to the DASH RPC (parses each
entry's addr, IPv6-bracket aware) and wired it in the discover path when a dashd
RPC is armed, so the -20 penalty + overlap filter engage in the connect+discover
/ oracle-shadow deployment. Absent RPC (fully daemonless) = seeds-only passive
independence. Mirrors main_ltc.cpp getpeerinfo wiring.
Nits: pinned target no longer duplicated in the dial list (pinned keys passed as
the get_peers_to_connect exclusion set); dead is_daemon_overlap_peer() removed;
declaration/destruction order corrected so the manager outlives the client and
refresh timer that borrow it.
Build clean; full test_dash_p2p_node target 23/23 (was 22 + CR-1 pin);
--selftest unchanged.
0 commit comments