senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. :portalorangeparrot: :harukin: (_@mstdn.y-zu.org)'s status on Saturday, 25-Aug-2018 10:05:53 JST :portalorangeparrot: :harukin: :portalorangeparrot: :harukin:
    • せのお (妹尾 賢)

    まだHubzilla全然こなせてないけどこれはやばいわ。
    分散型の真骨頂だわ。
    普通のサーバー一つに縛られるそれとはぜんぜんちげぇわ..............いやすげぇ........
    https://plus.haruk.in/channel/keizou/?f=&mid=f4c7a48a2981c0e25b1567b2489cea44c8bab348e27bbb08b3dc4b91d2631432@plus.haruk.in

    In conversation Saturday, 25-Aug-2018 10:05:53 JST from mstdn.y-zu.org permalink

    Attachments

    1. No result found on File_thumbnail lookup.
      Keizou Wakabayashi wrote the following post Sat, 25 Aug 2018 01:54:44 +0900
      ユーザとしてHubzillaの障害に備える
      今回、Harukin+が保守作業に伴うシステム障害によりダウンしました。

      TwitterやFacebookなど一般的なSNSであればSNSサーバがダウンすると復帰するまで当然ながら利用はできません。

      そして、日本ではMastodonをメジャーとする分散型SNSでも、所属するMastodonサーバがダウンした場合は、別のURLドメインを持つサーバへ複アカウントを作成し、分散ネットワークシステムとしては全く別のユーザとしてログインすることにより待避することが可能です。

      しかしHubzillaには一般的なSNSの"アカウント"とは違うNomadic identity(ノマディックアイデンティティ/遊牧民のアイデンティティ)という概念を持ち、もし現在ログインしているHubサーバがダウンしても、別のHubサーバへユーザ情報を障害の事前にクローンしておいて、障害発生時に別のHubサーバへログインすることによって分散ネットワーク上で同一ユーザとして振る舞えるという機能があります。

      今回はHubzillaの先進的な分散システムについてご説明します。

      Hubzillaでは複数のHubサーバが接続されることによって分散ネットワークを形成します。これをGrid(Gridネットワーク)と呼称します。



      例えば、ユーザboyがalpha.hub.netにアカウントを作り、alpha.hub.net/channel/boyというチャンネルを設けます。

      実はHubzillaではチャンネルを設けた際に内部でIdentityIDという固有のハッシュ値が与えられます。



      更にboyはユーザ情報を分散させるためbravo.hub.orgでアカウントを作りbravo.hub.org/channel/boyというチャンネルを設けますが、その際に事前に設けていたalpha.hub.net/channel/boyのチャンネル情報をクローンするように指定しました。



      直ぐ上の図のチャンネルURLとIdentityIDへ注目してください。チャンネルURLが別であり、IdentityIDが同一なのが理解できるでしょうか?

      Hubzillaの分散ネットワークGridで共有される全ての操作はこのIdentityIDへ指向して行われます。

      例えば、リプライやメンションなどはalpha.hub.net/channel/boyへ指向して送受信されるわけてなく、IdentityID:SzhlhNa4lDqRへ指向して送受信されるということです。

      図解してみましょう。

      charlie.hub.socialへログインしているユーザgirlが、いつもalpha.hub.netへログインしているboyへ向けて何らかのメッセージを送ったとします。

      しかしながら、boyがいつもログインしメインとするalpha.hub.netは何らかの障害によりダウンしており、boyは一時的にbravo.hub.orgへ待避しました。

      このような状態だとalpha.hub.netにログインしていないboyには絶対にgirlのメッセージは届きません。

      これはTwitterやFacebookなどの一般的なのSNS、Mastodonを代表するActivityPub系分散型SNSでも同じです。



      しかし、Zotプロトコルで実装されるGridネットワークではalpha.hub.netへ指向するわけでなくIdentityIDへ指向するのでboyがbravo.hub.orgへログインしていてもメッセージが届きます。



      再三続けて申し訳ないですが、Hubzillaの書き込みやメンション、リプライ、シェアなどの操作はalpha.hub.netやbravo.hub.orgなどへ指向して行われるのではなくIdentityIDへ指向して行われます。

      つまり、boy(IdentityID:SzhlhNa4lDqR)が書き込んだという情報はGridネットワークへ接続されているalpha.hub.net/channel/boyとbravo.hub.org/channel/boyへ同期されます。何故ならこの2つのチャンネルのIdentityIDは同一だからです。

      もし、片方のHubサーバがダウンしていても活動しているHubサーバで書き込めばboy(IdentityID:SzhlhNa4lDqR)の投稿情報はGridネットワーク内で共有されます。

      また、girlも見ているのはalpha.hub.net/channel/boyやbravo.hub.org/channel/boyではなくIdentityID:SzhlhNa4lDqRなので、片方のHubサーバが落ちていても活動しているサーバからIdentityID:SzhlhNa4lDqRの情報を取得しboy(IdentityID:SzhlhNa4lDqR)の投稿を読むことができるというわけです。



      今回、Harukin+がダウンしている間にボクが書き込めたのは、チャンネルクローンしている別のHubサーバにて書き込んだ為です。

      長くなりましたが、つまりユーザとしてHibzillaの障害に備えるということは、現在メインで使っているHubサーバとは別のHubサーバへ事前にチャンネルクローンをしておくということになります。

      最後にちなみにですが、サーバがダウンしてもダウンしている間の情報はGridネットワーク内でキューされ、ダウンしたサーバが復帰した際に自動同期をはじめます。

      以上です。ありがとうございました。
    • 百川合瀬 :blackbox:, さっこ and unarist and 3 others repeated this.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.