Sblocco Discourse

Ciao a tutti,

Abbiamo sviluppato un plugin per Discourse basato sul protocollo Unlock. Consente di bloccare i topic dietro un “paywall” in criptovaluta.

Gli utenti devono acquistare il tuo NFT tramite il loro portafoglio crittografico (MetaMask, Wallet Connect) per accedere ai topic. Puoi configurarlo con qualsiasi token ERC20 su Ethereum, xDai, Polygon… Da la settimana scorsa, è possibile sbloccare anche tramite pagamento con carta di credito.

ezgif-3-eda9d8c4547d

Puoi provarlo sul forum della community di Unlock Protocol: https://unlock.community; ad esempio, questo topic è bloccato: https://unlock.community/t/introducing-the-dao/68 (su xDai).

Puoi utilizzare lo stesso blocco anche per concedere ai tuoi utenti l’accesso ai canali privati di Discord tramite https://swordybot.com/.

Repository del plugin: GitHub - discourse/discourse-unlock · GitHub
Documentazione: https://unlock.community/t/unlock-discourse-plugin/64

Non esitate a contattarci se avete domande.

32 Mi Piace

Interesting, I wonder if there is a financial vehicle that could be engineered in the Ethereum (or other crypto engines) for repeat transactions. Would be kind of cool to offer a subscription service where you opt to pay X every month.

9 Mi Piace

Can we setup unlock for comment? Only comment first or comment second not topic title and content main?
And, can we add charge by dollar via Visa or paypal not Crypto?

1 Mi Piace

Hello @sam,

It is possible with unlock protcol : Recurring Memberships | Unlock: The Web's new business model

But for the moment it’s not implanted in the plugin. Will add it in the next version.

7 Mi Piace

Not sure to understand that part.

Yes, it’s also possible to pay with credit card : Credit Card Support

2 Mi Piace

Mean Unlock comment but topic unstill display

2 Mi Piace

Hi Sam! I am Julien, the founder of Unlock Protocol!

Indeed, it is possible like @kam44 said.

The core mechanism is to use the “approval” mechanism that the ERC20 contracts provide.
The core idea is to approve a 3rd party contract, called the “purchaser” whose single job is to purchase memberships on behalf of users when they are either expired (or soon to be expired). So basically a membership can only be “renewed” when it is either nearly expired, or fully expired.

One of the challenges that we’re trying to solve is to find who will trigger the transaction on that purchaser contract. Rigth now, the approach is to make the purchase “pay back” the person triggering the transaction so that this covers the gas fees. I think we can leverage the “flashbots” who have been doing arbitrage to do that!

It is definitely one of the things we’re trying to work on!

3 Mi Piace

Amazing, I find some of the financial vehicles smart contracts have on offer to be fascinating. I think this could be extremely powerful as a way of funding the right community.

In particular we already have Discourse Subscriptions so perhaps a PR to allow for a “Unlock” mode vs “Stripe” may be an interesting path to take.

8 Mi Piace

@kam44
any news about “unlock comments” ?

3 Mi Piace

Any Update
This plugin seems interesting

Great Job Man !

1 Mi Piace

Ho creato 2 contratti di blocco sulla dashboard di Unlock
A. blocco per gli utenti che hanno token (1000 < importo < 5000)
B. blocco per gli utenti che hanno più di 5000 token

Per A, vorrei aggiungerli al gruppo A su discourse
Per B, vorrei aggiungerli al gruppo B su discourse

Attualmente il plugin Unlock supporta solo un contratto di blocco su discourse. C’è qualche trucco per raggiungere l’obiettivo?

2 Mi Piace

Hai mai trovato una soluzione per utilizzare più di un contratto?

Sto cercando di scaricare il plugin Unlock Protocol. Ricevo le seguenti pagine/errori. Per favore, fammi sapere come posso risolvere questo problema:


1 Mi Piace

Ciao e benvenuto @thesidsridhar :slightly_smiling_face:

Dato che si tratta di un plugin non ufficiale, ho spostato il tuo post nell’argomento del plugin Unlock, poiché penso che sarebbe un posto migliore per ottenere supporto da persone che ne sanno di più. :+1:

1 Mi Piace

Infatti, il plugin è ora gestito dal team di Discourse, come puoi vedere qui: https://github.com/discourse/discourse-unlock

cc @zogstrip

5 Mi Piace

Oh, mi scuso. :pray: Mi era sfuggito quel cambio. Grazie per avermelo fatto notare. :+1:

4 Mi Piace

Ho no, no worries, we didn’t mention it anywhere.

2 Mi Piace

Ciao @zogstrip Volevo ricontrollare quanto sopra. Come risolvo HasCustomFields:NotPreloadedError?

3 Mi Piace

Temo che il supporto per questo plugin sia un po’ scarso a causa delle festività, ma (comunque) l’ho appena installato sul mio sito di test e anch’io vengo bloccato con un ‘Oops - Error 500’ con lo stesso errore registrato:

Message

HasCustomFields::NotPreloadedError (Tentativo di accedere al campo personalizzato non precaricato 'unlock-lock' sulla classe 'Category'. Questo è vietato per prevenire query 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'

Backtrace

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'

Penso che ci sia un conflitto con il plugin Chat in qualche modo. Se disabilito Chat tramite la console rails posso accedere al mio sito normalmente (inclusa la pagina /admin/plugins/discourse-unlock).

6 Mi Piace

Fantastico! Come disattiverei la chat tramite la console di Rails?

2 Mi Piace