Vai al contenuto principale

Primi passi con lo sviluppo di Ethereum

javascriptethers.jsnodiqueryalchemy
Principiante
Elan Halpern
Medio(opens in a new tab)
30 ottobre 2020
4 minuti letti minute read

Loghi Ethereum e Alchemy

Questa è una guida per principianti per muovere i primi passi con lo sviluppo di Ethereum. Per questo tutorial useremo Alchemy(opens in a new tab), la piattaforma principale per sviluppatori della blockchain con milioni di utenti dal 70% delle migliori app della blockchain, tra cui Maker, 0x, MyEtherWallet, Dharma e Kyber. Alchemy ci darà accesso all'endpoint di un'API sulla catena di Ethereum, così da permetterci di leggere e scrivere le transazioni.

Inizieremo dalla registrazione ad Alchemy e passeremo alla scrittura del tuo primo script web3! Non è necessaria alcuna esperienza di sviluppo con blockchain.

1. Registrati per un Conto Gratuito di Alchemy

Creare un conto di Alchemy è facile, registrati gratuitamente qui(opens in a new tab).

2. Crea un'app con Alchemy

Per comunicare con la catena Ethereum e per utilizzare i prodotti di Alchemy, è necessaria una chiave API per autenticare le richieste.

Puoi creare chiavi API dalla dashboard(opens in a new tab). Per creare una nuova chiave, vai a "Create App" come mostrato sotto:

Ringraziamenti speciali a ShapeShift(opens in a new tab) per averci permesso di mostrare la sua dashboard!

Dashboard di Alchemy

Compila i dettagli sotto "Create App" per ottenere la tua nuova chiave. Qui puoi anche vedere le app create in precedenza e quelle create dal tuo team. Preleva le chiavi esistenti facendo clic su "View Key" per qualsiasi app.

Crea l'app con gli screenshot di Alchemy

Puoi anche prelevare chiavi API esistenti passando con il mouse su "Apps" e selezionandone una. Puoi scegliere "View Key" o "Edit App" per consentire domini specifici, vedere diversi strumenti da sviluppatore e visualizzare i dati analitici.

Gif che mostra a un utente come estrarre le chiavi API

3. Effettua una richiesta dalla riga di comando

Interagisci con la blockchain Ethereum tramite Alchemy usando JSON-RPC e curl.

Per le richieste manuali, consigliamo di interagire con JSON-RPC tramite richieste POST. Passa semplicemente nell'intestazione Content-Type: application/json la tua query sotto forma di corpo POST con i seguenti campi:

  • jsonrpc: versione JSON-RPC. Attualmente è supportata solo la 2.0.
  • method: metodo dell'API ETH. Vedi il riferimento all'API.(opens in a new tab)
  • params: elenco di parametri da passare al metodo.
  • id: ID della richiesta. Sarà restituita dalla risposta, e potrai controllare sempre a quale richiesta appartiene la risposta.

Ecco un esempio che puoi eseguire dalla riga di comando per recuperare il prezzo corrente del gas:

curl https://eth-mainnet.alchemyapi.io/v2/demo \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

NOTA: Sostituisci https://eth-mainnet.alchemyapi.io/v2/demo(opens in a new tab) con la tua chiave API https://eth-mainnet.alchemyapi.io/v2/**your-api-key.

Risultati:

1{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }
Copia

4. Configura il client Web3

Se hai già un client, cambia l'URL del provider del nodo corrente inserendo un URL Alchemy con la tua chiave API: "https://eth-mainnet.alchemyapi.io/v2/your-api-key"

NOTA: gli script qui sotto devono essere eseguiti in un contesto node o salvati in un file, non devono essere eseguiti dalla riga di comando. Se non hai installato Node o npm, dai un'occhiata a questa guida di configurazione per Mac(opens in a new tab).

Ci sono tantissime librerie Web3(opens in a new tab) che puoi integrare con Alchemy, tuttavia, consigliamo di usare Alchemy Web3(opens in a new tab), un sostituto di web3.js, creato e configurato per funzionare senza problemi con Alchemy. Fornisce diversi vantaggi, come tentativi automatici e supporto affidabile per WebSocket.

Per installare AlchemyWeb3.js, passa alla directory del tuo progetto ed esegui:

Con Yarn:

1yarn add @alch/alchemy-web3

Con NPM:

1npm install @alch/alchemy-web3

Per interagire con l'infrastruttura del nodo di Alchemy, esegui NodeJS o aggiungi il codice seguente a un file JavaScript:

1const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
2const web3 = createAlchemyWeb3(
3 "https://eth-mainnet.alchemyapi.io/v2/your-api-key"
4)
Copia

5. Scrivi il tuo primo script Web3!

Ora per sporcarci un po' le mani con la programmazione web3 scriveremo uno script semplice che riporta il numero dell'ultimo blocco della rete principale Ethereum.

1. Se non lo hai già fatto, nel terminale crea una nuova directory del progetto passa ad essa (cd):

1mkdir web3-example
2cd web3-example

2. Se non lo hai già fatto, installa la dipendenza Alchemy Web3 (o web3 di altro tipo) nel progetto:

1npm install @alch/alchemy-web3

3. Crea un file denominato index.js e aggiungi i seguenti contenuti:

Devi sostituire demo con la tua chiave API HTTP di Alchemy.

1async function main() {
2 const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
3 const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
4 const blockNumber = await web3.eth.getBlockNumber()
5 console.log("The latest block number is " + blockNumber)
6}
7main()
Copia

Non hai famigliarità con la programmazione asincrona? Dai un'occhiata a questo post di Medium(opens in a new tab).

4. Eseguilo nel terminale usando node

1node index.js

5. A questo punto dovresti vedere l'output con il numero dell'ultimo blocco nella console!

1The latest block number is 11043912

Wow! Congratulazioni! Hai appena scritto il tuo primo script web3 usando Alchemy

Non sai come proseguire? Prova a distribuire il tuo primo smart contract e fai qualche prova pratica di programmazione in Solidity nella nostra Guida agli smart contract Hello World(opens in a new tab) o testa la tua conoscenza della Dashboard con l'App Demo della Dashboard(opens in a new tab)!

Iscriviti gratis ad Alchemy(opens in a new tab), dai un'occhiata alla nostra documentazione(opens in a new tab) e, per le ultime notizie, seguici su Twitter(opens in a new tab).

Ultima modifica: @nhsz(opens in a new tab), 7 maggio 2024

Questo tutorial è stato utile?