[Bug]: Peering and federation issue #134
Closed
opened 2026-08-11 00:19:52 +00:00 by ssmithx
·
2 comments
No Branch/Tag Specified
main
pr/feat/first-install-owner-network-20261112
pr/demo-intro-ux-polish
docs/security-audit-2.0.3-alpha
docs/fips-compute-market-proposal
feat/routstr-fips-llama
docs/ui-uat-pr-rule
fix/routstr-xcashu-change
fix/lifecycle-lock-wait
fix/btcpay-db-password
feat/podsteadr-app
feat/qortal-app
fix/quadlet-iec-memory-limits
feat/podsteadr-app-package
arm64-pi-test
feat/nostr-vpn-seller-app
work/terminal-developer-spec-20261009
feat/justworks-integration-review
conduit-market-archyapp
fix/gitea-portainer-20260930
fix/app-install-lifecycle-20260930
fix/filebrowser-purchase-filing
fix/ecash-paid-download-v2-keyset
fix/paid-content-payment-not-lost
fix/mint-error-detail-swallowed
investigate/framework-lnd-startup
fix/minibits-already-redeemed
cuprate-fixes
feature/dojobay-app
fix/bitcoin-core-tor-service-name
docs/openwrt-gateway-setup
cuprate-cpu-fix
fix/cuprate-explicit-logging-levels
companion/session-2026-08-31
companion/0.5.28-deploy-handoff
companion/0.5.28-ship
companion/0.5.28
app-bumps-mirror-pending
cuprate-archyapp
docs/todo-list
companion/0.5.27-version-meta
companion/0.5.27-ship
companion/0.5.27-clipboard-qr-restart
ux-at-last
fix/mesh-send-content-inline-federation-fallback
cashu-error-messages
gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
rotate-release-root
chore/aiui-monorepo-migration
wip/phase-13-p13-02
wip/phase-13-p13-01
fix/bitcoin-conf-conflict-crash-loop
demo-build
archy-hwconfig
openwrt-enhancements
a3-10-endpoint-fallback
public-prelaunch
release/1.7.115-prep
fix/web-listener-ipv6
fips-companion-5g-hardening
fix/connection-accept-deadlock
fix/demo-images-path-filter
fix/companion-autologin-replay-intro
networking-profits-dashboard
identities-mobile-polish
companion-qr-scan-fix
companion-qr-pairing
intro-reliability-video-perf
login-bg-continuity
audio-bottom-bar
demo-intro-every-visit
intro-entrance-fixes
cloud-feedback-demo-content
cloud-tabs-search
ark-wallet-ui-demo
demo-nginx-app-assets
demo-ui-fixes
ark-wallet-barkd
v2.1.21
v2.1.2-beta
v1.9.1-alpha
v1.9.0-alpha
Labels
Clear labels
companion-agent
queued
roadmap
waiting-external
Companion-app agent's handover list (node-side parts tracked separately)
Triaged, next in this session's queue after current release work
Feature/effort item, deliberately unscheduled — needs scoping + a slot, not a fix today
Waiting on a person outside this session (tester, operator)
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: lfg2025/archy#134
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
I was able to see all of archy-x250-mad2's peers after accepting a peer request and then promoting the guy who invited me to "trusted"
Tested with a new install of 129 connecting to a 127. I'll have to retest 129 to 129
Steps to Reproduce
Machine1 created an invite
Machine2 accepts the invite
Machine2 now sees Machine1 in the peer list
Machine2 promotes Machine1 to trusts
Now all of Machine1's peers populate his peer list
Expected Behavior
I don't know! Can there be multiple federations where you don't leak everyone's peers?
It doesn't seem right that be cause my neighbor invited me over, I can decide I trust him enough to fiddle though his contact list.
Actual Behavior
Archipelago Version
v1.7.127-alpha
Hardware
x86_64 (Intel/AMD)
Relevant Logs
No response
Screenshots
No response
Reviewed against the current federation implementation. The present wording conflates several different concepts: a directly trusted peer, a peer learned through another node, a non-trusted routing hint, and peer advertisement/discovery. Trust is not currently inherited, but the privacy and product semantics of advertising peer relationships need to be defined more clearly, with better user-facing names, before deciding whether the existing behavior should change. Keeping this open but deferring it for a later federation terminology/privacy design pass; no code change in the current release.
Closing as intended behavior, with the terminology the report asked for now written down.
What the reporter saw is by design: a Trusted peer sharing its own peer list ("advertisement") is what makes one invite enough for reachability across the federation — the peers learned that way enter as Discovered peers, hard-capped at Observer with
TrustSource::TransitiveMerge. The code has always guarded this (TRUST IS NOT TRANSITIVE, core/archipelago/src/federation/sync.rs): a peer can never expand our trusted set on its own authority, and every trust level traces to an operator decision.What was genuinely missing was the vocabulary — the report conflated four different concepts. Those now have names in docs/peering-trust-model.md (
9df580bf): Trusted peer (invite-verified), Discovered peer (learned via advertisement, Observer-capped), Routing hint (what a Discovered peer contributes — reachability, not trust), and Peer advertisement (the mechanism itself).Deferred, deliberately: the "don't advertise my peers" privacy toggle. It is a real option with real trade-offs (it hides peers who may want discovery, and degrades routing for every node trusting you) — that is a product decision, not a code patch. If you want it, reopen this or file a feature issue and we'll scope it properly.