『HiÐΞ 』オフライン&IPFSでWEB3時代の新しい記事管理
HiÐΞのバックアップストレージに Textile を使ったIPFSを統合しました。クリプトウォレットの秘密鍵を使って暗号化するので、本人しか閲覧できない状態で分散管理されるファイルシステムに記事データを保存可能です。通常のウェブサービスではサービス運営がデータを閲覧可能ですが、この方法だと運営の中央サーバーが存在せず物理的にデータを閲覧できるのが秘密鍵を持っている本人だけとなります。自分で保存用サーバーを準備せずとも自分だけがアクセス可能なクラウドに(理論上)無料無制限にデータが保存可能になる訳です。
これによって、オフラインで高速で記事データを管理しつつバックアップは分散型クラウドストレージのIPFSへ保存可能になり、集権サーバーを介さずにクラウドで個人の記事データを管理できるというこれまでにないWEB3時代の新しいCMS・ブログシステムが実現しました。
HiÐΞシステム設計
HiÐΞシステムの全体設計は以下のようになりますが、今回は記事データ管理部分だけ説明します。
オフライン機能の使い方
モード切り替え
HiÐΞを普通に使っていただく場合、デフォルトでHiÐΞの運営会社である和らしべのサーバーに記事が保存される仕様になっていますが、HiÐΞ にはオフライン版が搭載されており、こちらのコードはオープンソースになっています。左メニューの最下部から切り替え可能です。
オフライン版はオンライン版と同等の機能が全てローカルストレージで完結して使えるようになっていて、PWA(Progressive Web Application)という技術を使って インターネットに接続せずとも高速動作でご利用可能 です。また、携帯ホーム画面にアイコンを追加してモバイルアプリとして利用も可能です。こちらで編集・保存した記事は 和らしべのリモートサーバーには一切保存されません 。
ユーザー作成
オンライン版との大きな違いは設定ページからユーザーを任意に追加・切り替え可能な点です。記事作成やマガジン作成等もオンライン版と同等に自由に行えます。ただし 動作が高速 です。
オンライン・オフライン相互投稿
オフラインで作成した記事は編集の投稿画面からオンラインに投稿可能です。但し、投稿時にインターネットに接続されていることとオフラインに切り替える前にオンラインでログインしている必要があります。
ちなみにオンライン記事をオフラインに投稿するという逆のフローも同様に可能です。この際もオフラインでユーザーが選択されている必要があります。オフラインユーザーの切り替えはオンラインモード時でも設定ページから可能です。
画像の扱いについて
オフラインモードではインターネット接続がない状況を想定しているので、ギャラリーにアップロードされた画像はbase64文字列として保存され記事に独自フォーマットの短い文字列で埋め込まれます。オフライン記事をオンラインにアップロードする際に自動的にHiÐΞサーバーに画像が保存され記事内の画像リンクが置換されて保存されます。オンラインからオフラインに記事を投稿する際はその逆が実行されます。
また、オフライン記事のエクスポート時はフルbase64文字列に置換され、インポート時には上記した方法で最適化保存されます。
これによって画像データ処理のパフォーマンスを高速化しています。
記事マークダウンのエクスポート・インポート
HiÐΞはマークダウンやリッチテキスト等、複数のタイプのエディタを標準搭載していたり、他のブログプラットフォームとのデータの相互移動が可能になっていますが、様々なフォーマットの記事データはマークダウンに帰結して保存されていてそれを編集のフルプレビューのDLボタンでエクスポートすることができます。また、投稿時に 第三者の記事マークダウンファイルのダウンロード を許可するを選択すると記事公開ページから誰でもダウンロード可能になります。
また、エクスポートしたMDファイルは編集ページの詳細設定からインポート可能です。
全データのエクスポート・インポート
また、記事単体でのエクスポートのみならず、ユーザーやマガジン等も含めたオフラインの全データを設定ページから一括エクスポート可能です。
一括エクスポートしたJSONファイルは別のコンピュータやオフラインノードに一括インポート可能です。
IPFSバックアップ
さらにデータの一括エクスポートとインポートは、メタマスク等のクリプトウォレットを利用して秘密鍵を使った署名で暗号化してIPFSに保存が可能です。保存されるデータは上記した一括エクスポートと同様です。
バックアップしたデータはIPFSを介して別のコンピュータやオフラインノードに一括インポート可能です。自分のコンピュータにローカルにバックアップ保存せずともクラウドでデータの移動ができる訳です。
オフライン機能ご利用の注意点
IPFSやPWAを使った完全オフライン機能は非常に先進的な仕組みで不安定な部分があるので、アルファ版として自己責任で実験的にお使い下さい。バグ等が発見されましたら、早急に修正致します。
また、オフラインモードはデータ保存の仕組み上、 複数タブでご利用になると最後に更新したタブで全データの上書きが起こります。かならずひとつのタブでお使いください。モバイルアプリとしてご利用の場合、この問題は発生しにくいかと思います。
今後の展開
オフラインファーストとIPFSを組み合わせてマークダウンを記事のSSOT(Single Source of Truth)としてデータの管理をすると、ユーザーは 和らしべの中央サーバーを一切介さずとも横断的かつシームレス、高速に記事データを管理することができます。これはユーザーがいくら増えてもそれに比例した負担が和らしべにかからないことを意味します。更に、オフラインのコードはオープンソースで誰でも開発参加可能です。仮にサービス運営がいなくても無限スケールできる準備が整いました。
これまで、HiÐΞでは積極的なユーザー獲得戦略を実施して来ていませんでしたが、今回のアップデートからエコシステムを拡大する機能を追加していきます。
また、先日 Devプロトコルを利用したHiÐΞへのステーキングを開始 しました。記事執筆時点で、プロジェクトにステーキングされた方は45%超のAPY(年利)が報酬として貰え、さらにHiÐΞブロガーには総ステーキング額からAPY50%近くの報酬を分配できる予定です。
現在、900万円ほどのステーキングが貯まっていますがこちらも効果的に拡大する施策を打っていきます。報酬設計については次回の記事で実装とともに説明します。
記事データを個人が分散的に管理しながら広告を排除した持続可能な報酬システムの実現という、これまでにない画期的なブログプラットフォームでシステム的にスケールも容易だと想定しているので、100万人、1000万人規模の潜在ユーザーを希望的観測しています。また、暗号通貨のマスアダプションの一助にもなるかもしれません。報酬設計以外にもイーサリアムのL2を使った決済の統合で既存の大手ブログサービス各種手数料のディスラプトを目指します。が、どうなるでしょうか。
そういえば、HiÐΞ に改名の報告が遅れました。
『#HiÐΞ』 名称プチ変更
— tomoya.eth (@ocrybit) March 6, 2021
HiÐe.のeをイーサリアムのシンボル『Ξ』に変更しドットをなくしました✨
今後 #HiÐΞ でお願いします
それからオンライン版とオフライン版統合
背景が映画マトリックみたいなディストピアに(笑)
ステーキング1000万円目前です🚀#和らしべhttps://t.co/50wJH82l69 pic.twitter.com/rw6jzggCOy