Discourseのロック解除

みなさんこんにちは、

Discourse 用の Unlock プロトコル プラグインを開発しました。これにより、トピックを「暗号通貨」によるペイウォールでロックできるようになります。

ユーザーは暗号ウォレット(MetaMask、WalletConnect など)であなたの NFT を購入することで、トピックにアクセスできます。Ethereum、xDai、Polygon 上の任意の ERC20 トークンで設定可能です。先週からは、クレジットカードでの決済によるアンロックも可能になりました。

ezgif-3-eda9d8c4547d

Unlock プロトコルのコミュニティフォーラムでテストできます:https://unlock.community。例えば、このトピックはロックされています(xDai 上):https://unlock.community/t/introducing-the-dao/68。

同じロックを使用して、https://swordybot.com/ を通じてユーザーに Discord のプライベートチャンネルへのアクセス権を与えることも可能です。

プラグインリポジトリ:GitHub - discourse/discourse-unlock · GitHub
ドキュメント:https://unlock.community/t/unlock-discourse-plugin/64

ご質問がございましたら、お気軽にお尋ねください。

「いいね!」 32

興味深いですね。Ethereum(または他の暗号資産エンジン)上で、繰り返し取引を可能にする金融商品を開発できるかどうか気になります。毎月Xを支払うことを選択するサブスクリプションサービスを提供できれば、なかなか面白いでしょう。

「いいね!」 9

コメントのアンロック設定は可能ですか?トピックのタイトルや本文ではなく、最初のコメントのみ、あるいは2番目のコメントのみをアンロック対象にすることはできますか?
また、仮想通貨ではなく、VisaまたはPayPalによるドル建ての課金を追加することはできますか?

「いいね!」 1

こんにちは @sam さん、

Unlock プロトコルを使用すれば可能です:Recurring Memberships

ただし、現時点ではプラグインには実装されていません。次バージョンで追加する予定です。

「いいね!」 7

その部分の意図がよくわかりません。

はい、クレジットカードでの支払いも可能です:Credit Card Support

「いいね!」 2

コメントのロックは解除されましたが、トピックはまだ表示されています。

「いいね!」 2

こんにちは、サムさん!私は Unlock Protocol の創設者、ジュリアンです。

確かに、@kam44 さんがおっしゃる通り可能です。

その中核となる仕組みは、ERC20 コントラクトが提供する「承認(approval)」機能を利用することです。
基本的な考え方は、サードパーティのコントラクト(「購入者」と呼ばれます)を承認することです。この購入者の唯一の役割は、ユーザーのメンバーシップが期限切れ、または期限切れ間近になった際に、ユーザーに代わってメンバーシップを購入することです。つまり、メンバーシップの「更新」は、ほぼ期限切れになった場合、または完全に期限切れになった場合のみ行われます。

私たちが解決しようとしている課題の一つは、その購入者コントラクト上でトランザクションをトリガーする「誰」を見つけることです。現在のアプローチは、トランザクションをトリガーした人物に対して購入代金を「返済」し、ガス代を賄うようにすることです。私は、裁定取引を行っている「Flashbots」を活用できるのではないかと考えています!

これは間違いなく、私たちが取り組もうとしていることのひとつです!

「いいね!」 3

素晴らしいですね。スマートコントラクトが提供するいくつかの金融手段には本当に魅力を感じます。適切なコミュニティへの資金調達手段として、極めて強力な可能性があると思います。

特に、すでに Discourse Subscriptions Plugin のような仕組みがありますので、「Stripe」ではなく「Unlock」モードを可能にするためのプルリクエストを提出するのは、興味深いアプローチになるかもしれません。

「いいね!」 8

@kam44
「コメントの解除」に関する最新情報がありますか?

「いいね!」 3

アップデートあり
このプラグインは面白そうですね

素晴らしい仕事です!

「いいね!」 1

アンロックダッシュボードで2つのロックコントラクトを作成しました。
A. トークンを保有しているユーザー(1000 < amount < 5000)向けのロック
B. 5000トークン以上を保有しているユーザー向けのロック

Aについては、ディスコースの「グループA」に追加したいと考えています。
Bについては、ディスコースの「グループB」に追加したいと考えています。

現在、Unlockプラグインはディスコースで1つのロックコントラクトしかサポートしていません。目標を達成するためのトリックはありますか?

「いいね!」 2

複数の契約を使用する方法を見つけましたか?

Unlock Protocol プラグインをダウンロードしようとしていますが、以下のページ/エラーが表示されます。解決方法を教えてください。


「いいね!」 1

こんにちは、@thesidsridhar さん、ようこそ:slightly_smiling_face:

こちらは非公式プラグインのため、より詳しい方からサポートを得られる可能性が高い「Unlock plugin」トピックに投稿を移動させていただきました。:+1:

「いいね!」 1

実際、プラグインは現在、Discourseチームによって管理されています。こちらで確認できます: https://github.com/discourse/discourse-unlock

cc @zogstrip

「いいね!」 5

おお、申し訳ありません。:pray: その切り替えを見逃していました。ご指摘ありがとうございます。:+1:

「いいね!」 4

あら、心配いりません。どこにも言及していません。

「いいね!」 2

@zogstrip様

再度ご連絡いたします。上記について、HasCustomFields:NotPreloadedErrorを解決するにはどうすればよいでしょうか?

「いいね!」 3

ホリデーシーズンにより、このプラグインのサポートは手薄になっていますが、(参考までに)テストサイトにインストールしたところ、同じエラーが記録されて「おっと - エラー 500」でアクセスできなくなりました。

メッセージ

HasCustomFields::NotPreloadedError ('Category' クラスのプリロードされていないカスタムフィールド 'unlock-lock' にアクセスしようとしました。N+1 クエリを防ぐためにこれは禁止されています。)
app/models/concerns/has_custom_fields.rb:175:in `[]'
(eval):37:in `_fast_attributes'
(eval):6:in `_fast_attributes'
app/controllers/application_controller.rb:637:in `preload_current_user_data'
app/controllers/application_controller.rb:437:in `preload_json'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:209:in `call'

バックトレース

app/models/concerns/has_custom_fields.rb:175:in `[]'
plugins/discourse-unlock/plugin.rb:63:in `block (2 levels) in activate!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'
(eval):37:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/chat/app/serializers/chat_channel_serializer.rb:51:in `chatable'
(eval):6:in `_fast_attributes'

Chat プラグインとの競合があると思われます。Rails コンソールで Chat を無効にすると、サイト(/admin/plugins/discourse-unlock ページを含む)に通常どおりアクセスできるようになります。

「いいね!」 6

素晴らしい!レールコンソール経由でチャットを無効にするにはどうすればよいですか?

「いいね!」 2