Plugin Se connecter avec Ethereum

Fonctionnalités

Ce plugin active la connexion avec Ethereum sur Discourse

Configuration

Prérequis

  • Un forum Discourse auto-hébergé ou hébergé chez un fournisseur qui autorise les plugins tiers, comme Communiteq.

Note

La première fois qu’ils s’authentifient, le plugin Sign-In with Ethereum exige toujours que les utilisateurs saisissent une adresse e-mail pour l’associer à leurs comptes. Si l’utilisateur possède une adresse ENS, ce sera le nom d’utilisateur sélectionné par défaut. Une fois qu’une adresse e-mail est associée, les utilisateurs peuvent se connecter en utilisant l’option SIWE à tout moment.

Activation du Plugin

Pour installer et activer le plugin sur votre Discourse auto-hébergé, utilisez la méthode suivante : Accédez au fichier app.yml de votre conteneur (situé dans /var/discourse/containers/)

cd /var/discourse
nano containers/app.yml

Ajoutez l’URL du dépôt du plugin au fichier app.yml de votre conteneur :

hooks:
  before_code:                             # <-- ajouté
    - exec:                                # <-- ajouté
        cmd:                               # <-- ajouté
          - gem install rubyzip            # <-- ajouté
  after_code:
    - exec:
      cd: $home/plugins
      cmd:
        - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
        - sudo -E -u discourse git clone https://github.com/spruceid/discourse-siwe-auth.git   # <-- ajouté

Suivez le format existant de la ligne docker_manager.git ; si elle ne contient pas sudo -E -u discourse alors insérez - git clone https://github.com/spruceid/discourse-siwe-auth.git.

Reconstruisez le conteneur :

cd /var/discourse
./launcher rebuild app

Pour le désactiver, soit supprimez le plugin, soit décochez discourse siwe enabled dans (Admin Paramètres → Plugins → discourse-siwe → discourse siwe enabled ).

Discourse Plugins Enable plugin at settings

Activer WalletConnect

Le support de WalletConnect peut être fourni via Infura. Créez un nouveau projet Infura afin d’obtenir un nouvel ID de projet Infura. Ensuite, accédez aux paramètres (identiques à avant) et collez l’ID à cet emplacement et cliquez sur la coche. Ajouter l'ID infura aux paramètres du plugin

JSON RPC

Alternativement, vous pouvez configurer l’instance WalletConnect avec des points de terminaison JSON RPC, comme montré ci-dessous :

Le fait de le faire remplacera l’option de configuration de l’ID Infura spécifiquement pour WalletConnect, les autres utilisations d’un ID Infura ne seront pas affectées.

Ajouter les points de terminaison JSON RPC

Modifier l’énoncé du message

Par défaut, un énoncé est ajouté aux messages : “Sign-in to Discourse via Ethereum” (Connectez-vous à Discourse via Ethereum). Pour modifier cet énoncé, accédez aux paramètres (identiques à avant) et mettez-le à jour. ![Ajouter l’ID infura aux paramètres du plugin](upload://kRKeBcYXBzq8JJNb8OzKbOUxJEh.png "Champ lié à l’énoncé du message")

14 « J'aime »

quelques discussions sur les dépendances ici Discourse can't find gems specified in the plugin

Trouvé ceci sur GitHub, il semble être activement développé aussi. Il semble permettre les connexions web3 (nécessite toujours des adresses e-mail après la connexion avec votre portefeuille).

Cependant, le développeur rencontre un problème qui empêche l’installation du plugin et le démarrage de Discourse par la suite. Tous les détails dans le problème ci-dessous. C’est peut-être un problème très simple et quelqu’un ici peut soumettre une PR pour le développeur.

1 « J'aime »

Tiens ma bière :wink:
Solution dans le problème Github.

3 « J'aime »

C’est génial, j’essaie tout de suite. J’espère que cela aidera aussi le développeur :grinning_face:

EDIT : Je me retrouve avec la même erreur, même si on dirait que le gem est en cours d’installation :

version 2.3.0.
Successfully installed rubyzip-2.3.2
1 gem installed
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' a échoué avec le retour #<Process::Status: pid 777 exit 1>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap a échoué avec le code de sortie 1
** ÉCHEC DU BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Pouvez-vous s’il vous plaît faire cela ?

2 « J'aime »

En parcourant les journaux, je publie ce qui me semble pertinent.

@modérateurs, peut-être une scission de sujet pour cela ? Il n’y a pas de sujet officiel pour ce plugin, je ne pense pas que le développeur soit sur meta.

I, [2022-07-04T16:43:46.394301 #1]  INFO -- : cd /var/www/discourse & bundle exec rake db:migrate
rake aborted!
Gem::ConflictError: Unable to activate eth-0.5.1, because openssl-3.0.0 conflicts with openssl (~> 2.2)

Je ne vois pas d’autres erreurs pour le moment (ou je les manque, les journaux sont longs).

1 « J'aime »

Pour être honnête, je ne saisis pas bien ce qui se passe ici. :slightly_smiling_face: @RGJ et @michaeld ont le pouvoir de scinder, alors peut-être feront-ils les honneurs et géreront-ils cela de manière plus sensible que moi. :slightly_smiling_face::crossed_fingers: (ou, alternativement, choisissez le message à scinder, nommez la catégorie dans laquelle vous voulez qu’il aille et faites-moi savoir un titre à lui donner :+1:)

1 « J'aime »

Ma suggestion est séparée d’ici :

https://meta.discourse.org/t/web-3-0-features/203321/19?u=marcp

La catégorie la plus appropriée serait Support ou #plugins (je ne suis pas sûr… comment gérons-nous les plugins qui ne sont pas développés par un membre de Meta… peut-être qu’il rejoindra Meta ou nous pourrons l’inviter via GitHub à Meta un jour ?)

EDIT :

Il semble que ce soit le développeur, donc il est sur Meta ? @w4ll3

@michaeld a fait une PR pour cela hier, mais elle n’est pas encore fusionnée. Vous pouvez utiliser GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication en attendant.

3 « J'aime »

Je peux confirmer que cela fonctionne ! Merci Michael.

1 « J'aime »

Pour résumer, vous avez besoin à la fois du before_code tel que décrit dans le problème Cannot Install Plugin on Self-Hosted Discourse server - rbsecp256k1 · Issue #15 · spruceid/discourse-siwe-auth · GitHub ET de la version plus récente de la gem eth pour laquelle j’ai créé la PR (actuellement non fusionnée).

5 « J'aime »

Un peu en retard sur le forum officiel, mais salut - Rocco de l’équipe Spruce.

Merci encore @michaeld pour les corrections, cela a résolu le problème et nous avons mis à jour la documentation de notre côté. Merci également d’avoir soulevé tout cela - nous développons / maintenons toujours activement des choses autour de Sign-In with Ethereum.

Je me demandais aussi - y a-t-il une voie pour en faire éventuellement un plugin officiellement pris en charge :grinning: - nous aimons Discourse et voulons trouver comment étendre cette fonctionnalité aux instances qui ne sont pas auto-hébergées.

2 « J'aime »

Pour plus de clarté, Communiteq prend en charge ce plugin sur nos plans d’hébergement gérés, il est disponible à partir du plan Professionnel.

3 « J'aime »

Mes excuses pour cela !

Pas besoin de vous excuser ! L’hébergement officiel ne l’a pas (encore ?). Je voulais juste souligner notre engagement envers ces plugins web3.

3 « J'aime »

Malheureusement, ce n’est pas un plugin officiellement pris en charge.

Mais félicitations pour le soutien de Communiteq ! Tout ce qui peut aider à soutenir les utilisateurs de Web3 est vraiment génial.

De notre côté, nous travaillons sur diverses façons de soutenir l’adoption de Sign-In with Ethereum et Discourse a toujours été en tête de notre liste, c’est pourquoi après l’avoir standardisé EIP-4361, nous avons créé le plugin. L’autre chose qui nous a préoccupés est de savoir quoi y ajouter d’autre - le fournisseur RPC personnalisé étant l’une des premières choses.

3 « J'aime »

Ce plugin ne fonctionne pas pour moi, il y a un problème avec le plugin, je ne parviens pas à l’installer. Quelqu’un peut-il partager une alternative ou m’aider avec celui-ci @michaeld @RGJ

Vous devrez partager des détails si vous souhaitez de l’aide.

1 « J'aime »

@RGJ lorsque j’essaie d’installer ce plugin, la reconstruction échoue avec cette erreur

Vous spécifiez le gem rbsecp256k1 dans /var/www/discourse/plugins/discourse-siwe-auth/plugin.rb, cependant il n'existe pas !
Recherché : /var/www/discourse/plugins/discourse-siwe-auth/gems/2.7.6/specifications/rbsecp256k1-5.1.0.gemspec