zlacker

[parent] [thread] 28 comments
1. stevek+(OP)[view] [source] 2023-05-04 19:30:09
This is a private beta. Nobody is suggesting that any of this be used for anything serious just yet. Development happens out in the open, you can go find out what else they've missed by doing the work, or by waiting until others you trust have done so.

I myself have had an account for like a month now, but only started really using it a week ago, because that calculus changed for me, personally.

Like, it's not even possible to truly delete posts at the moment. This all needs to be treated as a playground until things mature.

This isn't even the first "scandal" related to this feature already!!!! There is another hole in what currently exists that allowed someone to temporarily impersonate a Japanese magazine a few weeks back.

replies(4): >>YtvwlD+Y >>9dev+j1 >>codetr+r1 >>accoun+6x1
2. YtvwlD+Y[view] [source] 2023-05-04 19:33:38
>>stevek+(OP)
Okay, yes, but this indicates that they didn't read the ActivityPub before developing their own new shiny protocol.
replies(3): >>stevek+h1 >>rchaud+k4 >>linuxd+pg1
◧◩
3. stevek+h1[view] [source] [discussion] 2023-05-04 19:35:17
>>YtvwlD+Y
I don't personally believe that one mistake indicates ignorance of an entire topic.
replies(1): >>seba_d+y2
4. 9dev+j1[view] [source] 2023-05-04 19:35:20
>>stevek+(OP)
Dunno. That’s such a fundamental piece of thinking you just have to come across in the design phase, I don’t know how you would build a beta that didn’t avoid the issue in the first place unless you had a flawed take on security in the first place.
replies(1): >>stevek+32
5. codetr+r1[view] [source] 2023-05-04 19:35:49
>>stevek+(OP)
Are there any Rust implementations of the protocol yet :vv:
replies(1): >>stevek+A1
◧◩
6. stevek+A1[view] [source] [discussion] 2023-05-04 19:37:12
>>codetr+r1
Multiple, in varying degrees of maturity. And I'm also writing one from scratch, don't know if I'll bother to share it with anyone though, I just want to learn more deeply, and implementation is the best way to do that.

I have my eyes on https://github.com/sugyan/atrium as a foundational library in this space, and expect folks to coalesce on it. But we'll see.

◧◩
7. stevek+32[view] [source] [discussion] 2023-05-04 19:38:47
>>9dev+j1
It is surely easy to cast stones at a single bug, but I don't think that's the right way to look at things.
replies(2): >>9dev+a5 >>bisby+qa
◧◩◪
8. seba_d+y2[view] [source] [discussion] 2023-05-04 19:40:32
>>stevek+h1
In general - no, but this kind of fundamental mistake might.
replies(1): >>stevek+M3
◧◩◪◨
9. stevek+M3[view] [source] [discussion] 2023-05-04 19:46:49
>>seba_d+y2
I hope I never work on software you folks use. The grand claims about something that is not even hard to fix is just wild to me.
replies(3): >>gowld+D6 >>seba_d+eb >>accoun+zX1
◧◩
10. rchaud+k4[view] [source] [discussion] 2023-05-04 19:49:23
>>YtvwlD+Y
The pull of NIH is a strong one.
◧◩◪
11. 9dev+a5[view] [source] [discussion] 2023-05-04 19:54:50
>>stevek+32
I wouldn’t have made my remark if this would just be a bug, though. We’re looking at a bespoke domain ownership verification mechanism that doesn’t handle its primary usecase well, failing at something solved in lots of different ways over the past decades.

I have written atrocious bugs over the years, so I’m definitely not in the stone casting business here. However, I can’t see this as simply a bug, rather than a fundamental design flaw. And if an entity is both becoming infamous for reinventing the wheel, and attempting to fill a sensitive niche, I feel it has somewhat of an obligation to accept criticism such as that.

replies(1): >>stevek+h8
◧◩◪◨⬒
12. gowld+D6[view] [source] [discussion] 2023-05-04 20:01:40
>>stevek+M3
What about the next 500 easy-to-fix bugs?

Is there a public test suite?

replies(1): >>stevek+g9
◧◩◪◨
13. stevek+h8[view] [source] [discussion] 2023-05-04 20:09:25
>>9dev+a5
> We’re looking at a bespoke domain ownership verification mechanism that doesn’t handle its primary usecase well

Okay this is exactly what I mean. How well do you know the AT Protocol? Because this comment seems to indicate you just learned about it from this link, yet you're still making grand claims like this.

This method of validating your identity isn't the primary one. It's not even documented! It was added two weeks ago, as an API endpoint to help serve moderation and administrative needs. Turns out the URL structure of the rest of the API is a bad call for this endpoint.

> and attempting to fill a sensitive niche,

If you want to criticize AT Protocol on privacy issues, there are far more important things that are closer to the fundamental aspect of the design to criticize.

◧◩◪◨⬒⬓
14. stevek+g9[view] [source] [discussion] 2023-05-04 20:14:04
>>gowld+D6
> Is there a public test suite?

The entire specification (which is admittedly incomplete) and implementation are open source.

I am not aware of a dedicated test suite for alternative implementations. It's too early, IMHO. I personally would much prefer the team to focus their time elsewhere for the time being.

replies(1): >>Shroud+ll
◧◩◪
15. bisby+qa[view] [source] [discussion] 2023-05-04 20:20:07
>>stevek+32
"We'll build our own validation instead of using one of the existing standards that make perfect sense." is not just "a single bug". It's a flaw in architecture.

A PR of "Change external domain validation to use .well-known (or DNS01, etc)" is not a "bugfix"

replies(1): >>mtae+vc
◧◩◪◨⬒
16. seba_d+eb[view] [source] [discussion] 2023-05-04 20:24:31
>>stevek+M3
Being easy to fix is completely irrelevant. The thing is that it's easy to avoid. The only way to end up there is to not put any thought into the domain verification scheme before deploying it. Any kind of review would catch it. That's what makes it look really bad.
◧◩◪◨
17. mtae+vc[view] [source] [discussion] 2023-05-04 20:31:09
>>bisby+qa
okay so clearly you don't know what you're talking about because they do use existing standards/DNS as the primary way to validate domain ownership. It's free to not say anything and read the comments first before going off about something!
replies(2): >>i_am_j+vh >>accoun+Px1
◧◩◪◨⬒
18. i_am_j+vh[view] [source] [discussion] 2023-05-04 20:57:00
>>mtae+vc
>okay so clearly you don't know what you're talking about because they do use existing standards/DNS as the primary way to validate domain ownership.

I'm not going to speak for the commenter you're replying to, but I don't think anyone here is talking about the standards-compliant, DNS-based domain verification system. I think we're all talking about the non-standards-compliant, /xrpc/-path verification.

◧◩◪◨⬒⬓⬔
19. Shroud+ll[view] [source] [discussion] 2023-05-04 21:17:04
>>stevek+g9
My instincts may be way off-base, but if I was developing a protocol at the core of my product vision, even if there was only one implementation, I would a want an authoritative test suite. I wouldn't trust myself not to integrate load-bearing idiosyncrasies (and bugs, honestly) otherwise.
replies(1): >>stevek+1o
◧◩◪◨⬒⬓⬔⧯
20. stevek+1o[view] [source] [discussion] 2023-05-04 21:32:38
>>Shroud+ll
I mean, I don't think you're incorrect, but I do think that like, semantics matters here. There is a test suite, of their implementation. Just because they have not extracted it and made it easily re-usable for alternative doesn't mean that they don't have checks to ensure regressions don't appear, you know?

They already build off of many related specifications, which have independent implementations, and a lot of the core protocol is RPC style, with schemas that they do publish. So there's already a lot of rigidity here for alternative implementations to use in a way that is extremely likely to be compliant.

I guess another way of putting it is "I don't exactly disagree with you but doing that takes work, and we're at the stage of this stuff where that work is being done, so expecting it right now feels premature to me." The spec isn't "released" or "done," it's in development.

◧◩
21. linuxd+pg1[view] [source] [discussion] 2023-05-05 06:08:35
>>YtvwlD+Y
Paul has lots of experience designing protocols. He designed SSB. ActivityPub does a lot of things wrong from first principals.

The whole point was to start from scratch.

replies(1): >>marius+Oi1
◧◩◪
22. marius+Oi1[view] [source] [discussion] 2023-05-05 06:32:11
>>linuxd+pg1
> ActivityPub does a lot of things wrong from first principals

I'd be curious to learn about those.

replies(1): >>capabl+Wa2
23. accoun+6x1[view] [source] 2023-05-05 08:45:30
>>stevek+(OP)
But this isn't a implementation issue. This is a fundamental design issue. If their design philosophy is to throw stuff against the wall and see what fits then I don't see this as ending up as better than the existing fediverse.
◧◩◪◨⬒
24. accoun+Px1[view] [source] [discussion] 2023-05-05 08:51:42
>>mtae+vc
With any kind of authentication when you have an insecure method it does not mather whether you also have a more secure method - your authentication is only as good as the weakest alternative.
◧◩◪◨⬒
25. accoun+zX1[view] [source] [discussion] 2023-05-05 12:33:42
>>stevek+M3
If your response to a fundamental design flaw of identy verification is "something that is not even hard to fix" then that hope is mutual.
◧◩◪◨
26. capabl+Wa2[view] [source] [discussion] 2023-05-05 13:56:56
>>marius+Oi1
There is a lot more information here: https://twitter.com/bluesky/status/1511811083954102273?lang=...

From my own understanding, the biggest useful differences for me personally is: account portability, domains as usernames and content-addressable from the ground up.

- Account portability - Useful if/when you want to move between servers

- Domains as usernames - Ties into the same value as account portability. I've owned my own domain for decades, it never changes and probably won't, until years after I die

- Content-addressable - Caching and syncing becomes so much easier, which is a huge issue Mastodon currently suffers from.

replies(1): >>marius+kx2
◧◩◪◨⬒
27. marius+kx2[view] [source] [discussion] 2023-05-05 15:36:55
>>capabl+Wa2
Since you seem to default to sending me to RTFM :D, I'll give you a similarly short reply:

ActivityPub can identify users based on their domain too. Probably better than BlueSky does, because it uses better standardized mechanisms - the URI needs to dereference to a valid ActivityPub actor and the community has converged to using webfinger for discovery. The fact that web-finger is generally used for user discovery makes it easier to use the identical mechanism that BlueSky uses - where the identity (which in ActivityPub is a URL) is not tied directly to a domain. (Eg, if you do a webfinger query for marius.federated.id you will get a response where it tells you that one of the URLs for the ActivityPub identity associated with that is https://metalhead.club/@mariusor, you can check it out right now with curl https://marius.federated.id/.well-known/webfinger?resource=h...).

Account portability can exist in ActivityPub because the verbs for signaling to the network that an object/actor has moved to a different URL are in the vanilla vocabulary. The fact that nobody has implemented this so far does not make it impossible. (It's not like anyone so far needed to move from BlueSky to ... I don't know... BlueSky. So it being capable of moving identities is still equally theoretical in my view).

Regarding your last point (or the one made about it in the twitter thread), I don't really understand about how identifying content by its cryptographic signature is conducive to better caching and "syncing" (how in the world a hash would make it easier to sync content than a URL I don't know). HTTP clients, servers and proxies have very good caching and syncing mechanisms for anything that uses URLs to identify resources. Whatever BlueSky wants to do, must invent their own intermediary layers before anyone will be able to say "it's easier" with any certainty.

In my opinion nothing you mentioned can be called a "doing things wrong from first principals(sic)" - and I'm still hoping that linuxdude314 can make a better argument.

ActivityPub is fine for what it was designed to be: an exchange mechanism for "low impact" social activity. It's not meant to interact with cryptocurrencies, it's not meant to shelter dissidents from corrupt governments, it's not meant to help you interact with your drug dealer, nor whistle-blow on your employer. There are already options for those things. It is meant to allow your grandma to like your cat pictures in a more distributed manner than facebook offers. The people that imagine BlueSky will be doing something more than that, are - in my opinion - vastly overevaluating it.

(PS. Apparently this was not "similarly short", apologies.)

replies(1): >>capabl+dE2
◧◩◪◨⬒⬓
28. capabl+dE2[view] [source] [discussion] 2023-05-05 15:59:43
>>marius+kx2
I don't work on the AT protocol, and don't have any deeper insights into it, I just started reading about it a week or two ago and still putting all the pieces together myself. I linked the twitter thread not as a "Go read this you fucker" but more like "there is no point in me repeating what has already been written elsewhere". I'm just trying to help understanding, not convince you of something, I have zero horses in this race :)

But something I can answer directly to as I have deeper expertise with it, is this:

> how in the world a hash would make it easier to sync content than a URL I don't know

URLs are pointing to a location while content-hashes point to specific pieces of content. Moving from URLs to hashes as URIs gives you the benefit of being able to fetch the content from anywhere, and cache it indefinitely.

Basically any large distributed system out there, no matter if it deals with caching or not is built on top of content-addressable blobs, as it reduces the complexity by magnitudes.

Suddenly, you can tell any of your peers "Give me content X" and you don't really care where it comes from, as long as it is verifiably X. Contrast that to URLs which point to a specific location somewhere, and someone has to server it. If the URL is unresponsive, you cannot really fetch the content anymore.

Content-addressing used in this manner is not new or invented by Bluesky, but a old concept that has been used for multiple use cases, caching is maybe the most common one, but definitely not the only one. Probably the first time I came across it was in Plan 9 (Venti) around ~2000 sometime. First time I actually used it in production was with Tahoe-LAFS, which must have been around ~2010 sometime I think.

replies(1): >>vidarh+PN4
◧◩◪◨⬒⬓⬔
29. vidarh+PN4[view] [source] [discussion] 2023-05-06 08:24:48
>>capabl+dE2
You can treat a URL as a hash into a content-addressable store just fine. Mastodon does just that. Yet that URL also tells it where to retrieve the content if it's not available locally in a way that doesn't require tools to have any additional knowledge. If they do have additional knowledge, say of another caching layer or storage mechanism, they can use that just fine.

That is, I can just paste the URL for this article into my Mastodon instance, and if it has it, it'll fetch it from the local storage, if it doesn't it'll try to fetch it from the source, but there's nothing preventing a hierarchy of caches here, nor is there anything preventing peer to peer.

But while ActivityPub says that object id's "should" be https URL's for public objects, the basic requirement of ActivityStream is just that it's a unique URI, and there's nothing stopping an evolution of ActivityPub allowing URI's pointing to, say, IPFS or similar by content hash instead of a https URL.

[go to top]