Olá Andy ![]()
Há um pouco de histórico sobre este assunto no meta (veja, por exemplo).
Primeiro, existe um plugin discourse-ethereum existente (provavelmente desatualizado, mas existe)
Ele essencialmente cobre 1 e 2 da sua lista (bem, uma interpretação ligeiramente diferente de ‘2’). Ele armazena endereços ethereum ao lado de contas de usuário, usa web3.js para interagir com o metamask no cliente e etherscan para obter detalhes de transação.
Em segundo lugar, eu já construí um plugin de login cripto para Discourse (também envolvendo metamask) para um cliente antes. Esse cliente mudou para outras coisas. Abrir código-fonte dessa solução não é uma opção, infelizmente (e é um tanto específico do provedor de qualquer maneira). A propósito (já que tecnicamente não está na sua lista), o principal obstáculo a ser superado com o login via metamask é a capacidade de ter uma conta de usuário sem um e-mail associado.
Seu próximo passo depende do que você está tentando alcançar aqui. Se você apenas quer permitir que os usuários se conectem a uma carteira cripto, o plugin discourse-ethereum faz isso. Você provavelmente só precisaria atualizar parte do código para ser compatível com o Discourse mais recente. Esse é um trabalho relativamente fácil que qualquer pessoa familiarizada com o Discourse pode fazer para você.
No entanto, se você está pensando em criar um plugin mais geral para conectar cripto com Discourse, você primeiro gostaria de especificar o projeto em alguns detalhes com vista para as diferentes aplicações que o plugin poderia ser usado, incluindo login e acesso a grupos/categorias, e potencialmente sem uma extensão de navegador como o metamask.
Esse tipo de investigação mudaria o design do plugin, movendo mais da lógica ethereum para o backend, permitindo mais flexibilidade no futuro quando você quiser adicionar mais recursos.