Pds: federation support (PLC registration, MST/signed commits/CAR, com.atproto.sync + firehose, handle resolution) #40
Labels
No labels
breaking-change
bug
documentation
duplicate
enhancement
good first issue
help wanted
performance
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/ATProto.NET#40
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ATProtoNet.Pds(0.4.0) can host accounts and serve repo CRUD, but a PDS built on it cannot federate with the Atmosphere network. The gaps, in dependency order:CreateAccountAsyncgenerates a placeholderdid:plc:<random13>without registering it (no PLC genesis operation, no signed op chain, noPDS_DID_PLC_URLequivalent). Nothing on the network can resolve these DIDs. did:web support + well-known endpoints (/.well-known/did.json,/.well-known/atproto-didper handle host) would be a useful intermediate step."bafyrei" + hex(sha256)[..32]— not a valid CID). Federation requires DAG-CBOR records in a Merkle Search Tree with signed commits (the SDK already has DAG-CBOR/CAR/MST consumer code in the firehose/repo modules that could be reused for the producer side).com.atproto.sync.getRepo/getLatestCommit/listRepos/subscribeRepos(firehose with sequenced events), plusrequestCrawltoward relays. Without these, relays can't crawl the PDS./.well-known/atproto-didfor handle subdomains.Context: Updraft initially shipped a PDS on
ATProtoNet.Pds(see issues #36–#39), but switched to the officialghcr.io/bluesky-social/pdscontainer when federation became a requirement — the gaps above are SDK-level, not app-level. Happy to be an early adopter again onceATProtoNet.Pdscan federate; the invite-store work (#36) and EF stores (#38) remain relevant for that future.🤖 On it — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ The task itself completed: the changes were pushed and opened as PR #65.
Unfortunately the closing summary was lost — the run predates the v12.3 posting fix, and this session was long enough that the published transcript hit the renderer's size clip, which cut off the tail (also fixed now). The automatic review on PR #65 will provide an independent assessment of the changes.