Desbloqueo de Discourse

Hola a todos,

Hemos desarrollado un plugin del protocolo Unlock para Discourse. Te permite bloquear temas detrás de un muro de pago “cripto”.

Los usuarios deben comprar tu NFT con su billetera cripto (MetaMask, Wallet Connect) para acceder a los temas. Puedes configurarlo con cualquier ERC20 en Ethereum, xDai, Polygon… Desde la semana pasada, también puedes desbloquear el acceso mediante pago con tarjeta de crédito.

ezgif-3-eda9d8c4547d

Puedes probarlo en el foro de la comunidad del protocolo Unlock: https://unlock.community. Por ejemplo, este tema está bloqueado: https://unlock.community/t/introducing-the-dao/68 (en xDai).

Podrías utilizar la misma restricción para también dar acceso a tus usuarios a canales privados de Discord con https://swordybot.com/.

Repositorio del plugin: GitHub - discourse/discourse-unlock · GitHub
Documentación: https://unlock.community/t/unlock-discourse-plugin/64

No dudes en contactarnos si tienes alguna pregunta.

32 Me gusta

Interesante, me pregunto si existe algún vehículo financiero que se pueda diseñar en Ethereum (u otros motores de criptomonedas) para transacciones repetitivas. Sería bastante interesante ofrecer un servicio de suscripción donde el usuario elija pagar X cada mes.

9 Me gusta

¿Podemos configurar el desbloqueo para los comentarios? ¿Solo el primer comentario o el segundo, pero no el título del tema ni el contenido principal?
¿Y podemos agregar el pago en dólares mediante Visa o PayPal, en lugar de criptomonedas?

1 me gusta

Hola @sam,

Es posible con el protocolo Unlock: Recurring Memberships

Pero por ahora no está implementado en el plugin. Lo añadiremos en la próxima versión.

7 Me gusta

No estoy seguro de entender esa parte.

Sí, también es posible pagar con tarjeta de crédito: Credit Card Support

2 Me gusta

Significa desbloquear el comentario, pero el tema sigue mostrándose.

2 Me gusta

¡Hola Sam! Soy Julien, el fundador de Unlock Protocol.

Efectivamente, es posible, como mencionó @kam44.

El mecanismo central consiste en utilizar el mecanismo de “aprobación” que proporcionan los contratos ERC20. La idea principal es aprobar un contrato de terceros, llamado “comprador”, cuya única función es adquirir membresías en nombre de los usuarios cuando estas están expiradas (o a punto de expirar). Básicamente, una membresía solo puede “renovarse” cuando está casi expirada o completamente expirada.

Uno de los desafíos que estamos intentando resolver es determinar quién activará la transacción en ese contrato de comprador. Por ahora, el enfoque es que la compra “reintegre” a la persona que activa la transacción, de modo que esto cubra las tarifas de gas. Creo que podemos aprovechar a los “flashbots”, que han estado realizando arbitrajes, para hacer esto.

¡Definitivamente es una de las cosas en las que estamos trabajando!

3 Me gusta

¡Increíble! Encuentro fascinantes algunos de los vehículos financieros que ofrecen los contratos inteligentes. Creo que esto podría ser extremadamente poderoso como una forma de financiar a la comunidad adecuada.

En particular, ya tenemos Discourse Subscriptions Plugin, por lo que quizás una solicitud de extracción (PR) para permitir un modo “Desbloquear” en lugar de “Stripe” podría ser un camino interesante a seguir.

8 Me gusta

@kam44
¿Hay alguna novedad sobre “desbloquear comentarios”?

3 Me gusta

¿Alguna actualización?
Este plugin parece interesante.

¡Buen trabajo, amigo!

1 me gusta

Creé 2 contratos de bloqueo en el panel de control de Unlock
A. Bloqueo para los usuarios que tienen tokens (1000 < cantidad < 5000)
B. Bloqueo para los usuarios que tienen más de 5000 tokens

Para A, me gustaría añadirlos al grupo A en Discourse
Para B, me gustaría añadirlos al grupo B en Discourse

Actualmente, el plugin Unlock solo admite un contrato de bloqueo en Discourse. ¿Hay algún truco para lograr el objetivo?

2 Me gusta

¿Alguna vez encontraste una solución para usar más de un contrato?

Estoy intentando descargar el plugin Unlock Protocol. Me aparecen las siguientes páginas/errores. Por favor, indíquenme cómo puedo resolver esto:


1 me gusta

Hola y bienvenido @thesidsridhar :slightly_smiling_face:

Dado que es un plugin no oficial, he movido tu publicación al tema del plugin Unlock, ya que creo que sería un mejor lugar para obtener ayuda de personas que saben más sobre él. :+1:

1 me gusta

De hecho, el plugin ahora es administrado por el equipo de Discourse, como puedes ver aquí: https://github.com/discourse/discourse-unlock

cc @zogstrip

5 Me gusta

Oh, mis disculpas. :folded_hands: Me perdí ese cambio. Gracias por señalarlo. :+1:

4 Me gusta

No te preocupes, no lo mencionamos en ningún sitio.

2 Me gusta

Hola @zogstrip, quería volver a consultar sobre lo anterior. ¿Cómo resuelvo el error HasCustomFields:NotPreloadedError?

3 Me gusta

Me temo que el soporte para este plugin es un poco escaso debido a la temporada navideña, pero (por si acaso) lo acabo de instalar en mi sitio de prueba y también me está bloqueando con un ‘Oops - Error 500’ con el mismo error registrado:

Message

HasCustomFields::NotPreloadedError (Se intentó acceder al campo personalizado no precargado 'unlock-lock' en la clase 'Category'. Esto está prohibido para evitar consultas 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'

Creo que hay un conflicto con el plugin Chat de alguna manera. Si deshabilito Chat a través de la consola de Rails, puedo acceder a mi sitio con normalidad (incluida la página /admin/plugins/discourse-unlock).

6 Me gusta

¡Genial! ¿Cómo deshabilitaría el chat a través de la consola de Rails?

2 Me gusta