Hello. This really doesn’t belong in ActivityPub or even here. I’m just not sure what better place to ask. did-core github also seems bad.
So anyway, my question is quite simple. Say you run a service a service on domain.tld and associate to your user Alice a did say did:example:37. Now, Bob has got ahold of this information and wants to contact Alice. He knows that Alice has an ActivityPub Actor somewhere on domain.tld, so he might reasonably try
WebFinger is probably one of your better bets, if not the best. The problem is establishing consensus between resolvers, or otherwise knowing who to defer to as “more authoritative”. This is analogous or roughly equivalent to DNS forwarding and propagation to/from root trust.
some conceptual assembly required, but i think the flow is something like this:
discover the PDS from some DNS record? or do you just use the handle directly? unclear
GET /xrpc/com.atproto.handle.resolve?handle= at whatever the origin is via step 1?
you should somehow end up with a service and serviceEndpoint at which you can perform additional xrpc calls
reeks of NIH syndrome tbh, you could probably just use webfinger? it’s not like did:plc is decentralized either; it depends on a centralized PLC server as best as i can tell. you might as well depend on a centralized WebFinger server that can you can redirect to or cache the results or whatever. or you can use an alternative root authority, or perhaps your DID method comes with such an authoritative source built in that is actually decentralized in some meaningful way. sky’s the limit, there’s a ton of DID methods and likely there will be more, with the free-for-all that’s currently raging.