2023-02-23 / @syui

bluesky , atproto

bsky.socialにアカウントを作ってみた

今回は、atp(at-protocol)のself-hostingではなく、bsky.socialにaccountを作成してみました。優しい人がbsky.socialinvite-codeを発行してくれたので、嬉しい。

  • at://syui.bsky.social

invite-codeは、こちらの資料がわかりやすいと思います。

rustで書かれたadenosineというclientが便利です。

$ git clone https://gitlab.com/bnewbold/adenosine
$ cd !$:t
$ brew install cmake
$ cargo build

$ export ATP_HOST=https://bsky.social

$ ./target/debug/adenosine ls at://syui.bsky.social
at://syui.bsky.social/app.bsky.actor.profile

$ ./target/debug/adenosine ls at://syui.bsky.social/app.bsky.actor.profile
at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self

$ ./target/debug/adenosine get at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self
{
  "cid": "bafyreihkjxz4tl36t5ofn74rsl4lglahdqnpprmbcuza2t5b5kfwysfehu",
  "indexedAt": "2023-02-23T01:14:43.377Z",
  "takedownId": null,
  "uri": "at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self",
  "value": {
    "$type": "app.bsky.actor.profile",
    "avatar": {
      "cid": "bafkreid6kcc5pnn4b3ar7mj6vi3eiawhxgkcrw3edgbqeacyrlnlcoetea",
      "mimeType": "image/jpeg"
    },
    "banner": {
      "cid": "bafkreif5z5mbbubxuck3kn4fx7guqeznnlm4ujw7pseozn73p3k6czj5xa",
      "mimeType": "image/jpeg"
    },
    "description": "",
    "displayName": ""
  }
}

atはprotocolでblueskyがserverに当たるのかな。

blueskyは主にserverのdomain-nameに当てられることが多い印象ですが、例えば、iosのclient-nameにも採用されているみたい。

間違ってるかもしれませんが、大体は下記のイメージを持っています。ns(name-server)はbsky.appならapp.bskyとなります。

# https://atproto.com/specs/at-uri-scheme
at://syui.bsky.social/app.bsky.actor.profile
${proto}://${user}.${host}/${ns}.${req}

at://did:plc:.well-knownの仕組みに似てる感じなのかな、わかりません。基本的にはid(pubkey?)を参照するusernameより確実性、詳細性が高いものだと思われます。

追記

その後、なにか作りたくなったので、簡単なbotを作ってみた。