Bluesky Dev
Community discussion of the AT Protocol and Bluesky. (This room is not officially affiliated with the Bluesky team.)
Previous group of messages
  1. mdangear
    Would love to see this in action :-) when will it be possible to play with it?
  2. I applied for beta but never heard back, looking forward to see what it looks like
  3. whyrusleeping
    We’re honestly running around with our hair on fire trying to get things ready to onboard everyone who signed up.
  4. The smelled of burnt hair is mildly distracting tho
  5. pfrazee
    True. But we’re rockin and rolling. Not long now
  6. I’ve been BSing mr brightside memes to keep the vibe right
  7. mdangear
    Genuine question from my side, not a complaint. I know what building a product involves. I'll be patient while eager to get my hands on it :-)
  8. pfrazee
    Totally
  9. mdangear
    And the Twitter mess is a huge opportunity. Mastodon grows by the minute from what I see, there is a wave to surf.
  10. Dean
    Bluesky Twitter​account should be more dev and feature related without directly linking to the platform I guess
    (edited)
  11. This really made me wish Bluesky was already live
  12. I don't want to use nostr and mastodon. I like bluesky and ATP 🔥
  13. pfrazee
    Kind of solid that the future landscape will be multiple federated networks, is my take
  14. Wasn’t my 2022 bingo card prediction
  15. In reply to this message

    We’ll see. If we’re not wanted, so be it
  16. Dean
    I learned about nostr a few days ago and it not tracking follower count is a dealbreaker for a lot of people I think
  17. Follower count and engagement == account authority
  18. Also no native way to support resolving URLs to account public keys (like ATP has), so discovering accounts is a real chore
  19. pfrazee
    Yeah I share that view. I want to be coopetive (cooperative + competitive) about other values aligned projects so I’m always rooting for them, but I’m very glad we get to pursue the design we have
  20. Dean
    Also every account making the same requests to multiple relays and handling duplicate data seems like so much waste of bandwidth
  21. pfrazee
    But I agree with your observations
  22. Dean
    I do kinda like a relay system to rely less on a single server (ie a single PDS or Indexer on ATP) and can see that working with load balancing systems and such for ATP in the future
  23. Without sacrificing any of ATP's core design
  24. It'll be more up to client apps and integrators than the protocol maybe, to achieve that
  25. pfrazee
    Yeah with any such system the performance and economics become the question. If there’s a way we can make full backup nodes make sense that’d be superb
  26. In reply to this message

    Yeah exactly. Protocol doesn’t get in the way of that happening
  27. Dean
    One click installs and things like a dappnode package will help too
  28. Just for people who really care about their own data's availability and of those who they follow
  29. pfrazee
    We may find the aggregation services naturally backup everything anyway, almost like how Google served cached pages
  30. In reply to this message

    Indeed! Should be very doable
  31. Dean
    Very excited for it! I immediately checked in on element after seeing the Twitter news
  32. pfrazee
    What a couple of months eh?
  33. Brad Brown
    pfrazee: very “Lemon, it’s Tuesday” vibes around here yeah
  34. Dean
    I hope we can still get lots of people on bsky with this new anti free speech wall. Who knows, maybe elons decision will have the opposite effect and get more people intrigued about ATP.
    (edited)
  35. zyolluax joined the room
  36. Dean
    I can just imagine Elon at the world cup, thumb on the tweet button, the moment the last penalty is taken 😂
  37. pfrazee
    Well it’s all certainly proving the point
  38. whyrusleeping
    Bluesky isnt on the banned list lol
  39. Dean
    Imagine a bsky app announcing they're blocking normal topics. People would just migrate their account to another app and not think twice about it 😂
  40. In reply to this message

    They put nostr on it after 1 jack tweet
  41. whyrusleeping
    I actually imagine certain instances of bluesky being very restrictive in order to curate a specific experience. And thats a feature
  42. pfrazee
    Routing around the damage, as they say
  43. In reply to this message

    Well we haven’t resolved what layer that occurs at yet
  44. Curational tooling is very key. If we DO have servers give opinions, we’ll index heavily on account portability to ensure that’s not oppressive
  45. Dean
    An optional "topic" field in the bsky lexicon so niche apps can only index posts by topics?
  46. pfrazee

    In reply to this message

    Another open question! We’re toying with approaches to communities which may be topical and be how such things get done
  47. One of our big remaining pushes will be on these exact questions, curation and moderation, and finding something that properly distributes authority and has checks and balances
  48. Dean
    I think with bsky apps specifically people will generally want to curate their own feeds simply by who they follow and not depend on an app to filter content for them (in a lot of cases, especially for Twitter refugees), but it's a different story for those apps' Discover tabs
  49. pfrazee
    Yeah. Touches on the algorithmic choice story
  50. Dean
    Spam is such a big topic as well. Nostr was getting spammed with random strings by the same accounts over and over yesterday. There was no regular discourse to be had.
  51. A language learning AI model could help with filtering that too
  52. "don't show this message if it's random gibberish or looks spammy"
  53. pfrazee
    Yeah
  54. Dean

    In reply to this message

    It's a good reason why bsky isn't live yet, because nostr doesn't have any of that considered and it kind of ruined the initial experience for me.
  55. pfrazee

    In reply to this message

    So very important to us that doesn’t happen!
  56. Dean
    Go to a nostr client, only see a bunch of public keys posting gibberish, no way to search for usernames on the same client, no way to only see natural human messages
  57. pfrazee
    Yeah. That’s gotta be frustrating for them
  58. @numero6:codelutin.com

    In reply to this message

    The acid test for any two competing socioeconomic systems is which side needs to build a wall to keep people from escaping? That’s the bad one!

    @elonmusk https://nitter.lacontrevoie.fr/elonmusk/status/1533616384747442176

  59. Fomoing people on Twitter to gain Bluesky awareness before we get elongated
  60. mikuhl
    Today would be a great day to release haha
  61. Dean
    It'll be worth the wait though, given the things that are being ironed out now
  62. The biggest mastodon instance died on the initial influx, some people signed up to a bad actor and had their accounts and posts deleted, nostr clients became a spam dump with no way of blocking within 2 hours of Jack posting about it. From what I can tell from pfrazee the team is using all this information to streamline the protocol and launch.
  63. mikuhl
    I hope Android client is on that list of stuff for launch lol.
  64. Christopher Rothert
    Hello everyone. I haven't looked much into Bluesky/ATP and frankly not heard a lot about it until the whole Twitter/Elon situation. However, in the past, whenever I had debates around the topic of social media and their credibility, trustworthiness, etc., I had thought about similar approaches than what the AT protocol tries to achieve. For that matter, I have a question regarding contribution. Is this place fair to ask?
  65. pfrazee

    In reply to this message

    Yeah got a test device arriving tomorrow
  66. In reply to this message

    Sure what’s up?
  67. mikuhl

    In reply to this message

    My device also volunteers for tribute!
  68. mikuhl
    I am so sad its not Flutter, I would literally quit my job to work on this. 😂
  69. George Antoniadis

    In reply to this message

    pretty sure there will be such projects once the protocol is stable
  70. Dean

    In reply to this message

    Build your own client!
  71. pfrazee
    Yes indeed
  72. Dean
    That's what the protocol allows you to do
  73. And helps with data resilience/availability
  74. mikuhl
    If there was some live test server I would whip something up.
  75. Dean
    There's a dev environment package
  76. Dev-env dir in the atproto git repo
  77. Spin it up and you have a prepopulated indexer and PDS
  78. Christopher Rothert

    In reply to this message

    Apart from the possibility of being hired or helping with issues on GitHub, is there any way someone like me (worked in IT, now almost
    B.Sc
    . graduate) can contribute directly with his passion and motivation for such a project?
  79. pfrazee

    In reply to this message

    we're having some conversations about this right now, can I get back to you this week? I want to be sure we respect contributors and dont let PRs sit, so we need to organize our process a bit
  80. Christopher Rothert

    In reply to this message

    Absolutely, I understand that. It will be some more days for me as well until I have more time to work on other things, anyway. Nonetheless, I appreciate your message. Thank you!
  81. Aaron Goldman

    In reply to this message

    Download and try to run the tests / play with the server locally
  82. Christopher Rothert

    In reply to this message

    I will take a look, thank you 👍️
  83. @astonishingriverboat:nitro.chat joined the room
  84. pfrazee
    goodness
  85. George Antoniadis

    In reply to this message

    For ****’s sake. Like what the actual… sigh…
  86. Dean
  87. pfrazee
    good save, good save
  88. Dean
    Does he really think people are so stupid they'd fall for the only technique people teach you in a psych intro class?
  89. If you want something you know people won't give you, ask for a lot more first, then the "real" request will sound more acceptable.
  90. pfrazee
    I'm not sure it's even that thought-out. I think he's winging it
    (edited)
  91. Dean
    I can see him reading business psychology for dummies on his flight tbh
  92. Christopher Rothert
    I get the feeling that his initial thought was that the problems could be solved with money alone
  93. Dean
    Even this new rule isn't acceptable, since people have the freedom to unfollow accounts they dislike. Deciding it for the people goes against the whole ethos of the platform. It only sounds more reasonable in comparison to the previous statement.
  94. The statement he made about "promotion shouldn't be free" in relation to this is worrying
  95. I mean, worrying for Twitter. It's great for bluesky and ATP 😂
    (edited)
  96. That's the same thought process that killed Facebook Pages. In 2015/16 I had 70k+ page likes on Facebook and my exposure went down 99% overnight and suddenly every post had a big blue "Boost this post to your followers" button taking you to Facebook ads checkout for $100+
    (edited)
  97. A lot of people started focusing on growing their Instagram after regretting focusing on Facebook so much. Then Facebook bought Instagram and the same thing happened there.
  98. Christopher Rothert
    One might wonder why he makes such a ruckus in the last 24-48h and then comes up with this poll. Surely, the poll has garnered quite a few mean looks influenced by those actions. Did he change his mind and wants to step down? Really weird to me.
  99. George Antoniadis

    In reply to this message

    I'm with you on this, but honestly bsky (and even more "mature" projects coughmastodoncough) have quite a bit way to go until they can replace pre-elon twitter.
    Already getting PTSD from the gpt4-chat-bot-wars of spring 2023, the first complete net-split of the federation in early 2024, and the first hard fork of the second largest bsky PDS.
    Spam, verification, protocols, client support, etc etc. Sigh. I'm too old for this shi*t. xD
  100. And don't get me wrong, I have absolute faith in bsky to find novel and good solutions for all of these issues. But it will take time. IMO ofc.
  101. Christopher Rothert

    In reply to this message

    I might be pulling hairs here. However, I'm pretty sure that a lot of passionate people did work, do work, and will work on this project. I don't wanna sound too corny, but I can't help but support what Jack said about at least one protocol succeeding in this area. 💪
  102. Dean

    In reply to this message

    More PDS providers are a good thing no? As long as they follow the bsky lexicon it'll just offer more portability options and data resilience
  103. There's some comfort in knowing that Twitter has also not solved the spam issue (seriously thinking AI spam detection might be the best option)
  104. George Antoniadis

    In reply to this message

    I think more PDS providers are indeed a good thing, hopefully ATP's fundamental ability to allow the user to move around their identity will make admins think twice before pissing of their users.
  105. Dean
    Ideally everyone eventually runs their personal PDS in the background on their phones
    (edited)
  106. George Antoniadis
    My main concern is that admins will want the option to outright ban specific PDSes as a moderation tool to reduce spam etc.
  107. Dean
    I wonder if users could follow each others' self-hosted PDSs outright without indexers inbetween as an extra form of censorship resistance?
    (edited)
  108. George Antoniadis

    In reply to this message

    Depends on what you wanna run on your phone I guess? If you want just to be pulling posts from your followers that should be fine.
    Don't think you'll be able to run an indexer to suggest posts from people you don't follow or something.
    My mastodon instance has around 10-20Gb of traffic (ingress+egress) per day and I only federate with handful of servers.
    (edited)
  109. Dean

    In reply to this message

    Yeah I mean just for posts to/from followers
    (edited)
  110. Børlaag changed their profile picture
  111. Dean
    I was thinking a phone PDS could just be for pushing data (but still using an indexer for the full experience), and maybe having a way to pull data from other PDSs. Like a self-hosted indexer that only deals with yourself and those you follow.
  112. George Antoniadis

    In reply to this message

    The main issue I guess is when other PDSes need to talk to your PDS. Since ATP is over HTTP that might be a touch call. Especially if two phone PDSes are trying to talk to each other.
  113. Dean

    In reply to this message

    Another solution might be having a client app that treats indexers like relays and push/pull from multiple indexers at once.
  114. If one indexer censors you you're still live on the others, like how nostr clients do it
  115. George Antoniadis

    In reply to this message

    I'm really looking forward to the indexer lexicon/spec.
  116. @geoma:matrix.org left the room
  117. @rimuru:gentoo.chat changed their profile picture
  118. joelghill

    I have two questions/thought on the DID placeholder and I'm wondering if folks here could share a bit of insight.

    1. Has there been discussion around how a user could be logged in to two different servers at the same time? For example a book club with a few friends and a general purpose micro-blogging service? It would be nice to have a single identity use two different networks and lexicons without having to "transfer" the account back and forth. Could the DID simply list several servers? I can imagine keeping records in sync might get tricky?

    2. Is there a distributed ledger out there that might replace the DID:plc server? IOTA looks like it also has a DID implementation that looks like it could work: https://wiki.iota.org/identity.rs/concepts/decentralized_identifiers/overview/

    I'm loving everything I've read about this project so far and I think I'm going to try and implement a server in Rust if I find free time 😃

  119. George Antoniadis

    In reply to this message

    What's the benefit of the multiple servers? Is it just for having your data stored in multiple places or something else?
  120. joelghill

    In reply to this message

    If two different servers support two different lexicons that create two different social experiences I'd like to be able to log in and use both seamlessly with a single account, especially if they have overlap in the lexicons they support. For example:

    Server A: BlueSky lexicon
    Server B: Bluesky Lexicon + Book Club lexicon (5 star reviews, ISBN... stuff?)

    They would have two different client apps, but it would be nice to have one account that uses both? When I log in to book club I interact with book club feeds throught that client, but then I swap over to bluesky app and do micro-blogging with that community.

    I just feel like there might be a use case for existing in two virtual communities as the same person.

  121. George Antoniadis

    In reply to this message

    Owh I see, you're talking more ATP than Bsky. Yeah that makes absolute sense.
    I've been thinking about how this would work for similar project and I was thinking of a way to specify which capabilities (lexicons in our case) each server (pds) supports.
    Since the plc is a series of events, it should be fairly easy to propose a add_atp_pds(did, lexicons).
  122. mikestaub

    In reply to this message

    From my understanding the reason the team is using the placeholder is exactly because this specific use-case is not possible yet with any of the current implementations. If the exact UX you described is not possible, then I would go so far as to say the protocol has failed as the whole point is to avoid having your identity being trapped by a single server. https://atproto.com/guides/identity#did-methods
  123. Luckily this is a pure technical challenge with many possible solutions. They just need to be thought out very carefully before committing to one.
  124. pfrazee
    Well so the placeholder refers more to the governance model. The PLC registry is currently run by us, and while it has some user protections it would be wiser to expand that governance by technical or social means
  125. Regarding the lexicon flexibility, that will need to be solved, how that will be solved is one of the big future projects
  126. But that’s not really a DID problem
  127. b0gg3r
    What do you mean by PLC registry? Couldn't anyone implement a PLC server themselves? Apologies, I might be missing something
  128. Dean
  129. Given the how the application spec is summarized to be similar to OAuth2 I'd assume this is (or will be) possible
    (edited)
  130. A PDS could issue 2 separate access tokens for 2 apps and give them specific read/write access to the lexicons they need
  131. And if there is a shared lexicon that both apps use then simultaneous writes can be taken care of with auto merge conflict resolving based on e.g. post time/hash
  132. pfrazee

    In reply to this message

    PLC is a global registry that has to reliably resolve lookup requests, so generally youre not expected to self-host a PLC server
    (edited)
  133. Dean

    In reply to this message

    This is doable by an indexer or even a front-end as well right?
  134. pfrazee
    you can cache or proxy the information
  135. b0gg3r
    Ah, so in practice, you're gonna have to query the "official" PLC server
  136. George Antoniadis
    I guess a PLC DID is not bound to a single PLC server, so I can push / query multiple ones right?
  137. pfrazee

    In reply to this message

    right
  138. In reply to this message

    you could but youre going to have consensus questions you cant resolve
  139. b0gg3r
    Because you can't compare timestamps from different servers?
  140. pfrazee
    yeah you're trying to maintain a single history with the key issuance for auditing purposes
  141. (quick note: I'd have to rehydrate all the design requirements into my head to nail this conversation, but I remember how it resolved)
  142. Dean
    I'm not quite sure I understand why a PLC is needed to make this system function. A PDS itself could return its history of signing keys for its own usernames?
    (edited)
  143. pfrazee
    that's a possibility and I've raised a desire to have something like that (or even the simpler did:web) for people who self host and have high confidence in their ability to maintain the dids
  144. but for people using multi-user PDS services they don't operate, it's important to have the DID system operate outside their PDS' control or else youre vesting identity control in their hands and risk losing account portability
  145. Dean

    In reply to this message

    So the purpose of it is to prevent a public PDS to return a wrong signing key for a user and take over their account that way
  146. pfrazee
    that's part of it, but it's also to ensure the PDS doesnt disappear or stop accepting changes and therefore prevent the user from migrating to a new host
  147. Dean
    So it acts as an oracle that verifies the account data the PDS returns is correct, but also acts as a fallback in case the PDS dips out
    (edited)
  148. What if there's a node system where multiple DID "PLC" servers are queried for the same data by a user PDS/indexer/front-end and considers the majority consensus as valid?
  149. In reply to this message

    Oh you answered George Antoniadis on a similar question regarding history issues
  150. pfrazee: Are you familiar with Gun's SEA module?
  151. Dean

    In reply to this message

    Could multiple PLC servers perhaps reference e.g. Bitcoin block hashes for maintaining DID operations history rather than each of them maintaining their own timestamps, to solve some of those consensus issues?
  152. I'm not sure of the SEA could help as well, but it does offer some nice features like a PoW anti-bruteforcing offline username/password system, and also multisig-like account recovery.
  153. mikestaub

    In reply to this message

    The ion DID method does exactly this, the only downside is the slowness. Looking at all the methods, you can see the team was prudent to use a placeholder as none of them are perfect and just have different sets of tradeoffs. https://github.com/decentralized-identity/universal-resolver
  154. Dean

    In reply to this message

    Cool, didn't know about this
  155. In reply to this message

    How slow? The DID PLC only returns signing keys/recovery keys belonging to an ID right? So it wouldn't need to be real-time to achieve its purpose?
  156. mikestaub

    In reply to this message

    You have to wait for a block confirmation so about 10 min to create a new DID.
  157. Dean
    What about using a faster established network? Ethereum blocks are consistently like 12 seconds now since the beacon update, and Arbitrum averages 2.5s.
    (edited)
  158. mikestaub
    Not to rabbit hole on solutioning here, but my personal opinion is that we need a decentralized
    icann.org
    clone, setup as a DAO. Which smart contract platform that DAO uses will be a hot debate. I am partial to
    koinos.io
    or
    iota.org
    but I'm sure everyone will have their own list.
  159. pfrazee

    In reply to this message

    Actually 20- ION waits for 2 blocks
  160. Dean
    I don't think economics should play a core part in the functioning of this protocol. Especially since there will already be distributed independent PDS servers and indexers, the platform could do something with those instead of outsource the DID work to a public blockchain.
    (edited)
  161. pfrazee
    Ethereum would be faster. We’re not against supporting some blockchain solutions but I don’t yet feel confident enough in blockchains to bet the network on them for our primary solution
  162. Dean

    In reply to this message

    I didn't mean integrate it completely into its core, just reference the latest block hash in a time window to have a common point for consensus among multiple DID nodes.
  163. pfrazee

    In reply to this message

    My thinking is somewhat similar, but I’d like a custom closed-membership consensus chain for the operating members
  164. Dean

    In reply to this message

    I think people would prefer real decentralization over permissioned authorities
  165. Otherwise people could get the impression that the platform risks being no different from a social network being operated by a board of insiders
  166. In reply to this message

    What is are the main downsides to having DID consensus be paired with public blockchain block data? Users will only have their accounts created/recovered after x minutes?
  167. pfrazee
    fair warning, if you say "real decentralization" youre risking me writing an essay
  168. b0gg3r
    Subscribe
  169. Dean
    I'm trying to speak from the pov of a twitter/mastodon refugee
  170. In reply to this message

    sure totally. So bear with me, I gotta at least mini essay this
  171. a shorthand of my broader argument is to say "sufficient decentralization." Ultimately what we're talking about is the authority model and how authority is either distributed, constrained, reversed, or exited. I personally see it as a tech equivalent of the kind of government designs that locke, montesque, and paine were all writing about
  172. so let's look at this particular system and the attributes we're looking for
  173. this is the DID system, meaning it's the provision of (essentially) UUIDs which securely map to a certificate (the DID Document). The certificate provides the users' public keys and active services, and nothing more. It's a highly constrained system with some analogues to DNS or TLS CAs
  174. now the interesting trick with decentralization is that it's simultaneously a civic and a technological practice. You have to satisfy the requirements of the system and create open governance
  175. so for DIDs, the tech requirements are things like reliable resolution of DID->DID Doc, speedy resolution, speedy updates, and multiple security properties
  176. the civic requirements are low costs for PDSes, low or no costs for end users, strong guarantees against censorship, strong guarantees on that cost structure, and the right to exit to alternative systems
  177. (we can debate these requirements)
  178. with that in mind, the two strongest candidate designs that I've found are did:web-style for users who are able to self host, and did:plc-style for non-self-hosters. And as I said, I'd like to see did:plc get re-engineered to a multi-operator consortium which requires consensus among the operators to change any policies, and which automates auditing between the operators
  179. that said, the did model is also designed for lost of methods to be produced, which also enables decentralization of design -- people other than us can present solutions and ATP's governance can bless the good methods. (And now we're into layered governance, hooray)
  180. did:plc in it's current form does not satisfy us, which is why we named it Placeholder (PLC = Placeholder). Once we've rebuilt it to have the right properties, we'll backronym it into something like Provable Lite Certificates or some nonsense
  181. or perhaps we'll all decide it's the wrong base model and migrate off of it
  182. and it's worth noting, part of the reason we decided to move forward with PLC is not just development expedience, but also because there's not a mature enough community to even form a consortium. We need to develop the stakeholders
  183. so this is the framework by which I examine these sorts of things. And to my mind, we're accomplishing sufficient decentralization at this stage, and have created the right pathways to decentralize further over time. It's a highly constrained authority, and there are mechanisms of choice/exit
  184. one other related observation that's to your point, Dean -- all of this is about providing an acceptable system to the users, which means it's a dialogue. Authority flows from the governed and not from the above, so if this isn't acceptable to people, then we'll certainly find out
  185. Dean

    In reply to this message

    What happens if the PLC server vanishes?
  186. pfrazee
    then the regime has failed
  187. Dean
    I mean, what happens to the apps building on ATP and the federation of bsky social apps
  188. pfrazee
    it depends of course on how the vanishing is happening, but let's say that the whole PLC operating group fell off a cliff
  189. and the server blew up and nobody could recover the system
  190. PDSes cache their DID resolutions -- especially for their own users -- so they'll have local caches
  191. so the system will begin to degrade as cache misses occur
  192. the PLC server code is available so probably the community of PDSes would get together and put a new server up ASAP
  193. and they'd start rehydrating the PLC server from their caches
  194. depending on how successful that is, and the general vibe about what just went down, the network would then either continue with the new PLC operators, or they'd see this event as a change in the requirements: we now see that loss of service is more likely than expected and needs to be designed around
  195. and subsequently a new system would be designed and deployed that would solve the problem that PLC operators keep falling off cliffs
  196. Dean

    In reply to this message

    Would this open up an opportunity for bad actor PDS providers to deliberately withhold DID data?
    (edited)
  197. e.g. to reclaim usernames or get rid of users
  198. pfrazee
    it could. The process would be chaotic. It would be a major ordeal
  199. b0gg3r

    In reply to this message

    Can you elaborate on this?
  200. pfrazee

    In reply to this message

    1 there's a typo, that should say "lots of methods" not "lost of methods"
  201. Dean
    I personally would prefer batching DID operations together and executing them at an interval by using btc or eth block data for consensus on data updates (Your account will be ready in ~8 seconds...) rather than needing to trust a single point of failure which adds a risk factor of the entire ecosystem crumbling
  202. There are also developers who might not want to even build an atp/bsky app simply because they don't want to risk their work being for nothing if a black swan happens and the DID service goes down
    (edited)
  203. pfrazee

    In reply to this message

    regarding the "blessing of methods," there's a kind of social consensus element to the design of a protocol. If you design a new did method and start using it, but other ATP nodes dont implement the method, then they wont be able to resolve those DIDs. So there's a governance-of-ATP question about how you coordinate the adoption of new DID methods
  204. Dean

    In reply to this message

    Could a simpler (temporary) solution for the current DID PLC system be offering an open-source back-up node process that automatically clones every update? If the PLC server goes down then backup maintainers could agree on the latest hash and spin up a recovery server once its verified the new server data matches
  205. pfrazee

    In reply to this message

    for sure. Any number of protections against failure could get employed here
  206. Dean

    In reply to this message

    Something like that would make for a far more reassuring black swan situation than this
  207. pfrazee

    In reply to this message

    again, this is why it's an open discussion. Blockchain methods have downsides too. A lot more overhead as you sync chain state, higher cost per transaction, things like that
  208. Dean
    You could use IPFS Pubsub with publickey write auth to publish data updates from your DID service to automatically let backup nodes sync it
  209. pfrazee
    might not even require IPFS Pubsub, just a public http endpoint
  210. Dean

    In reply to this message

    I didn't mean applying blockchain logic, just referencing block data from RPC nodes to agree on a "commitment hash" periodically so operations can be synced across multiple services to make things relay-like
  211. No transactions involved
  212. pfrazee

    In reply to this message

    yeah totally open to design proposals like that, just ends up being very detail oriented
  213. Dean
    tldr "instead of timestamps which cause relay consensus issues use blockstamps"
  214. pfrazee
    afaik that really is what ION is doing, but it's still pretty nuanced
  215. Dean

    In reply to this message

    I do think that this hypothetical could be a dealbreaker for many people
  216. The sheer possibility of it happening (even if only in the early stages) without a reasonable fallback in place to keep data alive could be one of the biggest arguments in a debate of "bsky vs others"
  217. pfrazee
    you really think there's a high likelihood of PLC disappearing?
  218. Dean
    I don't, but people who care about self-ownership and decentralization of data are trying to get away from anything that sounds like "just trust us"
  219. In reply to this message

    In this case, the "just trust us" would be this
  220. And given the recent events with FTX, I think a lot of people have become automatically more wary of where a single point of failure lies or what a black swan for a product would look like (rightly so), especially if the product is supposed to have the feature of personal data ownership/control/portability
  221. mikestaub

    In reply to this message

    imo a better use of the core team's time would be to implement a "bring your own DID" to the PLC. Solving the global trust issue is out of scope for Bluesky at this phase of development. That way if a user was truly paranoid, they could use did:ion as it's unlikely the BTC network is going down anytime soon.
  222. For what's its worth I am such a user. I will gladly test the beta and help contribute, but I wouldn't actually start using the system for real unless I could have full control over my DID.
  223. pfrazee
    I gotta dip to a team meeting but "bring your own DID" needs some kind of universal resolver, solve that and youre set
  224. Dean

    In reply to this message

    Same here
  225. I also would prefer as a developer that any front-end client I build on bsky does not need to rely on a central authority knowing there's a risk of having my service being "brought down with it" in case something happens with it
  226. (referring to bsky as the lexicon)
  227. Aaron Goldman

    In reply to this message

    the did:plc:<hash> is the hash of the origin document. Only a current account key or recovery key can sign the document mutation operations in the operation log. The PLC server's key only signs the timestamp operations in the operation log. Only the collusion of the PLC server and the account controller could "reclaim a DID". Even if they did collude if a PDS ever saw two conflicting operation logs that PDS would have cryptographic proof of the duplicity of the DID and could gossip around the DID as a dead duplicitous DID. They could also use this proof to campaign for the migration of the PLC server to a new organization.
  228. Aaron Goldman

    The promise the PLC server makes is that it will return the complete operation log that it has including a timestamp operation at the end singed by the PLC server.

    • If it ever returns a shorter log then one it returned earlier with a later timestamp
      then the requester has prof of duplicity.
    • If it ever returns a log without the earlier as a prefix with a later timestamp
      then the requester has prof of duplicity.
    • If it refuses to sign updates the DID controller can hand out the document mutation operation to PDSs. When they submit the mutation, request the log and don't see the update
      then the PDS has prof of duplicity.
    • If the PLC server fails completely this will be obvious. The open source project, or a fork of it, would need to add code that said all timestamp operations before the failure must be signed by old_key and all the timestamp operations after the failure must be signed by new_key. Since every PDS should be storing a copy of the operations log they can upload the log to the new PLC server and get a timestamp operation signed by the new server. After that they could make document mutation operations again as they are on the new PLC server.

    It is on the open source project to keep a list of PLC servers and the TID ranges that the are allowed to sign. This is probably how the transition from a PLC server run by Bluesky PBLLC will be transferred to a Raft/Paxos like consortium of PLC servers run by different organizations but also the threat that should keep any organization running the PLC server honest.

    The main question is wether we want to allow a tombstone timestamp operation signed by the PLC server that says I have banned this PLC and refuse to take any future updates from it.

  229. Dean

    In reply to this message

    An issue with Mastodon is some instances block other instances out of spite, creating clusters of instances (e.g. a bunch of Mastodon instances block cryptodon because the admins are anti-crypto). What would be the argument against a statement that this same issue can arise with atp/bsky, just "offloaded" to DID providers instead of instances?
  230. George Antoniadis

    In reply to this message

    Can def see PDS admins banning other PDSes that spam too much, but in the case you you don't agree with your PDS admin you can just pack your identity and move somewhere else.
    I'm not sure what the Bsky PLC server functionality though. Does it just handle all PLC DIDs or will it have terms that allow it to remove DIDs they don't like, have been reported, etc?
    ie. Will the Bsky PLC Server stop serving all DIDs that have a handle from a PDS that produces spam, or they just don't like?
  231. Dean

    In reply to this message

    I mean in this case DID PLC servers could do it too
    (edited)
  232. b0gg3r

    In reply to this message

    I kinda presumed the reason we aren't creating a PLC driver for that was because it would somewhat undermine the "placeholder"ness
  233. mikestaub

    In reply to this message

    We can still use the plc driver for the main flow of signup, but use that library for the "bring your own DID" advanced feature, which I would not expect to exist in the beta.
  234. In reply to this message

    From my understanding the PLC server should only handle DID logic, the spam is handled by the indexer.
  235. George Antoniadis

    In reply to this message

    I'm worried that this will come back to the PLC server at some point, if you get a couple of tens or hundreds of thousand new DIDs in a matter of hours/days, and subsequently many PDSes start asking about those DIDs I can see this being a bottleneck.
  236. Considering that spam bots are now in matrix, won't take them long to dig into bsky once it's up.
  237. mikestaub

    In reply to this message

    DDoSing the PLC can be managed by standard rate-limiting and captchas. Dean was raising the concern of censorship which is an orthogonal issue. Freedom of speech = DID resolving, freedom of reach = indexer moderation. PLC can't stop users from publishing to their PDS, but it can choose not to surface that content.
  238. If the PLC stops resolving DIDs correctly, like Aaron Goldman mentioned it will be obvious to all.
  239. whyrusleeping
    While I do think we will do a good job running a very simple and performant DID server, i'm a huge advocate for us adding new DID method resolvers to the PDS software to allow more 'BYODID' solutions
  240. its definitely on the TODO list, just a question of priorities at this point, so much to do D:
  241. mikestaub

    In reply to this message

    The fact that the team has not worked on this feature is a very positive sign and demonstrates rigorous focus.
  242. whyrusleeping
    heh, appreciate that
  243. the team is generally very well aligned, and pretty good at ignoring shiny things
  244. mikestaub

    In reply to this message

    This is a very rare thing. Especially in this space.
  245. arcalinea
    There really is just an insane amount of work to do. We're constantly torn between the dilemma of "launch without X" or "delay launch", and it's simply a matter of gambling on the least-bad option...
  246. Currently asking "what can people forgive us for launching without, if we have a roadmap for building it?" and "what does 'launch' mean -- can we bring in a group of users who will be happy if pieces are still being developed as they start using it?"
  247. @neilalexander:matrix.org

    In reply to this message

    Features missing/in-development indeed did not really stop people from trying out ActivityPub or Matrix
    (edited)
  248. mikestaub

    In reply to this message

    I agree. The early adopters are the most forgiving, especially if you listen to their feedback and include them in the process. Obviously its not useful to ship anything that is broken, but I would encourage you to reframe the term 'launch'. Ideally there should be many small launches happening on a regular cadence. I highly recommend this book. Its an easy read ( 4 hours ) and cuts right to the heart of it. https://smile.amazon.com/gp/product/B00VDHRFWU
  249. @vera:fairydust.space left the room
  250. arcalinea
    Yep -- the biggest pieces I think need to not be broken are moderation and federation. There's a lot more to implement beyond what we'll start out with, but we need to get the basic foundations in there.
  251. The initial pieces sketch out what's to come, so I think we should take the first steps in code, and communicate where we're going with the rest.
  252. Siddharth Singhal joined the room
  253. bnewbold
    IMO there is not much existential to worry about in the DID and DID:PLC situation because of the self-certifying design. the big trust and governance concerns are mostly around withholding information, and I think the ecosystem would have a lot of tech options and precedent for routing around a bad actor PLC service. I do worry about the UX around the recovery key setup for most humans, but I would guess folks most worried about centralized service trust are equipped to hold their own keys and do their own crypto
  254. doing bulk public dumps of PLC service state (eg, daily/monthly torrent files of current state for all operation logs), or embedding operations in atproto repos (as a copy), could be low-cost ways to increase resilience
  255. Dean
    Another thing came to mind regarding the centralized DID provider: an app that competes with Bluesky may not trust that their PDS's DID operations won't be artificially throttled by the Bluesky DID PLC server to worsen its performance (thus moving users from competing app to Bluesky). Is there a way to completely negate that as a possibility with the current system?
    (edited)
  256. Dean
    Message deleted
  257. Dean

    In reply to this message

    This would be a way for a centralized DID service to be a bad actor without provably manipulating PDS data (it still ends up on the DID server, just slower and after several attempts)​
  258. Aaron Goldman

    In reply to this message

    Personally I would just put them in a atproto repo but then I like repositories as a way to make data subscribe-able. 😛
  259. mikestaub

    In reply to this message

    This is a non-issue as there already seems to be a plan to implement a "bring your own DID" feature for power users.
  260. mdangear set a profile picture
  261. Dean

    In reply to this message

    So other PDS providers can use their own DID service and be completely independent from the Bluesky PLC?
  262. @govbotdotnet:matrix.org

    In reply to this message

    chronological list of posts in either direction by a)all followed b) subset groups c)publicly curated lists d) using a specific word or set of words ... you get the point. so long as there is user choice and it's open for innovation
  263. @govbotdotnet:matrix.org

    In reply to this message

    With the assumption of authentic people of good will it would be fine
  264. mikestaub

    In reply to this message

    whyrusleeping: mentioned that eventually this is what they want to implement. Makes no sense to work on it before the beta is out.
  265. Thib changed their display name to Thib (away, back on Jan 3)
  266. Dean

    In reply to this message

    Yeah I think it's pretty much a requirement for third party PDSs, also to ensure more data resilience.
  267. whyrusleeping
    The PLC DID method is intended to be run by a consortium in the future, to further reduce its dependence on us. It's designed in a fairly trustless way, definitely trying to mitigate these sorts of concerns as much as possible
  268. but yes, people will be able to use other DID implementations and be completely free from everything we're building here
  269. the ethos of the project is ownership over your social data, having a hardcoded single point of failure like PLC would be silly
  270. bnewbold

    In reply to this message

    I think it is worth being skeptical of the long-term identity mechanism being coupled/controlled by a specific PDS server provider (in this case bluesky PBLLC). The claimed benefit of the identity mechanism is an independent account migration path; if the provider themself controls the migration mechanism that is a problem. the concern you mention (artificial update throttling) is a possibility, and there are a bunch of other bad behaviors possible

    The trust required in the short term is that bluesky will actually find a neutral party to run the PLC service (I think of letsencrypt as a role model). The need for this trust is hedged by:

    1. the technical details of did:plc which would enable the ecosystem to do a disruptive hard fork away from a single bluesky PLC service on their own (in the hypothetical case of bluesky going sour and not following through on migration, others could start an alternative PLC service copying most existing identities over);
    2. tech details of did:plc making it relatively easy for third parties to detect and prove bad behavior on the part of a PLC service provider;
    3. the use of DID as a format at all, providing a clear evolution path for the protocol/ecosystem away from PLC specifically (aka, if PLC ends up being a bad idea, ecosystem can still keep the rest of the atproto tech; eg time spend developing clients wouldn't be wasted)
      a nice-to-have 4) would be early support for a handful of specific alternative DID mechanisms; that is a prioritization question and seems reasonable to punt on
  271. app/bsky/feed/post.json is invalid
  272. Aaron Goldman

    In reply to this message

    lol, Lint tools why have you failed us 😭
  273. Dean

    What's wrong with this request? Used to work a few weeks ago:
    GET http://localhost:2583/xrpc/app.bsky.feed.getTimeline?limit=1&before=2022-12-20T21:34:54.359Z`

    Now getting Error: Malformed cursor

  274. Looks to be related to date formatting, does it use timestamps now instead of ISO strings?
  275. Looks like date formatting is different across different objects in the lexicon, some use unix timestamps and others use ISO
  276. Dean
    Timestamps return the same error
  277. b0gg3r

    In reply to this message

    I think that audience is this channel
  278. arcalinea
    I'm hearing that it's important to this channel that we implement a secondary DID method, and the current discussion is how much that should factor into launch
  279. arcalinea
    It's not currently at the top of what I'm most worried about getting done. So we already face a conundrum within this channel of "ship now" vs "ship features".
  280. Dean

    In reply to this message

    Ok figured it out. It uses timestamp::cid now for before property
  281. Aaron Goldman

    In reply to this message

    3jkd-hl2-4f2e-22
  282. mikestaub

    In reply to this message

    I recommend having a design proposal for implementing at least one other DID method at the time of the first release. It is definitely not worth implementing this early on, and the decision for a placeholder method was very prudent.
  283. Daniel Holmgren
    worth pointing out that we already have resolution code for did:web: https://github.com/bluesky-social/atproto/blob/main/packages/did-resolver/src/web-resolver.ts
  284. also i think using universal resolution is a non-starter. did methods are too different: consistency guarantees, resolution time, propagation time, etc. universal resolver abstracts over too much imo. also the current universal resolver implementation is a collection of like 50 docker containers which is just heavy & cumbersome to run
  285. arcalinea

    In reply to this message

    this might be a reasonable compromise -- to map out the path to ship another DID method without implementing it.
  286. @grumbulon:schizo.cafe joined the room
  287. Dean
    I noticed avatars use cids so they have to be uploaded to the PDS. I can imagine apps wanting to use ipfs or an external image hosting api for avatars and image uploads, rather than hosting it on their own server. Will there be some native support for that?
  288. (Alternatively one could modify their PDS to redirect an avatar cid to an external image, but that would still cause extra traffic to the PDS)
    (edited)
  289. @amar:matrix.org left the room
  290. @gulci:halogen.city joined the room
  291. dgn
    If you want to build a decentralized social media that the whole world expects, you should release the closed beta immediately and get people to help you. With the closed beta, bugs and solutions can be found faster and we don't have to accept the commitment of a group. You should keep the concept of decentralization alive with us. Bluesky is a social media that should contribute to us. Please grant me access to the closed beta so I can discover bugs and help you. arcalinea @pfrazee Aaron Goldman
  292. Dean

    In reply to this message

    Accepting either a pds cid, a full url string, or an ipfs cid (maybe with something like ipfs:// prepended) in the avatar field might be a good solution to accept different avatar types instead of "locking it in" to a PDS
    (edited)
  293. I'm looking for ways a smaller community PDS can save on bandwidth in case it gains a sudden influx of users
  294. Imagine you get 100k users overnight, a free PDS provider would definitely benefit from IPFS or URL based avatars and image uploads rather than having their server's space filled up with avatars (or a sudden cloud storage bill)
  295. mikestaub

    In reply to this message

    "If you want to go fast, go alone. If you want to go far, go together." I have been watching the team's progress from the beginning and can confidently say there is no way they would have reached this milestone so quickly if they accepted open source community PRs from the start. There will be a time when we can rally around the core team and help Bluesky scale into what will likely be a tsunami of user demand. Now is not yet the time. I trust them to let us know when they are ready.
  296. @olu:memoryandthought.me joined the room
  297. arcalinea
    It takes time to respond to open source contributions, just as it takes time to keep up with and respond to the feedback here. The protocol is already on Github and available for comment dgn , the only thing we haven't open sourced yet is the client.
    (edited)
  298. Technically, you don't need to even see the client to be able to build on an open protocol that's already on Github. Several people have built small client demos already. Us building a front-end will make it a lot easier for people to understand and use, but it's not strictly a requirement.
  299. Daniel Holmgren

    In reply to this message

    part of the lexicon blob system is the constraints that you can put on blobs (ie "less than 300kb" or "less than 500x500"). if we leave this unconstrained, you're moving the burden to the client. And suddenly my client may be burdened with downloading the avatar of some troll that decided to upload a 10MB high res pic.
    your PDS is your agent in the network. so to prevent bombarding small PDSs for avatars, the expectation is that each PDS will cache the avatars they come in contact with. to illustrate: if my PDS has 100k users and they all follow you on a self-hosted instance. You should only have to serve the image to my PDS once not multiple times to all 100k users
  300. In reply to this message

    I don't think that issue is particular to images. it's also relevant to repo storage, follow subscriptions (in & out), indexing content, etc. scaling challenges exist & we can't just offload them by moving avatars somewhere else. a small free PDS would likely want an invite system (or a cap on signups)
  301. Aaron Goldman
    Not a plan currently but might be interesting once there are a number of PDSs that your PDS is connected to run BitSwap. When one of the repo's on your pds subscribes to a repo on another PDS your PDS subscribes to the other. But it only needs to be pushed the latest commit from the other PDS. It could use BitSwap from there to get the rest of the repo from whichever PDS it is best connected to.
  302. Dean

    In reply to this message

    Interesting. I'm curious what the PDS and indexer specs will be for x amount of active users.
    (edited)
  303. @erdlanax:matrix.org joined the room
  304. @npettiaux:matrix.org joined the room
  305. @erdlanax:matrix.org left the room
  306. Dean
    Will NSIDs use custom headers (like ATP-User: ...) for resolving a domain to an ATP DID?
  307. Daniel Holmgren

    In reply to this message

    we're working to build this for multiple levels of scale through plugins for different services. take for example blob storage & img processing: we use on-disk storage + an npm library (sharp) in the small PDS case, but s3 + imgProxy for our deployment
    I'm also curious to see how exactly resource cost will shake out & what the scaling limits are for diff hardware + diff plugin sets
  308. In reply to this message

    resolving a handle to a DID is just an XRPC query (which is just a normal HTTP req underneath)
    and to clarify terminology: NSIDs are the reverse domain name identifiers for lexicon schemas (app.bsky.feed.post for instance) and don't resolve to a DID. Handles are the federated usernames @daniel.bsky.social that resolve to a DID
  309. no strict requirement that NSIDs are resolvable over HTTP
  310. @miker2049:groupchattt.page
    Re
    this
    : Do you guys think that non-technical/non-nerdy people care about account portability enough to adopt this over activitypub? I have found that most people relatively don't mind manual migrations (although I fully acknowledge this as spurious/anecdotal), but more importantly, the whole enterprise seems at odds with the old internet principle where "nobody has to know you're a dog", so to speak.
  311. In that, there is something nice/liberating about being able to spin off a new account if you want. All this just seems to encourage you to give up this liberty.
  312. I get that nothing about atproto forces you to use one account, but its hard for me to see the true value add of account portability, when there are equal benefits to maybe not having one single identity for everything, if that makes sense.
    (edited)
  313. Seve(rino) Zeni joined the room
  314. @npettiaux:matrix.org
    Why would this social network be interesting for someone who likes the fediverse ?
  315. whyrusleeping
    “Non-nerdy people” like big world indexing
  316. I also find lots of non-tech people i talk to really care about account portability, especially being able to retain their social connections if they move to a new platform
  317. Yeah it’s sometimes nice to start over, but most people i talk to dont want that. And the general internet sentiment seems to care a lot about account portability
    (edited)
  318. @miker2049:groupchattt.page
    huh, got it
  319. @miker2049:groupchattt.page
    I guess I'm just thinking about how a strong sentiment around mastodon is that it is "complicated", and there is so much friction around onboarding people because they just don't care about federation, just want to log in and be with people. And I'm trying to imagine pitching all this stuff to someone whose maybe finally gotten on board with mastodon despite that friction, and having to be like "ok, but now you should do bluesky because its like mastodon, but better because of X,Y,Z". I can just picture their eyes glazing over about it.
  320. People are migrating to mastodon despite all the friction simply because of the calamity at twitter, and I can't imagine there will be an analogous incentive in acitivitypub to spur a similar migration to bluesky
    (edited)
  321. because by design, there wont ever be some single event there that affects everyone
    (edited)
  322. Adam Lake
    Why not just make BlueSky compatible with Activity Pub?
  323. @npettiaux:matrix.org
    I advertise as much as possible that #mastodon and the fediverse are today the best social networks
  324. Because they are linked thanks to activitypub, are free software and are decentralized
  325. What has bluesky to offer that may surpass this ?
  326. Adam Lake

    In reply to this message

    There already is account portability for the Fediverse. Granted, server hose can screw users over if they want to and so yes we need to store our data outside of the server that hosts our account. As I understand it, nothing about the activity pub protocol prevents account portability or the use of DIDs or anything like that.
  327. @miker2049:groupchattt.page
    I am referring to that very same FAQ
  328. oh sorry I thought that was a reply to me!
  329. George Antoniadis

    In reply to this message

    The fact that a server can "screw you over" is pretty bad on it's own, the fact that posts and identities are not cryptographically signed is probably the biggest concern for me. I think there was a suggestion to add signatures to activity pub but don't think it went anywhere right?
  330. Adam Lake

    In reply to this message

    Sure, we need those improvements, but why abandon Activity Pub simply because implementers haven't created the features of the next phase of the Fediverse? The social web interest community group has opened back up at the W3C. Issues around data portability can certainly be discussed there. We need open standards and transparent governance to foster a true public good for decentralized social media. It's hard to believe that Blue Sky can serve that function, even if I agree with the direction and many ways from a technical perspective. Again, There is no reason that activity pub can't be extended to support decentralized identity and data ownership.
  331. George Antoniadis

    In reply to this message

    I don't speak on behalf of the bsky team, but they are a pretty small team and they are trying to make this protocol the best they can. Trying to shoehorn an incompatible piece of tech doesn't sound like the right thing to do at this point in time. I don't think anything is stopping people from trying to extend activity pub to support atp/bsky and certainly don't believe that it's something that will never happen.
  332. Adam Lake
    I wish that Blue Sky was more transparent and had more open governance. The questionable ties to Jack Dorsey give me pause. I do hear really good things about the Blue Sky tram and have no reason to question their good intentions. Unfortunately funding streams don't often come without strings attached. We will see how it all pans out. Is Atprotocol truly open source, so that others can leverage what is being developed?
  333. Team*
  334. @miker2049:groupchattt.page
    Adam Lake: atproto is
    open source
    , the spec is public
  335. @gulci:halogen.city
    is the source code being on github and MIT licensed somehow not being “truly open source”?
  336. @miker2049:groupchattt.page
    but without being maybe as forceful, I agree with the general feeling that... from a global view, its just exciting activitypub is growing, news organizations are starting to think about making their own instances, and people are catching on to it. and its hard to think about making yet another, somewhat similar thing and going through all this again.
  337. neither of these things are for-profit companies, nobody should feel threatened or competing
  338. Adam Lake
    The MIT license looks very permissive. Awesome
  339. @miker2049:groupchattt.page
    I think we all want the same things
  340. Adam Lake

    In reply to this message

    Most of us want something very similar. I don't trust the Oligarchs to do the right thing.
  341. @miker2049:groupchattt.page
    Sure, but neither bluesky or mastodon is going to stop or change the power/influence of those kinds of people. There is always going to be people with enough resources and incentive to adapt to new specs and networks in order exploit them for money and attention.
    (edited)
  342. We can just do the best we can!
  343. Also read the blog posts from February here: https://blueskyweb.xyz/blog
  344. The company is quite transparent about funding and governance, and the code is on github and permissively licensed
  345. Karl Abbott changed their display name to Karl Abbott (Away Until 4-January-2023)
  346. @sterence:sleeby.cafe
    i dont know why bluesky needs to be compatible with activity pub, i've been hosting a pleroma instance for 2 years and i'd rather get away from it instead of drag everything back to activity pub. activity pub isn't built for resilience and i know someone who lost a domain and it took a lot of work from a few smart people to try and move accounts to a new instance and even then it barely federated the changes properly. nobody is stopping people from still using activity pub, if you value an established community then stick with it, but at protocol looks like it fixes so many problems of the current fediverse and i'd say we're insanely lucky that we're getting something done well from experienced devs who have the funding to build it properly.
  347. mkpal202117
    Me too a little
  348. @miker2049:groupchattt.page
    yes. to be clear, for my part, I'm really really not trying to poopoo anything! I am very enthusiastic about all this work. any careful, well-supported labor around a pure protocol is exciting and rare in a world where most things tend to become vulgar commodities. I am really just trying to think through what adoption will look like here, in part, precisely because of the non-commercial aspect of the venture. and either way, bsky has been funded millions of dollars to do precisely the thing that was in their original pitch, so its probably out of the question to like tell them "maybe you dont need to all this?". In reality, the proof will be in pudding. If bluesky doesn't catch on, and mastodon keeps growing in popularity, they will probably be somewhat forced to create compatibility with activity pub. alternatively, if its a huge success in terms of adoption, it will probably be mastodon who will have the burden of becoming compatible with bluesky!
  349. whyrusleeping
    Yeah, we're really focused on building the right thing. We've been given a crazy opportunity here to build something foundational, and we're not about to blow that. The gravity of the situation is very front and center to all of us.
  350. @govbotdotnet:matrix.org

    In reply to this message

    I agree in a sense for individuals, and would go so far as to entertain brainstorms about a network that allowed a new random number attached to each post, (or nothing public at all), rather than an account... perhaps in some way that all can see that post, but in a way that only voluntary agreements would allow that post to be linked to a) any number of other posts, proving they are the same identity b) any series of characters that make up a handle of poster's choice ... and then, that or those posts only to be linked together that way by any other user who can provide the proper credential defined by the poster (password, captcha, iq test, woke litmus) But... for corps and brands portability is huge and failsafes for account preservation are needed I would think.
    (edited)
  351. In reply to this message

    ... aaaand none of what I said addresses this key point. i imagine the onboarding to be driven more by adoption. early stages are to bring in the techs to build, who suffer alone in wait of normie herd
  352. Aaron Goldman

    In reply to this message

    The onboarding problem is almost never about the tech. It is about bootstrapping the network. I will jump through hoops to get to a network that has my friends and information I care deeply about but the network starts empty.

    is hard to edit with most changes reverted immediately. I could post to a social network far more easily but it is worth the time because Wikipedia has a significant audience. If you have a significant publisher base you draw a significant audience. If you have a significant audience you draw a significant publisher base.

    So why does account portability help? It helps with small communities of value. Lets say there was a conference that used a atproto PDS and the

    Lexicons. An attendee gets a DID and uses the PDS for the one conference. When the conference ends they turn off the PDS. Now the attendee can just migrate if they want to keep using the network. You don't make people use an identifier from outside but no one is the person that can't fully participate at the conference because they happened to be banned from Discord.

    Who's bourdon is it to preserve the conversations from the event? The organizers don't have to maintain a PDS for all time to keep the conversations anyone that wants to could pin the content. It is all signed and all in repositories. Just crawl the content and keep a CAR file. You can decide to serve the data later it will all still be valid.

  353. @miker2049:groupchattt.page
    What is the benefit of creating a dedicated PDS for this conference?
    (edited)
  354. Maybe just that the hypothetical conference is not attached to a larger context/organization? But still needs something persistent after its over?
  355. Just trying to think of a good example. Conferences typically want to preserve a network anyway, and are annual anyway.
  356. @miker2049:groupchattt.page
    Like, if a conference has whatever reason to ban somebody one year, why is it better to use a system where you start over every year after and make the same decision?
    (edited)
  357. Mehrdad joined the room
  358. Mehrdad Senobari changed their display name to Mehrdad
  359. FledgeShiu joined the room
  360. Interesting Chinese joined the room
  361. Børlaag changed their profile picture
  362. tessitore
    I'm hoping to get an invite to the Discord ... the link I found was broken
  363. Aaron Goldman

    In reply to this message

    Do you mean the dSocialCommons discord?
    There is no bluesky discord anymore just this matrix room.
  364. https://discord.gg/dHfuwAJN may be what you are looking for
  365. @gulci:halogen.city
    ooh didn’t know about this server. thanks for the share.
  366. tessitore
    That is better than I was hoping for. Thank you! @Aaron Goldman
  367. Matthew
    happy holidays, blueskiers
  368. @michael31:matrix.org joined the room
  369. @michael31:matrix.org left the room
  370. @gulci:halogen.city left the room
  371. hsoc joined the room
  372. i99988
    Message deleted
  373. zekarlos changed their profile picture
  374. panchowray joined the room
  375. taosheng shi joined the room
  376. omasanori changed their display name to Masanori Ogino
  377. @truethomas7:matrix.org joined the room
  378. @sijvert:matrix.org joined the room
  379. candeniz joined the room
  380. pragboss_666_88 joined the room
  381. @miker2049:groupchattt.page

    Sorry if my last questions were dumb. Still trying to figure out "small communities of value" qua ephemeral networks, and why they are good/desirable, and also, why people would choose them.

    One other thing: in a scheme which focuses on this decoupling of identity from a particular network, I feel like there will be natural inclination to leverage this feature/aspect around things like moderation and user curation, such that there are public blacklists/whitelists of accounts to combat things like the future horde of chatgpt bots and such. And that seems great/needed, but won't the inevitable false positives in these lists/filters be extra disastrous for a given individual? Suddenly, their whole identity will be person non grata, and there wont be any single place to appeal. One day, they are filtered from the public on bluesky, but also find they can't log into their family's group chat, or their university's network. The greater they have relied on the portability of their account, the more different appeals they have to make and fires they have to put out.

    We see already today how ruinous it can be to be flagged by some Google bot and suddenly lose access forever to documents you stored in drive. Wont this spec encourage a world where these problems are greater and even more impersonal? I understand, by design, ATP itself cant deal with with these problems other than dividing "speech" and "reach" layers, and making it possible in principle to control your own moderation/filters. But in practice, surely most people will just rely on the filters and the moderation they are given with the service they choose, whether bluesky or something else, right? The character of the problem of being "locked out", blacklisted, etc, wont be really different than today, or will it?

    (edited)
  382. There are just some aspects of being encouraged to put all your eggs in one identity basket, so to speak, that are potentially kinda scary/dystopian.
  383. Aaron Goldman
    This is a symmetric win and loss. Yeah a negative reputation could follow you from one network to another but the same is true of a positive one. A service might start out new users with a very restricted account. Can't post until you have met some threshold. If you can bring a good reputation with you then you can start with rights you would otherwise have to earn.
  384. An account that was created this morning. No credit score. An account that was created this morning and is in good standing with Google, LinkedIn, Eve Online pretty good credit score.
  385. @miker2049:groupchattt.page
    Ill be honest that's not helping it feel any less scary, but definitely see that there are wins here too
  386. @npettiaux:matrix.org left the room
  387. snarfed
    hi all! I'm hitting some semantics questions about app.bsky objects here and there. is this a good time/place to ask those? totally ok if it's too early!
  388. for example: in app.bsky.feed.feedViewPost, it looks like a normal post would go in the post field. for a reply, is that still true, and the original post goes in the reply field? or vice versa?
    (edited)
  389. snarfed
    oh nm, I assume the latter, since reply is a replyRef, which has root and parent
  390. justfahad joined the room
  391. mikestaub
    This could be a useful tool to let users self-host their PDS: https://github.com/microfeed/microfeed
  392. snarfed
    another small one: in app.bsky.feed.post#view, record's type is unknown. from looking through the code, it seems to usually be app.bsky.feed.post. is it sometimes something else? or was there another reason to not make it a typed ref, or a union? https://github.com/bluesky-social/atproto/blob/03c6c140fa1e44f55e64424e423f918c16d10f48/lexicons/app/bsky/feed/post.json#L59
    (edited)
  393. @sky0n3:matrix.org joined the room
  394. Daniel Holmgren

    In reply to this message

    the naming is maybe misleading there, and we may be updating it cause that's caused confusion for a couple folks. Think of reply as replyTo. So a given post (that is a reply to some post) would be in postand then you'd include it's parent & root of the thread inreply\
    (edited)
  395. In reply to this message

    unknown is the same as an open union with no refs in it. In both cases, you need to check the subobject's $type to determine what you're looking at. This could probably be an open union with app.bsky.feed.post made explicit. will need to run it by Paul to make sure im not missing something 🤔
  396. Daniel Holmgren

    In reply to this message

    Unfortunately questions like this will always be an issue in an open network where you have to separate signal from noise . One important consideration is to handle moderation/filters at the proper level of resolution. Server bans should be thought of as a last resort escalation, and we're building tools for emergent community-led moderation that sits atop ATP & spans servers. These filters can be context specific. If you post a bunch of micro-blogging spam, these moderation zones will likely start to filter out your content. But this shouldn't affect your family's group chat
  397. Michael joined the room
  398. -nicb- changed their profile picture
  399. Michael

    so i've been kinda reading the identity "guide" in the

    docs, and there's something i'm still not clear about: suppose you decide to publish to multiple PDS's, because maybe for example you're trying to switch hosts. how do you then invalidate the one you want to switch off of, since you're trying to use the new one? people should not still be able to query the old one since it might return outdated information.

    i'm also not really clear on the entire DID -> DID document resolution process either; is this like DHT-based or something? how do you know which server to ask the DID document from?

  400. Aaron Goldman

    In reply to this message

    Sounds like you are on the correct track.
    When you switch PDSs you update the DID document to point to the new PDS location and rotate the account key. Now the old PDS can't sign an update for your did:plc:. It can still serve the old repo. If you upload a newer version repo to the old PDS I could serve that, it just can't mutate it since it does not have the needed key.
    This is authenticated data. Anyone could chouse to host any repo for any reason.
  401. Michael
    thanks for the answer, it's very clear. what does the process of "updating the DID document" look like? more specifically, how does observer A trying to resolve my did:plc:abc one minute before my update, and observer B resolving the same DID one minute after my update, know that the document has changed in the process? is it immediate, or more like an eventually consistent system?
  402. Aaron Goldman
    The DID -> DID document resolution will initially be a server run by Bluesky PBLLC but will someday be replaced with a small number of servers run by an identity consortium.
  403. Michael
    oh wait DID document resolution is centralized?
  404. Aaron Goldman

    In reply to this message

    I think the best analogy is certificates stapling. A PDS will want to return a signed statement from identity server in the last say 300 seconds. The PDS needs to call the identity server but can send that same cached statement with responses after that.

    https://knowledge.digicert.com/quovadis/ssl-certificates/ssl-general-topics/what-is-ocsp-stapling.html

    For your case of having migrated the old PDS will either give you the new document pointing you to the new PDS or a stale document. If the stale document is old enough your client will go ask the identity server for itself and see the new PDS.

  405. Michael
    so am i understanding correctly that just like in PKI, there's an authoritative identity server that clients inherently trust, and DID resolution would be analogous to querying the revocation status of a TLS cert. having such an identity server answers a lot of my doubts about the protocol, but just raises another: do you know if it's a goal of the bluesky project to support other identity servers, the same way devices can have multiple trusted root CA's? i still see the merit of having centralized identity while still allowing users to migrate data stores, but it seems kind of counter to the goal of decentralization to still have all identities pinned to an authoritative server controlled by a single organization or even the consortium
  406. Aaron Goldman

    In reply to this message

    So Yes and No.
    In the CA system the CA is asserting the binding between names and keys. In the did:plc:<hash> the hash is the hash of the first version of the did document. Each update must be signed by a key in the document already. So you can't have something like the DigiNotar hack as a update to your DID must be a collusion between you and the identity server
  407. The identity server serves two roles. It orders/timestamps the updates making it possible to recover did:plc:234 with its recovery key and since it needs to sign the updates it can keep a copy of all the Documents so that it can guaranty resolution.
  408. Aaron Goldman
    If you were to decentralize the identity server you would need to specify the identity consortium that you wanted to trust in the original DID Document and a DHT to find the original DID Document. Not going there yet, better to just have 7ish member identity consortium letting you update with any 5 of them. Query from any 3. much simpler to guaranty performance and reliability.
  409. I would rather trust a system like that then the CA system. I get that there are people in the community that see a selected 7ish organizations providing a high availability service a scary level of centralization for such a system. Such an identity consortium can update much faster than Bitcoin or Ethereum.
  410. Michael
    i see. the idea of having hashes be signed to protect updates makes sense and produces a high level of integrity, and i'm certainly not looking to introduce something like blockchain which is just centralization but with more steps. i'm just worried that designing a system around a centralized core identity system would require yet another large discussion and redesign of the protocol, forcing backwards-incompatible changes if/when we do decide that it's important to have separate identity servers. for now i guess all my questions are answered, so thanks for the help!
  411. joelghill

    I have a kind of high level question regarding the Lexicons. Assuming the protocol catches on and people start developing new Lexicons for specific use cases, has there been much discussion on how different Lexicons should reference or depend on each other?

    For example, if I wanted to make a GoodReads competitor, and I wanted to leverage the current BlueSky lexicon (getting feeds, graphs, etc) how would one go about adding new functionality like 5 star book reviews and book collections? Some would be independent of the BlueSky lexicon, but reviews and reading updates could be something returned in a BlueSky actor's timeline as well.

    Is there a way to specify that lexicons are dependent on each other? Like, if you implement A, you must also implement B?

  412. snarfed
    Message deleted
  413. snarfed
    joelghill: yes! the current lexicon design, which has evolved from what's documented on https://atproto.com/docs, includes a ref type that can point to another lexicon's type
  414. https://github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/feed/post.json has a few examples of refs that point both internally, within that file, and outside it
    (edited)
  415. @toranosora:matrix.org set their display name to hellstabber (kullanmıyorum)
  416. @rimuru:gentoo.chat changed their profile picture
  417. joelghill
    snarfed: thank you! You mention the lexicon has evolved beyond what's documented... Are there other differences? I've started to implement the protocol for fun but I'm basing on the documentation but I'm wondering if I should hold off until it settles a bit more?
  418. snarfed
    joelghill: definitely other differences, it's a pretty significant overhaul. I'm doing the same thing as you. there are pretty complete examples in the repo, but afaik no docs yet. here's the most useful commit I've found: https://github.com/bluesky-social/atproto/commit/63b9873bb1699b6bce54e7a8d3db2fcbd2cfc5ab
    (edited)
  419. zxfsee joined the room
  420. snarfed
    minor interpretation note: I'm assuming text in app.bsky.feed.post is plain text, not HTML. feel free to correct me!
  421. zrezzed joined the room
  422. @sijvert:matrix.org left the room
  423. snarfed
    afternoon all! my second small building block is up on https://granary.io/ ; it converts Bluesky app.bsky.* objects to/from a wide variety of formats, including HTML with microformats, ActivityStreams 1 and 2 (ie ActivityPub), RSS and Atom, etc
  424. a couple examples: https://granary.io/?input=html&output=bluesky&submit&url=https://snarfed.org/ converts the latest posts on my web site https://snarfed.org/ to app.bsky.feed.feedViewPosts
  425. feedback is welcome!
  426. Aaron Goldman
    Sounds cool 😎
  427. pfrazee

    In reply to this message

    I just pushed a site update that gets the docs back to latest in terms of definitions. I still very much need to write up docs on the design of lexicon
  428. very cool stuff with granary!
  429. whyrusleeping
    snarfed: thats so cool!
  430. snarfed
    thanks guys!
  431. bnewbold
    snarfed: awesome! reminds me of pandoc (https://en.m.wikipedia.org/wiki/Pandoc)
  432. snarfed
    yes! good comparison, among others
  433. @govbotdotnet:matrix.org

    In reply to this message

    The tradeoff should at minimum be clear and up front - showing that it was consciously, and hopefully wisely made.
  434. In reply to this message

    The choice should be on the user side forever though. You might think it is spam, while I think it's an interesting study into how that person is marketing themselves these days.
  435. I see no reason for centralized filters / moderation decisions. User side filters are more ethical, more elegant, more useful, more scalable, more wise to liability
  436. whyrusleeping
    If you dont like how your PDS is filtering content, switch to a new PDS. The servers job is to keep the lights on, which includes removing illegal content and spam
  437. More subjective moderation decisions will be left to another layer, but the choice of which “governance” to be subject to will always be the users choice
  438. b0gg3r
    How does the PDS filter content? It seems from the spec like a binary "follow DID and pull their repo or ignore their existence" I kinda thought anything more granular than that was being left up to indexing/moderation services
  439. pfrazee

    In reply to this message

    a PDS has to deal with resource abuse and legal issues. There's no way around it. On resource abuse, if somebody creates 1k accounts and starts sending garbage writes to them constantly, theyre going to take down the PDS and create cost issues. On legal issues, if somebody publishes copyrighted material and the PDS doesn't respond to DMCA requests, they'll get sued and shut down.
  440. the counterbalance to PDS control is a collection of technical constraints and then norms enforced by account portability
  441. technical constraints are things like what can a PDS literally not do. It can't change a repo it doesnt have signing keys for, for instance
  442. and norms are things that the culture expects the PDS not to do, enforced by the fact people will leave if they do
    (edited)
  443. we do want granular control around curation and moderation to happen in other systems, so we're designing for that, but a PDS does have to defend itself
  444. Thib (away, back on Jan 3) changed their display name to Thib
  445. m3t4m0rph0s3s joined the room
  446. Louis Grasset joined the room
  447. grin joined the room
  448. Karl Abbott (Away Until 4-January-2023) changed their display name to Karl Abbott
  449. FledgeShiu
    Is there anyway to play the PDS right now? For example create a user, send a post, follow a user, things like these.
  450. I tried package Dev Env, but I don't know how to do these operations.
  451. ^ great quickstart guide for the reference implementation of the PDS
  452. FledgeShiu

    In reply to this message

    Thanks~
  453. networkException changed their profile picture
  454. FledgeShiu
    Is it possible to know the http type form a Lexicon schema?
  455. jmcasey
    query === GET, procedure === POST
  456. If I understand your question correctly
  457. FledgeShiu

    In reply to this message

    Thanks~
  458. Yes, that's what I want to know
  459. FledgeShiu
    I see.
  460. lakee_ joined the room
  461. Louis Grasset changed their profile picture
  462. FledgeShiu
    I'm playing the AT protocol, but I found there is a confusing aspect of lexicon. I can not found the definition of type in lexicon.
    For example, in app.bsky.actor.updateProfile
    There is no definition of "type": "image" in the lexicon json files.
    And In the com.atproto.repo.createRecord, record type is unkown.
    For now, I can only found these definitions in the code. Will these definitions be added to the lexicon json files in the future?
    (edited)
  463. whyrusleeping
    Image is a builtin type, like string or integer
  464. The unknown record type thing bothers me too. Its special cased there in a kinda weird way
  465. Carnoval 15 joined the room
  466. mikuhl
    so hows it going
  467. whyrusleeping
    Pretty good, you?
  468. mikuhl
    good. just waiting for bluesky :P
  469. mikestaub
    all good things come with time :)
  470. MightySpaceman (OLD -> m_spaceman:matrix.org)
  471. coop_riccm joined the room
  472. @halfor:matrix.org left the room
  473. mikestaub
    whyrusleeping: this could be a useful reference once its time to run load tests and scalability experiments for the protocol https://thume.ca/2023/01/02/one-machine-twitter/
  474. whyrusleeping
    Yeah i was reading through that yesterday, i love his calculations
  475. Aaron Goldman
    I do sometimes think about the notification server problem. If there are a lot of devices all trying to get notifications a PDS could end up with lots of simultaneous tcp connections. The hyper scale companies increase the connections by modifying the kernel. There are good reasons to want to run pds on a standard kernel
  476. Karl Abbott changed their display name to Karl Abbott (AFK)
  477. Karl Abbott (AFK) changed their display name to Karl Abbott
  478. magicofazi set a profile picture
  479. jwjjwswmfq joined the room
  480. lepras set a profile picture
  481. Paul joined the room
  482. Paul set a profile picture
  483. jaymudholkar joined the room
  484. Thib changed their display name to Thib (🤒)
  485. @mrhacking:matrix.org left the room
  486. wedg changed their display name to Sam
  487. @miker2049:groupchattt.page
    Any thoughts/plans on having a json schema available for generic lexicon files? It looks like it would be
    somewhat trivial
    with zod, and would help alot with implementation in other languages
  488. I get that it would be a kinda confusing schema of a schema, but it would provide a quick avenue for validation in a lot of places
  489. @miker2049:groupchattt.page
    Not sure if yall are open to PRs, but just a quick draft here of this: https://github.com/bluesky-social/atproto/pull/468
  490. @dk:effektio.org left the room
  491. 13flaws joined the room
  492. 13flaws
    gm. question about gunDB -- my understanding is it can replace our mongodb cluster. But the program logic will need to continue running on aws (elastic beanstalk)?? Or, does gun replace this also
  493. George Antoniadis

    In reply to this message

    You might be in the wrong channel for gun :)
  494. 13flaws

    In reply to this message

    lolol, where shall I go
  495. George Antoniadis

    In reply to this message

    This channel is for the development of Bluesky / ATProto, https://atproto.com
    Last time I checked gun was using gitter, https://gitter.im/amark/gun -- you can probably find more on their github readme
  496. 13flaws
    ya, mark was in the bluesky Disc back in the day. I've been on their Gitter, they aren't responsive. Was wondering if someone in this community is knowledgable about the tech.
  497. I built a fairly popular anonymous social app, and im interested in migrating the technology to a decentralized architecture. Gun seems like a reasonable place to start.
  498. If you've other input / suggestions, open to that also :)
  499. Thanks again for your quick replies :)
  500. Steven Franssen
    13flaws: consider
    holepunch.to
    and nostr
  501. the twitter feeds for keet and holepunch are great too
  502. George Antoniadis

    In reply to this message

    Do check out ATProto, it's pretty extensible but whether it fits will greatly depend on your usecase.
    OrbitDB is also a good one to check out if you haven't already, much closer to gun than ATP.
  503. 13flaws
    ty frens.
  504. Steven Franssen
  505. 13flaws: holepunch is offering grants for new apps soon https://twitter.com/Holepunch_to/status/1613131480246673408
  506. @lexx:nitro.chat joined the room
  507. @lexx:nitro.chat joined the room
  508. EtherTyper changed their display name to 3therTyper
  509. 3therTyper changed their display name to EtherTyer
  510. EtherTyer changed their display name to EtherTyper
  511. dgn
    hello, as administrators, can you share a screenshot from bluesky so that we can see the interface? arcalinea
  512. @jasondavies:matrix.org set their display name to jasondavies
  513. Thib (🤒) changed their display name to Thib
  514. arnobchak joined the room
  515. snarfed
    Hi again all! I've put up another building block for bridging IndieWeb and Bluesky: https://fed.brid.gy/ now implements most of the app.bsky read XPRC methods, based on parsing profiles, posts, reply threads, etc out of HTML with microformats. Here are a few examples:
    https://fed.brid.gy/xrpc/app.bsky.actor.getProfile?actor=snarfed.org
    https://fed.brid.gy/xrpc/app.bsky.feed.getAuthorFeed?author=snarfed.org
    https://fed.brid.gy/xrpc/app.bsky.graph.getFollowers?user=snarfed.org
  516. This isn't a full fledged PDS, it's just a bridge between data formats and app.bsky XRPC methods. One big open question is how federation/data sync works. I still don't fully understand how Bluesky does that, how much of it is at the PDS repo sync vs Bluesky app logic levels, etc.
  517. I know everything here is still early, so I'm not pushing on all that. Feedback is welcome otherwise!
  518. whyrusleeping
    More on federation quite soon, we worked out a number of the hard problems this week at the company offsite. This bridging work is really cool, im excited to see it all up and working
  519. snarfed
    awesome, can't wait to hear more whenever you all are ready!
  520. joelghill

    I'm really looking forward to reading about how you're tackling federation, especially how it compares to ActivityPub!

    I'm curious, do people think there is room for both protocols? I could imagine a server being compatible with both... But would it be worth it?

  521. snarfed
    very subjective questions, but for at least some servers, yes. eg Bridgy Fed supported both OStatus and ActivityPub for a long time, and I expect to make it also support Bluesky/ATP
  522. joelghill
    Mastodon needs the AT Protocol in my (uninformed) opinion. I really hope they consider implementing it in the future, we need account portability at minimum.
  523. snarfed
    you mean, beyond their current migration support?
  524. joelghill
    Yeah, I don't think the migration support is good enough. You lose data and there's nothing you can do if your server disappears.
  525. ATP/BlueSky appears to be taking a more reasonable approach to algorithms and feed curation. Mastodon uses "no algorithms" as a feature... But we need them? I want some intelligence in my timeline keeping it clean and relevant. The issue with Twitter was not that there was an algorithm, but what the algorithm was doing and the lack of transparency.

    I'm sure I'm preaching to the choir here though.

  526. sylphrenetic

    In reply to this message

    some people want algorithms, some don't, some want specific ones. we should be able to plug and play any moderation algorithm for our feed, just send the data you were going to display to the service and it sends back a curated subset after moderation is done. when it comes to content algorithms though, like for which places you source content from, that needs to be application-specific but have protocol support. if possible it'd be cool to have it so that applications can tailor the user's content sources per their own algorithms, and the protocol just serves whatever subset the application asks for.
  527. b0gg3r

    In reply to this message

    Offsite? I kinda presumed Bluesky was a remote company
  528. whyrusleeping
    “Offsite” implying we all went somewhere else, but yes we’re all remote
  529. @toranosora:matrix.org removed their display name (hellstabber (kullanmıyorum))
  530. FledgeShiu

    In reply to this message

    That's awesome. I was just wondering why Github was so quiet this week😂.
  531. @xentra:foss.wtf left the room
  532. b0gg3r
    Message deleted
  533. meri set a profile picture
  534. Hilary Baumann

    In reply to this message

    "if possible it'd be cool to have it so that applications can tailor the user's content sources per their own algorithms, and the protocol just serves whatever subset the application asks for."

    THIS. So very much this.

    I had intended to stay a lurker here but this concept is so very important for any social media platform to be better than everything else out there to date. I thought tiktok had figured it out but technically the following tab is algorithmic (just less intrusive about being so on the followed tab.)

    There is a reason that algorithms have worked with Twitter and Facebook and anything that has grown. At the same time there are a number of us that want to see chronological from time to time. But chronological can be too much of a fire hose of information. I remember early days of social media and then the loss of google reader where "the fire hose of information" was a more common discussion. It's why chronological doesn't take off as well for the masses.

    Being able to have BOTH chronological and algorithmic and then also a choice, whether via different interfaces or an easy to access toggle or tab would be a game changer. I very much want this to be the new way developers think about social media. Choice. Options.

    Just wanted to get in and emphasize allowing that particular flexibility. 😎

  535. Aaron Goldman

    In reply to this message

    Yup, this is why authenticated data exchange is so important. That is how we make the economics of the ranking living outside the publisher's computers work.
  536. At least without a Google level crawling infrastructure and reputation for honesty about what was crawled.
  537. b0gg3r
    I'm really curious to see what types of indexing emerges. Also whether users will prefer google style "read everything and form a profile" or the product of an indexer being a specific algorithm and users subscribing to one or many of them.
  538. whyrusleeping
    Same
  539. I love that we are building in the flexibility for choice, and really allowing for the global “tik tok” style feed, and at the same time letting people have the closed scuttlebutt style experience
  540. Chose your own damn adventure
  541. Live your life, own your data
  542. b0gg3r
    Seen some new lexicon definitions pop up the last few weeks, can anyone shed light on `myState`, `withInfo` and `viewerState`? `withInfo` seems to be part of the Declaration token system. Is that for badges and whatnot that you might see on reddit posts, or mastodons profile metadata?
  543. snarfed
    b0gg3r kind of. they seem like basic data model plumbing for representing users' profile data (display name, avatar image, etc) and your own user's relationship with them (following, muted, etc)
  544. @neoazubal:matrix.org joined the room
  545. mikuhl
    does jack have any relation to the development of bluesky? he seems to be researching nostr very hard.
  546. mikuhl
    yeah I knew he was a part of it, but does he do any developing or anything? or give you guys feedback?
  547. @jpeg07:matrix.org left the room
  548. @neoazubal:matrix.org left the room
  549. Daniel Holmgren

    In reply to this message

    yeah as snarfed said, it's just plumbing relevant info for views. declaration is unrelated to badges. Think of it as an integrity check on references to an actor in a record. When referencing a record, we use uri + cid (mutable & immutable references). When referencing an actor, we use did + declarationCid. Declaration just declares what type of actor a repo represents: user/scene/forum/etc
  550. & yup jack is on the board. he's not involved in the day to day, but he does give some high level feedback
  551. ॐPablo joined the room
  552. mikuhl set a profile picture
  553. jmcasey
    Re: federation, I noticed that did:plc allows 32^24 possible IDs. Kademlia (https://en.wikipedia.org/wiki/Kademlia) allows for 2^160 nodes which would fit. I'm sure there are similar schemes that would work, but I think that would allow the network get going on discovery Is that a direction ye explored? I'm sure there are other considerations
  554. whyrusleeping
    Having built and run a rather large DHT for the past decade im actually not super inclined to reach for it as a solution here
  555. Aaron Goldman

    In reply to this message

    The problem isn't fitting the 120 bit did PLCs into the 160 bit Kademlia key space. The problem is the DHT is a best effort eventually consistent data structure.
    We want an identity service that can give an authoritative latest version of the DID document.

    As for the contents of the repo's someone has to store the objects. You could publish to a DHT but the nodes come, go, and clear cache out side of your control. What is the insensitive to store data for others on your DHT node.

    We end up better off with an authoritative identity service and PDSs that are accountable to their customers and only relying on the DHT to be a cache to improve latency and robustness

  556. With the identity service and the PDSs as the content servers of last resort.
  557. When two PDSs open a connection to sync they have to first discover the set intersection of the repos they follow and then who has the newer version of each repo and send over all the blocks.
    (edited)
  558. Steven Vandevelde joined the room
  559. Steven Vandevelde set a profile picture
  560. @jordanreger:matrix.org joined the room
  561. @jordanreger:matrix.org joined the room
  562. @jordanreger:matrix.org left the room
  563. Erik Mccleary joined the room
  564. -=h0p3=- joined the room
  565. Ben Parizek joined the room
  566. Ben Parizek set a profile picture
  567. mikestaub
    Thanks again to arcalinea for anticipating this change in direction. If Bluesky was not independent, funding surely would have been pulled. https://arstechnica.com/tech-policy/2023/01/twitter-retroactively-changes-developer-agreement-to-ban-third-party-clients/
  568. It seems very unlikely now that Twitter will adopt the ATprotocol. Which means a bridge will need to be created and maintained. Any early thoughts on how this can be done at scale?
  569. @truethomas7:matrix.org left the room
  570. mikuhl
    Make it so good that they NEED to implement it.
  571. snarfed
    bridge(s) will definitely be doable, and will happen organically assuming bluesky gets enough adoption, but they generally won't need any special support in the core protocol(s), and probably shouldn't be an immediate priority
  572. (I have experience with bridges from building and running https://brid.gy/ and https://fed.brid.gy/ 😎)
  573. Aaron Goldman

    In reply to this message

    It is funny the way
    Hedge fund Elliott Management Corp is responsible for Jack's motive for Bluesky back in December 2019

    https://www.cnn.com/2020/02/29/tech/elliott-twitter-jack-dorsey-replace/index.html

    How do you protect Twitter from an activist investor who might buy Twitter and shut down the API?

    Like this:
    https://twitter.com/jack/status/1204766078468911106?t=nddAB0WEUCkqwMgXlN4juA&s=19

  574. @truethomas7:matrix.org joined the room
  575. Aaron Goldman
    But yeah you have to find the right team 🙂
  576. Nostr be looking good these days.
  577. @astonishingriverboat:nitro.chat left the room
  578. FledgeShiu
  579. Matthew

    In reply to this message

    that’s a mockup, no?
  580. jmcasey

    In reply to this message

    ATP ported to Go? I like the sound of "bigsky" whatever that is
  581. whyrusleeping
    Indigo is our go codebase
  582. Theres a mostly functional pds there as well as a cli client tool
  583. But bigsky is the big world indexer we are working on
  584. Thats the federation secret sauce
  585. jmcasey
    Well that's very exciting
  586. whyrusleeping
    Indeed :)
  587. Ive also been hacking on some bots using the api: https://github.com/whyrusleeping/bskybots
  588. jmcasey
    Yeah! Kinda reminds me of reddit's bootstrap tricks. Easy way to prompt genuine user activity is repost HN, podcast episodes, etc, automatically
  589. mikuhl

    In reply to this message

    yea I think, it looks so kewl tho.
  590. Matthew

    In reply to this message

    it bugs me that nobody has built an indexer for matrix yet. reminds me a bit of wais & gopher failing ‘cos nobody built a search engine for them
  591. whyrusleeping
    Yeah, the big indexer service seems to be pretty important to mainstream success
  592. People dont want to sacrifice discoverability
  593. Aaron Goldman
    Lucene you served my father in the web search engine wars you are my only hope.
  594. bigtestaccount joined the room
  595. moved to @shreyan:beeper.com (@shreyanjain:matrix.org) joined the room
  596. Сергей Брага joined the room
  597. mikuhl
    One problem Nostr has is the crazy amount of data it uses, the more relays you have the more redundant data you are receiving. Hope Bluesky is designed in a way that reduces this.
  598. whyrusleeping
    Heh, thats been a big topic for us, hoping to have a writeout soon on the direction we are going with
  599. But basically we’re building from the start the shape of network that most p2p systems end up turning into, supernodes star mesh patterns
  600. Where most “leaves” interact through a supernode
  601. And supernodes are fairly dumb and permissionless
  602. Aaron Goldman

    In reply to this message

    Do you know if Nostr has tried Set Reconciliation? https://arxiv.org/abs/2212.13567
    How do you currently download what you don't know about but ignore what you have?
  603. Aaron Goldman
    You want search to be fast. If you had a dataset like all the tweets, somewhere in the order of 1PiB, and you want to query the index it makes sense to have a large node. That could be indexed several ways 5x ing the size of the data and still fit in a single rack. With 1ms latencies between the storage nodes. A distributed index spread across many PDSs with 50-100ms latencies between will not be able to compete for search quality at anywhere close to the delays as dedicated indexer would give you. Also, if there are a number of PDSs that are all customers of the same indexer they can amortize the cost of that large node. We can have lots of tiny PDSs with just a few thousand users that don't cost much to run and then a few big indexers that are expensive but well amortized.
  604. mikestaub

    In reply to this message

    My intuition tells me this is going to end up being a single beefy elasticsearch cluster in the end :)
  605. Aaron Goldman

    In reply to this message

    Elasticsearch is an api on top of Lucene, I stand by my earlier jest.
  606. wolix set a profile picture
  607. @oliver.falvai:oliverfalvai.xyz joined the room
  608. jmcasey
    Noticed that the atproto repo fails to build on fresh installs due to version 0.14.54 of esbuild being unavailable now. That version seems to have been pulled from their releases page: https://github.com/evanw/esbuild/releases Submitted a pull request here with a fix that works for me, in case anyone else is experiencing the same issue: https://github.com/bluesky-social/atproto/pull/499 Just swaps in 0.14.50 (latest available 0.14.x) instead
  609. playback2396 joined the room
  610. @samme:schizo.cafe joined the room
  611. @queixo:matrix.org joined the room
  612. @toranosora:matrix.org set their display name to Eren Kaplan
  613. @toranosora:matrix.org changed their profile picture
  614. tuxk joined the room
  615. @anonymous.nothing:matrix.org joined the room
  616. micwaul joined the room
  617. Steven Franssen
    nostr's growth is astounding, how is bluesky feeling about it?
  618. all the relays are being cooked currently
  619. sylphrenetic
    I assumed nostr's popularity has been because of Jack's public support, which I assume he'll also provide to bluesky once the time comes
  620. testman changed their display name to testman42
  621. mikestaub
    I think it is great. Though it seems its almost all Bitcoiners at the moment.
  622. arnobchak
    Is nostr will come to android
  623. mikestaub
    The projects actually pair nicely, nostr is just about data redundancy. It has no opinion on what the body of the messages are, so it will be easy to put any Lexicon schemas in there. The protocol is at a lower-level of abstraction than ATproto
  624. arnobchak
    To be honest decentralised architecture should properly adopt
  625. Joanna
    Message deleted by whyrusleeping
  626. arnobchak
    I agree
  627. mikestaub
    If you really want to unite the unification of BTC with crypto you should advocate for https://www.drivechain.info
  628. arnobchak set a profile picture
  629. @numero6:codelutin.com
    fyi there is a #nostr-lobby:matrix.org matrix room to not flood here (and many others listed in #decentralised-social-networks:codelutin.com)
    (edited)
  630. Joanna

    In reply to this message

    Agree,
    I’m Data Scientist, seeking other devs to implement the new design architecture.
    New models of trust and governance.
    New OS for the planet (s)

    Please Dm me on Nostr or GitHub

    https://github.com/JoannaPicetti/PLANETARY-DAO

  631. In reply to this message

    Rabbit hole
    Which one is the official?

    We need to verify all the channels
    Me working to solve Global ID on the entire internet.

  632. mikuhl
    plot twist, none of them are official, and there is no official one.
  633. mikuhl
    nostr is super spammed rn with chinese bots ;(
  634. will be interesting to see how bluesky solves spam
  635. @queixo:matrix.org left the room
  636. testman42 changed their display name to testman
  637. mikestaub

    In reply to this message

    Are you sure they are bots? Might actually be real users that are trying to avoid censorship
  638. mikuhl

    In reply to this message

    It's like thousands of the same message
  639. mikestaub

    In reply to this message

    relays will likely have to integrate with BTC Lightning and charge per post to fight spam
  640. mikuhl
    I even wish Twitter would use a captcha, yes captcha solutions can be bought but that at least increases bots cost and the cost for humans stay 0
  641. That way correctly automated bot accounts can tweet without captcha because twitters spam detection for ACTUAL bots is pretty good.
  642. @planetoryd:matrix.org
    TLSNotary, anonymous reputation, proof of personhood
  643. it's even possible to import reputation from chinese national KYC system without their cooperation through TLSNotary
  644. Emil J joined the room
  645. Joanna
    Who deleted my message and WHY ?
Next group of messages