refactor: v0.8 Iteration B — cruft purge + ALPN bump to itsgoin/4
Zero-users ruling removes all wire-compat obligations. Net -1,443 LOC of Rust. Protocol break: - ALPN_V2 b"itsgoin/3" -> ALPN b"itsgoin/4" (renamed: the versioned name was what rotted). Old nodes are now refused at the QUIC handshake instead of half-interoperating with the v0.8 manifest/digest formats. Deploy gate from Iteration A is discharged. Dead wire surface removed (MessageType 46 -> 40): - DeleteRecord 0x51 (deletes ride ControlOp::DeletePost + InitialExchange) - VisibilityUpdate 0x52 + its two dead senders (ControlOp::UpdateVisibility) - SocialDisconnectNotice 0x71 (zero senders; checkin timeouts carry the signal) - MeshPrefer 0xB3 + request_prefer + handler (preferred peers are gone) - Legacy dual pull-matching half (have_post_ids) — behavior-identical - PullSyncResponse.visibility_updates + counters (control posts cover it) - serde(default) stripped from wire-only payloads (kept where skip_serializing_if makes it load-bearing; persisted-row defaults untouched) Preferred-peer subsystem eliminated (design ruling: CDN file_holders replaced the N+10 direct push/pull it served): slot tier, preferred_peers table (dropped), preferred_tree semantics, rebalance Priority 0, find_relays_for preferred tiers, 7-day prune + 30-day watcher, dead FromStr impl. Slots are now Local/Wide only (91 desktop / 12 mobile) pending Iteration C's single ~20-slot pool. Other dead code: hostlist encoder + base64url helper, always-empty downstream_addrs parameter chain, start_upnp_renewal_cycle no-op + 4 callers, RELAY_TARGET_RATE_LIMIT, GetSecretSeed, stale comments swept. Preserved deliberately: EDM scanner corpse (awaiting raw-UDP refactor), PortScanHeartbeat, Iteration A startup migrations, session-relay opt-in gating. Docs: design.html + tech.html synced (message counts, ALPN, purge status, Rework asides flipped past-tense). 190 core tests pass; CLI + desktop build; A3 integration 9/9 (independently re-run post-purge). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LGiPD2cF75mnvneSCjdDC5
This commit is contained in:
parent
17dbf076cb
commit
36e3871c4b
15 changed files with 152 additions and 1476 deletions
|
|
@ -2493,7 +2493,6 @@ async fn sync_from_peer(state: State<'_, AppNode>, node_id_hex: String) -> Resul
|
|||
#[derive(Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct NetworkSummaryDto {
|
||||
preferred_count: usize,
|
||||
local_count: usize,
|
||||
wide_count: usize,
|
||||
total_connections: usize,
|
||||
|
|
@ -2508,12 +2507,10 @@ struct NetworkSummaryDto {
|
|||
async fn get_network_summary(state: State<'_, AppNode>) -> Result<NetworkSummaryDto, String> {
|
||||
let node = get_node(&state).await;
|
||||
let conns = node.list_connections().await;
|
||||
let mut preferred = 0usize;
|
||||
let mut local = 0usize;
|
||||
let mut wide = 0usize;
|
||||
for (_nid, slot_kind, _at) in &conns {
|
||||
match slot_kind {
|
||||
PeerSlotKind::Preferred => preferred += 1,
|
||||
PeerSlotKind::Local => local += 1,
|
||||
PeerSlotKind::Wide => wide += 1,
|
||||
}
|
||||
|
|
@ -2525,7 +2522,6 @@ async fn get_network_summary(state: State<'_, AppNode>) -> Result<NetworkSummary
|
|||
(n2, n3)
|
||||
};
|
||||
Ok(NetworkSummaryDto {
|
||||
preferred_count: preferred,
|
||||
local_count: local,
|
||||
wide_count: wide,
|
||||
total_connections: conns.len(),
|
||||
|
|
@ -3201,14 +3197,13 @@ async fn switch_identity(
|
|||
|
||||
// Start background tasks on the new node
|
||||
new_node.start_accept_loop();
|
||||
new_node.start_pull_cycle(300);
|
||||
new_node.start_pull_cycle();
|
||||
new_node.start_diff_cycle(120);
|
||||
new_node.start_rebalance_cycle(600);
|
||||
new_node.start_growth_loop();
|
||||
new_node.start_recovery_loop();
|
||||
new_node.start_social_checkin_cycle(3600);
|
||||
new_node.start_anchor_register_cycle(600);
|
||||
new_node.start_upnp_renewal_cycle();
|
||||
new_node.start_upnp_tcp_renewal_cycle();
|
||||
new_node.start_http_server();
|
||||
new_node.start_bootstrap_connectivity_check();
|
||||
|
|
@ -3326,14 +3321,13 @@ async fn clear_duplicate_flag(state: State<'_, AppNode>) -> Result<(), String> {
|
|||
node.network.duplicate_detected.store(false, std::sync::atomic::Ordering::Relaxed);
|
||||
// Start the sync tasks that were skipped during bootstrap
|
||||
node.start_accept_loop();
|
||||
node.start_pull_cycle(300);
|
||||
node.start_pull_cycle();
|
||||
node.start_diff_cycle(120);
|
||||
node.start_rebalance_cycle(600);
|
||||
node.start_growth_loop();
|
||||
node.start_recovery_loop();
|
||||
node.start_social_checkin_cycle(3600);
|
||||
node.start_anchor_register_cycle(600);
|
||||
node.start_upnp_renewal_cycle();
|
||||
node.start_upnp_tcp_renewal_cycle();
|
||||
node.start_http_server();
|
||||
node.start_bootstrap_connectivity_check();
|
||||
|
|
@ -3575,14 +3569,13 @@ pub fn run() {
|
|||
|
||||
// Start all background networking tasks
|
||||
boot_node.start_accept_loop();
|
||||
boot_node.start_pull_cycle(300);
|
||||
boot_node.start_pull_cycle();
|
||||
boot_node.start_diff_cycle(120);
|
||||
boot_node.start_rebalance_cycle(600);
|
||||
boot_node.start_growth_loop();
|
||||
boot_node.start_recovery_loop();
|
||||
boot_node.start_social_checkin_cycle(3600);
|
||||
boot_node.start_anchor_register_cycle(600);
|
||||
boot_node.start_upnp_renewal_cycle();
|
||||
boot_node.start_upnp_tcp_renewal_cycle();
|
||||
boot_node.start_http_server();
|
||||
boot_node.start_bootstrap_connectivity_check();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue