OSS版モナカード配信サーバーの仕組み
モナカードアドベントカレンダーの18日目の記事です。
最初はモナカードの仕組みの記事を書いたのですが、新しい情報もなく面白くなかったのでこの題材に変えました。
オープンソースでMonacardHubというものがあります。あまり知られていないと思うので紹介記事を書きます。このプログラムは誰でも使うことができます。
モナカードは特定の人物やサーバーに依存しないようにしたいという建前でやっていますので、その一環として作成しました。
機能
・カード情報を表示
・カードAPIの提供
・規約違反カードの共有
・画像データの共有
card.mona.jpに近い機能を提供することができます。IPFSにアップロードする機能はありません。
仕組み
Monacard1.0情報の収集
Monacard1.0はcard.mona.jpのサーバーにしかデータがありませんでしたが、2.0へのアップデート時にモナコインチェーンに書き込みました。このデータをチェーンから取得し自分のサーバーのDBに書き込みます。
Monacard2.0情報の収集
Monapartyのトークンが更新された履歴をすべて調べます。この中にMonacard2.0の規格に合ったデータを持つトークンがあれば収集し、自分のサーバーのDBに書き込みます。この処理を定期的に実行します。
情報の共有
規約違反カード、画像データはAPIを通して共有されます。
MonacardHubを使うメリット
card.mona.jpの検閲に納得できない場合などに自分の独自の検閲を行うことができます。
card.mona.jpが落ちていてもMonacardHubを閲覧したりAPIを使うことができます。
MonacardHubとmonacardjs
MonacardHub以外にもOSSのmonacardjsが存在します。2つは別々のプログラマーが作ったもので、monacardjsはoknamo氏が作りました。
今すぐにMonacardHubが役に立たなくても、多くの人に知っていてもらえればいざと言う時に役に立つかもしれません。頭の片隅に入れておいてもらえると幸いです。
ちなみにMonacard閲覧システムの実装は上にあげた3つがありますが、IPFSへのアップロードを行うシステムはcard.mona.jpの1つしかないのが現状です。こちらも誰でも建てられることにはなっていますが、OSSとして公開されているものはないので自分でプログラムして建てることになります。