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. Joanna
  2. Joanna
    Message deleted
  3. mikuhl
    So crazy Elon is making people pay for API.
  4. Blue Sky gets stronger with every passing day.
    (edited)
  5. Joanna
    I don’t care what Elon is doing
  6. Could someone answer my question please?
  7. In reply to this message

    YES
  8. mikuhl
    He makes it easier for Blue Sky every action he takes lol.
  9. Joanna
    Cool, love Blue Sky
    I want us to succeed
  10. mikuhl
    What's next, he makes tweet quotas that you can increase with Twitter Blue?
  11. NikhilM42
    most likely 😆
  12. mikuhl
    "I solved spam!"
  13. whyrusleeping
    Yeahhhh, that api being so expensive will make the bluesky locked open api super enticing
  14. NikhilM42
    he is just throwing stuff at a wall to build out the money making engine, whatever sticks he keeps
  15. mikuhl
    Blue Sky is going to do the bankruptcy speedrun FOR Twitter. 🤣
  16. NikhilM42
    anyways I think we should keep this chat dev focused as to not clutter the feed 😉 as fun as it is to talk shit
  17. mikuhl
    Can we have another 4 pixels of the interface leaked please?
  18. Joanna
    Just need to work with Elon to create Platform X
  19. jmcasey
    federation leaks also desired
  20. whyrusleeping
    You can check things out on github
  21. Federation writeup soon (tm)
  22. But we’re moving forward with implementing aggregation and feed generation and labeling
  23. And will by tying them together into a coherent experience for the network
  24. FledgeShiu
    As a Chinese, they are bots😂
  25. Steven Franssen

    In reply to this message

    there is many android apps
  26. In reply to this message

    nostr has some good solutions like what
    iris.to
    does
  27. whyrusleeping
    Y’all, this aint the nostr channel
  28. hilarybaumann changed their display name to Hilary Baumann
  29. i99988 changed their profile picture
  30. Soohan Park (Heartade) joined the room
  31. Soohan Park (Heartade)
    Hi everyone! Just joined this channel here to catch up with the state of development etc, as I've been excited about this and I'm starting to believe that ActivityPub is unable to overcome its limitations.
  32. I've been looking at the ATP code from time to time, but I'm still far from getting a grasp of it. One thing I'm wondering is, how does Bluesky curate timelines? e.g. how does it fetch private statuses of a user I'm following?
  33. Soohan Park (Heartade) set a profile picture
  34. b0gg3r
    Current understanding is that private content is not a part of the initial design
  35. i99988 changed their profile picture
  36. Soohan Park (Heartade)

    In reply to this message

    Regarding initial design, I've seen roadmaps mentioned in some issues/PRs, are there publicly accessible roadmaps or are those internal only?
  37. b0gg3r
    Only public info is the
    atproto.com
    site and the github repos
  38. Soohan Park (Heartade)
    Oh i see... so that should mean the release timeline, initial features, etc, are mostly still TBA.
    (edited)
  39. b0gg3r
    Soon ™️
  40. Aaron Goldman

    In reply to this message

    Even without privacy in the protocol it could be done in user space https://guide.fission.codes/developers/webnative/file-system-wnfs

    But there may or may not be an "official" way to do private data.

  41. b0gg3r
    Since atp supports blobs, it seems relatively clear how to retrofit it
  42. Though wnfs is very interesting!
  43. Aaron Goldman
    Just an example not a plan 😜
  44. micwaul
    What are your expectations for Bluesky and the AT Protocol?
  45. jamniczek joined the room
  46. Soohan Park (Heartade)

    In reply to this message

    I believe that ATP is by far the most promising compared to other competing standards. For a decentralized social network to 'work', i.e. provide acceptable user experience, the user has to be able to: 1) have their feed adequately moderated and curated, 2) easily migrate their identity in case their service provider goes down, 3) easily reach their target audience, 4) easily discover contents of their interest.

    ActivityPub for example 1) relies too much on individual instance admins on moderation; 2) does not provide a straightforward way to migrate their data; 3) does not provide a way to easily expand the 'known network'; and 4) does not provide a way to easily discover remote activities.

    ATP on the other hand 1) provides a standardized way for algorithmic moderation; 2) provides a way to migrate a user's entire data using DIDs; 3, 4) has a 'big-world' network outlined in the protocol for discoverability and reachability (while I'm not sure as to how much of this 'big-world' has been implemented).

  47. micwaul
    Thanks for explaining the advantages of ATP over ActivityPub, what are your thoughts on Matrix and Nostr?
  48. Steven Franssen
    micwaul: bluesky seemed to do nothing but extensive studies for years into the different protocols, by deciding to do something very similar to activitypub they have come to very different conclusions to fiatjaf and nostr, it appears with the rather wild growth of nostr that they were likely wrong, interestingly a complete rewrite of nostr could be a good thing
  49. mikestaub

    In reply to this message

    I am very happy to see nostr gain so much adoption, but it still seems like its almost all Bitcoiners ( which is still millions of people ). There is no world in which my parents will ever be able to manage public/private keys. That is not to say a better UX can't be built on top of a protocol like nostr, but to assume that any protocol-level decisions are "right" or "wrong" at this stage is extremely premature. The more communities trying different ideas the better as we are all ultimately on the same team. We all want the end users to have full autonomy and control of their data and experience.
  50. b0gg3r
    I'm still optimistic that we figure some trick of UI and psychology that some day we figure out how to make key management easy for people Whatever the winning combination of protocols are, it strikes me that at this stage, cross protocol compatibility will be built out. AP/ATP/Nostr, or something else.
  51. Aaron Goldman
    Not to speak to your parents but most modern people do in fact manage keys. Primary in the form of cut metal. People are not great at memorizing but are at keeping track of small objects
  52. mikestaub

    In reply to this message

    I agree, but there exists locksmiths that can make clones and forcibly open the lock if all else fails.
  53. b0gg3r
    Yeah, like tap the yubikey to the phone, and that's that - seems reasonable. But we've trained folks that authentication and identity is free. I don't think the average folk care to buy into hardware tokens
  54. Plus yubikey recommends buying two keys to allow self recovery.
  55. Aaron Goldman
    Could be a FiDo token, could be a device
  56. I would not feel comfortable having my repo locked to my Yubikey. I would feel comfortable locking it to my phone, tablet, laptop, watch, Yubikey, or recovery phrase.
  57. b0gg3r
    Sorry, yeah was a bit simplistic with my language s/yubikey/fido2 Though you would still need to manage the recovery seed, no?
  58. Aaron Goldman
    If a DID can be bound, and unbound, from non-extractible keys I can add and remove devices and passphrases from the DID
  59. KingYoSun joined the room
  60. tonykent (@tonykent:lisbon.ems.host) joined the room
  61. Joanna
    BlueSky is the Next Internet
  62. Can someone add “Next Internet” in the title of this room ?
  63. @neilalexander:matrix.org
    "Next Internet" is a meaningless phrase
  64. FledgeShiu

    In reply to this message

    Sorry, but are you bot?
  65. Joanna

    In reply to this message

    We are building the next iteration of internet infrastructure: decentralized/ federated/P2P, privacy-friendly, with new protocols, mesh networks, non-profits...
    (edited)
  66. In reply to this message

    Of course not
  67. I’m not a bot
  68. sylphrenetic
    sounds like something a bot would say 😂
  69. George Antoniadis

    Joanna I think you'll find that there is a segment of people for whom labels like "web3", "next internet" mean nothing, and do very little to actually explain what a project does, and in some cases even harm a project that might actually try to differentiate itself from every other using the same label.

    For me for example the term "web3" is now burnt. Skiff for example is an amazing project, but their heavy rebranding towards web3 has put me off the whole project as it now feels like a cash grab, or just trying to ride the hype wave, and make money from people betting big into whatever web3 is.

  70. sylphrenetic

    In reply to this message

    will Bluesky replace Internet Protocol? will it replace routing technologies that currently prioritize traffic in intelligent ways based on previous trip times? if not, it's still going to live on top of IP.
  71. @numero6:codelutin.com

    In reply to this message

    as #next-internet:codelutin.com admin, suggestions for a better name will be welcomed 😉
    (edited)
  72. @neilalexander:matrix.org

    In reply to this message

    I don't really have a better suggestion, just that it's accidentally a massive umbrella term that swings over multiple layers and doesn't really "say anything". Are you building an application or reinventing ethernet? ;-)
  73. sylphrenetic

    In reply to this message

    I think a skepticism of anyone trying to find the next wave to ride is healthy. we shouldn't be trying to find the "Next Big Thing" to be a part of, we should be building whatever we think the future needs.
  74. In reply to this message

    yea. it's like trying to build "tomorrow". tomorrow will never be here, it's always today
  75. @numero6:codelutin.com

    In reply to this message

    True. I 100% acklodge that its sounds bullshit (but I like to do it in regards that I no longer can stand all the bullshit about "web3" and the branding to make a new proprietary pointless tech sounds cool)
  76. In reply to this message

    that's the trick. By calling it the "next thing" we define the future
    (edited)
  77. and we choose to not put the Zucky's metaverse in it
    (edited)
  78. checkmate!
  79. (and I love having tech like XMPP that are 20+ year old: still better than legless second-life)
  80. Aaron Goldman
    The current Internet is broadly defined. We could say anything using the IP protocol but I would limit to things using IP and ICANN issued addresses. This is more framed as an authenticated contact lawyer above IP. While you could put a repo on a flashdrive and distribute the signed content in some non-internet way it's primarily meant to be on the current Internet l.
  81. Soohan Park (Heartade)

    In reply to this message

    I don't have a lot to say about Nostr, never used it.

    Rewriting Matrix towards a social network would be difficult, but social network is not Matrix' job and Matrix does its job really well. Account migration seems tough, but it seems like there's been some progress.

  82. George Antoniadis

    In reply to this message

    I think that matthew (their ceo) has a pretty interesting vision for matrix that I’m not sure is too far off atproto’s. So I wouldn’t put it pass them to evolve into something more than chat soon enough. Take a look at their thirdroom playground for a glimpse of matrix being more than a chat app.
  83. Soohan Park (Heartade)

    In reply to this message

    xrpc is implemented on top of IP afaik. But even if people somehow decide to migrate away from IP (which I don't think will happen in near future), apps can and will be rewritten to fit the new infra.
  84. In reply to this message

    I wasn't aware of that, thanks for letting me know! I feel like I should take a look at it right now.
  85. Joanna

    In reply to this message

    Me yes, I know very well how Nostr works and doesn’t work.
    Was testing since the beginning.
    (edited)
  86. I got the solution
    Is Matthew here?
  87. Joanna
    Message deleted
  88. Message deleted
  89. Message deleted
  90. Joanna

    In reply to this message

    YES
  91. In reply to this message

    I know how we can integrate it

    George, could you make me an intro w/ Matthew ?

  92. Soohan Park (Heartade)
    XRPC server implementation is open-source. Nostr source is open as well. If you have a way of implementing a... some... kind of integration, you can start without contacting the representatives of either side.
  93. whyrusleeping
    Hey Matthew you have a fan
  94. George Antoniadis

    In reply to this message

    Don't know him personally to be able to do that, but I'm pretty sure if you send him a polite and non creepy message he'll probably get back to you. He's really active in anything to do with Matrix's community.
  95. Joanna
    Already Dm him
    Ty
  96. Soohan Park (Heartade)
    btw is there a matrix dev (not necessarily contributors) room like this one for bsky?
  97. Like... just ordinary devs trying to figure out how to configure their Synapse server, wondering where everything's going etc
  98. George Antoniadis

    In reply to this message

    Look for synapse-admins, or ask in matrix-hq
  99. Soohan Park (Heartade)
    Thanks!
  100. Soohan Park (Heartade)

    In reply to this message

    Regarding this: I just found out that there's already https://imbev.codeberg.page/matrix-social/ going on
  101. Aaron Goldman

    In reply to this message

    Think he has quite a few fans using matrix.
  102. Soohan Park (Heartade)
    Count me in... 😂
  103. micwaul
    How many services do you think will adopt ATP except Bluesky?
  104. mikestaub

    In reply to this message

    Will likely grow exponentially. Will take a while for the 2nd and 3rd apps to be published, but after that many more will adopt. Successful protocols create powerful network effects. At first, the open source community will likely create 2-way bridges, but eventually almost all consumer social experiences will natively support the protocol. If I had to guess, reddit will be next after twitter, then discord but we'll see.
  105. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    Is interoperability with ActivityPub possible?
  106. Aaron Goldman

    In reply to this message

    https://en.gravatar.com/ is probably a reasonable analogy for what success might look like
  107. Aaron Goldman

    In reply to this message

    Anyone could make a lexicon for embedded ActivityPub object. But no plan for the
    bsky.app
    to support this.
  108. lk251
    Message deleted
  109. Aaron Goldman
    ActivityPub uses urls to reference users and posts there is nothing stopping a server from using 'at://$did/path/to/post' but that would be a shift for the servers to support resolving these urls
  110. lk251

    In reply to this message

    Why would twitter be incentivized to adopt ATP?
  111. mikestaub

    In reply to this message

    At first, not much besides ideological alignment with the mission of Bluesky. After a certain amount of users are in the network, it won't make sense for new apps to try and bootstrap their own social graphs from zero as that is the greatest challenge when trying to build new products.
  112. lk251

    In reply to this message

    So after the flourishing of several new apps, twitter would be incentivized to conform to the protocol in order to grow? Forgive me but I don’t see the incentive for twitter here. I expect no ideological alignment from Elon.
  113. I believe in the project, I just want to understand this thinking
  114. mikestaub

    In reply to this message

    Yes, Elon is now likely a threat as he will try to attack the fledgling network to protect his investment. Web2 incumbents will fight hard to protect their data moats as that is how they capture ad revenue. BTC lightning can disrupt their business models however so we at least stand a fighting chance.
  115. lk251

    In reply to this message

    I’m not familiar with ATP but i hope its design and success is not dependent on blockchain. I’ve seen exactly 0 blockchain projects with intrinsic value.

    Does ATP decentralize the cost of running a social network? If you think I should read about the protocol before asking these questions, please feel free to tell me so. Thank you for answering my questions.

  116. Aaron Goldman

    In reply to this message

    Depends what you call a block chain.
    Think Git not Bitcoin.
  117. lk251

    In reply to this message

    Thanks I understand that. I was referring to your comment on BTC lighting
  118. My apologies - to Mike’s comment on it.
  119. Aaron Goldman
    My personal expectation is that most users of paid PDSs will use credit cards to pay. 🤷‍♂️
  120. The free PDSs will probably want to put ads in the client which will be annoying since they will have to use some kind of DRM client that doesn't let you turn them off.
  121. I personally like the freemium model where something like 5GB storage 5GB/month bandwidth is free or 1TB for 1$/month or something like that. I think Google Drive is like 50$/year for 1TB but I think it can be done cheaper.
  122. Soohan Park (Heartade)

    In reply to this message

    PDSs operate independently from client apps, so I don't think ad-supported clients will dominate. Instead, PDS operators could push ads to the users' feeds (like Twitter's promoted tweets, but in a client-agnostic way).
  123. lepras (@lepras89:matrix.org) changed their profile picture
  124. @numero6:codelutin.com
  125. George Antoniadis

    In reply to this message

    I would have assumed free PDSes would inject promoted posts instead of ads so they can't be identified/blocked by clients.
  126. @massimo:kanik0.wtf left the room
  127. @sergia:sergia.ch joined the room
  128. @sergia:sergia.ch left the room
  129. mikestaub

    In reply to this message

    There will be plenty of traditional freemium business models I'm sure. What lightning enables is true microtransactions that enable creators and influencers to get paid per engagement. You can't do it with credit cards because the processing fees dwarf the actual payment amount.
  130. magicofazi
    What would you guys say is the core difference between AtProtocol and Matrix? It seems both at their core are syncing protocols for DAG based interactions. The main caveat is maybe Matrix allows for multiplayer interaction whereas AtProtocol is optimizing for single player pub/sub
  131. Joanna

    In reply to this message

    Agree
    Me working on Web 6
  132. In reply to this message

    Zuck won’t make the Metaverse
  133. In reply to this message

    @ = ascension technologies
  134. In reply to this message

    Git + Bit
  135. magicofazi

    In reply to this message

    Would argue adding a incentivized consensus layer that stores identity onchain but everything else offchain using some protocol like matrix or atprotocol is the best approach
  136. Joanna

    In reply to this message

    Exactly
    We need all crypto in the same page
  137. Soohan Park (Heartade)

    In reply to this message

    We could put the "everything else" part on-chain with IPFS etc, but could doesn't equate should and I'm not sure if we should
  138. Aaron Goldman

    In reply to this message

    I don't think IPFS inherently means on-chain
  139. @jonathan.stoltman:matrix.org joined the room
  140. @jonathan.stoltman:matrix.org left the room
  141. amazingca joined the room
  142. amazingca set a profile picture
  143. valueclick joined the room
  144. c.lace joined the room
  145. tonykent@tonykent:lisbon.ems.host

    Hello friends!
    Got one simple question regarding the identity. Does Bluesky allow to use IP addresses instead of domain names?

    https://atproto.com/guides/identity#identifiers

    The DNS handle is a user-facing identifier — it should be shown in UIs and promoted as a way to find users.

    What if i use at://123.5.6.12 instead of at://

    ?
    Will it work?

    (edited)
  146. SMTP allows to use IP addresses, but it is highly discouraged

    RFC 2821 (from 2001) considers using numerical addresses "discouraged":

    Host
    For the purposes of this specification, a host is a computer system
    attached to the Internet (or, in some cases, to a private TCP/IP
    network) and supporting the SMTP protocol. Hosts are known by names
    (see "domain"); identifying them by numerical address is discouraged.

    • it's allowed, but getting a valid cert is likely harder than getting a domain
    • It's also probably a bad idea unless you properly own your IP because you will be unable to move it ever
  147. whyrusleeping
    It probably works? Though user handles might get weird
  148. Oh but at:// uris dont have a domain name in them
  149. TravisR
    fwiw, while Matrix does support IP addresses, it still requires a useful certificate be published on the domain. It's historically very difficult to get a certificate for an IP address, and you'd be stuck with that IP forever (can't change it). We've actually considered dropping IP address support for these reasons: it provides little to no value.
  150. whyrusleeping
    Its at://DID/rkey
  151. You could still probably host a pds at an ip address, but https certs would get tricky as travis mentions
  152. tonykent@tonykent:lisbon.ems.host

    We've actually considered dropping IP address support for these reasons: it provides little to no value.

    does it mean currently Bluesky does not allow that?

    (edited)
  153. whyrusleeping
    Travis is talking about matrix. A different protocol
  154. tonykent@tonykent:lisbon.ems.host
    Ah, i see. Thank you
  155. TravisR
    sorry, I'm on the core team for Matrix and sometimes forget to use the right words to describe us (Matrix) in other venues 😅
  156. tonykent@tonykent:lisbon.ems.host
    (about Bluesky) why not restrict the system and work only with DNS addresses in the @
    alice.host.com
    type names (without DIDs)
  157. i guess "federation" won't work with IP addresses :-)
  158. whyrusleeping
    It might
  159. Im hacking on the relevant code today actually
  160. And my local test scripts all are ip address based
  161. Https certs are the hard part though
  162. tonykent@tonykent:lisbon.ems.host
    (new internet meme born) Y U CANT AFFORD BUYING A DNS NAME? :-))
    (edited)
  163. whyrusleeping
    Every
    alice.host.com
    style name is just sugar on top of a DID
  164. And a pds is able to declare its handle suffix independently of its location on the web
  165. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    You mean it uses a did:web:
    host.com
    :alice -> https://host.com/alice/did.json conversion ?
  166. whyrusleeping
    Unclear if that would work in practice tho
  167. tonykent@tonykent:lisbon.ems.host

    And a pds is able to declare its handle suffix independently of its location on the web

    didn't get the idea.
    or you mean - by using DNS ? :-)

    (edited)
  168. This is my did document for my BlueSky account
  169. In reply to this message

    Authority over a handle is managed by the pds the handle is on. So technically you can say your handle is whatever, as long as you can resolve it to a pds that says its good
  170. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    so it works like this?

    1. DNS lookup:
      alice.host.com
      -> IP
    2. Call 'com.atproto.handle' on IP -> DID
    3. Download DID -> DID Document from the centralized Bluesky DID server (in case of did:plc!!!)
    4. Call 'com.atproto.sync.getRepo' on DID.repo
    (edited)
  171. so Bluesky has 2 levels of indirection here instead of ONE in SMTP and Matrix
    (edited)
  172. whyrusleeping
    That is a thing you can do, yes
  173. And yes, did:plc is more centralized than some other did implementations, but one key feature that it notably has is that it works
  174. In reply to this message

    One thing to keep in mind here is that at a protocol level, everything is a DID. Handle references are all stored as DIDs, so most of the time youll start at step 3
  175. tonykent@tonykent:lisbon.ems.host
    also, where did you get the "https://plc.directory/did:plc:vpkhqolt662uhesyj6nxm7ys" ? is it on step 2 ?
  176. whyrusleeping
    Thats just how you resolve a plc DID
  177. For each type of did you have to know how to resolve it. Thats a fairly base part of the protocol
  178. We’re probably going to add did:web soon (tm)
  179. And then figure out what other did types should be supported as we go
  180. “All of them!!” Is a trap..
  181. tonykent@tonykent:lisbon.ems.host
    is "
    plc.directory
    " hard-coded? for any did:plc?
  182. whyrusleeping
    For now yes, in the future it will be a consortium and any consortium member will be able to have their own endpoint
  183. tonykent@tonykent:lisbon.ems.host
    thank you
  184. @planetoryd:matrix.org
    names and ids. does it use blockchain
  185. whyrusleeping
    Its all authenticated and hash linked, so you arent depending on the plc server to really do anything other than be a well known host
  186. No blockchains here ser
  187. @planetoryd:matrix.org
    why not
  188. whyrusleeping
    No need
  189. We probably will support blockchain based did types in the future, but they’re kinda annoying to use right now. Registering a new did:ion takes an hour
  190. tonykent@tonykent:lisbon.ems.host
  191. @planetoryd:matrix.org

    In reply to this message

    Consensus is worth decentralizing. And there are many fancy new techs
  192. whyrusleeping
    You dont need consensus on someones self-signed identity
  193. You just need a well known location for it to live
  194. @planetoryd:matrix.org
    on unique names
  195. whyrusleeping
    Thats the beauty of a hash based name
  196. There are infinite of them
  197. Public key cryptography provides unique names
  198. tonykent@tonykent:lisbon.ems.host

    Same guy (Firefox CTO :-)) asked here https://educatedguesswork.org/posts/atproto-firstlook/:

    A new DID form called DID placeholder (did:plc)), which consists of a hash of a public key which can then be used directly or sign new public keys to allow rollover (see my long post for more on this topic). As an aside, it's not clear to me how you actually obtain the DID document associated with a did:plc DID, as the public key isn't sufficient to retrieve it. There's apparently a PLC server, but is there only one? If not, how do you find the right one? This all seems unclear.

  199. @planetoryd:matrix.org
    Message deleted
  200. whyrusleeping
    The firefox CTO is annoyingly shallow in his reading of the docs
  201. @planetoryd:matrix.org
    typo, zooko's triangle
  202. whyrusleeping
    He reads enough to find snarky questions to ask, but not enough to answer them for himself
  203. Which is on us to write better docs of course
  204. @planetoryd:matrix.org
    It's wishful thinking to believe that consensus isn't worth decentralizing. censorship, security etc.
  205. whyrusleeping
    Sure, go use a did method that suits your threat model
  206. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    i agree here with him -> that's one of the points of centralization and it was not described in your documents (or maybe i wasn't able to find it)
    how do i know that it is the
    plc.directory
    server or you are going to convert it into the consortium soon? that's why i am asking it here :-)
    (edited)
  207. whyrusleeping
    For now,
    plc.directory
    is the place. Records you get back are verifiable
  208. In the same way that dns root servers are “hard coded”
  209. tonykent@tonykent:lisbon.ems.host
    yes, got that. thank you
  210. whyrusleeping
    We will likely get an ASN for plc and get it its own static IP
  211. Its intended to be neutral underlying infra, but its really only incidentally related to bluesky, we needed a DID solution to use that suited our immediate needs
  212. So we made a mostly acceptable one
  213. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    and what do you mean by the "consortium"?
    is it something like a "public permissioned blockchain"? like PoA?
    or something like a https://certificate.transparency.dev ?
    (edited)
  214. Aaron Goldman

    In reply to this message

    What does being an AS give you? You don't really need to do your own BGP announcements just have a server
  215. I guess if you want to play games with anycast rather than just run a dns server to resolve to a close ip
  216. In reply to this message

    If you have multiple devices racing to update the did document at the same time you will probably want consensus over eventual consistency.
  217. plc directory should put the updates in a total order
  218. total order for the did document not the whole directory :)
  219. whyrusleeping
    Right, but thats easy enough to do without having to resort to a blockchain
  220. Aaron Goldman
    I do like to use paxos/raft/... when I don't need a blockchain
  221. whyrusleeping

    In reply to this message

    Notably it puts you as the final say of whether or not the service remains up. Relying on other people’s infra means takedown requests can be processed without including you
  222. Totally, throw raft at it and call it a day
  223. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    but PAXOS and RAFT are permissioned
    only blockchain can give you true permissionless setup
    right?
  224. whyrusleeping
    Plc is permissioned by design
  225. No sense trying to use a bft algo when it doesnt match the threat model
  226. For the record, i did design and build a fairly large blockchain and am quite familiar with the tradeoffs.
    I feel good saying we dont need one here
  227. Aaron Goldman
    I think the distinction between Byzantine Fault Tolerance and Crash Fault Tolerance is less his point then the fact that the consensus group is invitational. When we move from just Bluesky PBLLC running plc directory to a consortium, we will probably pick a BFT consensus algorithm but it will still be a small number of consortium members that accept and order the did document patches.
  228. The protection for the did controllers is that they can prove the bad behavior of the plc directory.
  229. whyrusleeping
    Fair distinction
  230. Aaron Goldman
    1. patched must be signed by a key the is already in the DID Document. The directory can't make up a diff only veto or reorder them.
    2. once a patch is accepted into the ordered list of accepted patch if the directory forgets one the nodes that retrieved previously have proof the directory changed history.
    3. If the directory ever gave divergent histories and the two PDS talk to each other they can prove that the directory is duplicitous
  231. If the plc directory ever misbehaves then the community of PDS operators can change the plc directory they use and abandon the one run by Bluesky PBLLC. In order to keep the network from fracturing along directory lines
    plc.directory
    is incentivized not to behave badly.
  232. When the PDS operators demand that Bluesky PBLLC hand over control to a consortium we will know what the shape of that consortium needs to be by the requests coming from PDS operators
  233. Until then it probably makes sense to keep
    plc.directory
    simple e.g. A pair of PostgreSQL servers doing two phase commit and a webserver.
  234. So no not "true permissionless setup" but an accountable single source of truth
  235. ^my opinions here are my own
  236. tonykent@tonykent:lisbon.ems.host
    Thank you Aaron Goldman and whyrusleeping
    What about the consortium setup? How do you see it? Is it a POA blockchain?
    What are the other options?
  237. You can launch a public permissioned blockchain - use POA (a PBFT really))
  238. or you are pro-RAFT?
  239. whyrusleeping
    Lol, plc is POA
  240. Aaron Goldman
    https://plc.directory/did:plc:vpkhqolt662uhesyj6nxm7ys can get you the did document https://plc.directory/log/did:plc:vpkhqolt662uhesyj6nxm7ys can get you the log of patches you can verify yourself
  241. whyrusleeping
    But a POA blockchain isnt much different from raft over a set of self authenticating data
  242. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    yes, agree

    the difference is in other dimension - "compatibility" and "ease of use"

    POA pros over some RAFT cluster:

    • you can easily migrate POA into something like POS or even use some external well-established network like Polygon/Optimism -> more compatible with pure "crypto" tech
    • there is a notion of "tokens" and "gas" right out of the box -> so anti-Sybil mechanism out of the box
    • clients can launch light-nodes that will replicate the state, but not do a consensus -> better anti-censorship

    you will have to build all of that manually in case of RAFT
    am i right?

  243. Aaron Goldman
    123456execute("""
    SELECT operation
    FROM operations
    WHERE did = ?
    ORDER BY createdAt ASC
    """, did)
    

    https://github.com/bluesky-social/atproto/blob/75e14ae102d9ac5e2c3a47aa2341d8cb7e854397/packages/plc/src/server/db.ts#L163-L170

    That's basicly all we ask the directory to do.

  244. Sybil is not really a problem if the consortium is invitational.
  245. whyrusleeping
    And you can already do “light client” stuff with the current design of plc
  246. Migrating to a blockchain if we decided to in the future is also not hard
  247. Aaron Goldman
    Do we have the api Letting PDSs replicate the state for all patches since time?
  248. whyrusleeping
    We were discussing a “list all” endpoint for the plc, youd have to ask danny about that
  249. tonykent@tonykent:lisbon.ems.host
    also, i would like to thank Aaron Goldman for wonderful Youtube channel
    watched almost all videos, now watching https://www.youtube.com/watch?v=ZaqsTZ9mwD4
  250. Aaron Goldman

    In reply to this message

    Any requests? need to do more talks
  251. tonykent@tonykent:lisbon.ems.host

    In reply to this message

    that would be great! i would attend a call if that's possible

    I'm mostly into the ActivityPub, Subconscious Noosphere, SSB, etc
    also, very interested in the identity + blockchain (DIDs etc) topic

  252. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Anybody checked out https://solidproject.org? Goals seem similar to BlueSky/ATP, but with a broader focus than just social networks
  253. Joanna
  254. I already connected Tim Berners-Lee
    (edited)
  255. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    wait fr
  256. jmcasey
    I like the idea of it, but it seems like the target audience is folks who are comfortable standing up a web server. When you try to "get started" on that website you are straight into picking one of seven providers, reading instructions and following tutorials. That may be appropriate for some, but it will turn off the vast majority of people who just want to open the app and scroll. I think the approach of "build for what users are used to" is a smarter approach.
  257. That said... "hey gpt7, get me set up on solid" I think some presumptions I make need to be revisited this year.
  258. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Yeah, while the core protocol looks cool, the user experience is still extremely barebones.
  259. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    I can sort of imagine using a Solid Pod as a PDS for bluesky
  260. Rhino Unknown
    I watch all of these messages scroll by....as a business owner I am excited by blue sky. I don't mind paying for storage if it means I can have better control over my content. What is the timeline looking like? 1month, 6months, 1 year, more...just curious what he consensus is.
  261. whyrusleeping
    Hoping to have things in a good place in the next couple months I believe
  262. Rhino Unknown
    That sounds pretty good. Im sure it will be growing for awhile.
  263. Thib changed their display name to Thib (back on Feb 20)
  264. @ozanozdil:matrix.org set a profile picture
  265. @ozanozdil:matrix.org left the room
  266. Henrique S. Oliveira set a profile picture
  267. moved to @shreyan:beeper.com (@shreyanjain:matrix.org) changed their profile picture
  268. saysaywhat joined the room
  269. @rimuru:gentoo.chat changed their profile picture
  270. ephem left the room
  271. xtianpu joined the room
  272. xtianpu
    Hello, may I know where I can find the roadmap?
  273. Aaron Goldman

    In reply to this message

    https://github.com/bluesky-social/atproto/issues

    but that is very zoomed in.
    Hard to have a public longer term plan as plans tent to change

  274. amazingca
    I know you guys probably get this a lot, but what’s the current estimated release date as far as the public beta is concerned? I know you can’t give specifics, I’m looking more so for an estimate.
  275. planetoryd changed their display name to plein
  276. @bjf:matrix.org left the room
  277. Daniel Holmgren

    In reply to this message

    yup hard to get to know exactly, but we're hard at work trying to get this ready for yall as fast as we can. As Why said we're expecting things to be in a pretty good place in the next couple months
  278. amazingca

    In reply to this message

    Sounds good!
  279. @evbogue:matrix.org joined the room
  280. benpate joined the room
  281. ignacio joined the room
  282. @kenzie_jonn:matrix.org joined the room
  283. @kenzie_jonn:matrix.org left the room
  284. @gray_philip:matrix.org joined the room
  285. @gray_philip:matrix.org left the room
  286. Nick joined the room
  287. Nick (@nick:creativelink.chat) joined the room
  288. samuellee changed their display name to J
  289. mikuhl
  290. found on nostr
  291. mikuhl
    now the suspense of "did I actually sign up?" "if I sign up again does that put me in the back of the line?" "did I type my email wrong?" 😂
  292. FledgeShiu
    So true, lol
  293. Aaron Goldman
    If a second sign up puts you at the back that's a bug
  294. Joanna
  295. @reyg0r:matrix.org
  296. taurean

    In reply to this message

    I’m glad I’m not the only one who thinks like this. I can’t find the confirmation that I signed up before but I know I had to have.
  297. mikuhl

    In reply to this message

    I've learned from tiktok that almost literally every human thinks the same, things that I have thought where a unique quirk I do in my head, everyone else does too lmao.
  298. Especially pretending to be in a music video when you look outside the car window. 😆
  299. @evbogue:matrix.org
    Didn't get the email with the questionnaire, but still can't wait to give it a spin (when everyone is ready.)
  300. whyrusleeping
    Its surprising how hard it is to send out a ton of emails
  301. @evbogue:matrix.org
    Yah I've tried it in the past, email is decentralized and all, but...
  302. Aaron Goldman

    In reply to this message

    And surprising how hard it is to stop spammers from doing the same.
  303. @evbogue:matrix.org
    Well yah, email doesn't have a good replication strategy
  304. mikuhl

    In reply to this message

    you can just dm me the link u know :)
  305. @evbogue:matrix.org

    In reply to this message

    Yah I was going to recommend a Hotmail-style rollout with invite codes that generate invite codes to generate hype and expand the network computing power.
  306. whyrusleeping
    I could be convinced to share invite codes via dm, if someone were to be an iphone user and sent me their email ;)
  307. I may regret that but whatever
  308. Yolo
  309. xtianpu

    In reply to this message

    Me please, but Android 🤖
  310. whyrusleeping
    Theres no android or web build yet unfortunately
  311. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    me too 🙂 please
  312. @evbogue:matrix.org
    I'm russian out to get myself an iPhone right now even though it's after dark in Chicago and web browsers still work.
  313. @evbogue:matrix.org
  314. Great iPhone-hunting weather, obviously
  315. b0gg3r
    Message deleted
  316. zyolluax
    Probably could go out and borrow an old iphone to test 😂
  317. ignacio
    I’m with iOS and ready to test / feedback :-)
  318. mikuhl
    Cries in Android
  319. @truethomas7:matrix.org
    Same (iOS, willing to test and give active feedback)
  320. jmcasey
    unloaded question: how much breaks if you add ipad as a build target?
  321. FledgeShiu
    Same iPhone user.
  322. whyrusleeping
    I think you can run the app on an ipad
  323. Brad Brown
    oh it loads on iPad (and even on M-chip Macs!)…it’s just tiny 😂
  324. jmcasey

    In reply to this message

    You definitely can, it just doesn't play nice with stage manager. Tiniest of gripes ;)
  325. Alice muthoni joined the room
  326. ben changed their display name to ben (Old)
  327. ben (Old) changed their display name to moved to @ben:acter.global
  328. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Nice! I'm trying it on an iPad right now. Can't wait for it to come to the web and Android!
  329. FledgeShiu
    When can I get a invite code.😂
  330. whyrusleeping
    bsky.social
    -j75ry 👀
  331. FledgeShiu
    thanks!
  332. amazingca
    I’m so excited
  333. c.lace
    I need an invite code Thanks!
  334. Joanna
  335. whyrusleeping
    The one i posted has about ten uses, the 4pry4 one probably only has one or two left
  336. @truethomas7:matrix.org
  337. Nobody Nearby joined the room
  338. @sterence:sleeby.cafe
    will the public beta be the point we can self host or was that going to come at a later point?
  339. whyrusleeping
    Self hosting is our top priority right now
  340. We’re working on all the infrastructure and protocol pieces, setting it as a requirement for ourselves for being “ready”
  341. @sterence:sleeby.cafe
    good to hear, was just a bit curious about where it all is but thanks for the reply
  342. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    How will self-hosting work? Will it be able to run on the same domain as a separate website?
  343. whyrusleeping
    You’ll probably want to run it as pds.your.domain, or something
  344. There’s several layers to self hosting too, you can use the main servers that we run with your own domain based username, and/or you can bring your own DID (from a supported subset of methods), or you can run your own pds
  345. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Good to know, thank you!
  346. micwaul
    I'd love to participate in the beta test! Do I have to wait for an invite code via email?
  347. joelghill
    This is very exciting: https://apps.apple.com/us/app/bluesky-social/id6444370199

    Oh very exciting indeed! I'd love to test the eventual Android client
  348. @reyg0r:matrix.org
  349. @reyg0r:matrix.org
  350. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    You can ask, you just might not receive since quantity is limited
  351. @reyg0r:matrix.org
  352. xtianpu
    Oh looks like Bluesky DMs still in concept, isn't it?
  353. xtianpu
    Currently I working as indie twitter developer, and building simple chatbot on twitter like this video
  354. I wonder maybe some quickreply features may be added in the future? 😀
  355. b0gg3r
    DMs are not on the roadmap, as I understand
  356. mikuhl
    Is it possible to make our own client at this time, and interact with the private beta?
    (edited)
  357. @syui:syui.cf joined the room
  358. xtianpu

    In reply to this message

    Ouch, I don't know anymore where to go if twitter starting to hide their api behind paywall 😔
  359. kaxing joined the room
  360. @syui:syui.cf
  361. @jan:cloudcheck.io left the room
  362. @syui:syui.cf
    I tried to build
    github.com/bluesky-social/atproto
    , does packages/pds can work with web-server?
  363. Please can I have an invite code? 🙏
  364. @syui:syui.cf
  365. 123456# github.com/bluesky-social/atproto
    $ cd pacages/pds
    $ yarn build
    $ node dist/bin.js
    http://localhost:2583
    Error: Invalid characters in handle
    
  366. Why am I getting this error?
  367. 1"name":"xrpc-server","err":{"type":"InvalidRequestError","message":"Invalid characters in handle","stack":"Error: Invalid characters in handle\n    at /Users/syui/github/atproto/packages/pds/dist/bin.js:110733:15\n    at /Users/syui/github/atproto/packages/pds/dist/bin.js:103499:41\n    at newFn2 (/Users/syui/github/atproto/packages/pds/dist/bin.js:104023:20)\n    at Layer2.handle [as handle_request] (/Users/syui/github/atproto/packages/pds/dist/bin.js:30901:9)\n    at next (/Users/syui/github/atproto/packages/pds/dist/bin.js:31070:17)\n    at textParser (/Users/syui/github/atproto/packages/pds/dist/bin.js:27478:11)\n    at newFn2 (/Users/syui/github/atproto/packages/pds/dist/bin.js:104023:20)\n    at Layer2.handle [as handle_request] (/Users/syui/github/atproto/packages/pds/dist/bin.js:30901:9)\n    at next (/Users/syui/github/atproto/packages/pds/dist/bin.js:31070:17)\n    at /Users/syui/github/atproto/packages/pds/dist/bin.js:18371:9","errorMessage":"Invalid characters in handle","customErrorName":"InvalidHandle"},"msg":"error in xrpc method com.atproto.account.create"}
    
  368. FledgeShiu
    Does ATProtocol include the “sending device” info, like “via web”? Or will it add it the future?
    (edited)
  369. @syui:syui.cf
    yes, included device information
    (edited)
  370. @syui:syui.cf
  371. mikuhl

    In reply to this message

    Still wondering this
  372. George Antoniadis

    In reply to this message

    If you're in the beta then yes, you should be able to use your own client to interact with the bsky pds.
  373. mikuhl
    What's it's url?
  374. George Antoniadis
    I think it's just
    bsky.social
  375. It's basically the second part of your handle, you can check it out in the app login screen
  376. mikuhl
    I wonder why it's like
    michael.bsky.social
    and not like
    michael@bsky.social
  377. George Antoniadis

    In reply to this message

    not sure on the team's reasons for this but imo the first one is much more flexible as it doesn't limit you to the user@server pattern.
    you can do interesting things like adding TXT records or META tags to your own domain or website (ie
    geoah.me
    ) that points to any pds/did you want.
    you can also have vanity domains like
    geoah.unicorns.lol
    that point to any pds you want.
  378. mikuhl
  379. Anyone got a spare? ;)
  380. nvm got one maybe?
  381. George Antoniadis
    I think why shared one a couple of days ago but not sure if still works
  382. mikuhl
    just use the last one posted in chat and it gave me a DID
  383. guess I need to follow people lol
  384. this feels easier than I thought lmao
  385. George Antoniadis
    xD which lib are you using?
  386. mikuhl
    I am literally manually making requests in Insomnia LOL
  387. if its literally this easy I could probably make a client in a few days
  388. George Antoniadis
    hah, nice, checkout
    gosky
    and
    adenosine
    as well
  389. there's now another golang cli on the bluesky github org but haven't played around to see what it's capable of
  390. mikuhl
    I would make one in Dart
  391. mikuhl
    Woohoo I followed someone
  392. The access token expires hella fast
  393. George Antoniadis
    Pretty sure you can get postman to autorenew it
  394. mikuhl
    and now feed returns stuff, this is so easy to work with :D
    (edited)
  395. George Antoniadis
    If you wanna get to the harder stuff, I've mentioned you in a post, try replying to it :D
  396. mikuhl
    Man I wish I wasn't working today
  397. Stupid job. 😭
  398. mikuhl
  399. WHAT DID I DO I ONLY CALLED THE FOLLOW ENDPOINT ONCE?? 🤣
  400. George Antoniadis

    In reply to this message

    pfrazee could this be a client bug? :D client seems to keep fetching the same follow again and again
  401. If u want to check
  402. Wait oops
  403. Michael was taken. 🥺
  404. George Antoniadis
    yeah I can see the same on jb55's followers :P
  405. Michael
    damn i get pinged for every mention of "michael".
  406. mikuhl

    In reply to this message

    My job has like 8 people named Michael.
  407. pfrazee
    yeah we're looking into that right now
  408. only one record exists so there's a pagination issue
  409. arnobchak
    Is bluesky beta version launched or not
  410. I want to use in Android
  411. 😭
  412. Anyone please tell me
  413. Rhino Unknown
    I believe iphone only but it's exciting to watch all this activity.
  414. gonbatfire joined the room
  415. gonbatfire
    Hey there, looking forward to this launch, will the protocol be TOR/I2P friendly? Vital for censorship resistance.
  416. George Antoniadis

    In reply to this message

    Hey, it's HTTPS so should be TOR friendly.
  417. Aaron Goldman

    In reply to this message

    Hopefully being on top of http will bring a lot as the http ecosystem gets stronger
  418. Http³ has the opportunity to help alot with head of line blocking when syncing large number of small objects
  419. In http 1.1 you would be stuck bundling e.g. sending car files instead of individual blocks
  420. Webtransport certificate-hashes might also be interesting with the certificate-hashes in a did document. https://www.w3.org/TR/webtransport/#certificate-hashes
  421. The PDSs need a TLS domain cert is not really a problem but kinda itches from a decentralization point of view 🤷‍♂️
  422. bnewbold

    In reply to this message

    'gosky' was moved over to https://github.com/bluesky-social/indigo, they are the same (if you look in git history, and the CLI is still named 'gosky')
  423. In reply to this message

    things should generally work well over TOR, and there shouldn't be anything at the protocol layer preventing use of onion services. there is an open question about whether handles could be onion URL domains... it would require every node in the network to support tor onion services I think
  424. In reply to this message

    yes, though there might be a bit of last protocol churn (eg, endpoint and param names) in the next couple weeks. beta!
  425. In reply to this message

    I think what is going on there is that the "full handle" is syrui. (ending in a period). It needs to be a fully qualified domain name. In our testing stuff, we use .test as a domain, so it would be syrui.test. support for using "external" domains is being worked out right now.
    I'm not sure why the client isn't appending something like .test for you automatically. If this is your own PDS, maybe you need to configure something to be returned by com.atproto.server.getAccountsConfig?
  426. bnewbold

    In reply to this message

    clients can set HTTP User-Agent header if they want, but as with the web that is just between the user agent and the server.
    the current app.bsky Lexicon doesn't have a place to put device or user agent metadata, and I would guess probably won't. same with location metadata. bunch of privacy concerns having that on by default (opt out). nothing stopping folks building an alternative Lexicon that would host that kind of metadata. eg you wanted to do something like Foursquare.
  427. @syui:syui.cf
    That's certainly possible, thanks.
  428. I will try it when I have time.
  429. arnobchak
    I need invite code for bluesky social
  430. I'm creating account
  431. @evbogue:matrix.org
    On the way
  432. @reyg0r:matrix.org
  433. @evbogue:matrix.org
  434. arnobchak

    In reply to this message

    If you got then ping me
  435. @evbogue:matrix.org
    FoaF
  436. 🫂
  437. @evbogue:matrix.org
    🤙
  438. Thib (back on Feb 20) changed their display name to Thib
  439. olly.dgb joined the room
  440. @syui:syui.cf
    Thanks to everyone's advice, everything worked out great, thanks!
  441. @syui:syui.cf

    but, internal server error

    1234$ lerna run build
    $ cd packages/pds
    $ node dist/bin.js
    ATP Data server is running at https://localhost:2583
    
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263[
      {
        "level": 20,
        "time": 1676893811836,
        "pid": 1,
        "hostname": "xxx",
        "name": "pds:db",
        "handle": "syui.localhost",
        "email": "syui@syui.cf",
        "msg": "registering user"
      },
      {
        "level": 30,
        "time": 1676893811949,
        "pid": 1,
        "hostname": "xxx",
        "name": "pds:db",
        "handle": "syui.localhost",
        "email": "syui@syui.cf",
        "did": "did:plc:xxx",
        "msg": "registered user"
      },
      {
        "level": 50,
        "time": 1676893811993,
        "pid": 1,
        "hostname": "xxx",
        "name": "pds",
        "req": {
          "id": 2,
          "method": "POST",
          "url": "/xrpc/com.atproto.account.create",
          "query": {},
          "params": {},
          "headers": {
            "accept": "*/*",
            "content-type": "application/json",
            "accept-encoding": "gzip, deflate, br",
            "user-agent": "Darwin",
            "content-length": "0",
            "accept-language": "ja",
            "x-request-start": "t=1676893811814520",
            "host": "localhost",
            "fly-client-ip": "127.0.0.1",
            "x-forwarded-for": "127.0.0.1",
            "fly-forwarded-proto": "https",
            "x-forwarded-proto": "https",
            "fly-forwarded-ssl": "on",
            "x-forwarded-ssl": "on",
            "fly-forwarded-port": "443",
            "x-forwarded-port": "443",
            "fly-region": "nrt",
            "fly-request-id": "00",
            "via": "bluesky.io",
            "fly-traceparent": "00",
            "fly-tracestate": ""
          }
        },
        "didKey": "did:key:xxx",
        "handle": "syui.localhost",
        "msg": "failed to create did:plc"
      }
    ]
    
  442. I would like to know the env required for at-protocol-server, please.
  443. mikuhl
    I feel like a protobuf schema should be created so you can basically just generate a client in any language automatically
  444. It also isn't clear by the documentation which endpoints require auth
  445. Daniel Holmgren

    In reply to this message

    there's a reasonable test env in pds/tests/_util.ts. you can probably use it as a starting point & modify it as you see fit
  446. In reply to this message

    we have schemas for all our routes (see /lexicons folder in the repo). & codegen for a typescript client. Go codegen works reasonably well, but needs some clean up
    other languages are free to write their own generators (& we may put some work into it when we have more time 😛) or just send HTTP reqs
  447. In reply to this message

    yupp talking about adding that soon 👀
  448. @syui:syui.cf
    What will the command be, assuming you end up hosting it somewhere?
$ cd packages/pds;yarn start ?
$ lerna run xxx ?
    (edited)
  449. jmcasey

    This is the dockerfile I have been using:

    123456789101112131415161718FROM node:18-alpine
    RUN apk update
    RUN apk add git
    
    WORKDIR /app
    
    RUN git clone https://github.com/bluesky-social/atproto/
    WORKDIR atproto
    
    RUN yarn install --frozen-lockfile
    RUN yarn build
    
    WORKDIR packages/dev-env
    ENTRYPOINT ["yarn", "run", "start"]
    
    EXPOSE 2582
    EXPOSE 2583
    
    
    (edited)
  450. @syui:syui.cf
  451. thanks it was very helpful. Since I was building with docker now
  452. jmcasey
    No problemo. Feel free to DM if you get bogged down. No guarantees though ;)
  453. jmcasey
  454. PROGRESS
  455. bnewbold
    jmcasey: cool! I made some progress on adenosine this past weekend, refactored crates a bit and added some CLI color. haven't cut a new release yet
  456. from working with the golang codebase, it is clear how useful codegen is. saves so much time when upstream lexicons change. do take a peek at that if you haven't: https://github.com/bluesky-social/indigo/blob/main/lex/gen.go https://github.com/bluesky-social/indigo/blob/main/api/bsky/actorprofile.go#L13 I am enthusiastic about how the syntax can/will come out with nested rustlang modules :)
  457. (eg, app_bsky::actor::Profile, or app_bsky::actor::ProfileRecord or even app::bsky::actor::Profile)
  458. and, had some brainstorm-y ideas about developer tooling last week: https://github.com/bluesky-social/atproto/issues/562
  459. jmcasey
    Nice! I got sick of tweaking the implementation for lexicon updates, figured I'd bit the bullet. Hoping I can just add a yew::Component implementation for some of the generated structs so that only major changes need a new impl 100% on the syntax, currently aiming for something like: app::bsky::feed::getAuthorFeed( json!( { "did":"did:plc:abcdef123" } ))
    (edited)
  460. bnewbold
    here is an example of what the golang API looks like: https://github.com/bluesky-social/indigo/blob/main/cmd/fakermaker/main.go#L606 I think the decision whyrusleeping made to inject the XRPC client in to the method, instead of generating a client with all the methods attached, has worked out to be pretty flexible. eg, don't have to worry about distinction between an XRPC client, a com.atproto client, and an app.bsky client. maybe rust trait abstraction can make this a non-issue though
  461. jmcasey
    Yeah, I think a more modular/flexible approach works well, I haven't tried writing it as traits yet though.
  462. kphrx joined the room
  463. O joined the room
  464. @mathewgary56:matrix.org joined the room
  465. @mathewgary56:matrix.org left the room
  466. @syui:syui.cf
    Can change AVAILABLE_USER_DOMAINS like /.well-known ?
    (edited)
  467. @syui:syui.cf

    I'm getting an error like this, does it currently only work on supported domains?

    1234567891011121314$ cd packages/dev-env
    $ yarn run start
    /app/packages/dev-env/dist/cli.js:91476
            throw new XRPCError(resCode, res.body.error, res.body.message);
                  ^
    XRPCError: Not a supported handle domain
        at ServiceClient.call (/app/packages/dev-env/dist/cli.js:91476:15)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async generateMockSetup (/app/packages/dev-env/dist/cli.js:123766:17)
        at async start (/app/packages/dev-env/dist/cli.js:123976:3) {
      status: 400,
      error: 'UnsupportedDomain',
      success: false
    }
    
  468. amazingca

    In reply to this message

    The dev-env module uses the handle schema “*.test”. While I was going through the code, I did not see a straightforward way to change that.
  469. @syui:syui.cf
    Thank you very much.
  470. amazingca
    Happy to help. 👍
  471. @syui:syui.cf
    thanks so much. I was able to log in with bluesky (ios) by running availableUserDomains=.test in dev-env.
    (edited)
  472. amazingca
    Very exciting
  473. @syui:syui.cf
    I need an invite code for
    bsky.social
    , can someone please help me?
  474. amazingca

    In reply to this message

    Have you already tried the one that Whyrusleeping sent?
  475. @syui:syui.cf
    Message deleted
  476. @syui:syui.cf

    The one i posted has about ten uses, the 4pry4 one probably only has one or two left

    yes

  477. amazingca
    I mean, the best course of action would be to wait. There’s a chance that more might be sent here in the future.
  478. @syui:syui.cf
    yes, Thank you very much
  479. amazingca
    Happy to help. The whole thing is pretty exciting.
  480. Nothing changed their display name to 
  481.  changed their display name to 💭
  482. 💭 changed their display name to ⬇️
  483. ⬇️ changed their display name to ▫️▫️▫️▫️▫️
  484. ▫️▫️▫️▫️▫️ changed their display name to Nothing
  485. bnewbold
    cool, I was wondering if somebody would do that!
  486. amazingca
    There isn’t enough clarification in the repo atm to show how to change server settings for production environments, but the dev-env works marvelously for client-side testing.
  487. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Curious about how usernames and DIDs work in BlueSky and ATP - The specific use case I'm wondering about is this - say, for example, you're Google; you have a
    bsky.social
    account at @
    google.bsky.social
    . You want to change your username to @
    google.com
    while also keeping the Google website on the same domain. Is this possible?
  488. @evbogue:matrix.org

    In reply to this message

    Without knowing anything about it, I'll speculate that on Bluesky your data will exist at both locations and you will publish a pointer message that tells future followers to sync you at your new domain.
  489. bnewbold
    We are currently working on support for external handle domains, meaning in your example that the PDS would not need to run on
    google.com
    . and in general folks will be able to use
    bsky.social
    as a PDS host, and use any domain name they want (that they have control over)
  490. This will work via DNS records (not going to get in to the details until ready to announce)
  491. whyrusleeping
  492. @syui:syui.cf
    whyrusleeping amazingca Thanks so much, I was able to create an account!
  493. whyrusleeping
  494. Theres a few more uses on it if anyone else wants to come visit
  495. amazingca

    In reply to this message

    Glad I could help! 🎉
  496. @reyg0r:matrix.org
  497. aaaaninja joined the room
  498. @syui:syui.cf

    In reply to this message

    Yes, the following description (availableUserDomains: ['.test','.
    example.com
    ']) was also valid in packages/dev-env/src/index.ts.
    address :
    user.example.com

    However, I got a token verify error and it didn't work well.
    This may be some other factor, but I'm not sure.
  499. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    New TestFlight build just dropped it seems
  500. @syui:syui.cf
    great!
  501. amazingca

    In reply to this message

    Can’t wait to see it when it comes out on the App Store. 👀
  502. Nothing changed their display name to 😶‍🌫️
  503. 😶‍🌫️ changed their display name to - - - -
  504. - - - - changed their display name to > > >
  505. @ben:effektio.org left the room
  506. c.lace
    Bluesky is on TestFlight now?👀
  507. @syui:syui.cf
  508. err user get follows
  509. xrpc?
  510. @syui:syui.cf
  511. amazingca

    In reply to this message

    That’s unusual. Works fine on the wrapper (https://blue.amazingca.dev/?username=caleb.bsky.social&type=follows), don’t know why it isn’t on the app. 🤷
  512. @syui:syui.cf
    yes, indeed
  513. @syui:syui.cf
    maybe it's an ios app issue...?
  514. @syui:syui.cf
    Occurrence: Switching between multiple accounts
  515. aaaaninja

    In reply to this message

    oh no...... I didn't realize this was the invite code......

    I'll be waiting for someone to drop another invite code on a whim.

  516. Until then, I will build a local atproto environment and study the protocol.
  517. whyrusleeping
  518. aaaaninja
    wow...how fast !! thanks so great, whyrusleeping!!
  519. @syui:syui.cf
    happy
  520. amazingca
    very much so
  521. arnobchak
    Guys can you give me invite code I want to create bluesky account
  522. amazingca

    In reply to this message

    Have you tried the other ones above?
  523. arnobchak
    Is it work multiple users
  524. amazingca
  525. arnobchak
    Wait checking
  526. amazingca

    In reply to this message

    Though it does have a maximum use count
  527. arnobchak
    Checking
  528. arnobchak
    Account opens
  529. Thanks
  530. Anselm Schumacher (@anselm:schumacher.berlin) joined the room
  531. BJY2024 joined the room
  532. missr joined the room
  533. @syui:syui.cf
    Is there a possibility that the previous error is the ios app ver?
  534. build ver
  535. rish changed their display name to missr
  536. amazingca

    In reply to this message

    Possibly. There could be a newer build on TestFlight that addresses the issue.
  537. missr
    I used one of the codes. Thanks so much 😊
  538. valueclick
    I'm quite far back on the Waiting List so I haven't been invited yet, but I was looking here and saw the Invite Code, so I took the liberty of accessing it and registering an account. I'm sorry. I was able to download the app normally from the App Store.
  539. sylphrenetic

    In reply to this message

    I don't think that's a bad thing, that's what they're there for
  540. there just might not be enough spots for everyone yet as they ramp up on capacity
  541. valueclick

    In reply to this message

    It would be helpful if you said so. Thank you.
  542. justthisguyatx
    Message deleted
  543. Message deleted
  544. valueclick

    In reply to this message

    I think it is morally wrong for me to teach directly. If you can look here, you can find it by searching for "Invite Code".
  545. joelghill
    Hey, silly question about the mobile app, does it connect to any instance of bluesky, or is it hard coded to a single server for now? On Android so I can't play with it first hand
  546. amazingca

    In reply to this message

    You can connect to any instance.
  547. @dream:envs.net
    Hi guys. Any information about when will the invites be shared with ppl who are in the waitlist and haven’t got the email yet?
  548. arcalinea
    We're gradually working through it, it's a big list!
  549. micwaul
    Can I ask a simple question? Are deleted posts in Bluesky handled with a hide flag or removed from all system storage?
  550. Aaron Goldman
    Delete is hard in a distributed systems 😭 A object can be removed from a repo, or at least the latest version of a repo, but if someone has already synced it it is out there
  551. Is your question how one PDS sends purge requests to other servers or about what happened to your PDS?
  552. micwaul
    Thanks for the reply. I would like to know how the purge requests are executed to the other servers and also how long it takes.
  553. Johannes Ernst
  554. c.lace

    In reply to this message

    Why does my Bluesky say server is out dated?🤔 I can’t see my followers
  555. c.lace
    I’m operating from an iPhone 6’s don’t judge me ..I still love it here!
  556. whyrusleeping
    Try updating the app?
  557. Alice muthoni
    Hello
  558. @syui:syui.cf
  559. c.lace
  560. This is what it said
  561. @syui:syui.cf
    It may have something to do with when the account was created...?
  562. c.lace

    In reply to this message

    Maybe so 🤔
  563. @syui:syui.cf
    error for new users
  564. c.lace

    In reply to this message

    Yeah sad 😞 right now
  565. @syui:syui.cf
    Message deleted
  566. @syui:syui.cf
    v1.2(1) no error ...?
    (edited)
  567. jmcasey
    Can confirm that's the case for me anyway
  568. @syui:syui.cf
    Sorry, Thank you so much
  569. jmcasey
  570. @syui:syui.cf

    I can't get through this, can you help me ?
    url=https://$host/xrpc/com.atproto.repo.createRecord

    json='{
    "did": "did:plc:uqzpqmrjnptsxezjx4xuh2mn",
    "collection": "

    ",
    "record": {
    "text": "t"
    }
    }'

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $token" -d "$json" $url

    (edited)
  571. token ... ok(app.bsky.feed.getTimeline)
  572. @syui:syui.cf
    oh... done
  573. joelghill
    Is anyone here running an instance of BlueSky on their own domain? Is there any federation between servers happening or is that part of the protocol still under development?
  574. sylphrenetic
    Message deleted
  575. whyrusleeping
    Thats still under development. Its what everyone is working on right now
  576. sylphrenetic
    for my education, is the Lexicon spec here https://atproto.com/specs/lexicon#interface a rigid specification of the LexiconDoc interface? like do people have to adopt that? or could someone hypothetically create their own LexiconDoc interface and use it? I would think it's the former but I'm not sure
  577. c.lace
    Do we get invites for friends?
  578. bnewbold
    Not yet!
  579. Børlaag changed their profile picture
  580. Pablo Dorado
    Does anyone have an invitation code?
  581. whyrusleeping
    Scroll back a bit
  582. sourabh-ch joined the room
  583. heyhoe joined the room
  584. valueclick
    I still can't see my followers and followers.
  585. c.lace

    In reply to this message

    Same here ..
  586. isaiah joined the room
  587. MightySpaceman (OLD -> m_spaceman:matrix.org)
    exit
  588. exit
  589. how do I exit gomuks :(
  590. Aaron Goldman
    That's how I feel about vim 🙁
  591. @evbogue:matrix.org

    In reply to this message

    https://docs.mau.fi/gomuks/commands.html

    /quit seems to be the answer.

  592. In reply to this message

    Recently I learned somewhere :wq is not the only way out!
  593. In reply to this message

    Oh here is a comprehensive list of ways to exit Vim: https://stackoverflow.com/questions/11828270/how-do-i-exit-vim
  594. @shippage:mozilla.org joined the room
  595. valueclick
    Can't wait to be able to POST from Web Apps...?
  596. Soohan Park (Heartade)
    bsky.social
    just says `Cannot GET /`, is only the iPhone app available atm?
  597. arnobchak
    When bluesky will come on Android
  598. sylphrenetic

    In reply to this message

    I think that's true, only iOS rn.

    whyrusleeping is there a public API for the bluesky PDS that you can use to pull down posts?

  599. Soohan Park (Heartade)
    Got it. Meanwhile, asking those who have used the iOS app - is the app currently restricted to
    bsky.social
    , or can you already run and log into your own PDS instance?
  600. In reply to this message

    In reply to
    sylphrenetic

    I think that's true, only iOS rn.

    whyrusleeping is there a public API for the bluesky PDS that you can use to pull down posts?

    Maybe app.bsky.feed.getTimeline ? Never tried running the PDS myself tho.

    https://atproto.com/lexicons/app-bsky-feed#appbskyfeedgettimeline

    (edited)
  601. https://atproto.com/guides/applications#social-apis Also this. I don't remember seeing this last year, was this section added recently or did I just forget?
  602. @evbogue:matrix.org

    In reply to this message

    Yah I was thinking similarly. Like, while I wait for my brother to bring his old Macintosh over is there somewhere to fetch/post raw signed messages and then I could probably build a UI in a browser from there.
  603. @evbogue:matrix.org

    In reply to this message

    mostly because fomo
  604. bnewbold

    In reply to this message

    correct, Bluesky (the organization) currently only has a (beta!) iOS app, not a web interface. some other folks have been hacking on alternative clients and interfaces, but everything is still in flux
  605. In reply to this message

    it is totally possible to grab the PDS source code, reverse engineer to figure out how to get it working, deploy your own instance, and connect to it with the app. Bluesky is not ready to document or support folks doing this yet. also the details of federation are still being worked out and tested, so there is no reasonable way to communicate between instances, even if you run them all yourself. it will of course be possible to run your own instances that federate with eachother and with the Bluesky instance once everything is ready
  606. In reply to this message

    you're welcome to do it, but do keep in mind that some small details of the protocol are going to continue to change in the coming weeks.
    it is currently looking like records will stay stable, but a bunch of names of XRPC endpoints and arguments may get shuffled around in a not-backwards-compatible way in the near future
  607. In reply to this message

    the iOS app can point to any PDS instance, and it is possible to sign in to multiple accounts (on multiple instances)
  608. Soohan Park (Heartade)

    In reply to this message

    Thanks for clarifying! Are there some noteworthy third-party client implementations?
  609. amazingca
    Message deleted
  610. Message deleted
  611. amazingca
    I wouldn’t say it’s necessarily noteworthy, but I built a minimal client that displays/sends posts. It only works with Bluesky’s instance atm though:
    blue.amazingca.dev
    (edited)
  612. @syui:syui.cf changed their profile picture
  613. snarfed

    In reply to this message

    fwiw I'm building this into https://fed.brid.gy/ as a service that anyone can use. I've built two building blocks so far, 1) https://github.com/snarfed/lexrpc , Python XRPC + Lexicon implementation, and 2) https://granary.io/ support for converting between app.bsky.* objects to/from other existing social data formats
    (edited)
  614. the last big step is implementing repo/PDS-level federation, eg subscribe, sync, etc. the bluesky team has been actively working on this, and afaik is planning to publish details sometime soon ish. we'll be ready!
  615. Salvatore joined the room
  616. oyuksektepeli | Polkanext joined the room
  617. whyrusleeping
    More invites anyone?
    bsky.social
    -3g4xb
  618. macielbarroslira joined the room
  619. b0gg3r
    Somewhere, there is an dashboard that says "no signups in the last 12 hours, better leak a invite code"
  620. gagaball88 joined the room
  621. arnobchak
  622. I joined bsky
  623. @syui:syui.cf
    great!
  624. valueclick
    I updated the app and now I can see the follow follower information.
  625. @spiritual_coder:matrix.org joined the room
  626. @spiritual_coder:matrix.org left the room
  627. Kheyas joined the room
  628. Arley Ramos da Silva joined the room
  629. Kheyas Dev changed their display name to Kheyas
  630. nkoz joined the room
  631. mdangear

    In reply to this message

    Hello, I am interested by an invite code if this is still an option, thank you.
  632. ikuradon joined the room
  633. arnavnegi joined the room
  634. arnavnegi
    Hey there. When are invite-only downloads coming to India?
  635. redpola joined the room
  636. Harlan Wood

    In reply to this message

    This is awesome 👏
    Is the source code public?
  637. Shina joined the room
  638. gokhanmms joined the room
  639. Soohan Park (Heartade)

    In reply to this message

    This is really amazing!
  640. bstefan2 joined the room
  641. bstefan2
    Can anyone share an invite code? iOS user here. Thanks and excuse the spam
  642. alessandro-giuzio joined the room
  643. Louis Grasset

    In reply to this message

    not sure this channel is made for that bstefan2 😉
  644. Soohan Park (Heartade)

    In reply to this message

    Nice project! How do you represent ATP users in AP? Can you use DIDs, or does AP restrict you to using domain-based handles?
  645. In reply to this message

    How many of us in this room even have the access to the app lol
  646. leo_sc joined the room
  647. yaanislive joined the room
  648. yaanislive
    Is it out for android yet?
  649. Louis Grasset
    nope
  650. mdangear

    In reply to this message

    But you cannot use unless you have an invite code...
  651. Got stuck at registration, unless I am missing something
  652. Louis Grasset

    In reply to this message

    its a private beta and you have to receive an invitation code. that's all and clear in the app description 😉
  653. mdangear

    In reply to this message

    Yep, waiting for the invite code indeed
  654. carlos solis joined the room
  655. paulghostsuk joined the room
  656. paulghostsuk
    am still waiting for invite code would love to have one
  657. @jlsgo:matrix.org joined the room
  658. b0gg3r

    In reply to this message

    Is this one cooked already?
  659. whyrusleeping
    Did you try it?
  660. b0gg3r
    I was trying to crowdsourcing that test haha
  661. whyrusleeping

    Heres another, in case people beat you to using that last one (they’re 5 uses each):

    -ynzvy

  662. @jlsgo:matrix.org
    whyrusleeping: invite please
  663. whyrusleeping
  664. Try the one i just posted
  665. b0gg3r
    I blame myself for this hahaha
  666. Thanks a mill, why
  667. jsjahaahahah joined the room
  668. yhrc5p2sk6 joined the room
  669. dmcrev joined the room
  670. Michael Mullins
  671. Just picked up the beta and have been playing around with it. Looks like I’m getting the above error any time I click on the “followers” link in someone’s profile.
    (edited)
  672. Btw do y’all have any preference on where we post beta feedback?
    (edited)
  673. Romain Saillet joined the room
  674. Michael Mullins
    Just saw that @
    support-team.bsky.social
    was a thing.
    (edited)
  675. mylifeisdigital joined the room
  676. u10if joined the room
  677. @rafaelmelo.adv:matrix.org joined the room
  678. Marcelo Lopes joined the room
  679. paul (@pavlos101:matrix.org) joined the room
  680. Ronalds Vilciņš joined the room
  681. KamatsuKyoto joined the room
  682. Bev Robb changed their display name to Bev Robb @teksquisite
  683. teksquisite set a profile picture
  684. blopadyblopqt joined the room
Next group of messages