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. @planetoryd:matrix.org
    absolute blasphemy of dweb
  2. rawkode
    ActivityPub has its challenges, of course. I don’t believe it sucks snd such discourse doesnt really provide any value
  3. @planetoryd:matrix.org
    activitypub has no routing, no (modern) cryptography.
  4. damon/
    Blanket statements don’t help anyone. It’s imperfect, but there is not perfect. Stacking your preferences for comparison what do you find to be better in every way? Since it “sucks”
  5. Mehmet Ali joined the room
  6. George Antoniadis

    In reply to this message

    Not sure how that could be done without these services to support atproto's plc did.
    Maybe through a series of "verification" providers/services? Similar to how they plan on dealing with moderation and content discovery.
    (edited)
  7. @saleh9:matrix.org left the room
  8. @planetoryd:matrix.org

    In reply to this message

    "as an ai language model i dont have personal opinion"
  9. @planetoryd:matrix.org

    In reply to this message

    argument that helps you
    (edited)
  10. beeman joined the room
  11. beeman
    Hello all 👋 just started looking into ATP and I love it so far
  12. rawkode

    In reply to this message

    This seems like a challenge the protocol may need to solve for wider adoption. The narrative of people owning their data is great, but if it cant be expanded it may miss the mark
  13. beeman
    Can't wait to implement it in my apps
  14. rawkode
    Like why would people build their own apps on it with a rather narrow lexicon?
  15. I’ll open an issue with my ideas. Maybe we can get a conversation going 😀
  16. UnownPlain joined the room
  17. @planetoryd:matrix.org

    In reply to this message

    Literally you can say everything has its pros and downsides. Ironic
  18. George Antoniadis

    In reply to this message

    The lexicon is really open, anyone can create their own schemas.
    Yes, it's currently narrow, but that doesn't stop anyone from introducing new schemas to it.
  19. beeman set a profile picture
  20. snarfed

    In reply to this message

    right, and they've actually thought a fair amount about this, eg hoping to see a de facto standard clearinghouse/repo emerge for community schemas. thought I might have captured that in https://github.com/bluesky-social/atproto/discussions/855 , guess not, may be in this channel's history
  21. rawkode

    In reply to this message

    Yes, but if bsky doesnt merge them and they cant be supported dynamically, then people need a PDS and identity for each type of content?
  22. Maybe I don’t understand how this should work yet
  23. snarfed
    there's no need for the bluesky team to merge them anywhere. your PDS can just start using them, and other PDSes can adopt them and federate with you
  24. In reply to this message

    (on reddit, ironically)
  25. George Antoniadis

    In reply to this message

    Right now the only PDS is the bsky one which most likely doesn't support random schemas as it's designed as a micro blogging service.
    That doesn't mean people won't be spinning up PDSes that are general purpose in the future. Think of it like dropbox.
    You register, pay for storage, and you can hold any schemas you want.

    The main issue right now with this ^ is that right now from what I understand the server implementation is both a PDS as-well-as a bsky-server that is needed for the client to work. I think that these will eventually need to be decoupled to two distinct servers/services for what we're discussing to work nicely.

  26. @planetoryd:matrix.org

    In reply to this message

    yes, that sub is ok
  27. rawkode

    In reply to this message

    I must have misunderstood this then
  28. In reply to this message

    Ok. This helps
  29. snarfed

    In reply to this message

    PDSes and app servers are decoupled logically and semantically, but I think you're right that right now it's implicitly expected that they're generally colocated in the same service. I don't think that's a strict req't though
  30. George Antoniadis

    In reply to this message

    The main issue right now that I see is that you can't use bksy as a client with another PDS.
    You will soon be able to federate with another PDS, but you won't be able to provide your credentials to another PDS and use it from the bsky client. -- This is specifically a restriction of the current bsky implementation though and nothing stopping other clients from not behaving this way, or bsky to allow you to connect to third party PDSes.
  31. snarfed

    In reply to this message

    hmm, that doesn't sound right? I think at least the current mobile apps explicitly include a "choose your server" step in onboarding
  32. George Antoniadis

    In reply to this message

    I think it's pretty much "Choose your bsky server", not "Choose your PDS"
  33. Unless PDS == "bsky server"
  34. in which case my previous points were very wrong :D
  35. snarfed
    no, true, you're right. the line btw app server and PDS is currently fuzzy at best, and I don't think they currently allow explicit decoupling. maybe eventually! as with most of the current design, it's not "this is a permanent, deliberate decision" as much as it's "one of many good ideas that we'll get to eventually"
  36. George Antoniadis

    In reply to this message

    Yeah 100% agree, what they are doing is the best thing they could have done as it allows them to move fast.
  37. George Antoniadis
    I'm trying to find the available routes in the atproto server and I'm struggling :P If there is anyone here that speaks nodejs I'd appreaciate some pointers :D
  38. Hm I guess the client also talks XRPC, so there are no additional routes and it's just the lexicon stuff.
  39. Weckzen joined the room
  40. ilcergio joined the room
  41. ilcergio
    Need Bluesky invite code mail
    discapacidad5@gmail.com
  42. We are an organization for people with disabilities I visualize two blindness and we would like to be able to test the application
  43. see the accessibility options that you can have unfortunately since Twitter was sold the twblue application was disabled, which was with which people with disabilities could access Twitter people with deafblindness
  44. people with deafblindness And we are currently looking for an alternative that we can use
    (edited)
  45. Bryan Cinman joined the room
  46. bdimcheff joined the room
  47. Harshal Nandigramwar joined the room
  48. Uğur Korkmaz joined the room
  49. Uğur Korkmaz set a profile picture
  50. retr0id joined the room
  51. retr0id

    In reply to this message

    I have never seen someone actually read those rules, though
  52. retr0id

    RE: placeholder did https://github.com/bluesky-social/did-method-plc

    The DID itself is derived from the sha256 hash of the first operation in the log. It is then base32 encoded and truncated to 24 chars.

    According to my calculations, it is computationally feasible (on the order of "a few thousand dollars") to generate a hash collision of this truncated length. i.e. to generate a pair of new identities with the same ID string - but not to match with a chosen existing ID (aka a preimage attack). I don't yet have a very solid understanding of the rest of the protocol, so I'm asking here, would there be any security implications of generating such a collision?

    (edited)
  53. George Antoniadis

    In reply to this message

    Well at least you can ban people out for just having agreed to the rules :P
  54. George Antoniadis

    In reply to this message

    Main challenge in terms of compute would be that in order to do anything meaningful with this attack you'd still need to have generated a valid create operation for that did.
  55. retr0id
    generating a valid create op can be done offline, right?
  56. George Antoniadis

    In reply to this message

    yeah, it's something like

    12345678910{
        type: 'create',
        signingKey: 'did:key:zDnaejYFhgFiVF89LhJ4UipACLKuqo6PteZf8eKDVKeExXUPk',
        recoveryKey: 'did:key:zDnaeSezF2TgCD71b5DiiFyhHQwKAfsBVqTTHRMvP597Z5Ztn',
        username: 'alice.example.com',
        service: 'https://example.com',
        prev: null,
        sig: 'vi6JAl5W4FfyViD5_BKL9p0rbI3MxTWuh0g_egTFAjtf7gwoSfSe1O3qMOEUPX6QH3H0Q9M4y7gOLGblWkEwfQ'
      }
    ``` (from the docs)
    
  57. so you'd need to create a valid struct like this of which the truncated hash collides
  58. it's probably just much harder to find a collision in such a strict payload than what it would be on a pdf/png/mp4 that allows you to just attach arbitrary data at the end
  59. retr0id
    you don't need to be able to append arbitrary data to generate a collision
  60. anything that you can tweak (such as the username field) is enough
  61. however, updating the signature would be relatively expensive, granted
  62. but it does not affect the big-O cost of calculating a collision
  63. In reply to this message

    what is the signature algorithm btw? I can't see it mentioned anywhere obvious
  64. George Antoniadis

    In reply to this message

    correct, but I just assume it will be much more expensive if you're limited to the ut8 space for usernames, given length, and then you need to also calculate a signature
  65. retr0id
    being valid utf8 does not affect difficulty
  66. here's a collision with 24 matching hex digits (not base32!) that I generated in ~hours of GPU time the other day

    1234$ echo -n retr0id_662d970782071aa7a038dce6 | sha256sum
    307e0e71a409d2bf67e76c676d81bd0ff87ee228cd8f991714589d0564e6ea9a  -
    $ echo -n retr0id_430d19a6c51814d895666635 | sha256sum
    307e0e71a4098e7fb7d72c86cd041a006181c6d8e29882b581d69d0564e6ea9a  -
    
  67. both inputs are printable ascii
  68. the signature calculations would make the attack more expensive, but I'd still put it in the "feasible" ballpark
  69. orphanblock joined the room
  70. retr0id
    but anyway, if we assume that you can calculate such a collision, what would the implications be? On the surface level my guess is "not much" (since you "own" both accounts to begin with), but I could see this breaking assumptions made in other places
  71. @germain:souquet.com joined the room
  72. rawkode
    The bsky server isnt OSS, right?
  73. whyrusleeping
    It is
  74. Its in the atproto repo
  75. rawkode
    Oh. Thanks.
  76. @ritsu:fx45.in left the room
  77. rawkode
    Awesome. That will serve as a great reference as i build my own PDS 🙌
  78. sheopedia joined the room
  79. jbouvier joined the room
  80. noobdy joined the room
  81. achuvyas joined the room
  82. jamanfredi
    Maybe Im missing it, but is there a way to codegen interfaces from lexicon schemas or something similar? Basically if I get a response from the bsky api Im trying to figure out the optimal way of decoding that into a usable collection....
    (edited)
  83. necmi joined the room
  84. necmi set a profile picture
  85. s462 changed their display name to serdar
  86. @leon:vmst.io joined the room
  87. @ishan:m.ishanjain.me joined the room
  88. pablo_clueless joined the room
  89. Kjartan joined the room
  90. Kjartan
    Hello everyone! The did of a handle can be fetched via dns. But how does one know to which pds this handle/did belongs?
  91. @dream:envs.net
    Hi guys. I, still, don’t receive any invitation. If there any spare invites that you can share with me, I’d be thankful.
  92. panji.bsky.social

    In reply to this message

    <

    > Anyone got an invite for me?

    This is a developer room, please don't ask for invite codes here

  93. Kjartan

    In reply to this message

    But how would I know to which pds this request should be sent?
  94. snarfed

    In reply to this message

    https://github.com/bluesky/atproto/blob/main/packages/lexicon/ has the team's code for doing it in typescript, or you can just decode the JSON directly
    (edited)
  95. In reply to this message

    the response gives you the PDS's DID. right now the server will pretty much always be
    bsky.social
    . you can check that for a given did:plc with https://plc.directory/did:plc:...
  96. George Antoniadis

    In reply to this message

    There is a notion of a plc directory (https://plc.directory), not sure if there is documentation around it though yet.
  97. Indigo for example gets a PLC registry as an argument, so I can only assume there will be a bunch of available registries with the first/main one being
    plc.directory
    . https://github.com/bluesky-social/indigo/blob/f1f2480888ab5d0ac1e03bd9b7de090a3d26cd13/cmd/gosky/admin.go#L37
  98. Kjartan
    Ok, thanks!
  99. snarfed
    (also minor clarification, did:plc registries and ATP PDSes are separate things 😀)
  100. Brian Austin joined the room
  101. brianwaustin changed their display name to Brian Austin
  102. Brian Austin set a profile picture
  103. rawkode
    Im assuming that we can also grab rhe did:plc:string from the TXT record and search for its hash on IPFS Explorer?
  104. George Antoniadis

    In reply to this message

    atproto is not currently using ipfs/libp2p, just ipld/cars
  105. rawkode
    Damn, this is earlier than I thought. That means theres no federation atm?
  106. @tayyabrazin:matrix.org joined the room
  107. George Antoniadis

    In reply to this message

    Sorry by "currently" I meant that I'm not sure what the future holds.
    As far as we know there isn't a plan to use ipfs for atproto.
    It is using XRPC over HTTP. Federation is currently being worked on, but will also be over XRPC, -- again, AFAIK.
    (edited)
  108. @tayyabrazin:matrix.org
    Request for Invited Code for Bluesky I am writing to express my interest in joining Bluesky, the new social media platform that is creating a decentralized protocol. I believe that Bluesky has the potential to transform the way that we interact with each other online and I am excited to be a part of this initiative. I have heard that Bluesky is currently invite-only, and I would be grateful if you would be able to provide me with an invite code to join the platform. I am confident that I would be able to contribute to the community on Bluesky and provide valuable insights and perspectives.
  109. rawkode

    In reply to this message

    OK. I’ll try and find some issues on GitHub for federation. Ive made too many assumptions.
  110. Quinn Comendant joined the room
  111. snarfed

    In reply to this message

    it's definitely early! they haven't fully published the technical details of their federation plans yet. sounds like they're imminent though. George Antoniadis is right, we have an educated guess at the relatively complete picture, it's probably based on the com.atproto.sync.* methods for data transfer and the commit hash chain and MST for data model synchronization and merging. no IPFS involved
  112. rawkode
    That does explain the chat i seen about rebasing
  113. Which Im not sure is possible with IPFS, but if the MST is stored in postgres and shared with xrpc then i understand it better
  114. achuvyas
    is ATProtocol at a place where I can build my own front end for the bluesky? sorry if this is a stupid question
  115. rawkode

    In reply to this message

    Yes. Check the ecosystem repository for examples
  116. achuvyas

    In reply to this message

    Got it, thanks👍️
  117. whyrusleeping

    In reply to this message

    Yeah, its all based around the sync routes
  118. We’re working on deploying a test environment this week
  119. snarfed
    oops we woke the dragons 😆
  120. whyrusleeping
  121. Achu Vyas changed their display name to achuvyas
  122. whyrusleeping
    Happy to answer questions tho
  123. snarfed
    does god exist
  124. oops I mean, um...think of something relevant quick...when are stale CIDs acceptable, if ever
  125. (phew)
  126. George Antoniadis

    In reply to this message

    whyrusleeping since you're around, ^ this one is an interesting one that we really don't seem to know much, do you know if there are any docs or notes on how plc directories/registries are going to work?
  127. ie Are they just registries that people decide were to submit their dids, or are they talking to each other as well?
  128. anericzhang joined the room
  129. snarfed
    https://atproto.com/specs/did-plc is decently descriptive, even if it doesn't enumerate API endpoints. my guess is, they don't want did:plc to get so entrenched or formalized that it syncs across registries or otherwise provides long-lived guarantees, Certificate Transparency style, but I don't know for sure
  130. @tayyabrazin:matrix.org
    Invited Code please?
  131. Emergency Needed
  132. George Antoniadis

    In reply to this message

    considering that the plc did seems to be chain of operations that an arbitrary/malicious did registry could fake or stop accepting updates, I'm kind of expecting pdses to be asking more than one plc registry. -- KERI does something similar and it basically considers each registry a "witness" so they keep each other honest.
  133. retr0id

    In reply to this message

    as an AI language model, I am unable to provide invite codes
  134. snarfed
    yup, definitely sounds similar to how the CT ecosystem has evolved
  135. Carlos Moraes changed their display name to Carls Freitas
  136. Carls Freitas changed their profile picture
  137. sirperez joined the room
  138. @tayyabrazin:matrix.org
    One invited Code please for Bulesky
  139. sirperez
    I need one too please
  140. @tayyabrazin:matrix.org
    One invited Code please please please please please please
    To this email address
    tayyabhussin988@gmail.com
  141. George Antoniadis
    The invite request spam is kind of starting to get to me :/ It’s been getting worse by the day it seems.
  142. @tayyabrazin:matrix.org
    Just one invited Code please please please
  143. Emergency Needed
  144. George Antoniadis

    In reply to this message

    Please do not dm people to request invites.
  145. damon/
    Bsky is closed
  146. @tayyabrazin:matrix.org
    Okay
  147. damon/
    Please dial 119 or 911 for emergency services
  148. @tayyabrazin:matrix.org

    In reply to this message

    Help me one invited Code please
  149. Naadir Jeewa
    This is for discussion of the AT Protocol, not invite codes.
  150. @tayyabrazin:matrix.org
    I will get invited Code
  151. Where I will get invited Code I need Emargncy?
  152. In reply to this message

    Please help someone for invited Code
  153. @00c:matrix.org

    In reply to this message

    I don't have an invite code and I want it. But this room was not created for that purpose, so please don't ask invite code in this room.
  154. @tayyabrazin:matrix.org
    Thank you soooo much For Not giving invited Code!
  155. @novacosmos:matrix.org left the room
  156. Laura Langdon joined the room
  157. Laura Langdon set a profile picture
  158. wd joined the room
  159. douganderson444 joined the room
  160. douganderson444

    In reply to this message

    How can it be Web3 without ipfs...
  161. @planetoryd:matrix.org

    In reply to this message

    nah, they will use cuckflare
  162. George Antoniadis

    In reply to this message

    Does it have to be web3? (Whatever web3 means for you ofc)
  163. @planetoryd:matrix.org

    In reply to this message

    why do i be nice to Cloudflare
  164. wd
    probably a repeat question -- if I'm interested in self-hosting an instance, is that something I could do today while interacting w/ the rest of the ecosystem? or is it still a bit experimental? for context I have azure credits to light on fire as well as capability of home-hosting and a plethora of experience running daemons (I did a bit of searching of the chat and was hoping for a pinned 'RTFM' for this but failed to find anything obvious so now I'm being lazy :) sorry!)
  165. snarfed

    In reply to this message

    not quite yet, they haven't shipped federation. soon though
  166. wd
    terrific, is there a channel/mechanism to receive updates? (listserv/rss/? or just keep an eye out here?)
    (edited)
  167. Chris Lace
    Hi everyone … are the invite codes working?
Because mines don’t
    Thank You!
    (edited)
  168. Winter (she/her) joined the room
  169. Agusti joined the room
  170. virtugrowee joined the room
  171. virtugrowee
    hello good night
  172. Is there a way to check user pages in the staging.bsky ?
  173. i mean without invite code
  174. virtugrowee
    i mean just to visualize, to see the interface how is it...
    (edited)
  175. i'm not asking for invite code.
  176. Ksix joined the room
  177. Matt Moya changed their display name to Ksix
  178. bankrose joined the room
  179. Jonathan Gamble joined the room
  180. bankrose set a profile picture
  181. Xe Iaso joined the room
  182. Shiddiq Azis joined the room
  183. Shiddiq Azis
    really cool
  184. ghostbar joined the room
  185. ZPerretta joined the room
  186. Sherif Abdalla joined the room
  187. thebennyboy joined the room
  188. thebennyboy
    Hey Guys. New here! I'm a bit of a programmer, but just here to give suggestions. If you want BlueSky to go big, your gonna have to do something different - something BIG.
  189. I guess it depends what kind of site you're going for, but, a FB marketplace-type feature would be very sought after.
  190. nipperinshorts joined the room
  191. nipperinshorts set a profile picture
  192. nipperinshorts
    Hey, I'm Nipper and new here. Saw some blog posts about the decision to work in public. Any chance the React Native app is public, or semi-public, and looking for help? Couldn't find much about it in Github or via search.
  193. @horiehitoki:matrix.org joined the room
  194. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    rn the frontend isnt public code but the protocol code, typescript PDS + API is all on github
  195. nipperinshorts

    In reply to this message

    Thanks! I wasn't sure if it was the case of it wasn't there yet, we're taking help to get there, or if it would ever be public.
  196. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    I think they plan to, but just havent yet
  197. lamrongol
    In this time, about 3000 posts per hour and 50% is English, 20% is Portuguese and 10% is Japanese according to https://github.com/pemistahl/lingua .
  198. Chris Lace
  199. Yeah I’ll take an invite, but the ones I have aren’t working 🤔
  200. snarfed
    saw enough questions and assumptions about Jack and Bluesky's ownership and structure here that I ended up collecting everything I'd heard so far: https://snarfed.org/bluesky-corporate-ownership-and-structure
  201. lamrongol
    Bluesky uses DID, but people who don't know it can't distinguish whether an account is real, so how about displaying accounts that have DID with some kind of mark, and vice versa for accounts that don't have with another mark?
  202. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    well every account ("repo") on atproto has to have a DID. it's not really used for verification so much as it actually is your identity on atproto
  203. lamrongol
    Sorry, I mean "accounts that don't have DID" is default domain("
    bsky.social
    ").
  204. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    so if I understand you right what you mean is profiles that use a custom domain?
  205. lamrongol

    In reply to this message

    Yes, I think it is desirable to display some kinds of mark for accounts that have custom domain.
  206. In reply to this message

    In addition, I think it is also needed a reminder message of a domain itself is real.
  207. @10allday:matrix.org
    Message deleted
  208. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    I dont know if this would actually be helpful because as Paul said on BlueSky earlier, custom domain doesnt necessarily mean authentic. e.g. anyone can just buy
    pfrazee.xyz
    and then verify that and pretend to be him if we assume some sort of "verification" from that
  209. and while by "some kind of mark" you may not necessarily mean a "verification" symbol, to most people it will probably look that way.
  210. wd
    I would assume that when I can host my domain etc that the simple indicator of a domain-specific account is enough -- it removes any concern about, e.g., "verified" users from
    washingtonpost.com
    or whatever -- if you're posting from the domain you clearly are authorized.
  211. Mark Foster SSI: @mfoster.io

    Verifiable Credentials would be interesting to add to the mix

    https://www.w3.org/TR/vc-data-model-2.0/

  212. pizzaknight joined the room
  213. lamrongol
    We are developers and have some knowledge, however, common people may not check an account has custom domain. and if an evil person have "
    washingtnpost.info
    "('o' is removed and "com" is replaced "info") domain, people may think the account is real because it have "custom domain".
  214. wd
    at some point you have to stop meeting the lowest common denominator and just lean into (e.g.) the padlock for https and other common, well-understood iconography. 🤷
  215. pizzaknight

    In reply to this message

    These offer a solid solution path around the issue wd has brought yp. Ultimately clients will also have to play their part by signaling/highlighting accounts based on their own registry of identifiers and verifiable credential checks. The onus will be on casual end-users to use the most appropriate/recommended clients
    (edited)
  216. 高槻みの(Minovski) joined the room
  217. wd
    it's also an opportunity for 3P clients to differentiate / add additional trust and certification. nothing about the protocol as I read it precludes high quaity verification / authentication. curation appears to be an "over the top" addon for clients or aggregators, which is good.
  218. 高槻みの changed their display name to 高槻みの(Minovski)
  219. 高槻みの(Minovski) set a profile picture
  220. pizzaknight

    In reply to this message

    exactly. this will require the creation of client-level standards and conventions.
  221. 高槻みの(Minovski) changed their profile picture
  222. lamrongol
    I may not be able to understand conversations because my English or skill level is low, only thing I want to say is a way to prevent identity theft is needed. Bluesky team also prevent impersonation https://staging.bsky.app/profile/bnewbold.bsky.team/post/3ju3rgczmfl2h https://staging.bsky.app/profile/bnewbold.bsky.team/post/3ju3rhsie7322
    (edited)
  223. igz0 joined the room
  224. pizzaknight
    About Verifiable Credentials, recommend checking out: https://atalaprism.io
  225. Peter Fritz joined the room
  226. İlker Çakır joined the room
  227. きのこ種類 joined the room
  228. Kjartan
    A probably very stupid question, but without asking, I might never know: Why isn't there just another TXT record pointing to the used PLC directory (assuming there will be more than just https://plc.directory in the future)? Or the already existing record could just have the plc directory added (like did:blablabla;pd:plc.directory). I'm sure the idea isn't new and that it was simply decided against it - I'm just curious for the reasons
  229. Tom Atkins joined the room
  230. tamakiii joined the room
  231. tamakiii set a profile picture
  232. Siddhartha Golu joined the room
  233. Maza Fard joined the room
  234. Maza Fard set a profile picture
  235. @toranosora:matrix.org changed their profile picture
  236. @vinicius:chat.rios.org.br joined the room
  237. @vinicius:chat.rios.org.br left the room
  238. @germain:souquet.com left the room
  239. @dev_dude:matrix.org joined the room
  240. @nobodyu:matrix.org joined the room
  241. François Arbour joined the room
  242. Aakash Bhadu joined the room
  243. Aakash Bhadu
    hey everyone, is there any guide to run own pds for bluesky because i've been waiting for invitation code and didn't get yet.
  244. Xe Iaso
    you can't yet
  245. superirale
    So what can we do as a developer?
  246. @planetoryd:matrix.org

    In reply to this message

    write criticisms on ActivityPub
  247. Aakash Bhadu

    In reply to this message

    so, we can run our pds or not? if yes guide for that?
  248. @planetoryd:matrix.org

    In reply to this message

    he said no
    (edited)
  249. Aakash Bhadu
    why? bluesky given an option for that in app
  250. Xe Iaso

    In reply to this message

    they*, but I did use the word yet
  251. Aakash Bhadu
    but as now we have partially running atp. does it not support all those connecting to app things.
  252. isfastspeed joined the room
  253. superirale
    😂😂😂
  254. Phil Buckley joined the room
  255. George Antoniadis

    In reply to this message

    You can run a pds, but the uses on that pds will one see each other and their posts.

    Your users can use the official bsky app to connect to your pds.

    Once federation is done and deployed your pds should also be able to communicate with the bsky and other ones as well.

    The pds server is available on the gothub repo.

  256. Agusti
  257. George Antoniadis
    There are no guides but with some messing about it should be doable
  258. Agusti
    which client do u guys use, tried fluffychat and is really broken, the convo is empty I see the notis on the sidebar lol
  259. pablo_clueless

    In reply to this message

    I beg to differ on the matter of authenticity. If left to clients to verify and manage, then there's still room for fakers to gain ground. The onus is on bsky, or other PDS, to issue this icon/mark of authenticity.
  260. robertvh joined the room
  261. robertvh

    In reply to this message

    Cinny.in
    is legit
  262. Soli joined the room
  263. Soli
    Hi everyone, I have been trying to get an invite for a while and thought I might get lucky on here. This is my personal website: https://soliman.life/#/. I have been an early adopter and most social media apps and would love to see what bluesky has to offer. I will probably host on my domain too under
    soli.blue
    once I get access (If I understand this correctly). Would really appreciate an invite.
  264. nemumu joined the room
  265. Aakash Bhadu

    In reply to this message

    that's what i'm asking, thanks
  266. @cubixle:matrix.org joined the room
  267. waittest joined the room
  268. @hiroh:matrix.org joined the room
  269. @hiroh:matrix.org left the room
  270. Roj joined the room
  271. Roj
    Hey there, this PR is ready for review now. Sorry about the the title edit spams. https://github.com/bluesky-social/atproto/pull/894
  272. I also have a doubt. Wouldn't using something else other than Express for xrpc-server be more convenient?
    (edited)
  273. For example, Koa. I think it handles asynchronous middlewares much better.
    (edited)
  274. pizzaknight

    In reply to this message

    then what you're asking is for providers to become the root of trust/source of truth, at that point you don't need bluesky or anything else, facebook and twitter do this just fine. it's essentially antithetical to everything being built here

    clients utilising a registry or parsing verified credentials from the protocol for the purpose of indicating authenticity is merely an abstraction to streamline general UX.

    users won't and don't have to depend on their providers as they can self-certify and verify these same facts at the protocol level independently.

    (edited)
  275. snarfed
    kind of. there's value to both the technical solution of bottom up self certifying and the social solution of trusted authorities verifying identity out of band
  276. the canonical example is, say I want to follow Taylor Swift. there are multiple accounts that seem like her, and multiple have self certified (say) their DNS domains, but I don't know which is her real web site. Is it
    taylorswift.com
    ?
    tayswift.com
    ? something else?
  277. organizations that verify identities manually can help solve this. bluesky's approach of https://blueskyweb.xyz/blog/4-13-2023-moderation is nice in that there can be multiple to choose from, with different processes etc, ie no single forced authority like facebook or twitter
  278. we don't have to choose between technical and social identity verification, we can use both
  279. pizzaknight
    exactly so 💯
  280. snarfed
    has anyone figured out how to sign repo commits yet? specifically, the sig field here: https://atproto.com/specs/atp#repo-data-layout
  281. if not I can go dumpster dive in the TS code
  282. whyrusleeping
    You might find the go code easier to read
  283. Lemme get a GitHub link
  284. ^ gets the bytes to be signed
  285. That code isnt used in prod and is mildly jank though, we only verify signatures on the go side for now
  286. snarfed
    whyrusleeping: ah thanks! I found https://github.com/bluesky-social/atproto/blob/main/packages/repo/src/util.ts#L238-L248 and the crypto package too, but wasn't sure if the current sigs are secp256k1 or P-256
  287. looking at the go now
  288. whyrusleeping
    We support both keytypes
  289. snarfed
  290. and based on the TS, looks like the plaintext is just DAG-CBOR unsigned commit
  291. whyrusleeping
    Hashed, but yes
  292. We sha256 it before signing
  293. snarfed
    interesting that there specifically it's sha256 and not CID
  294. no matter
  295. @10allday:matrix.org
    Is it possible to contact the root name servers by default, just so the domain is registered?
  296. @tayyabrazin:matrix.org

    In reply to this message

    Help me one invited Code please
  297. Begging from you all ! Anyone please
  298. Begging from you all ! Anyone please just one invited Code
  299. Invited Code please anyone please?
  300. snarfed
    whyrusleeping: have you all settled on the supported ciphers? eg Ed25519 seems to be in Go but not TS. should I stick with, say, P-256 for safety?
  301. @tayyabrazin:matrix.org

    In reply to this message

    Invited Code please anyone please?
  302. nipperinshorts

    In reply to this message

    Not gonna happen in here. This is for engineering discussions.
    Also, try not to spam repeatedly.
  303. @tayyabrazin:matrix.org

    In reply to this message

    Please 🙏🙏🙏🙏🙏🙏 Help for it
  304. kiwy joined the room
  305. md-bm joined the room
  306. Ugurkan H joined the room
  307. fredoric joined the room
  308. naim
    Shouldn't the protocol/api also have live updates using server-sent events or websocket? Edit: I'm asking this because I see all opensource web clients are fetching nonstop
    (edited)
  309. wija joined the room
  310. arcdigital joined the room
  311. pfrazee removed @tayyabrazin:matrix.org: invite code spam
  312. pfrazee
    removed
  313. pfrazee banned @tayyabrazin:matrix.org: invite code spam
  314. pfrazee

    In reply to this message

    yeah might need to, still need to understand requirements better
  315. stienman joined the room
  316. stienman
    https://atproto.com/guides/overview#speech-reach-and-moderation - seems to imply that indexing services (reach) are probably closed endeavors and there's very little information on what a "good" (in all senses of that word) indexing service should implement, nor any examples, discussion, or code towards that end. Is discussing and defining this relatively important part of the puzzle being left for later, or happening now but not openly, or happening somewhere I just haven't found yet?
  317. mrkishi joined the room
  318. Aaron Goldman

    In reply to this message

    This may end up split. With a server push informing your client that a repo they follow has a new head. Then the client can fetch at it's convenience.
  319. sakana9590 joined the room
  320. snarfed

    In reply to this message

    apart from moderation tools, https://blueskyweb.xyz/blog/4-13-2023-moderation , other work around global indexing services seems left for later so far
  321. search on the current official PDS is using Elastic afaik, but I'd guess more as a one-off so far, maybe not deeply integrated with the future "big world" indexing plans
    (edited)
  322. ichi moku joined the room
  323. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    LinkedIn recently added this, using Verifiable Credentials, surprisingly enough.
  324. snarfed
    true! that's a good example of combining both. eg the email domain verification with Entra is technical, CLEAR is more social
  325. codynhat joined the room
  326. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Yeah. I think it might work for BlueSky because from what I understand I think Verifiable Credentials and DIDs are related
  327. snarfed
    could happen at multiple levels too. eg a third party could generate a "verified" label that's propagated with their composable moderation, entirely separate from DIDs
  328. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    for sure! organizations verifying others' affiliation with them is my favorite solution so far
  329. Logandev_ joined the room
  330. Mert (@sataniat:matrix.org) joined the room
  331. Mert (@sataniat:matrix.org) set a profile picture
  332. Aaron Goldman

    In reply to this message

    Have you looked at nabu?
    https://youtu.be/TzCxmxmW4jQ
  333. Trevor joined the room
  334. Yoav Caspi joined the room
  335. MOUSAsan joined the room
  336. @tareqanati:matrix.org joined the room
  337. @tareqanati:matrix.org left the room
  338. seasonHxy joined the room
  339. James B-T joined the room
  340. yoavca changed their display name to Yoav Caspi
  341. mikuhl
    Ready to start implementing zaps when you guys allow creating records in unknown collections. https://cdn.discordapp.com/attachments/1100630242852352031/1100630411870216274/image.png
  342. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    cool, i wanna see how you implement that
  343. jamwal joined the room
  344. @enomoto_r02:matrix.org joined the room
  345. Soli set a profile picture
  346. Justin B. Watson joined the room
  347. Justin B. Watson set a profile picture
  348. @enomoto_r02:matrix.org left the room
  349. George Antoniadis

    In reply to this message

    Would they be a different collection/repo/whatever or just additional attributes on posts?
  350. @vagabond0312:matrix.org left the room
  351. ifeeltiredboss joined the room
  352. ifeeltiredboss

    In reply to this message

    ?? still the room is on
    matrix.org
  353. this is how decentralization will work on atproto/bsky? XDz
    (edited)
  354. jesopo
    you dont understand how rooms work
  355. ifeeltiredboss
    I know.
  356. jesopo
    rooms exist on every server that participates in the room. no one server has control over the event graph
  357. ifeeltiredboss
    You dont understand how servers work
  358. jesopo
    this room isnt "on"
    matrix.org
    ; the room's alias is
  359. ifeeltiredboss
    lulz.
    matrix.org
    goes down and the room is gone as well
  360. jesopo
  361. that's not how it works
  362. that's how xmpp works, that's not how matrix works
  363. @neilalexander:matrix.org

    In reply to this message

    No, the alias to the room might be on
    matrix.org
    but the room will continue to exist on all other participating servers
  364. jesopo
    aliases can also change
  365. ifeeltiredboss

    In reply to this message

    which is
    matrix.org
    for like 85% of the ppl
  366. decentralization?
  367. @neilalexander:matrix.org
    You can lead a horse to water, etc
  368. ifeeltiredboss
    I am not a company founded by a multimilionaire XD
    (edited)
  369. naz joined the room
  370. naz
    Hey-hey Bluesky people! 👋 I was looking for invites but found the dev chat, which is even a bigger win 😂
  371. panji.bsky.social

    In reply to this message

    This is a developer room, please don't ask for invite codes here. You can personally DM @whyrusleeping on twitter.
  372. edouard joined the room
  373. naz
    no worries. not asking for anything :) I'm an OSS contributor myself - https://github.com/naz
  374. George Antoniadis

    In reply to this message

    Hey naz, welcome :D
  375. naz set a profile picture
  376. panji.bsky.social
  377. what happened?
  378. しゃち joined the room
  379. mars_awas joined the room
  380. Tommi joined the room
  381. @planetoryd:matrix.org

    In reply to this message

    yes, matrix scales poorly and many servers are defederated.
  382. rickymw joined the room
  383. Deceptio left the room
  384. Deceptio joined the room
  385. Sam "Therapy" Bulon changed their display name to Nobody
  386. beedee joined the room
  387. justenwalker joined the room
  388. soshiharami joined the room
  389. mikuhl

    In reply to this message

    They said that adding fields to schemas that aren't yours is frowned upon, so I would use new schemas / collections
  390. So the server would not know it's format, but it shouldn't stop it from being able to be added and removed from
  391. And probably the query could fall back to just filtering by any records with any matching query parameters
  392. Or perhaps there should be like a com.atproto.repo.filterRecords so you can do that in all collections
  393. Pedro Renato Mello joined the room
  394. Aaron Goldman

    In reply to this message

    Some times I want to point people back to old-school SQL many-to-many relationships. You can link to tables you don't have permission to add collums to by making a table that foreign keys off to both of them. If you want to add a field to a lexicon you don't own Make one you do own and reference the other record
  395. Foreign key joins were/are a very powerful distraction
  396. Abstraction
  397. @10allday:matrix.org
    Is it possible to get ICANN and IETF (Internet Corporation for Assigned Names and Numbers, and Internet Engineering Task Force) to grant Bluesky an unrevokeable ipv4 and ipv6 addess?
    (edited)
  398. @10allday:matrix.org

    In reply to this message

    This would ensure that everything is truly decentralized and cannot be taken away without approval from IETF.
  399. In reply to this message

    In reply to
    @10allday:matrix.org
    This would ensure that everything is truly decentralized and cannot be taken away without approval from IETF.
    Because you only need one unrevokeable ip address to then send incoming traffic to another ip address run by other users. (The IPs used by users would be the only revokeable ones used.)
    (edited)
  400. Justyn Temme
    Can someone drop the repo url I would love to look at contributing to Bluesky 🫶
  401. @10allday:matrix.org

    In reply to this message

    Who is the CEO of Bluesky, PBLLC. Are they able to respond to these messages as they are in charge of the organization?
  402. mikuhl
    Jay apparently is CEO she said in a weird post about Jack lol
  403. paobl joined the room
  404. jun kubotamai joined the room
  405. @10allday:matrix.org
    Let's say ipv4 33.87.150.174 is permanently unrevokeablly mandated by IETF to be used to let people connect and receive a list of all servers running atproto, these servers would be connected to the root zone of atproto. (If it were to exist) This is what would further decentralization as the ip address would always be used to let clients search for servers.
  406. @neilalexander:matrix.org

    In reply to this message

    And absolutely nothing would stop any network or ISP from directing traffic to that IP to something they control instead, so it is still a very bad discovery mechanism
  407. @10allday:matrix.org

    In reply to this message

    This doesn't affect people who aren't connected to the ISPs network.
  408. @planetoryd:matrix.org

    In reply to this message

    overlay network is always better, at least for now
    (edited)
  409. stypr joined the room
  410. @10allday:matrix.org

    In reply to this message

    This is the only option that can be put in a configuration file and still have it work forever as long as ICANN and IETF honner standards.
  411. @neilalexander:matrix.org
    It isn't any better and it's possibly worse than just using normal DNS Service Discovery
  412. @planetoryd:matrix.org

    In reply to this message

    what if the society turns totalitarian. have some resistance
  413. @10allday:matrix.org
    Message deleted
  414. stypr changed their profile picture
  415. @10allday:matrix.org

    In reply to this message

    The only option in that case would be using radio communication for peer discovery.
  416. @planetoryd:matrix.org

    In reply to this message

    false. the govt would detect and arrest you
  417. Anselm Schumacher (@dm:spree.monster) joined the room
  418. Kjartan
    I'm not sure about this: Are the records of
    plc.directory
    to be trusted? Or would a client, pds server, etc, still have to verify the information of the directory?
  419. Because: if the information is supposed to be reliable, it seems to me, that it is not (yet); and if it's not supposed to be reliable and needs verification, then I'm not sure if I understand the point of the plc directory, as the information could be probably gathered at the same spot where it would get verified - or am I missing something?
  420. Aaron Goldman
    plc.directory
    is being trusted to provide ordering. Imagine you have a did:plc and have added the two keys. One is in your laptop's TPM the other is in your phone's TPM. They each attempt to revoke the others key. Who's update is successful in revoking the other and who's is rejected. One of the updates needs to be first and one second. This ordering is the value of
    plc.directory
    as an append only log.
  421. In reply to this message

    The server is not trusted with updates to DID Documents just with ordering the updates.
  422. Including special cases of order like rejecting your update which is equivalent to ordering your update at the end of time.
  423. Kjartan
    Okay, thanks 👍️
  424. @10allday:matrix.org

    In reply to this message

    What happens if the domain expires or its no longer owned by Bluesky?
  425. An attacker could reject all updates?
  426. @10allday:matrix.org
    ICANN needs to make this domain always renew every 10 years automatically for free, because Bluesky probably won't be around in 100 years.
  427. ICANN needs to make this domain always renew every 10 years automatically for free, because Bluesky probably won't be around in 100 years. (The team behind .directory must also ensure that the domain does not expire.)
  428. snarfed
    nothing's written in stone. auto renewing DNS domains depends on registrars, IP addresses depend on IANA and BGP from tier 1 carriers, private keys depend on memorizing passwords or otherwise keeping them safe, without any recourse if you forget them. protocols depend on standards bodies, implementors, organizations that all have governance in some form.
    (edited)
  429. removing all dependencies and being 100% independent is arguably both impossible and undesirable. your devices will still need electricity, networks, hardware, etc. you're unlikely to make all of those yourself from scratch. and so on.
    (edited)
  430. the best and maybe most famous description of this is Loop Etiquette: I thought using loops was cheating, so I programmed my own using samples. I then thought using samples was cheating, so I recorded real drums. I then thought that programming it was cheating, so I learned to play drums for real. I then thought using bought drums was cheating, so I learned to make my own. I then thought using premade skins was cheating, so I killed a goat and skinned it. I then thought that that was cheating too, so I grew my own goat from a baby goat. I also think that is cheating, but I'm not sure where to go from here. I haven't made any music lately, what with the goat farming and all. https://www.mnml.nl/phpBB3/viewtopic.php?f=17&t=62658&hilit=goat&start=16
    (edited)
  431. @10allday:matrix.org

    In reply to this message

    The internet engineering task force sets things into stone, can't the v1 standards of atproto be submitted as international standards?
  432. snarfed
    sure, but that doesn't set IP addresses in stone. BGP hijacking, traffic shaping, state firewalls etc exist
  433. @10allday:matrix.org

    In reply to this message

    That can be a requirement for the standard to function??
  434. Aaron Goldman

    In reply to this message

    I would hope the immutable legger moves to something more decentralized before 100 years.

    Yeah now the legger is

    but in the long run it is whatever the PDSs decide to trust.

  435. elmustachio
    I'm seeing a lot of questions here I answered in this feature about Bluesky: https://www.forbes.com/sites/digital-assets/2023/04/25/twitter-hatchling-bluesky-emerges-from-its-shell/?sh=ffbece5c21a7 Hopefully it's helpful!
  436. snarfed
    embrace evolution, flow like water, that's more likely to keep things alive than trying to harden them into bunkers. ASCII text and HTML documents will survive for a long time, but only because we keep copying onto new hard drives, LOCKSS style, not because we back them up on tape and put that in a vault underground
    (edited)
  437. I wish you luck getting China to obey that requirement if they don't want to
  438. yes! great example. change is the only constant
  439. @10allday:matrix.org

    In reply to this message

    Can you explain here as Forbes requires a subscription to view articles?
  440. Kjartan
    If your browser has such a reader mode - you can just enable it and read the article, it seems
  441. snarfed
    (also, those things happen despite requirements of various kinds. even laws get broken and bent, countries have sovereignty, etc)
  442. behnam changed their profile picture
  443. @10allday:matrix.org
    Can Google register on Bluesky using the .google tld?
  444. Kjartan
    I would guess so. IF they have an invite code, ofc
    (edited)
  445. Kjartan set a profile picture
  446. Kjartan
    As some of you might work on some web clients - it would be nice if there was also a client working on Mojave's Safari 😞
  447. salmoon joined the room
  448. bangerrang joined the room
  449. bangerrang
    Sorry, but where do i go for general disscussion and questions about blusky?
  450. snarfed
    bluesky if you're on it, twitter if you're not? 🤷
  451. bangerrang
    mhm can i have a invite pls 🙏
  452. George Antoniadis
    Pretty sure there is/was a general bsky channel on matrix at some point
  453. bangerrang
    thankyou if thats it 😮
  454. Aaron Goldman
  455. Kjartan
    Are there any news on federation? (I'm not on bsky, so I wouldnt know if anything was discussed there)
  456. wd
    "next week ish" apparently
  457. Kjartan

    In reply to this message

    Ok, thanks 👍
  458. bangerrang

    In reply to this message

    thank you very much!
  459. Kjartan
    I know that the official clients aren't open source - but is there anyway some place to file bugs? Or is there only the support form? (which is itself a bug, because I can't reach it on the iPhone)
  460. isitaboat joined the room
  461. Kjartan
    Let's say a pds registers a did with a handle, and then a different pds wants to change a handle to the already registered handle - is it possible that this is currently not possible? If so - shouldn't this be changed? Pds servers might disappear or domains' owners might change
  462. snarfed
    you'd use the recovery key to change your DID doc: https://atproto.com/guides/overview#account-portability
  463. Kjartan
    What if the handle was registered by someone else?
  464. snarfed
    I think the DNS-based domain handle verification in the current app isn't actually part of the protocol, at least not as documented so far. did:web DIDs are, somewhat, but they're not using those (yet)
    (edited)
  465. Aaron Goldman

    In reply to this message

    Think of it as mutual auth.
    If I have the DID in the DNS text record I have half a binding.
    If I have the domain name in the DID Document I have half a binding.
    If I have both then I have bound a DID to a DNS name.
  466. Kjartan
    I have registered
    gates.microsoft.com
    with the
    plc.directory
    . I have neither control over the dns, nor the pds it was officially registered with.
  467. Aaron Goldman
    To bind a name you must collaborate between the domain controller and the DID controller
  468. snarfed
    amusingly they were loose with that ^ at the beginning, so people added DNS records with other people's DIDs and they were able to mention them with those domains. team considered it a bug
  469. Kjartan

    In reply to this message

    But if that means that Mr Gates cant get
    gates.microsoft.com
    this would be bad.
    But yeah, another case, even if everything gets checked properly, is that I can get a domain which was already used on a plc. The handle shouldn't stay any longer in the control of the old did holder
  470. Also just for the record: this happened today, so was done quite recently and probably needs further fixing
  471. snarfed
    ^ you registering
    gates.microsoft.com
    doesn't necessarily prevent him from using it. its DNS TXT record doesn't point to your DID, so no complete binding has happened
  472. anyway, they're actively working through all this, eg the issue above, https://github.com/bluesky-social/atproto/issues/837 , etc
  473. Kjartan

    In reply to this message

    But as far as I see it, this prevents now any other did from changing to this handle on the plc
  474. snarfed
    why do you think that?
  475. Aaron Goldman
    My preference would be to treat a one sided domain assertion as a tag. The "real" repo for the handle should be the first result but a failed assertion should show up lower down on the search results just as if you had that string in your profile
  476. Kjartan
    Because I get now an error from the plc if I try to use an already used handle (the pds is fine with it though)
  477. I mean the pds is fine with it, except that it complains that the plc returns a 400
  478. snarfed
    ah ok. 🤷 could just be a bug. it's very early, moving fast, not set in stone
  479. Kjartan
    👍
  480. Aaron Goldman
    🤔 should the directory reject half bound DID Document deltas? Not immediately clear.
  481. Certainly it shouldn't change the history
  482. Kjartan

    In reply to this message

    I would say accept it. But release it when someone else tries to "claim" it legitimately
  483. Aaron Goldman
    My instinct is to have the PDSs do the verification rather than the directory. That gives the PDSs the freedom to play games like .ETH domains.
  484. snarfed
    right. two different things, PLC registry log history vs PDS logic
  485. Kjartan
    Probably remove the handle completely from the earlier one (as it wouldn't hold it any longer anyway, as soon as the new one has a legit claim on it - as there cant be two txt records)
  486. snarfed
  487. Kjartan
    Pds, could probably stick with it, as it might not be aware of it anyway
  488. In reply to this message

    I thought of this GitHub issue. So they probably CAN but shouldn't :)
  489. snarfed
    the internet is the wild west
  490. separate problem though
  491. Kjartan
    As we spoke about the recovery key earlier: where does one find it in the staging web client? I hope it's there 😮
  492. Kjartan
    I hoped this issue would be just GUI related. But can't find it in the stored data either. So probably wasn't meant just GUI related :/
  493. Oh well, there goes my handle. I guess I will just stick with gates... then
  494. Jesse Dorsey joined the room
  495. Aaron Goldman
    You miss the biggest advantage over mastodon if you don't have your recovery key. That said I think some users want to have a recovery key but let the PDS also have one in case they lose it
  496. Or put the recovery key in some password manager
  497. naim
    Wouldn't the ability to read the recovery key from the PDS defeat it's purpose?
  498. snarfed
    if the PDS stored it in plain text, arguably yes
  499. Ycaro Gabriel joined the room
  500. hasslehoff joined the room
  501. Mingina joined the room
  502. omi joined the room
  503. @willian:willian.wang left the room
  504. kusurix joined the room
  505. nouo joined the room
  506. mikuhl
    I was having trouble parsing the timeline json this morning because the union key "$type" was null on something, and now I change absolutely no code many hours later and it runs perfectly ._.
  507. Wes joined the room
  508. Wes
    Wow... I swear I'm not a bot y'all
  509. Let me change my username...
  510. fy2xwx7wyw changed their display name to Wes
  511. Wes
    There we go...
  512. I initially joined this platform seeking to achieve a code, but honestly I'm glad I ended up here... I really want to follow the BTS of this crazy project
  513. mikuhl

    In reply to this message

    Now I am getting it again
  514. this EmbedView just has "record" key and no "$type"
  515. its embedding a post from
    illumi.bsky.social
  516. this is the offending post
  517. Oh false alarm, my parsing was trying to parse a RecordView and not a Record :P
  518. Oh wait no. I am right
  519. yeah something seems wrong with this double record
  520. because the first record should be a union of "#viewRecord" and "#viewNotFound"
  521. Ehh no, that is right according to the schema, but just a bit redundant.
  522. Anyways thanks for coming to my TED talk. lol
  523. recordWithMedia#view basically does not match the other 3 embed views, they are one level deep and recordWithMedia#view is two levels deep.
  524. snarfed
    I definitely feel your pain 😀
  525. mikuhl
  526. ugly name :(
  527. mikuhl
    Sounding like a broken record. :P
  528. joshlacal joined the room
  529. Nicholas Molnar joined the room
  530. ephemeral joined the room
  531. @hkobayashi:matrix.org joined the room
  532. @hkobayashi:matrix.org left the room
  533. Sangam 🐼 joined the room
  534. @toshiw:matrix.org joined the room
  535. Duo joined the room
  536. @ogawa0071:matrix.org joined the room
  537. bignutty joined the room
  538. Roj
    Hey, I have a question. Authorization is currently managed by JWT tokens, right?
  539. What if in the future ATProto had a feature to revoke other sessions from a session, what would happen to those JWT?
  540. @sarangbaloch:matrix.org joined the room
  541. @sarangbaloch:matrix.org
    how can i join blueksy? i need a invite code
  542. @ogawa0071:matrix.org left the room
  543. Peter Fritz

    In reply to this message

    Hi, you probably don't need an invite nor access to Bluesky right now. Soon everyone will be able to join without an invite.
    Furthermore, this channel is intended for developers interested in the AT Protocol and Bluesky, so it's not the best place to ask for invites.
  544. @valentin:keks.club joined the room
  545. @valentin:keks.club left the room
  546. theshawe joined the room
  547. syui
    Do you know how to do app.bsky.graph.follow.delete?
  548. @atika12939:matrix.org joined the room
  549. syui
    unfollow from app.bsky.graph.follow
  550. Nobody changed their display name to Sam
  551. 0528 Omega joined the room
  552. 0528 Omega
    i want blue sky invitation code
  553. Brent Anderson joined the room
  554. Matt Drollette joined the room
  555. syui
    ok deleteRecord
  556. @r_ob:matrix.org joined the room
  557. @r_ob:matrix.org
    Same I'm awaiting for an invite to contribute to the protocol otherwise I'll stay with Activity Pub.
  558. atomdmac joined the room
  559. atomdmac
    Hi everyone - can anyone tell me where I can find out more about how Bluesky is funded right now?
  560. @r_ob:matrix.org
    I'll try to scrap the web for a code before giving up.
  561. Kjartan

    In reply to this message

    Don't know if this helps, but maybe it does: Message
  562. @r_ob:matrix.org
    It's gonna turn in another https://damus.io/ I guess.
  563. damon/

    In reply to this message

    How does that make any sense?
  564. atomdmac

    In reply to this message

    Based on this, it sounds like they received initial funding from Twitter but it's not clear to me how they currently keep the lights on.
  565. @r_ob:matrix.org
    Jack Dorsey apparently.
  566. snarfed
    it's only been a few years, it's a small team, $13M is a lot
  567. they have eventual revenue ideas but not a focus yet
  568. damon/
    Jack Dorsey is 1/3 board members.
  569. atomdmac
    It sounds like the answer is possibly "we don't know"
  570. snarfed
    they currently keep the lights on with the initial grant. we're pretty sure they've done no other fundraising, definitely none that resulted in cap table or board changes
  571. atomdmac
    Gotcha 👍️
  572. I'm currently a Mastodon proponent but I'd like to understand why this model is better, especially with regard to eventual capture by say, for example, a billionaire with grand ambitions and a habit of making quick, sweeping and possibly uninformed decisions.
  573. @r_ob:matrix.org
  574. AWS...
  575. Seems pretty centralized to me.
  576. snarfed
    hosting is separate from federation model
  577. damon/
    He’s not the CEO. Also there’s benefits to their protocol over ActivityPub
  578. Mastodon is a good tool but there’s others out there that offer more than Mastodon they just aren’t as user friendly
  579. snarfed

    atomdmac: "

    jack doesn’t have unilateral power. he has 1/3 influence on the board. i’m the CEO...i have the most control over this endeavor, and i’m grateful for everyone who’s trusted me with it." https://blue.amazingca.dev/?username=jay.bsky.team&postid=3ju6gsfeyda2j

  580. re how ATP differs from AP, a couple notable ones: 1) true account portability, even if your server goes offline or malicious. 2) support for centralized indexing, moderation, and feed algorithms by third parties. more: https://atproto.com/guides/overview
  581. atomdmac

    In reply to this message

    To be clear, I'm not blaming Jack for anything here :) I'm just saying that the centralized nature of the hosting makes me wonder if a "take-over" could happen again.
  582. snarfed
    ("centralized" isn't the best word there ^, more like "universal," which the fediverse currently strongly resists)
  583. atomdmac
    this is very likely my own ignorance talking haha. I'm looking to learn
  584. @r_ob:matrix.org
    Being the CEO of a "decentralized" protocol.
  585. snarfed
    AWS ("centralized") hosting is not a meaningful part of the federation design
  586. Brad Brown
    atomdmac: i think you want to distinguish between the current state of the service (one central server) from the planned state (unlimited federated servers) that is in-development now
  587. atomdmac

    In reply to this message

    Ah OK - so right now Bluesky is the only "instance" (to borrow a federation term) but others will be able to spin up instances later?
  588. Brad Brown
    yeah, they're working to support federation (I think soon-ish) to the point that technically-minded individuals could pretty easily host their own instances
  589. snarfed
    (I'm in the middle of building one myself)
  590. @r_ob:matrix.org

    In reply to this message

    Thanks but you're just making me even more bullish to try this out. I'm coming from AP where I have an instance where I heard about AT.
  591. snarfed

    In reply to this message

    I felt the same! I've implemented AP too, https://fed.brid.gy/ , I like both. fediverse can be big tent
  592. anil dash has advocated for "big tent" (ie multi protocol) fediverse for a long time, eg https://blue.amazingca.dev/?username=anildash.com&postid=3juea365ir72c
  593. damon/
    That would be ideal
  594. atomdmac
    I feel like the difference between what BS is trying to do and "federation" still isn't very clear to me... sounds like I need to do some more reading.
  595. damon/
    Which part is confusing?
  596. atomdmac
    I mean, they sound like they're the same thing
  597. You talk to an instance, instances talk to each other
  598. but there is obviously a difference I'm missing
  599. damon/
    The experience is largely the same. They are more alike than not. But there are important differences
  600. Brad Brown
    yeah, this is more "Ford vs Dodge" than "boat vs plane" of a comparison
  601. damon/
    Exactly
  602. atomdmac
    If that's the case, why choose BS over Mastodon?
  603. damon/
    re how ATP differs from AP, a couple notable ones: 1) true account portability, even if your server goes offline or malicious. 2) support for centralized indexing, moderation, and feed algorithms by third parties. more: https://atproto.com/guides/overview
  604. See point 1 & point 2
  605. Brad Brown
    I think the biggest take-home from an end-user perspective is that in ActivityPub, you can migrate to a new server but your old content doesn't move with you. In ATProto, you can move your content and account/follows/etc between servers.
  606. snarfed
    ^ yup, and also, your identity changes. you go from user@domain1 to user@domain2, and there's a funny redirect at user@domain1, but it's hacky, and only if domain1 stays up
  607. in ATP, your identity stays the same
  608. Kjartan

    In reply to this message

    In my case: I absolutely hate a few design decisions of mastodon (one example: the finger'ing instead of using dns records, like other protocols do). So I'm happy if there will be an alternative which fits more to my liking
  609. atomdmac
    That's very nice to hear - I did an account migration recently and it wasn't hard but it did leave a lot to be desired
  610. namely, my content doesn't follow me
  611. snarfed
    it actually can if you export and import, but that's Mastodon-specific, and also a bit awkward
  612. damon/
    There’s also custom algorithms which are selectable
  613. On top of using DNS as a potential verification method
  614. atomdmac

    In reply to this message

    Similar to how certbot does this for HTTPS certs?
  615. snarfed
    interestingly, as far as it's documented right now, the protocol is DID-based. allows for did:web, which is an alternate way to prove you own a domain/site, but the DNS thing is outside ATP
  616. Kjartan
    I also like that there is no need to use port 443 for your server (443 might be reserved for something "more important" on many hosts)
  617. In reply to this message

    yes
  618. atomdmac
    Another question I've had bouncing around in my head is, "is this different from nostr?"
  619. My initial hunch was that BS is an implementation of nostr
  620. or something to that affect
  621. damon/
    Very different
  622. atomdmac
    (also, thank you all for entertaining so many questions :P )
  623. agentofuser joined the room
  624. Aaron Goldman

    In reply to this message

    Nostr has individual notes as it's core objects where atproto has repositories. The relays are not tied to any particular publisher in the way that the PDS is expected to have all the content a DID published.

    I generally think about the difference as a best effort distribution vs a completeness distribution.

  625. atomdmac

    In reply to this message

    With nostr being "best effort", yeah?
  626. snarfed
    Aaron Goldman someday I need to talk you into this as a side project 😀 https://github.com/snarfed/bridgy-fed/issues/446
  627. Rémi Baudchon joined the room
  628. Aaron Goldman

    In reply to this message

    Should this page include?

    "
    Company Name: BLUESKY, PBLLC,
    File Number: 6282898,
    Filing State: Delaware (DE),
    Filing Date: October 4, 2021
    "

  629. @r_ob:matrix.org
    intext:"bsky-social-"
  630. Aaron Goldman

    In reply to this message

    Did you mean search?
  631. Kjartan
    If one created an account via one of the official clients (
    staging.bsky.app
    or the apps for iOS or Android) - is there a chance to still get the recoveryKey or is this opportunity just lost forever?
  632. snarfed

    In reply to this message

    hah, maybe? I'm not really trying to reproduce DE Secretary of State or D&B records, but you're welcome to add it in a comment!
  633. Kinsay - joined the room
  634. Kjartan
    Oh, so the pds still has it?
  635. loudermachine joined the room
  636. Kjartan
    Or did you mean "in the future" as in - "for accounts which get created in the future"?
  637. snarfed
    hopefully the clients have them, not necessarily the PDS, and we'll get access to them in the future. hopefully
  638. nchntmnt joined the room
  639. ..-_-.. joined the room
  640. @r_ob:matrix.org
    been coding a whole script to generate invite codes using python + selenium but I give up lol
  641. I'll have to wait I guess.
  642. @r_ob:matrix.org
    Message deleted
  643. @r_ob:matrix.org
    Sorry.
  644. It's a shame cause I could have invested this time into AT instead of trying to brute force the front page...
    (edited)
  645. Bastian joined the room
  646. @r_ob:matrix.org

    from

    import By
    from
    selenium.webdriver.support
    .ui import WebDriverWait
    from
    selenium.webdriver.support
    import expected_conditions as EC
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    import random
    import string

    def generate_code():
    return ''.join(random.choices(string.ascii_lowercase + string.digits, k=7))

    driver =

    ()

    driver.get("https://staging.bsky.app")
    time.sleep(3)

    wait = WebDriverWait(driver, 10)
    wait.until(EC.presence_of_element_located((By.XPATH, "//div[@data-testid='createAccountButton']")))

    create_account_button = driver.find_element(By.XPATH, "//div[@data-testid='createAccountButton']")
    create_account_

    ()
    time.sleep(3)

    bluesky = driver.find_element(By.XPATH, "//div[contains(text(),'Bluesky')]")

    ()
    time.sleep(3)

    next_button = driver.find_element(By.XPATH, '//div[@data-testid="nextBtn"]')
    next_

    ()
    time.sleep(3)

    invite_code_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[data-testid='inviteCodeInput']")))

    email_input = driver.find_element(By.CSS_SELECTOR, "[data-testid='emailInput']")
    password_input = driver.find_element(By.CSS_SELECTOR, "[data-testid='passwordInput']")
    legal_check = driver.find_element(By.CSS_SELECTOR, ".css-175oi2r")
    next_button = driver.find_element(By.XPATH, "//div[contains(text(),'Next') and contains(@class, 'css-1rynq56')]")

    next_

    ()
    time.sleep(3)

    wait.until(EC.presence_of_element_located((By.XPATH, "//input[@data-testid='phoneNumberInput']")))

    while True:
    invite_code = "bsky-social-" + generate_code()
    ActionChains(driver).move_to_element(invite_code_input).click().perform()

    1234567891011121314151617181920212223242526272829303132invite_code_input.send_keys(invite_code)
    
    email_input = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[data-testid='emailInput']")))
    email_input.send_keys("exemple@domain.com")
    
    password_input = driver.find_element(By.CSS_SELECTOR, "[data-testid='passwordInput']")
    password_input.send_keys("password")
    
    legal_check.click()
    time.sleep(3)
    
    next_button.click()
    time.sleep(3)
    try:
        wait.until(EC.presence_of_element_located((By.XPATH, "//div[@data-testid='someElementOnNextPage']")))
        next_button = driver.find_element(By.XPATH, "//div[contains(text(),'Next') and contains(@class, 'css-1rynq56')]")
        next_button.click()
        time.sleep(1)
    except:
        pass
    
    error_messages = driver.find_elements(By.XPATH, "//div[contains(text(),'Invite code not accepted.')]")
    
    if not error_messages:
        print("Invite code accepted:", invite_code)
        break
    
    invite_code_input.clear()
    email_input.clear()
    password_input.clear()
    legal_check.click()
    time.sleep(1)
    
  647. The code formatting sucks on matrix.
  648. Bastian
    https://atproto.com/lexicons/com-atproto-session is a 404, can I read the docs somewhere else?
  649. Bastian
    oh yeah good idea thanks!
  650. @r_ob:matrix.org
  651. @hiire:matrix.org joined the room
  652. mmarzex joined the room
  653. nocha1n joined the room
  654. neall joined the room
  655. stashxyz joined the room
  656. @dead10ck:dead10ck.com joined the room
  657. @10allday:matrix.org
    Does atprotocol allow Decentralized Autonomous Organizations to interact with smart contracts that can manage bot accounts?
  658. DAOs are the future of organizations.
  659. @10allday:matrix.org
    Could DAOs be built on atprotocol, instead of blockchains?
  660. lukebouch joined the room
  661. @10allday:matrix.org

    In reply to this message

    If it's possible it should be part of version two of atprotocol, along with virtual items as those are the future.
  662. damon/
    You could just create your own protocol
  663. @10allday:matrix.org

    In reply to this message

    This is a better protocol.
  664. damon/
    😂
  665. @10allday:matrix.org

    In reply to this message

    Everything is (or should) be integrated.
  666. Bastian
    resistance is futile
  667. fred blauer joined the room
  668. @10allday:matrix.org
    We need a decentralized "everything *app*".
  669. In reply to this message

    Or people will go back to Twitter, like what happened to Mastodon.
  670. It should be so good, nobody would want to switch to another platform. 🙏
    (edited)
  671. nocha1n
    i feel like this is verging on being off-topic, but the point as i see it is to have a great underlying social protocol and then let people build whatever apps and experiences they want on top of it. an "everything app" sounds extremely vague and... pointless? though i suppose atp's lexicons and such will enable better data interoperability and maybe embedding more things into social feeds?
  672. boudinie joined the room
  673. boudinie
    hi, is there a web client. thx in advance
  674. should have googled first before sk
  675. @r_ob:matrix.org
    Can I run your github repo on my own server if you aren't willing to invite people to make them fomo?
  676. @10allday:matrix.org

    In reply to this message

    In reply to
    nocha1n
    i feel like this is verging on being off-topic, but the point as i see it is to have a great underlying social protocol and then let people build whatever apps and experiences they want on top of it. an "everything app" sounds extremely vague and... pointless? though i suppose atp's lexicons and such will enable better data interoperability and maybe embedding more things into social feeds?
    There needs to be a commonly understood programming language known to every client.
    (edited)
  677. nocha1n

    In reply to this message

    it seems undesirable that every client for every application should be able to parse a custom scripting language or whatever you're trying to propose... considering both bloat, complexity, and security. if you want to make an app that, say, runs WASM published by people then i suppose you could create one like that.
  678. i mean i'm just spitballing here as someone not involved, but i don't see what you actually concretely want to do other than buzzwords...
  679. @r_ob:matrix.org
    Aaron Goldman: what kind of mushroom is this on your head dude?
  680. @10allday:matrix.org

    In reply to this message

    In reply to
    nocha1n
    it seems undesirable that every client for every application should be able to parse a custom scripting language or whatever you're trying to propose... considering both bloat, complexity, and security. if you want to make an app that, say, runs WASM published by people then i suppose you could create one like that.
    Lexicons provided by ATP won't do every use case wanted by a developer, that every client can be sent and seemlessly have it just work, without having a custom client made just to read whatever a developer sent.
    (edited)
  681. @r_ob:matrix.org
    Anyway, good luck guys with your Activity Pub fork.
  682. @r_ob:matrix.org left the room
  683. @10allday:matrix.org

    In reply to this message

    In reply to
    @r_ob:matrix.org
    Anyway, good luck guys with your Activity Pub fork.
    It just needs a JavaScript interpreter, so it can function like a web browser.
    (edited)
  684. @dead10ck:dead10ck.com

    In reply to this message

    Wow. I'm just learning about Bluesky and don't really know enough about it yet to have a solid opinion, but I've seen so much panic over it in the Fediverse it's kind of ridiculous. Do these drive by trolls happen often too?
  685. Deirdre Connolly joined the room
  686. Deirdre Connolly set a profile picture
  687. @dead10ck:dead10ck.com

    In reply to this message

    The centralized indexing is I think going to be the big divider. Every time anyone tries to make a Fediverse indexer, people come out of the woodwork in droves to harass them into stopping. Centralized indexing seems to be anathema to many people invested in the Fediverse / AP.

    But the thing is, having every node do everything by itself is why AP is not scalable. You need a ridiculous amount of resources to even run a single user node, because it's basically useless without using a relay, and relays are just insanely inefficient, copying all data to every single node that subscribes. Relays go offline all the time simply because someone defederated.

    I get the concerns of consent absolutely, and it's really honestly unsurprising that people get upset by randos building an indexer without talking to anyone in the very privacy centric community about it, but at the same time, it's simply not scalable without centralizing and distributing some responsibilities.

    I suspect in the end, AP will still thrive, but will, by choice and architectural necessity, stay more focused on smaller and more insular communities

  688. @10allday:matrix.org

    In reply to this message

    In reply to
    @dead10ck:dead10ck.com

    The centralized indexing is I think going to be the big divider. Every time anyone tries to make a Fediverse indexer, people come out of the woodwork in droves to harass them into stopping. Centralized indexing seems to be anathema to many people invested in the Fediverse / AP.

    But the thing is, having every node do everything by itself is why AP is not scalable. You need a ridiculous amount of resources to even run a single user node, because it's basically useless without using a relay, and relays are just insanely inefficient, copying all data to every single node that subscribes. Relays go offline all the time simply because someone defederated.

    I get the concerns of consent absolutely, and it's really honestly unsurprising that people get upset by randos building an indexer without talking to anyone in the very privacy centric community about it, but at the same time, it's simply not scalable without centralizing and distributing some responsibilities.

    I suspect in the end, AP will still thrive, but will, by choice and architectural necessity, stay more focused on smaller and more insular communities

    Bluesky shouldn't cater to privacy activists conserns about indexing or other things. There won't be any useful features.
    (edited)
  689. damon/

    In reply to this message

    This is a flaw within the culture. I primarily see this amongst Mastodon users. So I can’t label it a fediverse problem. The gatekeeping is counterintuitive. It’s disappointing as it has a negative impact on those that want most of the benefits with Mastodon but would prefer efficiency and a slightly more tailored and informative experience. At some point it will have to adjust or just be home to purists
  690. @10allday:matrix.org

    In reply to this message

    In reply to
    @damon
    This is a flaw within the culture. I primarily see this amongst Mastodon users. So I can’t label it a fediverse problem. The gatekeeping is counterintuitive. It’s disappointing as it has a negative impact on those that want most of the benefits with Mastodon but would prefer efficiency and a slightly more tailored and informative experience. At some point it will have to adjust or just be home to purists
    Bluesky should have the algorithm of Twitter, people who do not like usefulness can stay in the fediverse.
    (edited)
  691. damon/
    There are those that have and are working on the indexing but the pushback and outrage is disgusting
  692. In reply to this message

    No it should not. Anyone that wants Twitter’s algorithm can simply use Twitter
  693. @10allday:matrix.org

    In reply to this message

    You can't rely on Twitter because your account is tied to their servers.
  694. @dead10ck:dead10ck.com
    Well I actually like what little I've read so far about BSky's attitude on this: there's clearly a dissatisfaction around the opaque algorithms chosen by a central authority solely meant to optimize more and more user interaction, outrage, and addiction. Giving users more transparency and choice seems like a good goal to have. I'll be very interested to see how it turns out
  695. damon/
    This is the way to go. It gives user control and gives the impact of a “centralised” experience. Users don’t want to have to create hashtags and lists
  696. Users should be able to have the choice to either utilise custom algorithms or not. Anyone that wasn’t to utilised lists and hashtags as their sole algorithm then more power to them
  697. But others should be able to have a more streamlined experience if they choose to
  698. @dead10ck:dead10ck.com
    I'm also very intrigued by the decision to piggyback on DNS for authenticated user name ownership. As someone who has worked with a lot of DNS data in my career, this strikes me as a really smart way to delegate this function to existing internet infrastructure, and enable ownership transfer, without building a whole system for this from scratch
    (edited)
  699. @softinio:matrix.org
    Is there a server issue? On that note does bluesky have a status page
  700. @10allday:matrix.org

    In reply to this message

    This and advertisements need to be the default/baked hard into the protocol.
  701. T5

    In reply to this message

    not loading for me too
  702. @10allday:matrix.org
    So, users get normalcy instead of it felling like a decentralized product, but with the same features as Twitter and the like.
  703. damon/
    They are currently making some adjustments
  704. A 5-10 min outrage is planned
  705. @10allday:matrix.org

    In reply to this message

    In reply to
    @10allday:matrix.org
    So, users get normalcy instead of it felling like a decentralized product, but with the same features as Twitter and the like.
    Also, there's huge marketing potential behind this. Every billboard, bus, train, website, should promote this with the funds to pay for these promotions from advertisers paying for advertising on the protocol, and having their post promoted.
    (edited)
  706. damon/

    In reply to this message

    Correct. I believe this is the better way to go. But another method has actually been brought to my attention. https://www.kevinmarks.com/distributed-verify.html
  707. nzheretic joined the room
  708. Chris Lace
    App. Is acting up! Glitching
  709. @dead10ck:dead10ck.com

    In reply to this message

    Hmm, yeah, this is more like "I'm proving this is me by virtue of confirming access to some other number of big popular sites", whereas DNS's authentication is more centralized, placing all trust in the registrar and that it's very difficult to poison them. There is also dnssec now though. I wonder if they make use of that
  710. snarfed
    ^ rel-me can integrate with big popular sites, but it definitely doesn't depend on them. it's how Mastodon's green checks verifying your profile links work. it's also a core part of https://indieauth.net/
  711. vvodenus joined the room
  712. Aaron Goldman

    In reply to this message

    Each community has its own context. There are discords I am in that I would be offended if one community member decided to publish all the history. My conference talks I am happy for anyone to share. There is nothing wrong with some places being indexed and others not as long as the norms are agreed upon.
  713. snarfed
    true. context collapse is real and not pleasant
  714. Aaron Goldman
    Bluesky just set out from the beginning with the big world conversation as a goal.
  715. AP didn't
  716. @dead10ck:dead10ck.com

    In reply to this message

    Well it also generally has less teeth and substance. It still places the onus of verification on the user to visit each verified site and try on their own to research within each site whether this particular one is in fact the same person. Anyone can make a Github account to put a green checkmark on their profile
  717. snarfed
    yup. same with DNS domains. if I want to follow Taylor Swift, but I don't know her web site, do I follow the Bluesky account
    taylorswift.com
    ? or
    tayswift.com
    ? or something else entirely?
  718. this is the drawback of all technical identify verification, vs social human solutions. pros and cons, both are useful!
  719. @10allday:matrix.org

    In reply to this message

    There cannot be any choice in disabling the indexer, otherwise the atprotocol won't function at all?
  720. @dead10ck:dead10ck.com

    In reply to this message

    Yeah this is why I'm not firmly placing those that are upset by AP indexers popping up without any consent or involvement in the wrong. Within the context of the existing communities, this was majorly frowned upon, and it's usually done by someone that never considered the wishes of the community they decided to mine
  721. snarfed

    In reply to this message

    there won't be a single indexer, and federation and app functionality won't have to depend on any of them, or can degrade gracefully. https://atproto.com/guides/overview#achieving-scale
    (edited)
  722. nzheretic
    So the alternative is to create another global registry service like DNS which actually hand verifies owners & double checks against trademarks & similar named entities?
  723. Aaron Goldman
    It is about what is the meaningful handle. If I want Taylor Swift's view on Web Application Security I go to https://twitter.com/SwiftOnSecurity the twitter handle is the name I recognize. For xkcd https://xkcd.com/ is far more meaningful to me then https://twitter.com/xkcd bind to the identifiers that make sence for your audeance.
  724. @dead10ck:dead10ck.com
    With that said, I can't firmly side with them either. It is, after all, an open protocol. It was already built from the ground up in such a way that any public posts can end up on any server anywhere. If anything, the way AP is designed to federate, it has even less control over your data than a centralized service like Twitter. It goes to any server that asks for it
  725. snarfed
    Aaron Goldman: true! two related but different questions. 1) which of all these accounts is the real Taylor Swift? 2) where is it best to follow Taylor Swift? (depending on what I want to see)
  726. Aaron Goldman

    In reply to this message

    oh, you want access control in your distributed content addressed system. Can I recommend a paper?
    https://github.com/Peergos/Peergos/blob/master/papers/wuala-cryptree.pdf
  727. I miss
    wua.la
    is was cool
  728. don't get me wrong Peergos is better tech
  729. @10allday:matrix.org

    In reply to this message

    In reply to
    snarfed
    there won't be a single indexer, and federation and app functionality won't have to depend on any of them, or can degrade gracefully. https://atproto.com/guides/overview#achieving-scale
    Who do the indexers index? Will all indexers pay each other for the privilege of staying updated, like how internet service providers pay to route traffic across two networks? This could potentially be a very good business model for Bluesky as the users are just what get people to use the service, so indexers can get paid for providing updates, while keeping everything free for end-users.
    (edited)
  730. snarfed

    In reply to this message

    it's decentralized, so the default answer to questions like these is, "whatever they want," at least if it's not specified by the protocol. and yes, the team has implied that they'd look into running some of these services and generating their own revenue in the future
  731. @10allday:matrix.org

    In reply to this message

    Hopefully the protocol can include a built-in tracker for the indexers to keep track of who's paying for who.
  732. Aaron Goldman

    In reply to this message

    Why do you want the incentives mixed in with the protocol?
  733. @10allday:matrix.org

    In reply to this message

    Indexers are the heartbeat of the network.
  734. Aaron Goldman
  735. most PDSs I expect to be funded by charging the users
  736. snarfed

    In reply to this message

    that's...not clear. the fediverse effectively doesn't have any, and it still works, even if it's not perfect
  737. In reply to this message

    right, that's the standard fediverse model so far
  738. Aaron Goldman
    but they want to give good search results so they need to talk to an indexer
  739. user -$-> PDS -$-> indexer
  740. why do you need it in the protocal
  741. @10allday:matrix.org

    In reply to this message

    Money.
  742. Aaron Goldman
    just pay the way any software as a service is charged
  743. @10allday:matrix.org

    In reply to this message

    That's why you need the most users creating content.
  744. nzheretic
    Are we talking about indexing for generating search functionality. If so In a group setting could not the indexer just be bot following accounts and have the indexing done by client end for direct communications?
  745. @10allday:matrix.org

    In reply to this message

    Usenet is kinda similar, but also similar to internet service providers.
  746. In reply to this message

    There's no money being created if it's not going through the indexers.
  747. Aaron Goldman
    My understanding of mastodon is that it is like the first drawing. My instance talks to your instance directly. So if there are a lot of instances that want your content it gets expensive for your instances. Authenticated Data is different. Since it is signed a PDS can get your repo from literally anyone that has it. As long as the signature is valid that is the repo. So PDSs can pull your data from indexers. Indexers can pull from each other. You only need to bother the authoritative PDS if nobody else has it.
  748. nzheretic

    In reply to this message

    If the act of indexing produces value for the indexer, why couldn't the indexing bot "pay" the account it follows, which goes towards any subscription the account pays.
  749. @10allday:matrix.org

    In reply to this message

    Can you explain with a picture?
  750. @dead10ck:dead10ck.com
    So if I'm understanding this architecture correctly, if you are a very privacy centric person that wants to self host a bsky instance, and you want to control the whole stack and how data gets handled and who gets access to it, you would run a PDS and an indexer, right? Is it easy to control who is allowed to federate, and thus get another copy of your data? And if another indexer federates with yours, do they store it indefinitely so they can serve search queries on their own, or do they each delegate searches to each other?
  751. @10allday:matrix.org
    Could indexers pay a royalty to every indexer they got data from, plus paying for the data from indexer 1?
    (edited)
  752. kantrochat joined the room
  753. nzheretic

    In reply to this message

    Will later. Normal user accounts have a nominal virtual subscription charge, various bots doing the indexing or data suck for AI training data operating as user accounts. Indexing bots offer users a nominal amount to follow their accounts . Bluesky/Server Operators take a cut.
  754. Aaron Goldman
    So a PDS operator could want to minimize it's cloud bill. Say it charged 1 USD/month or 10 USD/year for accounts. Then for the sync API it charged indexers 10x the cloud provider's egress bandwidth costs. Other PDSs would not want to pay the egress costs so they would pull all the repos on that PDS from the indexers. Many of the indexers would try each other to pull the repos before pulling from the charging PDS. One of the indexers would be first and pay the PDS the rest of the world would pull from the indexers. The PDS would in this way disincentivize the world from bothering it.
  755. @dead10ck:dead10ck.com
    Oh never mind, this was answered above
  756. Aaron Goldman

    In reply to this message

    public is a lot simpler than acsess control 😃
  757. snarfed
    it's worth reminding ourselves that the answer to loooots of these questions and ideas is "we don't know yet." there are a number of hints on https://atproto.com/ , but often they're very high level. the team has said a number of times that big parts of this are either incomplete and TBD (some parts of federation, big world indexing, successor to did:plc) or just not specified at all (eg access control)
  758. @dead10ck:dead10ck.com
    So it's kind of like again a DNS model, with caching resolvers caching some content, and if they don't have it cached, they fetch it from the "authoritative" indexer?
  759. nzheretic

    In reply to this message

    Indexers compete in an open market. Bad behaviour will lead to users denying indexers the right to follow.
  760. snarfed
    we're extrapolating and speculating here to some degree. which is fine! just worth remembering.
  761. @10allday:matrix.org

    In reply to this message

    How much would indexers charge when another indexer wants data?
  762. Aaron Goldman

    In reply to this message

    like DNSSEC it is all signed 😏
  763. nzheretic

    In reply to this message

    Open market setting prices.
  764. @dead10ck:dead10ck.com
    Nice, that's something even AP doesn't have, though that is just authenticating the content itself, rather than a method of access control
  765. So access control is just not specified in the spec (yet)?
  766. snarfed
    (fwiw this the gossip-like idea is also kinda speculation. the code and docs so far imply a more standard direct conection approach, not sig-checked gossip. Aaron Goldman is right that it's possible though!)
  767. In reply to this message

    right. the team has been talking about E2E encryption ideas, but not for anytime soon)
  768. Aaron Goldman

    In reply to this message

    Datacenter to Datacenter, I don't know what they will charge each other but I bet it will be way less then they charge the PDSs.
  769. yigitcan joined the room
  770. @10allday:matrix.org

    In reply to this message

    In reply to
    Aaron Goldman
    Datacenter to Datacenter, I don't know what they will charge each other but I bet it will be way less then they charge the PDSs.
    What cryptocurrencies would be used, as these have to be instant payments.
    (edited)
  771. snarfed

    In reply to this message

    right
  772. @dead10ck:dead10ck.com
    E2E encryption could serve as a kind of access control. But also seems like something that might be hard to incorporate after the fact
  773. Aaron Goldman

    In reply to this message

    Why, ISP keep track of peering and then settle up at the end of the month?
  774. @dead10ck:dead10ck.com
    Is it currently possible to run a PDS and/or indexer to use bsky today without an invite to
    bsky.social
    ?
  775. @jonan:c-base.org left the room
  776. @10allday:matrix.org

    In reply to this message

    Why ARE ISPs involved?
  777. snarfed

    In reply to this message

    yes, but you'd be an island, federation isn't turned on on the main instance yet
  778. @dead10ck:dead10ck.com

    In reply to this message

    Ah ok, that makes sense. I'll probably stand one up when federation is enabled
  779. Aaron Goldman

    In reply to this message

    Just an example of someone that counts bandwidth in real time but pays later.
    Two indexers may want to only pay each other if there was a massive in balence that month
  780. @10allday:matrix.org

    In reply to this message

    In reply to
    Aaron Goldman
    Just an example of someone that counts bandwidth in real time but pays later.
    Two indexers may want to only pay each other if there was a massive in balence that month
    Indexers would be
    indexer1.com
    ,
    indexer2.com
    , etc?
    (edited)
  781. So, they can identify each other? And end users?
  782. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    I agree, I view this as the goal too
  783. @10allday:matrix.org

    In reply to this message

    In reply to
    @10allday:matrix.org
    Indexers would be
    indexer1.com
    ,
    indexer2.com
    , etc?
    When they have something requested, would the payment happen first, or would it happen later, what happens if an indexer defaults?
    (edited)
  784. nchntmnt
    Message deleted
  785. @10allday:matrix.org

    In reply to this message

    Would the indexer that never received their money, put that cost onto the servers hosting users?
  786. nobb_hero joined the room
  787. mchoaib joined the room
  788. jmcsweeney joined the room
  789. Chris Lace
    @whyrusleeping is there a chance I can get some new invites?
  790. nzheretic
    Is there any plan for the future for atproto to include a standardised ability for clients to host local plugins in a wasm/webassembly sandbox?
  791. @rin:psps.cat joined the room
Next group of messages