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. Aaron Goldman

    In reply to this message

    Good to make an explicit policy here. At least you should not give away the trade-in until you know it is final after the time window for a rotation_key reverting the operation.
  2. @evbogue:matrix.org
    Well key rotation isn't real
  3. whyrusleeping
    Silence heathen
  4. @evbogue:matrix.org
    You can only point
  5. I silence myself in the old nordic tradition
  6. snarfed
    I don't know the social network policy hell equivalent of :hugops:, but whatever it is...I'm sending you all lots of that
  7. it's all uphill from here 😬
  8. retore joined the room
  9. Vishal Gulia joined the room
  10. Aaron Goldman

    In reply to this message

    :hug_Trust_and_Safety:
  11. Aaron Goldman

    In reply to this message

    Key rotation is exactly as real as transactions that committed or aborted.
    Iif a database can have strict serializable consistency we can have key rotation.
  12. ivan joined the room
  13. @syui:syui.cf

    whyrusleeping: If the

    handle is stolen by someone else, can handle.update restore it?

    custom handle

  14. whyrusleeping
    You can switch back if its not taken
  15. @syui:syui.cf
    ok thx!
  16. XXX XXX joined the room
  17. Kabir joined the room
  18. Camille joined the room
  19. @szumr:matrix.org joined the room
  20. szumr changed their display name to rieck
  21. rieck changed their display name to szumr
  22. @szumr:matrix.org
    I like to have an invite, too, please.
  23. @planetoryd:matrix.org

    In reply to this message

    you will be banned.
  24. @syui:syui.cf
    Message deleted
  25. maxpeacock joined the room
  26. glassportals joined the room
  27. @silverkey027:matrix.org joined the room
  28. @silverkey027:matrix.org left the room
  29. Bram joined the room
  30. @syui:syui.cf

    Added custom-handle function to the client

    1234567891011121314# web : bsky.syui.cf -> login -> profile -> custom-handle
    # Note: re-login
    
    # cli : github.com/syui/atr
    $ cargo build
    $ vim ~/.config/atr/congit.toml
    host = "bsky.social"
    pass = "xxx"
    user = "xxx.bsky.social"
    $ ./target/debug/atr h vvv.bsky.social
    or
    $ ./target/debug/atr h example.com
    # Note: change -> config.toml
    # user = "example.com"
    
    (edited)
  31. Andrew Welsh joined the room
  32. radala joined the room
  33. Cody Choi joined the room
  34. ismailsafwat joined the room
  35. ismailsafwat
    Message deleted
  36. ismailsafwat
    any chance to get an invite code here?
  37. panji.bsky.social
    Dm whyrusleeping
  38. valueclick
    I see that you have added a translation feature in the latest version. This is a great help. Thank you very much.
  39. xnf0k joined the room
  40. xnf0k
    Hey, not sure where's the right place to ask, I have a question about the DNS resolution for handles. Does it happen on the client side or server?
  41. b0gg3r
    What's a server
  42. xnf0k

    In reply to this message

    I'm almost completely new to bluesky/ATP so may be wrong here, but I think I'm talking about PDS
  43. b0gg3r
    As it stands the PDS verifies that the DID controller is in control of the domain, and then uses that domain as your handle
  44. Though there will be another verified method via XRPC
  45. xnf0k

    In reply to this message

    I see. Do clients/apps verify this? (by resolving the TXT locally, etc.)
  46. b0gg3r
    I don't know At the protocol level, they should, but it's possible that gets outsourced to a server by the app developer
  47. xnf0k
    Got it, thanks for the info!
  48. Any idea what the bluesky app in private beta does?
  49. echarles joined the room
  50. snarfed
    currently in the bluesky private beta, the PDS verifies DNS, not the client app
  51. xnf0k
    Okay (mostly) the last Q: when can we start self hosting PDS'?
  52. snarfed
    afaict, now! it would be hard because a lot of what you need is incompletely documented and changing rapidly
  53. it will settle down and docs will expand eventually
  54. xnf0k
    Oh I did see a `pds` package on GitHub but didn't think much of it. Will try it out and be back here.
  55. Thanks snarfed!
  56. Aaron Goldman
    3091 did:plc:s as of 2023-03-07T19:51:40.994Z 😎
    (edited)
  57. os7on
    What code is this please
  58. @evbogue:matrix.org

    In reply to this message

    The number of times did:plc:${base32Encode(sha256(createOp)).slice(0,24) has been run so far, I think.
  59. os7on
    Thanks 🙏🏽
  60. @evbogue:matrix.org
  61. @truethomas7:matrix.org left the room
  62. rohitaggarwal joined the room
  63. hallooow joined the room
  64. hallooow
    Hi there, how may I get a blusky invite code?
  65. Aaron Goldman

    In reply to this message

    Worth noting that it is cbor if your op is JSON you will not get the did.

    1did:plc:${base32(sha256(cbor(createOperation))).slice(0, 24)}
    

    base32(5 bits per char) * 24 char = 120 bits of security

    https://github.com/bluesky-social/did-method-plc/blob/4da6c6d5c3aa4894650fdbddc60d616e7d8d8946/packages/lib/src/operations.ts#L16-L21

  66. Aaron Goldman
    Bitcoin Hashrate All Time High on Feb 27, 2023 at block 778,469 413.82 EH/s ~ 68.48 bits
  67. Eren Kaplan changed their display name to hellstabber
  68. @toranosora:matrix.org changed their profile picture
  69. Ahmad Chamzeh Pour joined the room
  70. Ahmad Chamzeh Pour
  71. gcambefort joined the room
  72. Ahmad Chamzeh Pour
    Hi i need invite code
  73. James (@cryptowww:matrix.org) joined the room
  74. James@cryptowww:matrix.org
    Hello, any one can send an invited code , thank u guys🤝🤝
  75. Bluesky is a great product, it need more test ,especially by user experiences 😀😀
  76. James (@cryptowww:matrix.org) set a profile picture
  77. James chuh changed their display name to James
  78. panji.bsky.social
  79. In reply to this message

    Why?
  80. os7on set a profile picture
  81. @char.mitro:matrix.org left the room
  82. Surya Kiran Majji joined the room
  83. Thib (away on March 7 ✊) changed their display name to Thib
  84. farnam1997 joined the room
  85. farnam1997
    Hi all anyone can send an invite code for Bluesky to me?
  86. @kianooshaz:matrix.org joined the room
  87. @kianooshaz:matrix.org
    Hi, anyone can send an invite code for Bluesky to me?
  88. @kianooshaz:matrix.org removed their display name (Kianoosh Ashayeri Zade)
  89. Konrad Wiktor
    hi anyone can send me invite code?
  90. giladbeeri joined the room
  91. Owen Billingham joined the room
  92. ifyouknow changed their display name to Owen Billingham
  93. @szumr:matrix.org left the room
  94. ches joined the room
  95. @01test:matrix.org left the room
  96. @eagain:matrix.org joined the room
  97. pfrazee
    Hey everybody, please stop asking for an invite code. We're sending them out through the waitlist as fast as we can. You can sign up for the waitlist at https://bsky.app
  98. George Antoniadis

    In reply to this message

    I blame whyrusleeping for being nice :P
  99. pfrazee
    heh yeah. We totally get it and there are moments when we like to share invites outside the process, but I don't want this channel to be nonstop requests for them
  100. besides, the REAL place to spam requests for invite codes is in our app store reviews
  101. George Antoniadis

    In reply to this message

    o_O Is that a thing?
  102. pfrazee
    big time
  103. we have 150 reviews, I think maybe 2 of them are real
  104. Nick Kaufmann joined the room
  105. Soohan Park (Heartade)
    What could be some options bsky could take to incentivize people to run instances/indexers? Running one's own server would cost time and money, and it would be hard to achieve scale relying on donations and volunteer works.
  106. xtianpu

    In reply to this message

    Since it is decentralized, the first layer of thought should be "Community", pretty similar to fediverse. I have tried creating a mastodon instance for $8/mo.
  107. ngerakines
    Do servers themselves have DIDs?
  108. ngerakines
    Or, maybe asked another way, lets say that a server exposes a did for a user https://nick.cauda.cloud and resolving the GET https://nick.cauda.cloud/.well-known/did.json returns a valid json descriptor of the user. The verificationMethod for that user includes a {"id": "did:plc:something", "controller": "did:plc:something", ... } element. Are those DIDs always going to resolve to the user or do those identify the PDS somehow? If they identify the PDS, what does the parent PDS DID look like?
  109. Seth
    Can I get an invite too please 🫰
  110. Aaron Goldman

    In reply to this message

    I think you may be confusing did:web:nick.cauda.cloud with at://nick.cauda.cloud when resolving a did:web you https GET .well-known/did.json and that is the did document. The controller of the website is the controller of the DID.
    at://nick.cauda.cloud/ will translate your handle to a DID and proceed with that DID weather a did: web or a did:plc
  111. the repo is bound to the DID not the handle that may change over time
  112. Daniel joined the room
  113. b0gg3r
    Message deleted
  114. pcdkd

    In reply to this message

    If it's anything like nostr, the better quality indexers will be paid. Reduces spam, filters content, etc.
  115. @syui:syui.cf
    I don't understand why the image is not displayed...
  116. 12345678let file = e.target.files[0];
    const files = new Blob([file], { type: 'image/png' });
    
    superagent
     .post("https://bsky.social/xrpc/com.atproto.blob.upload")
     .set({'Authorization': this.token}
     .attach('file', this.files)
     .then(response => {})
    
    (edited)
  117. @luizjr8:matrix.org joined the room
  118. arcO joined the room
  119. @syui:syui.cf
  120. 大堀 敦夫 changed their display name to arcO
  121. @syui:syui.cf
    Please let me know if anyone knows a solution
  122. dai joined the room
  123. aminalfred changed their display name to Amin Mansouri
  124. James@cryptowww:matrix.org

    To new comers:
    This group is for tech discuss, not for invite code

    pls don’t ask invite code again🤝

  125. @syui:syui.cf
    com.atproto.session.refresh working?
  126. b0gg3r
    Okay let's get back on the horse. Who's been thinking about a lexicon to implement an encryption layer
  127. @syui:syui.cf
    1Token could not be verified
    
  128. 12345678910111213141516let mut map = HashMap::new();
    map.insert("did", &json.did);
    map.insert("handle", &json.handle);
    map.insert("accessJwt", &json.accessJwt);
    map.insert("refreshJwt", &json.refreshJwt);
    let url = "https://bsky.social/xrpc/com.atproto.session.refresh";
    
    let client = reqwest::Client::new();
    let res = client
        .post(&url)
        .json(&map)
        .header("Authorization", "Bearer ".to_owned() + &json.accessJwt)
        .send()
        .await?
        .text()
        .await?;
    
    (edited)
  129. ngerakines
    I’ve been thinking about an event system. As in events, invitations, RSVP, etc.
  130. panji.bsky.social
    I can't opened bsky profile anymore like
    why.bsky.social
    or
    jack.bsky.social
  131. @rimuru:gentoo.chat changed their profile picture
  132. ngerakines

    In reply to this message

    Those users look like they’ve changed domains.
  133. George Antoniadis

    In reply to this message

    Why has but Jack’s still the same from what i can see
  134. @l_tan:matrix.org left the room
  135. @l_tan:matrix.org joined the room
  136. Miley joined the room
  137. Chukwu joined the room
  138. @jonaharagon.com joined the room
  139. drgunn joined the room
  140. @guzzlima:matrix.org left the room
  141. snarfed
    so one of the biggest design features of ATP is the combination of signing key, which the PDS has, and recovery key, which only the user has. https://atproto.com/guides/overview#account-portability I'm curious if the current beta iOS app generates a recovery key and keeps it client side only. I assume so? if so, I can't wait to eventually see it, export it, etc!
  142. purely curiosity right now, obviously no real need for it yet
  143. whyrusleeping
    I actually dont know yet, the protocol allows for it but im not sure if thats been shipped yet…
  144. damon/ joined the room
  145. yutkat joined the room
  146. ion palamarciuc joined the room
  147. Kharec joined the room
  148. Kharec
    hello bluesky devs !
  149. I saw on the blog that invitation codes are starting to be sent, is it global (like can we have one if we're in France) ? Or just US ?
  150. I'm excited to try this new social app :)
  151. Owen Billingham

    In reply to this message

    I left a good (perhaps overly positive...) review 3 days ago that already shows up. Lesson I learned in the past: when people can download but not access the app (no invite), they quickly leave negative reviews. It will correct itself at due course.
  152. Kharec

    In reply to this message

    It's silly to leave a negative review when you don't have invite code (meaning you didn't have a chance to review the app) ...
  153. Oren
    1 reply
  154. Oren
    Note the "Cancel" button on iPhone 13 Pro and also on the macOS App. But it looks good on iPhone SE. Perhaps could be replaced with "X"?
  155. azing joined the room
  156. Kharec
    any chance I can get an invite code here ? I'm also on the waitlist :)
  157. damon/
    It’s already been posted before to not ask for invite codes or you’ll be blocked
  158. Kharec
    woops, sorry.
  159. damon/
    Just wanted to give you the heads up
  160. grin

    In reply to this message

    could be included into the topic though
  161. Alec Larson
    is there a way to see a user's previous handles?
  162. or rather, will there be
  163. misaki M joined the room
  164. @nobodyu:matrix.org
  165. keyhan
    Will bluesky support chat and private messaging like Twitter ?
  166. b0gg3r

    In reply to this message

    Kinda. Their PLC server will give you a log of their username changes going back to the name their registered under
  167. @jholmes8:matrix.org joined the room
  168. andrewm changed their display name to Andrea "andrewm" Mazzilli
  169. Andrea "andrewm" Mazzilli changed their display name to Andrea Mazzilli
  170. @jholmes8:matrix.org
    Just wanted to share feedback on the custom domain handle. I've added the txt record to my website DNS with a TTL of 5 mins but even after waiting 24 hours I still get "Unable to resolve handle". The biggest issue with this, if it's a DNS propagation issue, is that I can't use the Bluesky app at all while waiting because if you leave the change my handle screen the value from the DNS record is reset and you have to start over again.
  171. @jholmes8:matrix.org removed their display name (Jason)
  172. ngerakines

    In reply to this message

    Hmm, that doesn't sound right. I just went through the process and had a similar, but different, issue. Your did doesn't change.
  173. ngerakines

    So if you were to run curl -s "https://bsky.social/xrpc/com.atproto.handle.resolve?handle=ngerakines.me" | jq you'd get back

    123{
      "did": "did:plc:cbkjy5n7bk3ax2wplmtjofq2"
    }
    
  174. Then you can take that and query

    to see the did:plc log with curl -s https://plc.directory/did:plc:cbkjy5n7bk3ax2wplmtjofq2/log | jq

    1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465[
      {
        "sig": "Z234aGNHJI47gYaVKtacOPnY46PMggQ-hkaMgW6GMlkXd3RCgH4sp8CJbkfjO1agIy8LK2Z0fHVzHzhWvAVwsA",
        "prev": null,
        "type": "plc_operation",
        "services": {
          "atproto_pds": {
            "type": "AtprotoPersonalDataServer",
            "endpoint": "https://bsky.social"
          }
        },
        "alsoKnownAs": [
          "at://ngerakines.bsky.social"
        ],
        "rotationKeys": [
          "did:key:zQ3shhCGUqDKjStzuDxPkTxN6ujddP4RkEKJJouJGRRkaLGbg",
          "did:key:zQ3shP5TBe1sQfSttXty15FAEHV1DZgcxRZNxvEWnPfLFwLxJ"
        ],
        "verificationMethods": {
          "atproto": "did:key:zQ3shP5TBe1sQfSttXty15FAEHV1DZgcxRZNxvEWnPfLFwLxJ"
        }
      },
      {
        "sig": "LAAQzzwenswhObfkErLtGOcu4guY5e-zYzftzUwDKFRqOOZZhtdbKODKDOdPSjSHGgR_TCi2fq5vv7FZY5C5mg",
        "prev": "bafyreiaqksohlpykwyf6vt23e2lrmgt4y66n4vcbqcihlejricj6il2r7u",
        "type": "plc_operation",
        "services": {
          "atproto_pds": {
            "type": "AtprotoPersonalDataServer",
            "endpoint": "https://bsky.social"
          }
        },
        "alsoKnownAs": [
          "at://ngerakines.bsky.social"
        ],
        "rotationKeys": [
          "did:key:zQ3shhCGUqDKjStzuDxPkTxN6ujddP4RkEKJJouJGRRkaLGbg",
          "did:key:zQ3shpKnbdPx3g3CmPf5cRVTPe1HtSwVn5ish3wSnDPQCbLJK"
        ],
        "verificationMethods": {
          "atproto": "did:key:zQ3shXjHeiBuRCKmM36cuYnm7YEMzhGnCmCyW92sRJ9pribSF"
        }
      },
      {
        "sig": "LCaCyGQivl0U0bChWF0IqNoLHPs_pecNHoCvkgROUlZR_rBIRM4y4tmnAjWH-kcm-6bz4Jb0Hx0DFEv_bshZnQ",
        "prev": "bafyreic4wotjm3tue3cra22723fdvujhhto3nue4gtpt2bs3pgzud2r7za",
        "type": "plc_operation",
        "services": {
          "atproto_pds": {
            "type": "AtprotoPersonalDataServer",
            "endpoint": "https://bsky.social"
          }
        },
        "alsoKnownAs": [
          "at://ngerakines.me"
        ],
        "rotationKeys": [
          "did:key:zQ3shhCGUqDKjStzuDxPkTxN6ujddP4RkEKJJouJGRRkaLGbg",
          "did:key:zQ3shpKnbdPx3g3CmPf5cRVTPe1HtSwVn5ish3wSnDPQCbLJK"
        ],
        "verificationMethods": {
          "atproto": "did:key:zQ3shXjHeiBuRCKmM36cuYnm7YEMzhGnCmCyW92sRJ9pribSF"
        }
      }
    ]
    
  175. For the time being, the dns association method is managed by the bluesky PDS. With what is in the spec, in the future there will probably be some sort of negotiation or handshake to that requires some sort of two-way verification of the linked domain.
  176. Aaron Goldman
    It is the users PDS that preforms the two-way verification. In theory a client could do it also if they wanted to.
  177. @jholmes8:matrix.org

    In reply to this message

    You're right the did isn't changing when I leave the screen, I could have sworn it did previously but I guess I was wrong. I really can't figure this out, the record is exactly as instructed on the app but I cannot verify the DNS record. Looking at the system log I get a status 400 with the error "InvalidRequest". I've spent too much time trying to figure this out lol, it's driving me nuts
  178. irafae7 joined the room
  179. xnf0k
    What platforms does the app support currently? The pic on the site looks like an iPhone, so at least that I'm guessing? What about Android/Web? (I'm not asking for an invite)
  180. panji.bsky.social

    In reply to this message

    According whyrusleeping, official web client coming in a week or two, then android after
  181. @evbogue:matrix.org
    At this point just sign the hashes and make it a web app. The point is to spread information, not contain it.
  182. Jitendra Jadav joined the room
  183. b0gg3r
    There's nothing stopping anyone from making a web app if you are so inclines
  184. @evbogue:matrix.org
    And you shall
  185. Ekid joined the room
  186. monkeysatwork joined the room
  187. xnf0k
    So if I understand this right, bsky runs a hosted PDS that its users use by default. Is it possible to switch to a self hosted PDS in the same app?
  188. Aaron Goldman

    In reply to this message

    For what it's worth I see both the _atproto.ngerakines.me. IN TXT DNS record and the

    so you have two-way verification.

    id 31451 opcode QUERY rcode NOERROR flags QR RD RA ;QUESTION _atproto.ngerakines.me. IN TXT ;ANSWER _atproto.ngerakines.me. 3600 IN TXT "did=did:plc:cbkjy5n7bk3ax2wplmtjofq2" ;AUTHORITY ;ADDITIONAL

  189. ngerakines

    In reply to this message

    Yeah, I was just saying the dns thing wasn’t in the spec docs so I assumed it was a one-off that will be replaced by an xrpc based mechanism in the future.
  190. Aaron Goldman

    In reply to this message

    The tricky part there is defining priority order.
    We want to be able to verify domain names by DNS.
    We want to be able to verify domain names by https.

    If a DID Document has many AKAs some using DNS and Others using https fine. As long as the other is silent.

    If there is a domain name where the DNS points to one DID and the https points to a different DID. Both DID Documents AKA back to the domain name.
    What should be done with that?

    Once the list of ways to validate a domain and the priority is decided it should be added to the spec until then it may be premature.

    xrpc,
    /.well-known/_atproto,
    DNS TXT,
    _atproto.DNS,
    Something else?

    Personally I lean towards only the well-known and _atproto.handel DNS TXT
    But I get why xrpc is compelling for domains that are running PDSs

    With all dew respect to DNSsec I'm leaning towards https having priority over DNS because the CA have historically been less spoofed than DNS but meh 😕. There just needs to be a closed set of domain name verifications and an ordered priority so at:\handel\path URIs resolve unambiguously.

  191. ngerakines

    Yeah, personally I think DNS is the way to go, but it does raise the bar to entry. In an ideal world, if someone wanted to have their own domain then they could generate some static files to serve OR have a couple of DNS entries to create and boom.

    One thing that threw me off was the use of GET .well-known/did.json in the DID spec, but not the atproto spec.

  192. The issue with DNS is that it doesn't tell you to then run subsequent DNS queries.

    12 dig +short -t txt _atproto.ngerakines.me
    "did=did:plc:cbkjy5n7bk3ax2wplmtjofq2"
    
  193. So like, with DNS the order of operations is ...

    1. Server gets reference to ngerakines.me
    2. Server does TXT lookup of _atproto.ngerakines.me
    3. Server gets a DID
    4. ... where do they make xrpc calls to get more info?
    (edited)
  194. Aaron Goldman
    HTTPS GET
    example.com/
    . well-known/_atproto.txt ≠ HTTPS GET
    example.com/
    . well-known/did.json But _atproto.txt cloud be "did=did:web:
    example.com
    " 🤷‍♂️
  195. ngerakines

    With HTTPS you can do

    1. Server gets reference to ngerakines.me
    2. Server makes GET ngerakines.me/.well-known/_atproto
    3. Server receives a DID with services block pointing to PDS
      bsky.social
    4. Server makes GET https://bsky.social/xrpc/com.atproto.handle.resolve?handle=ngerakines.me
  196. Segment joined the room
  197. ngerakines
    I kind of think a service record is a better fit for that data.
  198. https://en.wikipedia.org/wiki/SRV_record

    12dig +short -t SRV _pds._TCP._atproto.ngerakines.me
    100 100 443 bsky.social.
    
  199. ngerakines
    Matrix chat, for example, uses it as a complimentary lookup mechanism in addition to .well-known requests: https://spec.matrix.org/unstable/server-server-api/#server-discovery
  200. Aaron Goldman

    In reply to this message

    Actually for companies that already have lots of infrastructure around protecting their website and are unlikely to forget to pay the name bill and lose their domain using did:web makes a lot of sense. For individuals I think did:plc makes more sense as your preferred domain name change across your life.
  201. ngerakines
    yeah
  202. My operating assumption is that the vast majority of users are going to have a handle based on medium/large PDS like
    bsky.social
    . Next to that will be people who have their own vanity domain but still use a medium/large PDS for all of the actual heavy lifting, making that domain just a discovery mechanism. Last will be people and organizations that host their own PDS.
  203. That's loosely based on my experience in the tech world and from being in the activitypub/mastodon world for a while.
  204. @planetoryd:matrix.org
    so you decentralize the consensus, and therefore Matrix has a bad model
  205. ngerakines

    In reply to this message

    I'm not sure I follow.
  206. Aaron Goldman

    In reply to this message

    I don't understand
  207. Aaron Goldman

    In reply to this message

    After 3. Server gets a DID
    There are two options.
    They can hit
    plc.directory
    to get the operation log for the DID Document.
    They can call their own PDS ask for the DID Document. Their PDS is probably pulling https://plc.directory/export regularly and has the full database of all did:plc operations.
  208. ngerakines
    :\ I really don't like how
    plc.directory
    is needed for user discovery. That services attribute exists for a reason and needs to be leveraged in user discovery.
  209. Aaron Goldman
    One of the goals that leads to the need for
    plc.directory
    was that if you use a DID rather than a domain name in the at:// uri that the system is not dependent on DNS at all
  210. ngerakines
    Yeah, that makes sense fwiw
  211. Aaron Goldman
    So it can be used with no name bill
  212. The DNS name based handles was just supposed to be a way to get to a DID from a human friendly string.
  213. Funya Funya joined the room
  214. Aaron Goldman
    For that you need some kind of name service and DNS already has a lot of work in it to deal with things like trademark. On the list of things I don't want to build: https://www.icann.org/resources/pages/help/dndr/udrp-en
  215. plc.directoy just needs to be a public append only timestamped ordered leger. For now a single server at some point later Bluesky PBLLC can share control of it with the PDS operators but no point designing that structure until there is a community of PDS operators who's opinion can be taken into account.
  216. ngerakines
    yeah
  217. Aaron Goldman
    Sorry I feel like every answer I gave today was basically kicking the can down the road.
  218. ngerakines
    nah, this is super useful
  219. I'm sure all of this is going to evolve when bluesky goes from 1 to 2
  220. Aaron Goldman
    Do you have opinions on what the order of DNS vs https Of well-known vs xrpc
  221. ngerakines
    As we were talking, I kind of had a thought about DNS. We can effectively ensure that servers are using HTTPS, but it is a little more complicated to force servers to use DNSSEC.
  222. Nevermind, I suppose if DNS isn't a secure channel then HTTPS channels are also at risk regardless.
  223. idk, I really like using DNS to look stuff up but there is a lot of grey area here about what type of data and meta-data is a good fit for DNS.
  224. Aaron Goldman
    If DNS was secure we would not need CAs just put the certificate hash in the DNS record. Save everyone a lot of time and money 🤑
  225. ngerakines
    yeah
  226. xnf0k

    In reply to this message

    DANE is exactly this, with a TLSA record with a hash of the TLS certificate
  227. Matthew
    fwiw on matrix we started with srv and then added well-known, and now support both
  228. simply because sometimes orgs can edit dns easily, and sometimes easy to edit the webroot
  229. it also depends on who can print tls certs for the apex or subdomains
  230. that said, a bunch of people dislike that complexity, and petition to remove SRV
  231. i think this is an error though, especially given the number of people who constantly delete their .well-known from the webroot
  232. (typically every time they redesign their website)
  233. whereas deleting dns records is much harder.
  234. </in case it’s useful>
  235. spiderham left the room
  236. ngerakines
    interesting
  237. even
  238. Matthew
    /me feels like a bit of a failure to have not layered Matrix sufficiently that it could be used to help on this
  239. Aaron Goldman
    Matthew: thanks, reading
  240. ngerakines
    I get that the definition of the create op is a little loosey goosey at the moment.
  241. If the user did generation is strict on did:plc:${base32Encode(sha256(createOp)).slice(0,24)} then it'll be possible to have duplicates if users don't submit recovery keys.

    1. User 1 creates account as nick with no recovery key.
    2. User 1 changes their handle to nickg (did is the same because create op is not different)
    3. User 2 attempts to create account as nick with no recovery key. Creation fails because create op would be the same, thus did would be the same.
  242. I don't see anything in curl -s https://plc.directory/did:plc:cbkjy5n7bk3ax2wplmtjofq2/log | jq '.' to force uniqueness between create ops. Introducing a timestamp would or forcing a unique recovery key would help.
  243. Also, these ops should be versioned and that version should be part of the encoding and signature.
  244. 電子馬 joined the room
  245. snarfed

    In reply to this message

    the other standard approach here is to fail if they conflict, instead of defining an order of precedence. I often like that because it tries to prevent surprises and confusion. if the two are disagreeing, you're not as confident that you're following the user's intent, and anyone else who sees the conflict down the road will be confused too
  246. nudging the user to fix that conflict is usually the right idea
  247. Aaron Goldman

    Daniel Holmgren: Do you remember why we used common. Bytes aka z.instanceof(Uint8Array) as the key type in the MST and not z.string()? The paths are all url paths and should be strings.

    12345"k": {
            "/": {
              "bytes": "YXBwLmJza3kuZmVlZC5wb3N0LzNqcHp1a2hlZWkyMjI"
            }
    },
    

    is a little less readable then

    1"k": "app.bsky.feed.post/3jpzukheei222"
    

    when I view the dag-cbor as dag-json

    https://github.com/bluesky-social/atproto/blob/9baf9b23d8c06165dd2e91487fed23277bda17d0/packages/repo/src/mst/mst.ts#L50

  248. Note in the dag-cbor they are the same number of bytes it is not an efficiency difference.
  249. the Uint8Array and UTF-8 string are only one bit different in the type byte
  250. @fudan10u:matrix.org joined the room
  251. T5 joined the room
  252. ismailsafwat set a profile picture
  253. @jholmes8:matrix.org
    Just to follow up on my issues with using a domain for a username - it turns out i'm dumb and was following the direction on the app to copy the information as presented for the DNS domain which was "_
    atproto.domain.com
    " so that is what I put in. After days of head scratching trying to figure out why it wasn't working I realized it should just be "_atproto" (obviously in retrospect) but I was following along with the instructions on the app. Worked right away once I realized the issue. Might be something to consider regarding how that information is presented in the future on the custom domain page
  254. sylphrenetic

    In reply to this message

    I did the same thing for like 20 minutes and was just like ??? until I realized
  255. agree that the instructions could be clearer
  256. harbuzi zhang joined the room
  257. Arun Vithyasegar joined the room
  258. jiftechnify joined the room
  259. rain_256 joined the room
  260. Mohammad Sadegh Foroughi joined the room
  261. Mohammad Sadegh Foroughi
    Hey guys, I've just curious about what you do guys here. Is BlueSky fully open-source? Or are you just developing some Apps on AT protocol?
    (edited)
  262. xtianpu

    In reply to this message

    I think their current phase is still in beta about the UI/UX bro, so I believe the phase for devs is still in alpha. that's why the docs are still incomplete due to massive future change.
  263. sylphrenetic

    In reply to this message

    it's my understanding that the AT protocol is fully open-sourced currently, but Bluesky the application is not yet. it will be eventually.

    in this chat we're mostly just discussing Bluesky, the AT protocol, and anything related to them

  264. @rimuru:gentoo.chat changed their profile picture
  265. bnewbold

    In reply to this message

    In reply to
    Aaron Goldman

    Daniel Holmgren: Do you remember why we used common. Bytes aka z.instanceof(Uint8Array) as the key type in the MST and not z.string()? The paths are all url paths and should be strings.

    12345"k": {
            "/": {
              "bytes": "YXBwLmJza3kuZmVlZC5wb3N0LzNqcHp1a2hlZWkyMjI"
            }
    },
    

    is a little less readable then

    1"k": "app.bsky.feed.post/3jpzukheei222"
    

    when I view the dag-cbor as dag-json

    https://github.com/bluesky-social/atproto/blob/9baf9b23d8c06165dd2e91487fed23277bda17d0/packages/repo/src/mst/mst.ts#L50

    we just changed this recently. bytes seems more correct for a low-level datastructure like this. two specific issues were inconsistency counting prefix chars in typescript (UTF-16) and almost any other language (UTF-8), and the possibility of splitting unicode codepoints, resulting in invalid/inconsistent strings. note that both of these impact only non-ASCII strings, and we do specify that MST paths need to be (URL-safe) ASCII, but might relax that in the future, and want to avoid weird corner cases
    (edited)
  266. @evbogue:matrix.org
  267. kohji_miyazaki joined the room
  268. niruy joined the room
  269. niruy set a profile picture
  270. @cyberbiopunk:matrix.org joined the room
  271. mayankbatra joined the room
  272. mayankbatra
    Is this the best place to find an invite code?
  273. b0gg3r
  274. mayankbatra
    My bad. Sorry
  275. biribinha. joined the room
  276. biribinha. set a profile picture
  277. @evbogue:matrix.org

    In reply to this message

    This is like such a great opportunity for friend of a friend invite codes. We'll collectively work on that one.
  278. The knowledge from the network graph would be phenomenal.
  279. The harvest! Think of it
  280. amazingca
    Bluesky’s in-progress web app: https://staging.bsky.app
  281. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Brilliant!
  282. @syui:syui.cf
    very nice
  283. @evbogue:matrix.org

    In reply to this message

    It's a website
  284. @evbogue:matrix.org
    I mean these days a website is brilliant, but still!
  285. It could be so much more
  286. panji.bsky.social
  287. In reply to this message

    Clear and nice, but I still can not change my profile pic and header
  288. ひょうたん joined the room
  289. zyolluax

    In reply to this message

    Ah doesn't work on phones
  290. amazingca

    In reply to this message

    Unfortunately it doesn’t atm
  291. xtianpu

    In reply to this message

    Can't wait for the fully cooked 🍚😋
  292. bnewbold
    Hey folks, especially devs doing integrations: we have a big series of breaking changes to Lexicons going out this week, and possibly a bit in to next week. They are mostly not radical changes, but renaming things that could break existing tools and libraries. They will come in a couple waves, so you might want to wait until they all land. I'm not sure if docs will be up-to-date as it goes, but you can follow along in github issues/PRs as the changes land. Sorry for the disruption! We hope that this is the last batch of breaking changes, this was the last chance to get them through before things stabilize.
  293. xtianpu
  294. Scrollbar is squatting when scrolling to whyrusleeping: reply
  295. David Chen joined the room
  296. David Chen
  297. gavazn joined the room
  298. nuledg joined the room
  299. @syui:syui.cf
    Is it possible to type:create in
    plc.directory
    ? I get error "Invalid signature on op"
  300. youssefsalem joined the room
  301. @syui:syui.cf
    1sig=${uint8arrays.toString(await keypair.sign(data), 'base64url')}
    
    123456789{
      "type": "create",
      "signingKey": "$skey",
      "recoveryKey": "$rkey",
      "handle": "admin.example.com",
      "service": "https://example.com",
      "prev": null,
      "sig": "$sig"
    }
    
    (edited)
  302. youssefsalem
    hey devs can anyone send me an invite for bluesky?
  303. youssefsalem set a profile picture
  304. shaudubey joined the room
  305. @morotesovtannu:ohai.su joined the room
  306. @syui:syui.cf
    solved. thank you!
  307. fouldear joined the room
  308. fouldear set a profile picture
  309. fouldear
    did you get one? 🤔 this seams more like a 'slay the 🦑' channel not a 'get a 🦑' one 🤷
  310. snarfed

    In reply to this message

    good timing, and great minds, I expected basically the same thing when I cut the latest lexrpc release a few days ago: https://lexrpc.readthedocs.io/en/latest/#changelog
  311. Aaron Goldman
    where you using the old structure
  312. aszucer joined the room
  313. David Johnston joined the room
  314. shadow^ joined the room
  315. George Antoniadis changed their profile picture
  316. vashart joined the room
  317. 0x613b.eth joined the room
  318. vashart set a profile picture
  319. vashart
    hi Can someone help me and give me an invite? Thanks
  320. @planetoryd:matrix.org

    In reply to this message

    cope
  321. You will never get an invite
  322. n0nakamura joined the room
  323. Aaron Goldman

    In reply to this message

    Not really the tone we are going for in this community.
    Something closer to
    "This is a channel for development of AtProto. So invite requests are out of scope."
    might come across more welcoming, thanks
  324. vashart

    In reply to this message

    thanks
  325. Mohsen joined the room
  326. xnf0k

    In reply to this message

    Can probably go in the topic. Not everyone reads them but might reduce the messages if even a few do.
  327. panji.bsky.social
    Message deleted
  328. panjiakbarp changed their display name to panji.bsky.social
  329. panji.bsky.social
    Any suggestion for bluesky app client for android?
  330. damon/
    I don’t believe there is one available. I know some have mentioned testing one out but none available for client use. Maybe someone is willing to give you early access to whatever they are testing
  331. Aaron Goldman

    In reply to this message

    I suppose "write one" is an unhelpful suggestion. 😈
  332. @kappaseijin:matrix.org
  333. damon/

    In reply to this message

    Thank you but my daily driver is an iPhone
    (edited)
  334. haimomer joined the room
  335. valueclick
    I see there is an Android app for Bluesky social. I'll try it right away.
  336. valueclick
    I have confirmed that if I post from my XPERIA using 青雲, I can see that post from my iPhone and the Web App on PC. Thank you.
    (edited)
  337. Chris Lace joined the room
  338. @michael.mauderer:matrix.org left the room
  339. paulghostsuk
    Is it OK to say am now posting from bluesky app on android
  340. valueclick
    Seiun(青雲) is an unofficial client for Bluesky that uses the AT Protocol (ATP), the next generation social network protocol. Currently, the only official Bluesky clients available are the iOS and Web versions, but with Seiun, you can be one of the first to experience Bluesky on Android.
  341. @evbogue:matrix.org
    I do not maintain boobeeblue, but what does it mean when a PDS DID is not resolving? How can the maintainer make it resolve?
  342. Aaron Goldman
    granted https://blue.amazingca.dev/ should be limited to an allow list ofcorce
  343. not all PDS are ones an indexer will want to index
  344. amazingca
    The Blue Wrapper does not include external PDS implementation. It only resolves DIDs through the
    bsky.social
    PDS at this time.
  345. Aaron Goldman
    fair enough
  346. George Antoniadis
    The federation spec hasn't been published yet right?
  347. Aaron Goldman
    Short version `{services.atproto_pds.endpoint}/xrpc/com.atproto.sync.getRepo?did={did}&earliest={cid_last_retrieved_root}`
    (edited)
  348. b0gg3r
    If you check out the com.atproto.sync lexicon, you can see what they're going for
  349. Aaron Goldman

    In reply to this message

    Resolving at://did is done in two steps.
    One retrieve the DID Document for the DID to learn the services.atproto_pds.endpoint where the users repository is stored.
    Two call that PDS and ask for the repo. Or more likely the difference between the last time you fetched the repo and now. Think git fetch.

    Now you have the repo and the path is just the path at://{did}/{path/to/object}

    An at: URI does not resolve if you can't retreve the DID Document, can't retreve the repo, or the path is not in the repo.

  350. @evbogue:matrix.org
    So it's kind of like git
  351. @shorty_gunny:matrix.org joined the room
  352. b0gg3r
    Exactly
  353. Aaron Goldman
    <personal opinion> The problem with git is that branches don't have strong identity. I can't have the "official" tip of a git repo. So the community ends up reaching for a central git hub to be the authoritative source and a domain name based URL as the location. If GitHub went away tomorrow that would be a disaster. Better would be authenticated data exchange where the repo is authenticated no matter who hosts it. If an authenticated data exchange repo host disappears you just move to the next one. The trust is in the repo controller not whoever happens to be the current host. `adx://repo_did@commit_hash/path/to/object` You have a link to both a bit authenticated set of exact bytes and a way to authenticate an authoritative latest version of that object. </personal opinion>
  354. Aaron Goldman
    I'm curious about opinions on the commit syntax. Do people like at://did@cid/path or at://cid@did/path ? I like the former since I think flows more like English but in https://user@domain/path the domain is the origin for the same origin policy. If at:// has the origin as the DID the did@cid may be misleading as the origin is in a different place than in https. I know the origin is actually the (protocol, hostname, port) my question is just the order of DID and CID around the @
  355. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    I prefer did then cid
  356. Zach Eisenhauer
    Hey! I’ve started tinkering with the bluesky developer docs and I’m curious about trying the platform, does anyone have an invite code?
  357. ephem joined the room
  358. @planetoryd:matrix.org

    In reply to this message

    "This is a channel for development of AtProto. So invite requests are out of scope." in other words, get out
  359. valdericht joined the room
  360. youssefsalem
    hey devs. Does bluesky have beta version on testflight?
    (edited)
  361. Ken (@q8fscjpgph:matrix.org) joined the room
  362. Caio Felipe joined the room
  363. whyrusleeping
    Its on the app store
  364. @evbogue:matrix.org
    But should it be?
  365. paulghostsuk
    I see I can't get in to the android app for some reason today
  366. b0gg3r
    Seiun? You should open a ticket with their dev team
  367. q8fscjpgph changed their display name to Ken
  368. cloud20 joined the room
  369. cp4kp changed their display name to shadow^
  370. Rei Shimotsuki joined the room
  371. rx104ff changed their display name to Rei Shimotsuki
  372. @ichinen0204:matrix.org joined the room
  373. @ichinen0204:matrix.org left the room
  374. @tdelenikas:matrix.org left the room
  375. dompercy joined the room
  376. bnewbold

    In reply to this message

    to phrase it in a more friendly way: welcome! we have slowed handing invite codes out, but there should be more coming, and we hope to just open registration to anybody as soon as we can.
    in the meanwhile, developers can experiment with the PDS implementation's "dev environment" mode (which is in-memory/ephemeral), and the various CLI tools and third party interfaces floating around (eg, look through history of this channel)
  377. damon/
    Not looking to start issues but did anyone here authorise this? This could partially be why the influx of people here asking for codes. https://www.buymeacoffee.com/felixjosemon
  378. Zach Eisenhauer

    @bnewbold I got in, I appreciate the kind message tho, excited to build a client for this 😁

    I’ll make sure not to scope creep for the rest of the discussion 😂

  379. whyrusleeping

    In reply to this message

    No, this is discouraged
  380. b0gg3r
    What a jackass
  381. airwaves changed their profile picture
  382. freshgum changed their display name to airwaves
  383. airwaves changed their profile picture
  384. Karl Abbott changed their display name to Karl Abbott (Chicago Trip - Back Late on 22 March)
  385. Seth
    Lmao
  386. I'm glad y'all are working with the garage door open tho 🙌
  387. Cool to see
  388. But you left some garbage out and now a bunch of raccoons are trying to get in 🦝
  389. @edendestroyer:matrix.org left the room
  390. whyrusleeping
    Yeah… we do want to let everyone in, but if we just open the door fully right now it will slow us down so much
  391. So we’re taking it slow, adding users at a reasonable rate, then adding a few more just to make ourselves uncomfortable
  392. @syui:syui.cf
    Is there a .env option to make the short name restriction disable?
    (edited)
  393. kk liang joined the room
  394. kk liang
    I just want to know and study what is blueskty and what is ATP?
  395. In reply to this message

    I am sorry ,so should I close this room ?
  396. the blue sky looks so like discord
  397. panji.bsky.social

    In reply to this message

    too early to conclude that
  398. mlbk joined the room
  399. @syui:syui.cf
    I set up a pds server. There are many things I don't understand, so please tell me various things
  400. iamknny joined the room
  401. iamknny
    Can some send me invite for bluesky please ?
  402. @planetoryd:matrix.org

    In reply to this message

    YWN get an invite code. Cope. Seethe
  403. iamknny
    Message deleted
  404. iamknny

    In reply to this message

    YWN get an invite code. Cope. Seethe
    Huh ? I’m new to this ?

  405. @planetoryd:matrix.org
    me too
  406. George Antoniadis

    In reply to this message

    There is really no benefit in responding to people in such way.
  407. In reply to this message

    No invites are being sent from this channel any more, there is an early access list, do sign up. The team is slowly but steadily inviting people.
  408. @syui:syui.cf joined the room
  409. @luizgustavoaf:matrix.org joined the room
  410. @luizgustavoaf:matrix.org left the room
  411. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    > > <
    @planetoryd:matrix.org
    > YWN get an invite code. Cope. Seethe > > > YWN get an invite code. Cope. Seethe > Huh ? I’m new to this ? This channel is not the right place to be asking for invite codes
  412. DIDs on bluesky are extremely centralized at the moment.. what's the plan for them going forward?
  413. @evbogue:matrix.org
    Public keys?
  414. MightySpaceman (OLD -> m_spaceman:matrix.org)
    public keys
  415. Aaron Goldman

    So, the glib answer is that the did:plc stands for placeholder? When the community settles on DIDs that don't suck this project can move to whatever DID methods become the de facto DID method.

    The more serious answer is that the

    serves as a timestamping service and a host of last resort for the document deltas. A PDS should cache the append only log of document deltas so it can look up did:plcs without the latency of a network hop. Once there is a community of PDS operators then the directory should be moved to an identity consortium.
    What that identity consortium should look like will depend on the PDS operators' desires and it is probably premature to design it.

    The two most likely paths forward are either a small consortium of the most trusted players in the community (11 of 16) BFT algorithm for time stamping and a multi-cast tree for distributing the accepted values to all PDSs.

    The other option is a large consensus group like all the PDSs with 28 day continuous up time. ⌊2/3⌋ + 1 accepts a value and we don't need a multi-cast tree since basically everyone was in the consensus algorithm anyway. The PDSs not participating in the consensus algorithm just periodically poll any PDS that is.

    but like I said probably premature to design it there are not a lot of PDS operators at the moment.

    (edited)
  416. Aaron Goldman
    In my personal opinion is that we should want key rotation. If we do want key rotation then we need an identity consensus group. Think of the set of keys that can sign as the DID. We can make a grow only set as a CRDT. We can have a grow only set of authorised keys and a grow only set of revoked keys. So far so good use a CRDT. Where we get into trouble is when two devices are each trying to revoke the other. Phone revokes tablet and tablet revokes phone. Now the sync what should happen? Whichever delta is processed second should be rejected as its key is no longer valid. Now we need a total order and that requires a consensus group. If we are willing to give up on revoking keys then we can give up the centralization but I am not willing to give up on revoking keys.
  417. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    contrasted to nostr, where the keys themselves are the identity...
  418. @planetoryd:matrix.org

    In reply to this message

    Publickey crypto is nothing new. And there is zero innovation in nostr.
    (edited)
  419. whyrusleeping
    Keys being your identity is such a bad idea for 99.99% of people
  420. No normal user wants to be responsible for their keys
  421. This is the biggest problem crypto has right now, everyone just uses a custodian because key management is scary
  422. @planetoryd:matrix.org
    blockchain for identity
  423. whyrusleeping
    Possibly yes, but it must be done very carefully
  424. xnf0k
    Are all Server-Side components open source currently? I know there's a PDS server on GitHub. What about
    plc.directory
    / is it required to get all basic functionality working?
  425. @eagain:matrix.org

    In reply to this message

    How about threshold signatures a la TUF? In practice, require cross-signing from another device. If you still produce conflicting updates, then well, maybe you did so on purpose?
  426. @planetoryd:matrix.org

    In reply to this message

    linkable threshold ring signature with decentralized key generation. and how about FHE, recursive ZKP
  427. and eventually you would put a neural network in MPC. its sick
  428. @eagain:matrix.org
    I’m not sure it needs to be this complicated
  429. @planetoryd:matrix.org
    yes u are sure. the complexity creates a singularity in your cpu
  430. kazecom joined the room
  431. Aaron Goldman

    In reply to this message

    Nostr is not going for new, they are going for useful.
  432. In reply to this message

    Wish granted, one PLC directory server for you. 😁

    https://github.com/bluesky-social/did-method-plc/tree/main/packages/server

  433. xnf0k

    In reply to this message

    Ooh thanks! Will check it out
  434. Aaron Goldman

    In reply to this message

    Yes you could use a threshold of friends, or devices.

    So the argument is that you need to specify a consensus group for identity document updates. This could be relying on someone else for the timestamps e.g.


    or requiring 3 of 5 friends to timestamp it. There are lots of ways to set up a consensus group for ordering the deltas.

    did:keri calls them witnesses and the witnesses set is managed in the document itself.

    https://identity.foundation/keri/kids/kid0000.html

  435. The tricky bit with witnesses is that you need to periodically test them. If a witness is no longer highly available you want to detect that and replace them from your witness set before you drop below the threshold.
  436. Karl Abbott (Chicago Trip - Back Late on 22 March) changed their display name to Karl Abbott
  437. Aaron Goldman

    In reply to this message

    it looks like https://syui.ai is on port 443 but the https://plc.directory/did:plc:schldsdljwxcdtslnbqaoifh service.serviceEndpoint in your did doc is https://syui.ai:2583 you may want to update the did doc with the new port for your server.
  438. @eagain:matrix.org

    In reply to this message

    Sure yes, you need some way to ensure freshness of the (tip of the) log. Somehow I assumed this problem wouldn't arise because identities are effectively bound to one PDS at any given time, so the problem is reduced to resolving the did to the server (which may be cheaper operationally, because it shouldn't happen very often)
  439. @evbogue:matrix.org
    Just broadcast the latest post
  440. @syui:syui.cf
    thx! fixed profile edit down
  441. @evbogue:matrix.org
    And use pub keys, cause they do things
  442. @evbogue:matrix.org
    It destroys the castle
  443. But builds the future
  444. Aaron Goldman

    In reply to this message

    That assumes that the full dataset is worth storing. If you had a twitter scale system with a thousand posts a second you will not be storing the billon or so messages a year.
  445. There is value in sharing the cost of indexing
  446. without indexes the search is to expensive and slow
  447. @evbogue:matrix.org
    I got confused about the discussion
  448. But I'm sure we can figure it out
  449. Aaron Goldman
    I think about it in two layers. I have some content that I want to make available online. I need a server to have and serve the content and I need a way for the URI to resolve to that content. If all the content on the web would fit on each node we could just broadcast it to evryone. Then evryone would have it. The problem is that the web will not fit on each computer. So, we put the content on servers we control or at least hire to serve the content and then share the advertisements. The question is now can we afford the storage and bandwidth for the content advertisements. If yes then we can broadcast the advertisements. If no then we need to find ways for less advertising to cover more content. We can use a trick like assigning a key to data server. Now anything signed by that key the dedicated server has the content or at least the redirect to the content. You don't need to advertise each object just each key. since there are far fewer users then objects this map from pkey to pds is a much smaller dataset to replicate around
  450. DID -> PDS -> post server
  451. @evbogue:matrix.org
    Yah, you're on the way there
  452. Aaron Goldman
    Well, that logic lead to DHTs
  453. @evbogue:matrix.org
    DHTs are like public broadcasting stations
  454. For your hashlinks
  455. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    nobody has any real incentive to run a node on a dht
  456. @evbogue:matrix.org
    Yah where is the money in sharing posts
  457. Aaron Goldman
    we have < 10 billon people if the directory can scale to 100 billon repos with 32 byte keys and 16 byte IPv6 lets say a record is ~ 128 bytes 12 ish terabytes for the hole worlds PDS advertisments. I don't want to store that on my PC but not too bad for a server
  458. @evbogue:matrix.org
    You need a replication algorithm
  459. And pubkeys
  460. And don't try to store everything everywhere all at once
  461. It can be done
  462. It just has to be imagined in a way that works
  463. Then the code can be written
  464. Aaron Goldman

    In reply to this message

    In reply to
    moved to @shreyan:beeper.com (@shreyanjain:matrix.org)
    nobody has any real incentive to run a node on a dht
    16 million nodes in BitTorrent Kademlia and 40 thousand in IPFS Kademlia.
    Somebody has an incentive to run the DHT node.
    (edited)
  465. @evbogue:matrix.org
    Yup, sharing works
  466. Aaron Goldman
    No secret I am a fan of Kademlia. https://youtu.be/NxhZ_c8YX8E
  467. @soheiil:matrix.org joined the room
  468. Yash Agarwal joined the room
  469. Glitch joined the room
  470. Glitch
    I don't think I'm supposed to be here. I'm sorry.
  471. Schuyler joined the room
  472. Exist2Exist joined the room
  473. mn05org joined the room
  474. Emily joined the room
  475. Justin Otstott joined the room
  476. @npxx:matrix.org joined the room
  477. @npxx:matrix.org
  478. damon/
    Has the Bluesky discord server been completely removed and unavailable?
  479. @soheiil:matrix.org left the room
  480. amazingca
    I don’t think BlueSky has ever had a Discord server.
  481. @rajveermalviya:matrix.org left the room
  482. Deavial Drake joined the room
  483. @tthh5577:matrix.org joined the room
  484. Karl Abbott changed their display name to Karl Abbott (Away, Back on 3-April-2023)
  485. @joshtisdale:matrix.org joined the room
  486. @joshtisdale:matrix.org left the room
  487. Aaron Goldman

    In reply to this message

    This is not actually a straightforward answer.
    There is a server called dSocialCommons that used to be called BlueskyCommunity.
    https://discord.gg/JcwwMrDx

    It was the server for the community looking into the distributed protocols for Jack to propose one for twitter to move to. When arcalinea was chosen to create and run Bluesky PBLLC and the Public Benefit Limited Liability Corporation was funded it supported the BlueskyCommunity with grants. Once Bluesky PBLLC decided not to continue funding BlueskyCommunity the community was now independent of the PBLLC so the name was misleading.

    The PBLLC kept the name "Bluesky" and the community was renamed to "dSocialCommons" and broadened the scope to all Social protocol that operate on top of distributed tech.

    Bluesky Dev is intended as a channel for people building ontop of atproto.
    dSocialCommons is intended for protocal and philisopical comparisons.

    @damon let me know where this answerer is confusing and I will try to clarify.

  488. damon/
    This was very clear and thorough. Thank you for providing me with this information and for answering my question.
  489. Nad changed their display name to Nad // away
  490. @anselm.schumacher:matrix.org joined the room
  491. Mark O'Sullivan joined the room
  492. Mark O'Sullivan

    Was just reading the docs and seen the What is “XRPC,” and why not use ___? section, does this mean there is a publicly available Postman collection maintained by the AtProtocol team?

    If so, where can I find that?

  493. @syui:syui.cf left the room
  494. syui joined the room
  495. Marcio Alves joined the room
  496. Marcio Alves
    I would like to be a beta tester for the Android version of the app my email is
    marciotalves@gmail.com
  497. I need the invitation for me to join the social network who can send me there
  498. Hey guys, good morning, I'm a Brazilian who wants to join the social network. Who can send me the invitation? Please, my email is
    marciotalves@gmail.com
    .
  499. Marcio Alves
    Can someone send me the invite?
  500. Brad Brown
    Marcio Alves: they aren’t sending more invites at the moment, as noted further up the channel, and repeatedly posting back-to-back asking for it is maybe doing a bit too much.
  501. Marcio Alves
    Too bad so I was curious to see the social network and wanted to know but that's ok then thank you
  502. Brad Brown
    I know they’re working hard to get it to a point to expand further, but I think right now they’re focused on stabilizing the protocol so they can do so.
  503. @npxx:matrix.org
  504. Marcio Alves
    Thanks
  505. You too have a nice weekend
  506. Marcio Alves
    It's good that this social network came, it's going to be a strong competitor with Twitter, just like SayMe Messenger here in Brazil is a strong competitor against WhatsApp
  507. @planetoryd:matrix.org

    In reply to this message

    never heard of it
  508. obscure proprietary nonsensical softwares
  509. Marcio Alves
    No, the owners are not obscure.
  510. If you want, you can test this one here is the WhatsApp competitor https://play.google.com/store/apps/details?id=br.sayme.messenger
  511. @planetoryd:matrix.org
    yes, there are a lot, but no one cares, whether there is a new proprietary software or not
  512. Marcio Alves
    Yes, as blueSky is a competitor of Twitter, right?
  513. Just like I think that BlueSky will be a success in the world these other two social networks I also think it will be a success
  514. @npxx:matrix.org
  515. Marcio Alves
    I'm dying to try the one on blueSky too
  516. We Brazilians are believing a lot in this new project
  517. Schuyler
    No spamming please. Invites will be rolling out soon enough.
  518. Marcio Alves
    How cool bro I'm looking forward here 🤪
  519. @evbogue:matrix.org left the room
  520. @vsco:matrix.org left the room
  521. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    No secret I am a fan of Kademlia.
    https://youtu.be/NxhZ_c8YX8E

    Kademlia seems really cool, I hadn't heard of it before, for some reason

  522. Chase Berry joined the room
  523. Chase Berry
    I'm excited for the launch; I've been following since the beginning. I know the blog says that the timeline is a bit fuzzy but what are you hoping for to get through the waitlist?
  524. Marcio Alves
    I can't wait to get on the waiting list or someone sends me an invite
  525. damon/
    You are going to get banned
  526. Marcio Alves
    Me why what? Is there no reason just because I'm Brazilian?
  527. damon/
    You are not the only Brazilian here. It’s because you are spamming. You were already shared the rules of this space. It’s great you are excited, but you are making the space uncomfortable.
  528. Marcio Alves
    I saw the rules now I didn't do anything I just also stated that I'm anxious like the other user did
  529. But I'm sorry if I bothered anyone I'm using Google translator to communicate with you sorry for anything I've done
  530. damon/
    It is similar to your previous posts. It doesn’t contribute nor provides any new information. The team is working hard daily pumping out updates. They are going their best to get it to the masses, but they have to do it the right way and the smart way.
  531. Marcio Alves
    Sorry then I didn't know the group was to bring information so I'll keep watching I won't post anymore 👍
  532. damon/
    Appreciate your understanding and consideration. It is an exciting time and the growth of Bluesky will be beautiful. In the meantime there’s tons of decentralised social networking apps that are out there and being created. Also, there’s a ton of Mastodon apps that look to provide a strong Twitter like experience but better. Just a suggestion for while you wait if you haven’t take advantage already.
  533. @luizjr8:matrix.org left the room
  534. Konrad Wiktor
    hello do you have any invite?
  535. @npxx:matrix.org
  536. 25niko joined the room
  537. syui
  538. @toranosora:matrix.org changed their profile picture
  539. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Is the official BlueSky operated PDS still the only one?
  540. syui
    Message deleted
  541. Aaron Goldman

    In reply to this message

    You could look through the
    plc.directory
    to find DIDs that point to other PDSs
  542. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    hmm that url doesn't work
  543. how do I use that?
  544. Aaron Goldman
    https://plc.directory/export?after=1970-01-01T00:00:00.000Z It will give you the first page. after that you can set the after to the last time stamp to get the next page
  545. The directory is an append only log.
    To keep a PDSs local copy up to date it only needs to pull the events after the last one it pulled.
    This should keep the load on the directory low as each PDS only pulls each event once.
  546. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Oh I see
  547. this is pretty interesting to browse. I found my own account creation
  548. Is "account" an appropriate term to use for bluesky?
  549. Aaron Goldman
    I like to say repo but that it just because I think in git 😛
    (edited)
  550. Account is better than user. As it is not necessarily 1:1 with a human
  551. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    So far I only see lots of https://bsky.social 😆
  552. Aaron Goldman

    In reply to this message

    by my count

    1234567891011| operation.service    | operation.services.atproto_pds.endpoint | count did |
    |----------------------|-----------------------------------------|-----------|
    | null                 | https://boobee.blue                     |       163 |
    | null                 | https://bsky.social                     |      5330 |
    | null                 | https://syui.ai:2583                    |         3 |
    | https://boobee.blue  | null                                    |         1 |
    | https://bsky.social  | null                                    |      2602 |
    | https://bsky.syui.ai | null                                    |         1 |
    | https://syui.ai      | null                                    |         1 |
    | ignore               | null                                    |         1 |
    | localhost:4989       | null                                    |        30 |
    
  553. moved to @shreyan:beeper.com@shreyanjain:matrix.org
  554. Aaron Goldman
    bsky.social
    dose seem to be the only one that matters
  555. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    yep
  556. In reply to this message

    wonder whose idea that was
  557. Aaron Goldman
    don't know anything but the url in the did docs but dose not sound like someone I want to federate with
  558. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    yep definitely
  559. syui: I assume you are running
    syui.ai:2583
    ?
  560. Aaron Goldman
    free speach 🤷‍♂️
  561. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    and of course the freedom to not listen 👂
  562. syui
    I don't know update_atp_pds, get priv(cid)
    (edited)
  563. @chadkoh:matrix.org joined the room
  564. KlonAmy changed their profile picture
  565. Nap Wong joined the room
  566. syui
    Aaron Goldman: Is there an easy way to update endpoint in
    plc.directory
    ?
  567. Napoleon Wong changed their display name to Nap Wong
  568. syui
    What happens if switch the env to the new server did?
  569. Nap Wong set a profile picture
  570. Jurij Jukic joined the room
  571. Jurij Jukic
    Hello! I'm trying to understand why are MSTs necessary in ATP? Why not just use a relational db? I assume it has to do with how data is stored in PDS, which I dont understand how they work
  572. @neilalexander:matrix.org

    In reply to this message

    I think the idea of using MSTs is that it is cheap to spot changes and that the entire structure is authenticated implicitly
  573. claromes joined the room
  574. Ivan Kyuchukov joined the room
  575. claromes set a profile picture
  576. @buletten.monster:matrix.org joined the room
  577. moved to @shreyan:beeper.com@shreyanjain:matrix.org
  578. Reading this in the ATP docs, I'm curious what the problems were with existing DID implementations e.g. ION
  579. Marcio Alves
    Good evening, everyone, I use a client application for Android, so there's no way I can put a profile picture, it's what was published here, don't you know another client for Android?
  580. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Try the web client
  581. George Antoniadis

    In reply to this message

    This part of the docs might help a bit. https://atproto.com/guides/identity#did-methods — rotation, speed, cost, and api seem like an issue for most blockchain based dids.
  582. Marcio Alves
    Is this link you sent me for your web client?
  583. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    It's the official one
  584. Marcio Alves
    Because I'm not using the computer, but an Android cell phone through Chrome, I can't open this link
  585. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Try logging in on your computer later then
  586. Marcio Alves
    Can someone help me how to use the web version
  587. I don't know if the web version works on an Android smartphone
  588. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    It doesn't work on smartphones
  589. Do you have a computer with a web browser you could use? Try it on that
  590. Marcio Alves
    Too bad because now I don't have a computer anymore I had it in the past but now I don't have it if the web version worked for Android
  591. But thanks for the help, I'll see if I can find a browser that makes Android think it's a computer
  592. Marcio Alves
  593. @samme:schizo.cafe changed their profile picture
  594. Marcio Alves
    Even on my Fire TV, the site recognizes it and thinks it's a smartphone, so I can't access the web version
  595. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Marcio Alves: can we try to keep this room on topic please? try asking your question on bluesky itself
  596. Marcio Alves
    ok good idea thank you
  597. @grumbulon:schizo.cafe changed their profile picture
  598. Aaron Goldman

    In reply to this message

    So there are a few levels this question can be answered on.

    The repos are at their heart a collection of objects and their paths. This could be put in a relational database. We wanted to be able to sign each update to the state of the repo. There is not really a standard way to hash the state of a relational database to a single 256 bit number to sign.

    You could do something very brute force like putting all the data in a SQLite file and hashing the bytes to sign but that would have costs linear in the size of the repo and you would need to download the entire repo to validate the signature.

    So the next logical step is to put all the objects in a trie. This is much better when we change a single object we now generate only the nodes in the path from the object to the root and resign the root.
    Ok now we are able to verify a single object. However the trie depth could get pathological. If my keys are like (b, ab, aab, aaab, aaaab, aaaaab). The standard way to fix the arbitrary depths problem is to hash the keys before putting them in the trie. This solved the depth but hashsets are in arbitrary order. I lose the ability to checkout a range e.g. repo/posts/* or repo/follows/* the keys are in logical collections we would like to keep the order. So we want to use a b-tree set so we don't lose the order. Rebalancing the b-tree would be a big diff.

    How do we get the best of the memoryless property of the trie, the shallow depth of the hash set, the ordered range queries of the b-tree? Enter the Merkel Search Tree. It's a b-tree so we get ordered ranges. The pointers are cryptographic hashes it's a Merkel tree and we have something to sign. The balance is determined by the hashes so we have logarithmic depth.

    Small proofs on ranges.
    Cheap diffs to sync the repos.
    Good structural sharing as a persistent data structure.

    So long story short. Most relational databases are built on top of b-trees. If you want SQL build it on top of the MST it should work well.

  599. Sorry for the confusing post happy to clarify, any questions? 😶
  600. I don't know how data structurey people want to get in this channel
  601. Marcio Alves
    Good morning there people the source code of twitter leaked https://canaltech.com.br/redes-sociais/codigo-fonte-do-twitter-vaza-no-github-244514/
  602. George Antoniadis

    In reply to this message

    Let's not post illegal content here. Also keep in mind that Twitter has filed a court order for Github to give them the real names and ips of people who downloaded the source code. Don't think they'll manage it, but in case they do, better not be on the list.
  603. Marcio Alves
    It's an important news site in Brazil it's not illegal content it's information
  604. George Antoniadis

    In reply to this message

    Sorry I misunderstood your message, thought it was a link of the source code itself.
  605. Américo Júnior joined the room
  606. Américo Júnior
    Hey, I haven't received an invite to use bluesky, can I use bluesky with my own node without invite?
  607. whyrusleeping
    Technically yes, federation is landing pretty soon and youll be able to run your own pds and federate into the network
  608. That said, you can just dm me for an invite
  609. @toranosora:matrix.org changed their profile picture
  610. Marcio Alves
    Video on my channel explaining how to enter BlueSky on Android https://youtu.be/OZf-nvZjwyM
  611. Aaron Goldman
    I have some trouble understanding that
  612. Great to have content in languages other than just English
  613. @tomtau.:matrix.org left the room
  614. Pratyush Sahoo joined the room
  615. Pratyush Sahoo
  616. MightySpaceman (OLD -> m_spaceman:matrix.org)
  617. Marcio Alves

    In reply to this message

    Thank you my friend I make content for YouTube I will help to promote BlueSky here in Brazil
  618. You can follow me on BlueSky if you want, my user there is marcio and my profile name is Marcio Tatiano Alves I have a friend who is a programmer I will see if he can help me translate the application into Portuguese
  619. 杜仲茶 joined the room
  620. Marcio Alves
    This video shows BlueSky for Android is that it?
  621. @garyasama:matrix.org joined the room
  622. xtianpu
    Just thought about the Bluesky API in the future. Are there any simple plans about the API will be implemented? I'm just thinking about how complex it will be since there are multiple Indexers and PDS..
  623. aisato joined the room
  624. Marcio Alves
    Message deleted
  625. Marcio Alves
    New social network from the same creators of #tiktok app similar to #Instagram Follow me there too https://v.lemon8-app.com/al/bTevfchh
  626. d27 joined the room
  627. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    Anyone know?
  628. Aaron Goldman
    https://atproto.com/specs/did-plc discusses motivation some. With ion you are spending to put transactions in the Bitcoin block chain. We can have consensus mechanisms that are faster and cheaper.
  629. In reply to this message

    Different DIDs have different drawbacks. Which did you have in mind.
  630. Tierney Blue joined the room
  631. @lmc:halogen.city joined the room
  632. @lmc:halogen.city left the room
  633. Deavial Drake
    Message deleted
  634. Deavial Drake
    well i thought that was going as a dm. color me blonde.
  635. Avidlearner joined the room
  636. Deavial Drake set a profile picture
  637. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    none in particular 🤷‍♂️
  638. bnewbold
    as a heads up, we are starting the deployment process for our lexicon refactors. may take a couple hours, or longer, depending on app store review turn around. this will likely disrupt third party clients! but hopefully the last such large distributive change. docs have not yet been updated, but typescript code has been merged ('atproto' repo)
  639. @emmorais:matrix.org left the room
  640. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    is it already live on the web?
  641. bnewbold
    nope!
  642. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    👍️
  643. Nap Wong
    Hey peoples, how can I get into the beta? I have requested access several times already.
    (edited)
  644. bnewbold

    In reply to this message

    we have to delay this a bit, sorry for the stop-and-go folks! will update when it gets pushed out (the mobile app, web app, and PDS server will get updated all around the same time)
  645. the lexicon docs have now been updated however: https://atproto.com/docs
    you can find the canonical lexicon schema files for 'com.atproto' and 'app.bsky', as JSON, at https://github.com/bluesky-social/atproto/tree/main/lexicons
  646. In reply to this message

    Hi Nap Wong! while we are still in closed beta, invites are getting trickled out slowly, and not on request. we will get through the waitlist over time, and in not too long will also allow open registration and federation with other instances (so we won't be the sole bottleneck in account registration). that will all happen when it is ready, we don't have a timeline to share
  647. Nap Wong
    I see, thanks!
  648. @anselm.schumacher:matrix.org joined the room
  649. @eagain:matrix.org left the room
  650. lonuma joined the room
  651. @buletten.monster:matrix.org joined the room
  652. @buletten.monster:matrix.org joined the room
  653. @buletten.monster:matrix.org left the room
  654. Marcio Alves
    Tutorial in Brazilian Portuguese Bluesky social unofficial web version and Verso for Android unofficial watch the video until the end to learn how to create a profile https://youtu.be/LpNRE--sXPY
  655. drgunn

    In reply to this message

    IMHO it's bait. An easy find to distract people from looking more deeply for the real story.
  656. mothomson joined the room
  657. moved to @shreyan:beeper.com@shreyanjain:matrix.org
    Yea and it's obvious lots of things were removed before the release
  658. @tommyzjones2020:matrix.org joined the room
  659. @tommyzjones2020:matrix.org
    Message deleted by pfrazee
  660. panji.bsky.social

    In reply to this message

    That's illegal in Indonesia 😂
  661. moved to @shreyan:beeper.com@shreyanjain:matrix.org

    In reply to this message

    🙅🚫
  662. bnewbold
    ^ spam, a mod will delete
  663. pfrazee banned @tommyzjones2020:matrix.org: spam
  664. ramonszo joined the room
  665. @anselm.schumacher:matrix.org joined the room
  666. alcoco joined the room
  667. Marcio Alves
    Are you able to log into BlueSky?
  668. pfrazee
    We're deploying a major refactor
  669. Marcio Alves

    In reply to this message

    Why did you leave the account and I can't log in anymore?
  670. pfrazee
    I don't understand, "Why did I leave the account" ?
  671. Marcio Alves
    Yes, it left the account alone, now I can't log in anymore
  672. This is my username on BlueSky, you can see it there
    marcio.bsky.social
  673. I don't know what you hear, I just know that you logged out and I can't get into my account anymore
  674. Marcio Alves
    Can anyone answer me the bluesky is working yes or no?
  675. @npxx:matrix.org
  676. Marcio Alves

    In reply to this message

    I'm just asking a question, what does it cost to answer?
  677. Marcio Alves
    I already understand what you hear bluesky updated and the official non-clients are no longer working https://github.com/bluesky-social/atproto-ecosystem
  678. あすらも/heguro
    if you're using either the official app or
    staging.bsky.app
    , just update/reload the app to apply breaking changes
  679. Marcio Alves

    In reply to this message

    Doesn't work for me I don't have a computer
  680. あすらも/heguro

    In reply to this message

    what device you're using
  681. あすらも changed their display name to あすらも/heguro
  682. Marcio Alves

    In reply to this message

    Moto g 10 um celular
  683. Moto g 10 a cell phone
  684. あすらも/heguro

    In reply to this message

    Seiun app currently not supports braking changes, pls wait for developer to support
  685. you can use @
    shino3.bsky.social
    's client https://the-blue.shino3.net to see timeline
  686. Marcio Alves

    In reply to this message

    Dude, thank you very much, you were very kind because Google translator sometimes doesn't give the right word here, so many people think I'm boring but I'm Brazilian, different culture, thank you for your attention
  687. It worked, I got in
  688. Marcio Alves
    I enjoyed using this site on Android as it was the most complete https://tokimekibluesky.vercel.app
  689. networkException changed their display name to oom test
  690. oom test changed their display name to networkException
  691. あすらも/heguro
    also, if you open
    staging.bsky.app
    with auto-rotate enabled on your phone and rotated to landscape, the login button may appear This depends on your phone's display size setting, you may need to set it to the smallest setting
  692. Marcio Alves

    In reply to this message

    I tried here and it didn't work it didn't appear to be able to login
  693. spiderham joined the room
  694. あすらも/heguro
    if you don't mind on installing a new app try Chrome Beta which has a zoom setting that can be enabled in its accessibility settings and set to 50% zoom
  695. (even if you could use
    staging.bsky.app
    it does not officially support portrait mode so it might be wise to just wait)
    (edited)
  696. Marcio Alves
  697. Did not work
  698. bnewbold
    Lex refactor deployment has been rolling out the past couple hours. thanks to folks who have reported issues! We are still debugging problems with golang parsing of legacy "blobs" in records, and record enumeration (impacting follows in the mobile app)
  699. あすらも/heguro

    In reply to this message

    you have to reload after zoom out
  700. Marcio Alves

    In reply to this message

    Now it worked, thank you
  701. Sanjay Govindan joined the room
  702. @neilalexander:matrix.org
    Looks like 1.11 is on the App Store but not TF?
  703. George Antoniadis

    In reply to this message

    This has happened once or twice before, last time Paul said the review for the testflight just took longer than the live to go through.
  704. @neilalexander:matrix.org
    thanks, tim apple
  705. youssefsalem

    In reply to this message

    Can you send me the invite link for bluesky on tf if you have it
  706. @neilalexander:matrix.org

    In reply to this message

    No, sorry, TF invites were sent by email
  707. whyrusleeping
    Yeah we’re just shipping everything through the app store and not adding anyone new to testflight
  708. I am making my way up to the temple of steve to pray and unblock the app
  709. @neilalexander:matrix.org

    In reply to this message

    Live long and turtleneck 🖖
    (edited)
  710. George Antoniadis
    The resemblance is uncanny. I really hope this is not actually a statue of jobs.
  711. youssefsalem

    In reply to this message

    Got it. Thank you
    (edited)
  712. youssefsalem

    In reply to this message

    If you need new testers in the future, I’ll be happy to join. Over 90% of my apps are beta
  713. kitpaul joined the room
  714. Karl Abbott (Away, Back on 3-April-2023) changed their display name to Karl Abbott
  715. Marcio Alves

    In reply to this message

    I have to thank you for what you taught me I made a video for other Brazilians to learn how to use bluesky with Android https://youtu.be/1im7tZlwPMs
  716. Saaman joined the room
  717. Thib changed their display name to Thib (back on April 11)
  718. Jurij Jukic

    In reply to this message

    Thanks for clarifying :), will revisit more carefully when I catch the time
  719. @govbotdotnet:matrix.org left the room
  720. sylphrenetic
    Is there a small project one with some coding experience might be able to complete in a few hours or so related to ATproto? Perhaps creating your own PDS locally and sending dummy posts to it?
  721. I'm trying to create a list of these small projects to give to people that are new to the dWeb community or new to ATproto to give them a good introduction.
  722. holybell joined the room
  723. sefidel joined the room
  724. miiin joined the room
  725. miiin
    Message deleted
  726. 2P joined the room
  727. whyrusleeping
    What
  728. panji.bsky.social

    In reply to this message

    Why?
  729. whyrusleeping
    Because?
  730. miiin
    I'm sorry, I called you by mistake🙇
  731. @thezanarkandkid:matrix.org joined the room
  732. takenoco joined the room
  733. counterpoint joined the room
  734. pfrazee

    In reply to this message

    I wish I had a good answer for you right now -- we're just trying to barrel to the v1 of the protocol so that this question does become easy to answer
  735. the atproto stack isn't really designed so that a PDS is easy to implement; you need to write the data repository structure which requires some pretty specific cryptography and data structure knowledge
  736. what will eventually be easy is building clients and services that hook into the network (including eg feed algorithms)
  737. I could suggest building a client but without federation done (again, soon) or an open account creation on our service that is a little odd
  738. wish I had a better answer! But things are very close, and then this will be an easy answer
  739. counterpoint set a profile picture
  740. Aaron Goldman

    In reply to this message

    In reply to
    sylphrenetic
    Is there a small project one with some coding experience might be able to complete in a few hours or so related to ATproto? Perhaps creating your own PDS locally and sending dummy posts to it?

    It may be a good first project to pull the head of a repo and validate the signature agents the DID.

    1234567const commit = z.object({
      did: z.string(),
      version: z.number(),
      prev: common.cid.nullable(),
      data: common.cid,
      sig: common.bytes,
    })
    
    1. Pull the DID Document for a did:plc
    2. Pull the head of the repo from the PDS
    3. validate the signature of the commit.
      This is the heart of the authenticated data.
      From there it's following CIDs and understanding Lexicon.
      There is far more complexity there.
      I would start with getting the repo validated.
      All clients need that aspect even if they use novel techniques for acquiring or interpreting the blocks.
      Would be nice to have a list of libraries in different languages for validation of the authenticated data.
    (edited)
  741. Maybe we should make a CAR file with the blocks for the DID Document deltas, the commits, and the data blocks for a tiny repo. Then anyone testing a client could test by validating it?
  742. Aaron Goldman
    If prolyl tree ADL Spec gets added to the IPLD spec should atproto move from MST to prolyl tree in order to use just plain IPLD instead of the custom MST? https://github.com/ipld/ipld/pull/254 Probably worth commenting in what the pr with what if anything was needed to switch to prolyl tree ADL.
  743. @arcterius:matrix.org joined the room
  744. whyrusleeping
    Id rather just work to get an ADL for the MST
  745. The prolly tree is neat but doesnt really solve any problems for us and is less efficient than the MST in some cases
  746. gm46 joined the room
  747. rihemaru joined the room
  748. @rimuru:gentoo.chat changed their profile picture
  749. sef changed their display name to sefidel
  750. m_adpuppy joined the room
  751. megnconnors joined the room
  752. megnconnors changed their profile picture
  753. megnconnors changed their profile picture
  754. megnconnors
    I’d like to receive an invite, too. Please and thank you! whyrusleeping
    (edited)
  755. osprey74 joined the room
  756. counterpoint

    I’m curious! I’ve seen two different kinds of invites floating around the internets — some look like “

    -CODE”, others look like “bsky-social-CODE”. Curious if there’s any difference between the two?

    (edited)
Next group of messages