| A | B | C |
|---|---|---|
| 概要 | Discourse 上で Gitcoin Passport を有効化してシビル攻撃から保護する | |
| リポジトリリンク | https://github.com/dappy-studio/gitcoin-passport-discourse-plugin | |
| インストールガイド | Discourse でのプラグインのインストール方法 |
概要
Gitcoin Passport は、DAO やオンラインコミュニティがボットやシビル攻撃者から自身を守るためのシビル耐性ツールです。本ガイドでは、Discourse 上のコミュニティフォーラムを悪意のある行為者から保護しつつ、その過程で匿名性を維持する方法として、Gitcoin Passport プラグインのセットアップと有効化の手順を説明します。
Gitcoin Passport の仕組み
Gitcoin Passport を使えば、誰でも独自のパスポートを作成し、さまざまな基準を検証することでそのパスポートに「スタンプ」を追加できます。検証プロセスは完全に匿名です。つまり、一度スタンプが検証されれば、個人を特定することなく、そのスタンプを対応するすべてのプラットフォーム(Discourse など)で利用できます。例えば、ある人は GitHub 上で少なくとも 120 日間にわたってコードベースに貢献したことを証明できますが、その人物が誰であるかは明らかにされません!
現在利用可能なスタンプの例を以下に挙げます。
- Twitter のフォロワー数が 1000 人以上
- .eth(ENS)ドメイン名の所有
- Discord アカウントの所有
- Snapshot 上での DAO ガバナンスへの参加
- Ethereum ネットワークで一定額のガス代を支払ったこと
他にも多くのスタンプが現在利用可能であり、Gitcoin Passport に定期的に加えられています。これらを確認し、パスポートを作成してスタンプを追加するには、Gitcoin Passport ウェブサイトをご覧ください。
要件
- プラグインを追加できるホストされた Discourse フォーラム
- Ethereum Discourse へのサインイン用 プラグイン
プラグインのインストール
セルフホスト型の Discourse 上でプラグインをインストールして有効化するには、以下の手順に従ってください。コンテナの app.yml ファイル(/var/discourse/containers/ 内に存在)にアクセスします。
cd /var/discourse
nano containers/app.yml
コンテナの app.yml ファイルにプラグインのリポジトリ URL を追加します。
hooks:
before_code:
- exec:
cmd:
- gem install rubyzip
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
- sudo -E -u discourse git clone https://github.com/spruceid/discourse-siwe-auth.git
- sudo -E -u discourse git clone https://github.com/dappy-studio/gitcoin-passport-discourse-plugin.git # <-- 追加
docker_manager.git の行の既存の形式に従ってください。もし「sudo -E -u discourse」が含まれていない場合は、- git clone https://github.com/dappy-studio/gitcoin-passport-discourse-plugin.git を挿入してください。
コンテナを再構築します。
cd /var/discourse
./launcher rebuild app
プラグインの有効化
プラグインを有効化するには、Discourse フォーラムで管理者権限を持っている必要があります。有効化の手順は以下の通りです。
- 管理者設定ページへ移動
- 「プラグイン」タブへ移動
- 「discourse-gitcoin-passport」プラグインの「設定」ボタンをクリック
注意:このプラグインが表示されない場合、インストールが失敗しています。「プラグインのインストール」セクションに戻ってください。 - 「Enable Gitcoin Passport?」チェックボックスをオンにして Gitcoin Passport を有効化
Gitcoin Passport の API キーとスコアラー ID のセットアップ
プラグインをセットアップするには、Discourse フォーラムで管理者権限を持っている必要があります。セットアップ手順は以下の通りです。
- Gitcoin Passport スコアラーアプリ にアクセスし、ウォレットでサインイン
- 「API keys」タブへ移動 => 「+ API key」をクリック => キーに名前を付ける => 「Create」をクリック
- API キーをコピーし、Discourse 上の「discourse-gitcoin-passport」プラグイン設定にある「gitcoin passport api key」というフィールドに貼り付け
- Gitcoin Passport スコアラーアプリに戻る
- 「Scorer」タブへ移動 => 「+ Scorer」をクリック => 使用ケースを選択 => 名前と説明を記入 => 「Continue」をクリック => 使用するスコアリングメカニズムを選択 => 「Create Scorer」をクリック
- 新しいスコアラーが作成されたら、スコアラー ID をコピーし、Discourse 上の「discourse-gitcoin-passport」プラグイン設定にある「gitcoin passport scorer id」というフィールドに貼り付け
ここまで手順通りに進められたなら、おめでとうございます!機能的な Gitcoin Passport プラグインの基本的な要件が正常にセットアップされました。さて、ここからが本番です!
カスタマイズ
Gitcoin Passport Discourse プラグインは非常にカスタマイズ性が高く、フォーラム上で行われるユーザーのさまざまなアクションへのアクセス制御を可能にします。
アカウント作成に必要なフォーラムレベルの Gitcoin Passport スコア
シビル攻撃者を最初から遮断するために、アカウント作成に必要な最低スコアを設定できます。このスコアを設定すると、ユーザーはウォレットでサインインし、Gitcoin Passport から十分なスタンプを取得してアカウント作成に必要なスコアに達する必要があります。ご安心ください!ユーザーが現在のスコア、必要なスコア、そしてスタンプを収集するための URL を、新しいアカウントを作成する場所で正確に把握できるように設計されています。
待ってください、つまり既存のユーザーもスタンプを収集するまでアクセスを失うのでしょうか???
いえ、それはあなたが決めることができます!
既存のユーザーがウォレットを接続する必要がある最終日
この設定を使用すると、既存のユーザーがウォレットを接続し、必要な最低スコアを取得する必要がある最終日を設定できます。この日を過ぎると、必要な最低スコアを満たしていないユーザー(既存・新規問わず)は、投稿や新規トピックの作成が許可されなくなります。
投稿に必要なフォーラムレベルの Gitcoin Passport スコア(および Discourse 上で投稿を制限する他の方法)
投稿に必要な最低スコアを設定すると、フォーラム内のすべてのユーザーがすべてのトピックに返信(つまり投稿を作成)するためにこのスコアを持っている必要があります。ただし…
カテゴリレベルまたはユーザーレベルでより具体的なスコアでこれを上書きすることも可能です。えっ?混乱してきました。
わかりました、つまり…
Gitcoin Passport のスコアを使って Discourse トピックへの返信アクセスを制限する場合、3 つのレベルで設定できます。
- ユーザーレベル - 各ユーザーに返信に必要な特定のスコアを設定できます。ユーザーがこのスコアを満たしていない場合、どのトピックにも返信できません。このスコアが設定されている場合、その特定のユーザーに対するカテゴリレベルまたはフォーラムレベルのスコアは無視されます。
- カテゴリレベル - 各カテゴリに、そのカテゴリ内のトピックに返信するために必要な特定のスコアを設定できます。ユーザーが必要なスコアを満たしていない場合、そのカテゴリでのみ返信できなくなります。他のカテゴリでは返信可能です。このスコアが設定されている場合、その特定のカテゴリに対するフォーラムレベルのスコアは無視されます。
- フォーラムレベル - すべてのカテゴリのトピックに返信するすべてのユーザーに必要な最低スコアです。カテゴリレベルまたはユーザーレベルでスコアが設定されていない限り、このスコアが使用されます。
新規トピック作成に必要なフォーラムレベルの Gitcoin Passport スコア(および Discourse 上で投稿を制限する他の方法)
これは「投稿に必要なフォーラムレベルの Gitcoin Passport スコア」設定と全く同じように機能します。異なる点は、これが新規トピックの作成に適用されることです。
重要:このスコアは、投稿に必要なスコアよりも高く設定してください。もし低く設定されている場合、スコアは投稿に必要なスコアにデフォルトされます(技術的に新規トピックも新規投稿であるため)。
さて、このプラグインの最も重要な部分はカバーできました。次に、いくつかの便利な追加機能を見ていきましょう!
このプラグインを使用すると、スコアがしきい値を超えた際に Discourse のバッジを自動的に配布することが可能です。これにより、個人がより高いパスポートスコアを取得するようインセンティブを与え、コミュニティ全体の「人間らしさ」を高めることができます。
なぜでしょうか?
これにより、すべてのコミュニティメンバーが他のユニークな人間と交流していることをより確信できるようになり、時間とともにコミュニティが安全な避難所となっていくのです。
先に進む前に、いくつかの重要かつ簡単なセットアップが必要です。
- 管理者設定の「Badges」タブへ移動
- 新しいバッジを作成
a. 「+ New」をクリック
b. バッジに名前を付け、グラフィックを追加し、バッジタイプを「Bronze」に設定し、説明を記入
c. 重要 - 「Badge Groupings」下の編集アイコンをクリックし、「Unique Humanity」という新しいグループを作成。スペルとタイピングが正確であることを再確認してください。つまり、Unique Humanity です。保存します。
d. バッジを保存
e. 上部のトグルを使って有効化することを忘れないでください - 2 と同じ手順で Silver と Gold のバッジも作成
これで、これらのバッジを取得するために必要なスコアをセットアップする準備が整いました。
ユニーク・ヒューマニティ・ブロンズバッジを取得するために必要な Gitcoin Passport スコア
ブロンズの「Unique Humanity」バッジを取得するために全員に必要な最低スコア
ユニーク・ヒューマニティ・シルバーバッジを取得するために必要な Gitcoin Passport スコア
シルバーの「Unique Humanity」バッジを取得するために全員に必要な最低スコア
ユニーク・ヒューマニティ・ゴールドバッジを取得するために必要な Gitcoin Passport スコア
ゴールドの「Unique Humanity」バッジを取得するために全員に必要な最低スコア
これらのバッジは、ユーザーがウォレットを接続(または再接続)した際にフォーラム上で自動的に付与されます。ユーザーは「Profile」 => 「Summary」に移動し、「Refresh」をクリックすることで、パスポートスコアを更新し、資格のあるバッジを自動的に受け取ることができます。
さて、最後に、高トラフィックを想定したサイト向けの推奨設定を一つ紹介します。
Ethereum ノード URL
すでに独自の Ethereum ノードを稼働させている場合、またはホストされたノード(Infura や Ankr などのプロバイダー経由)を持っている場合は、そのノード URL をここにコピーして貼り付けてください。ここでデフォルトで設定されているノードは無料ティアの公開ノードであるため、独自のノードを使用することを強くお勧めします。
おお、これは大変でした!
ご安心ください。視覚的に学ぶ方にも特に役立つよう、YouTube チュートリアル も録画しています。
まだお手伝いが必要な場合は、以下のいずれかの媒体でサポートをお問い合わせください。
- このリポジトリで issue を作成
- Discord(現時点では最も迅速な回答が得られます)
- メール:support@dappy.lol





