Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
976d545
feat: implement echo connection check with ping/pong mechanism
pbeza Dec 17, 2025
3f74993
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 17, 2025
512bc89
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 18, 2025
e51c665
Add more documentation to p2p.rs
pbeza Dec 18, 2025
9f18a65
Use separate channels for sending and receiving ping/pong messages
pbeza Dec 18, 2025
ec728f7
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 18, 2025
67cf900
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 19, 2025
081fce5
Fix clippy
pbeza Dec 19, 2025
ab7b91d
Fixes
pbeza Dec 19, 2025
22765ae
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 19, 2025
bbdcc29
Address Copilot's code review
pbeza Dec 19, 2025
f6b5471
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 22, 2025
47f630b
simplify
pbeza Dec 22, 2025
e68d25d
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Dec 22, 2025
615a040
fixup! simplify
pbeza Dec 22, 2025
cd9ffb5
fixup! fixup! simplify
pbeza Dec 22, 2025
e85ca87
fixup! fixup! fixup! simplify
pbeza Dec 22, 2025
d047c9a
skip test_parallel_sign_calls for now
pbeza Dec 22, 2025
b026830
Implement Pong buffering in PersistentConnection for improved connect…
pbeza Dec 23, 2025
ff536cd
fix clippy
pbeza Dec 23, 2025
d4fd604
Revert "skip test_parallel_sign_calls for now"
pbeza Dec 23, 2025
2498761
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 5, 2026
430dc76
Bump PONG_TIMEOUT to 20 seconds
pbeza Jan 5, 2026
b8490a8
Update docstrings
pbeza Jan 5, 2026
894b8b7
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 5, 2026
bd2f0c9
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 5, 2026
22bb772
Code cleanup
pbeza Jan 5, 2026
4a14196
refactor: replace pong buffer with watch channel for pending pongs
pbeza Jan 7, 2026
d04ed38
fix clippy
pbeza Jan 7, 2026
873e1e0
structured logging
pbeza Jan 7, 2026
a1fe9db
refactor: improve comment clarity for pong forwarding in keepalive task
pbeza Jan 7, 2026
25fb311
use tokio::time::timeout instead of tokio::select
pbeza Jan 7, 2026
b2c02fe
fix: add comment to clarify handling of dead outgoing connections in …
pbeza Jan 7, 2026
57d91e4
refactor: clarify ping interval description and log message for unexp…
pbeza Jan 7, 2026
9cf267a
fix: handle case where peer sends Ping but is not in connections map
pbeza Jan 7, 2026
7ec54a5
refactor: update comment for pong notification channel in TlsConnecti…
pbeza Jan 7, 2026
fe4b306
fix: improve ping/pong handling to ensure proper timeout management
pbeza Jan 7, 2026
edae2e4
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 7, 2026
57ac856
Remove lru dependency from Cargo.toml files and update deny.toml to a…
pbeza Jan 7, 2026
88049e9
Revert "Remove lru dependency from Cargo.toml files and update deny.t…
pbeza Jan 7, 2026
0ebbc18
fix: update deny.toml to include additional advisories and adjust ski…
pbeza Jan 7, 2026
8dcea80
feat: add P2P ping/pong metrics for monitoring connection health
pbeza Jan 8, 2026
e747451
refactor: remove extra loop
pbeza Jan 8, 2026
4dd94d9
fix: optimize ping interval handling
pbeza Jan 8, 2026
a3eb46c
fix: improve ping interval handling with tick()
pbeza Jan 8, 2026
c022c5a
fix: standardize log messages and error contexts to lowercase
pbeza Jan 8, 2026
720ef1e
fix: improve logging for connection closure and reconnection handling
pbeza Jan 8, 2026
d63c305
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 9, 2026
d6422d1
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 10, 2026
ece890d
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 15, 2026
74177b9
Revert deny.toml
pbeza Jan 15, 2026
eed1da8
fix(p2p): handle overflow in TLS sequence number
pbeza Jan 15, 2026
0164312
fix(p2p): handle overflow in TLS sequence number by converting to i64
pbeza Jan 15, 2026
c71a050
refactor + tests
pbeza Jan 15, 2026
453de4a
feat(p2p): add OutgoingConnectionConfig for managing outgoing connect…
pbeza Jan 15, 2026
7c69b17
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 15, 2026
948f614
Cleanup
pbeza Jan 15, 2026
75a0b8c
Tests cleanup
pbeza Jan 15, 2026
0fe1bcb
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 15, 2026
67ef832
Merge remote-tracking branch 'origin/main' into 1647-implement-echo-c…
pbeza Jan 16, 2026
1202ebc
refine test_pong_timeout_triggers_reconnection
pbeza Jan 16, 2026
7003987
More comprehensive tests
pbeza Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,4 +88,5 @@ near-sdk = { workspace = true }
rstest = { workspace = true }
serial_test = { workspace = true }
threshold-signatures = { workspace = true, features = ["test-utils"] }
tokio = { workspace = true, features = ["test-util"] }
tracing-test = { workspace = true }
30 changes: 30 additions & 0 deletions crates/node/src/metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -315,3 +315,33 @@ pub static PARTICIPANT_TOTAL_TIMES_SEEN_IN_FAILED_SIGNATURE_COMPUTATION_FOLLOWER
)
.unwrap()
});

// P2P Ping/Pong metrics for monitoring connection health

pub static MPC_P2P_PING_SEQUENCE_SENT: LazyLock<prometheus::IntGaugeVec> = LazyLock::new(|| {
prometheus::register_int_gauge_vec!(
"mpc_p2p_ping_sequence_sent",
"Latest ping sequence number sent to each peer",
&["peer_id"],
)
.unwrap()
});

pub static MPC_P2P_PONG_SEQUENCE_RECEIVED: LazyLock<prometheus::IntGaugeVec> =
LazyLock::new(|| {
prometheus::register_int_gauge_vec!(
"mpc_p2p_pong_sequence_received",
"Latest pong sequence number received from each peer",
&["peer_id"],
)
.unwrap()
});

pub static MPC_P2P_RTT_SECONDS: LazyLock<prometheus::GaugeVec> = LazyLock::new(|| {
prometheus::register_gauge_vec!(
"mpc_p2p_rtt_seconds",
"Latest round-trip time in seconds to each peer",
&["peer_id"],
)
.unwrap()
});
Loading