Plugin per l'accesso con Ethereum

|||
-|-|-|
:information_source: | Riepilogo | Abilita Sign-In with Ethereum su Discourse
:hammer_and_wrench::sob: - | Repository Originale | GitHub - spruceid/discourse-siwe-auth: Discourse plugin for SIWE authentication
:hammer_and_wrench: :white_check_mark: | Repository Funzionante | GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication
:open_book: | Guida all’Installazione | Come installare plugin in Discourse

Funzionalità

Questo plugin abilita Sign-In with Ethereum su Discourse

Configurazione

Requisiti

  • Un forum Discourse self-hosted o ospitato con un provider che consente plugin di terze parti, come Communiteq.

Nota

Il plugin Sign-In with Ethereum richiede ancora agli utenti di inserire un’email da associare ai propri account dopo l’autenticazione per la prima volta. Se l’utente possiede un indirizzo ENS, questo verrà selezionato come nome utente predefinito. Una volta associato un indirizzo email, gli utenti potranno accedere utilizzando l’opzione SIWE in qualsiasi momento.

Abilitazione del Plugin

Per installare e abilitare il plugin sul tuo Discourse self-hosted, usa il seguente metodo: Accedi al file app.yml del tuo container (presente in /var/discourse/)

cd /var/discourse
nano containers/app.yml

Aggiungi l’URL del repository del plugin al file app.yml del tuo container:

hooks:
  before_code:                             # <-- aggiunto
    - exec:                                # <-- aggiunto
        cmd:                               # <-- aggiunto
          - gem install rubyzip            # <-- aggiunto
  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   # <-- aggiunto

Segui il formato esistente della riga docker_manager.git; se non contiene sudo -E -u discourse allora inserisci - git clone https://github.com/spruceid/discourse-siwe-auth.git.

Ricostruisci il container:

cd /var/discourse
./launcher rebuild app

Per disabilitarlo, rimuovi il plugin o deseleziona “discourse siwe enabled” in (Admin Settings → Plugins → discourse-siwe → discourse siwe enabled).

Discourse Plugins Enable plugin at settings

Abilita WalletConnect

Il supporto WalletConnect può essere fornito tramite Infura. Crea un nuovo progetto Infura per ricevere un nuovo ID progetto Infura. Quindi vai alle impostazioni (come prima) e incolla l’ID in quella posizione e fai clic sul segno di spunta. Add infura id to plugin settings

JSON RPC

In alternativa, puoi configurare l’istanza WalletConnect con endpoint JSON RPC, come mostrato di seguito:

  • Farlo sovrascriverà l’opzione di configurazione dell’ID Infura specificamente per WalletConnect; altri usi di un ID Infura non saranno interessati.*

Add JSON RPC endpoints

Modifica il messaggio statement

Per impostazione predefinita, viene aggiunto un messaggio: “Sign-in to Discourse via Ethereum”. Per modificare questo messaggio, accedi alle impostazioni (come prima) e aggiornalo. Add infura id to plugin settings

14 Mi Piace

discussione su dipendenze qui Discourse can't find gems specified in the plugin

Trovato questo su GitHub, sembra anche attivamente sviluppato. Sembra che consenta i login web3 (richiede comunque indirizzi email dopo aver effettuato l’accesso con il proprio wallet).

Tuttavia lo sviluppatore sta affrontando un problema che impedisce l’installazione del plugin e il bootstrapping di discourse dopo. Tutti i dettagli nel problema sottostante. Forse è un problema molto semplice e qualcuno qui può inviare una PR per lo sviluppatore.

1 Mi Piace

Tieni la mia birra :wink:
Soluzione nel problema di Github.

3 Mi Piace

Fantastico, ci sto provando subito. Spero che questo aiuti anche lo sviluppatore :grinning_face:

MODIFICA: Finisco con lo stesso errore, anche se sembra che la gemma venga installata:

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' fallito con ritorno #<Process::Status: pid 777 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec fallito con i parametri {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap fallito con codice di uscita 1
** FALLITO IL BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.

Puoi farlo per favore?

2 Mi Piace

Sto esaminando i log, pubblico cose che ritengo possano essere pertinenti.

@moderatori forse una divisione dell’argomento per questo? Non c’è un argomento ufficiale di questo plugin, non credo che lo sviluppatore sia su meta.

I, [2022-07-04T16:43:46.394301 #1]  INFO -- : cd /var/www/discourse & su discourse -c '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)

Non vedo altri errori al momento (o li sto perdendo, i log sono lunghi)

1 Mi Piace

A dire il vero, non sto seguendo il succo di quello che sta succedendo qui. :slightly_smiling_face: @RGJ e @michaeld hanno il potere di dividere, quindi forse faranno l’onore e lo gestiranno in modo più sensibile di quanto farò io. :slightly_smiling_face::crossed_fingers: (o, in alternativa, scegli il post da cui dividere, nomina la categoria in cui vuoi che vada e fammi sapere un titolo da dargli :+1:)

1 Mi Piace

Il mio suggerimento è di separarlo da qui:

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

La categoria più adatta sarebbe Support o #plugins (non sono sicuro… come gestiamo i plugin che non sono sviluppati da un membro di Meta… forse si unirà a Meta o potremo invitarlo tramite GitHub a Meta un giorno?)

MODIFICA:

Sembra che questo sia lo sviluppatore, quindi è su Meta? @w4ll3

@michaeld ha creato una PR per questo ieri, ma non è ancora stata unita. Nel frattempo, puoi usare GitHub - communiteq/discourse-siwe-auth: Discourse plugin for SIWE authentication.

3 Mi Piace

Confermo che funziona! Grazie Michael.

1 Mi Piace

Quindi, per riassumere, hai bisogno sia di before_code come descritto nel problema Cannot Install Plugin on Self-Hosted Discourse server - rbsecp256k1 · Issue #15 · spruceid/discourse-siwe-auth · GitHub SIA della versione più recente della gemma eth per la quale ho creato la PR (attualmente non unita).

5 Mi Piace

Un po’ in ritardo qui sul forum ufficiale, ma ehi, sono Rocco del team Spruce.

Grazie ancora @michaeld per le correzioni, hanno risolto il problema e abbiamo aggiornato la documentazione da parte nostra. Grazie anche per aver sollevato la questione: stiamo ancora sviluppando / mantenendo attivamente le cose relative a Sign-In with Ethereum.

Ero anche curioso: c’è una possibilità di rendere questo un plugin ufficialmente supportato :grinning: - amiamo Discourse e vogliamo capire come estendere questa funzionalità a istanze non self-hosted.

2 Mi Piace

Solo per chiarezza, Communiteq supporta questo plugin sui nostri piani di hosting gestito, è disponibile sul piano Professional e superiori.

3 Mi Piace

Mi scuso per questo!

Non c’è bisogno di scusarsi! L’hosting ufficiale non ce l’ha (ancora?). Volevo solo sottolineare il nostro impegno per questi plugin web3.

3 Mi Piace

Purtroppo non è un plugin ufficialmente supportato.

Ma sicuramente complimenti per il supporto da parte di Communiteq! Qualsiasi cosa per aiutare a supportare gli utenti Web3 è davvero fantastica.

Dal nostro lato stiamo lavorando in vari modi per supportare l’adozione di Sign-In with Ethereum e Discourse è sempre stato in cima alla nostra lista, motivo per cui dopo averlo standardizzato EIP-4361 abbiamo creato il plugin. L’altra cosa che è stata in primo piano è cosa altro aggiungere ad esso, con il provider RPC personalizzato come una delle prime parti.

3 Mi Piace

Questo plugin non funziona per me, c’è qualche problema con il plugin, non riesco a installarlo, qualcuno può condividere un’alternativa o aiutarmi con questo @michaeld @RGJ

Dovrai condividere i dettagli se desideri aiuto.

1 Mi Piace

@RGJ quando tento installare questo plugin, la ricompilazione fallisce con questo errore

Stai specificando la gemma rbsecp256k1 in /var/www/discourse/plugins/discourse-siwe-auth/plugin.rb, tuttavia non esiste!
Cercato: /var/www/discourse/plugins/discourse-siwe-auth/gems/2.7.6/specifications/rbsecp256k1-5.1.0.gemspec