Plugin de connexion avec Ethereum

|||
-|-|-|
:information_source: | Résumé | Activer la connexion avec Ethereum sur Discourse
:hammer_and_wrench::sob: - | Répertoire d’origine | GitHub - spruceid/discourse-siwe-auth: Discourse plugin for SIWE authentication
:hammer_and_wrench: :white_check_mark: | Répertoire fonctionnel | GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication
:open_book: | Guide d’installation | Comment installer des plugins dans Discourse

Fonctionnalités

Ce plugin active la connexion avec Ethereum sur Discourse.

Configuration

Exigences

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

Note

Le plugin Sign-In with Ethereum exige toujours que les utilisateurs saisissent un e-mail pour l’associer à leurs comptes après la première authentification. Si l’utilisateur possède une adresse ENS, elle 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 (présent dans /var/discourse/)

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, 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, supprimez le plugin ou décochez discourse siwe enabled dans (Admin Settings → 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 de recevoir un nouvel ID de projet Infura. Accédez ensuite aux paramètres (identiques à ceux ci-dessus) et collez l’ID à cet endroit, puis cliquez sur la coche. Add infura id to plugin settings

JSON RPC

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

Ce faisant, cela remplacera l’option de configuration de l’ID Infura pour WalletConnect spécifiquement ; les autres utilisations d’un ID Infura ne seront pas affectées.

Add JSON RPC endpoints

Modifier la déclaration du message

Par défaut, une déclaration est ajoutée aux messages : “Sign-in to Discourse via Ethereum”. Pour modifier cette déclaration, accédez aux paramètres (identiques à ceux ci-dessus) et mettez-la à jour. Add infura id to plugin settings

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