プラウダ

コメントシステムがつきました

このブログにもコメントシステムが付いた

今までコメントつけてなかったんですがコメントできるようにしました。 シンプルにデータベースに保存する形にしても良かったんですが、ブロックチェーンに保存しちゃった。 なのでコメントは半永久的にネットの海を漂います。ご注意ください。 今は Ethereum ウォレットの他に Google ログインでも書き込み可能。そのうち増やすかも。 ガス代は自分もちなんで安心してください。ENS 持ってると表示されたりするよ。

コメントシステムの仕組み

ソースコードはこちら ブログの実装例はこちらで

コメントの保存はスマートコントラクトというブロックチェーン上で動くプログラムを使って保存されます。 実装は Solidity。 シンプルにウォレットのアドレスとコメント、ユーザネームなどを渡してコントラクトを呼び出すとブロックチェーン上にそれらが書き込まれる仕組み。 なのでウォレットユーザは直接コントラクト呼んでコメント書き込むこともできます。ガス代はそちら持ちになってしまいますが1

コメントの書き込みはリレイヤーというサーバのプログラム(golos リポジトリの relayer にあるやつ)が担います。 こちらの実装は TypeScript + Hono で Cloudflare Workers にデプロイ。 署名はフロントでやってコメントのトランザクションはリレイヤーが肩代わりという動作。 リレイヤーを噛ますことでウォレットを持ってないユーザは Google ログインを行うことで書き込めるようになってます。

所感

スマートコントラクトの勉強に作ったけどなかなか理解が進んだように思える。 透明性が必要な用途にはめちゃくちゃもってこいだなと思った。 検閲・改ざんが(事実上)できないというのはブログコメントには大げさかもしれない。 でも DB とか用意せずちょっとお金払えばこれらが得られるのはなかなかいい体験だと思う。 みんなもやってみよう、スマートコントラクト!

Footnotes

  1. ガス代こっち持ちの実装にもできるが、わざわざする必要もないので不採用。