Hola Andy ![]()
Hay un poco de historia sobre este tema en meta (ver, por ejemplo).
En primer lugar, existe un plugin discourse-ethereum existente (probablemente desactualizado, pero existe)
Esencialmente cubre 1 y 2 de tu lista (bueno, una interpretación ligeramente diferente de ‘2’). Almacena direcciones de ethereum junto con cuentas de usuario, utiliza web3.js para interactuar con metamask en el cliente y etherscan para obtener detalles de transacciones.
En segundo lugar, anteriormente construí un plugin de inicio de sesión de criptomonedas de Discourse (que también involucra metamask) para un cliente. Ese cliente desde entonces ha cambiado a otras cosas. Lamentablemente, no es una opción hacer de código abierto esa solución (y de todos modos es algo específica del proveedor). Por cierto (ya que técnicamente no está en tu lista) el principal obstáculo a superar con el inicio de sesión a través de metamask es la capacidad de tener una cuenta de usuario sin un correo electrónico adjunto.
Tu próximo paso depende de lo que estés tratando de lograr aquí. Si solo quieres permitir que los usuarios se conecten a una billetera de criptomonedas, el plugin discourse-ethereum lo hace. Probablemente solo necesitarías actualizar parte del código para que sea compatible con el último Discourse. Ese es un trabajo relativamente fácil que cualquiera familiarizado con Discourse puede hacer por ti.
Sin embargo, si estás pensando en crear un plugin más general para conectar criptomonedas con Discourse, primero querrías especificar el proyecto con cierto detalle con vistas a las diferentes aplicaciones para las que se podría utilizar el plugin, incluido el inicio de sesión y el acceso a grupos/categorías, y potencialmente sin una extensión de navegador como metamask.
Ese tipo de investigación cambiaría el diseño del plugin, trasladando más lógica de ethereum al backend, lo que permitiría una mayor flexibilidad en el futuro cuando quieras agregar más funciones.