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
1 participant
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.