Come assumere sviluppatori Ethereum (guida definitiva)

C’è un’enorme richiesta di sviluppatori Ethereum di qualità e di assumere sviluppatori Ethereum, e per una buona ragione.

Lo spazio blockchain e ICO è esploso negli ultimi due anni. Sempre più persone cercano di entrare e farsi un nome nello spazio. Tuttavia, per avere successo, è fondamentale per loro avere una squadra forte e solida. Gli sviluppatori blockchain e, per essere più precisi, gli sviluppatori Ethereum sono il componente più critico di quel team.

Quindi, in questa guida, ti semplificheremo la vita. Ti mostreremo come individuare e selezionare la crema del raccolto.

Tuttavia, prima di assumere uno sviluppatore Ethereum, è importante sapere che tipo di persone stiamo assumendo.

Cosa rende un grande sviluppatore Ethereum?

In un’abilità che ha la stessa nicchia di “Ethereum Developer”, è importante sapere quali sono le qualità di base che separano il meglio dal resto? Un grande sviluppatore deve essere più di un semplice programmatore con capacità di codifica blockchain. Non stiamo dicendo che i programmatori semplici non siano preziosi, tuttavia, è necessario uno sviluppatore adeguato per creare un impero. Quindi, quali sono alcune delle qualità principali che stai cercando?

  • Forte fede nella decentralizzazione: Queste persone credono che il decentramento salverà l’umanità. Questi sono il tipo di persone che le società tradizionali non assumono perché credono che istituzioni come società, società e governi dovrebbero essere decentralizzate.
  • Padronanza della crittografia: Gli sviluppatori blockchain devono avere padronanza della criptoeconomia. Ci sono due parti in criptoeconomia, crittografia ed economia. Questo è il motivo per cui un grande sviluppatore Ethereum dovrebbe avere un’inesauribile curiosità per la crittografia.
  • Padronanza dell’economia: La seconda metà della criptoeconomia è “Economia”, quindi uno sviluppatore esperto dovrebbe avere una solida conoscenza dell’economia e anche della meccanica della teoria dei giochi. Se stai creando una piattaforma blockchain, il codice dovrebbe garantire che tutti i partecipanti siano economicamente incentivati.
  • Curiosità estrema: Per avere una base di conoscenze così vasta, queste persone sono estremamente curiose per natura. Questo è il tipo di persone che sono sveglie fino a tarda notte guardando video, forum, wiki per capire un particolare problema.

Quindi, ora conosciamo il tipo di persone che stiamo cercando. Questo è il motivo per cui ha senso iniziare da zero con alcune nozioni di base su Ethereum.

Perché lo stiamo facendo?

Perché ogni sviluppatore Ethereum degno di questo nome dovrebbe essere completamente esperto in questi concetti.

Cos’è Ethereum?

Ecco come si definisce il sito web di Ethereum:

“Ethereum è una piattaforma decentralizzata che esegue contratti intelligenti: applicazioni che funzionano esattamente come programmato senza alcuna possibilità di tempi di inattività, censura, frode o interferenza di terze parti. Queste app vengono eseguite su una blockchain personalizzata, un’infrastruttura globale condivisa enormemente potente che può spostare il valore e rappresentare la proprietà della proprietà “.

Ma in termini più semplici, Ethereum sta pianificando di essere l’ultima piattaforma software del futuro. Se il futuro è decentralizzato e le dAPP diventano un luogo comune, allora Ethereum deve essere la parte anteriore e centrale di esso.

Sebbene Bitcoin sia la prima applicazione della tecnologia blockchain, è ancora solo una valuta. Ethereum porta con sé l’intera portata di ciò che potrebbe essere possibile nella tecnologia blockchain.

Come afferma il co-fondatore di Ethereum, il dottor Gavin Wood:

“Bitcoin è prima di tutto una valuta; questa è una particolare applicazione di una blockchain. Tuttavia, è tutt’altro che l’unica applicazione. Per fare un esempio passato di una situazione simile, la posta elettronica è un uso particolare di Internet e sicuramente ha contribuito a renderla popolare, ma ce ne sono molti altri “.

Come funziona il mining di Ethereum?

A partire da ora, Ethereum utilizza lo stesso protocollo Proof-of-Work utilizzato da Bitcoin. Tuttavia, Ethereum prevede di passare presto a Proof-of-stake e utilizzeranno il protocollo Casper per effettuare questa transizione.

Allora qual è la differenza tra proof of stake e proof of work? Questo è in realtà qualcosa che puoi chiedere alle persone che stai potenzialmente intervistando. Sapere come funzionano la prova di lavoro e la prova di partecipazione è assolutamente fondamentale.

Prova di lavoro: Questo è il protocollo che la maggior parte delle criptovalute come Ethereum e Bitcoin hanno seguito finora. Ciò significa che i minatori “minano” le criptovalute risolvendo i cripto-puzzle utilizzando hardware dedicato.

Prova della posta in gioco: Questo protocollo renderà virtuale l’intero processo di mining. In questo sistema, abbiamo validatori invece di minatori. Il modo in cui funziona è che come validatore, dovrai prima bloccare parte del tuo etere come posta in gioco. Dopo averlo fatto, inizierai a convalidare i blocchi, il che significa sostanzialmente che se vedi dei blocchi che pensi possano essere aggiunti alla blockchain, puoi convalidarli piazzando una scommessa su di essi. Quando e se il blocco verrà aggiunto, riceverai una ricompensa proporzionale alla puntata che hai investito. Se, invece, scommetti sul blocco sbagliato o dannoso, la puntata che hai investito ti verrà tolta.

Per implementare il “proof of stake”, Ethereum utilizzerà l’algoritmo di consenso di Casper. All’inizio, sarà un sistema di stile ibrido in cui la maggior parte delle transazioni verrà comunque eseguita come prova dello stile di lavoro mentre ogni 100a transazione sarà una prova della posta in gioco. Ciò che farà è che fornirà un test del mondo reale per la prova della partecipazione sulla piattaforma di Ethereum. Ma cosa significa per Ethereum e quali sono i vantaggi di questo protocollo? Diamo un’occhiata.

Come assumere The Perfect Ethereum Developer

Vantaggi della prova della posta in gioco

  • Riduce i costi energetici e monetari complessivi: I miner di bitcoin del mondo spendono circa $ 50.000 l’ora in elettricità. Sono $ 1,2 milioni al giorno, $ 36 milioni al mese e ~ $ 450 milioni all’anno! Metti semplicemente la testa intorno a quei numeri e alla quantità di energia che viene sprecata. Utilizzando “Proof-of-stake” rendi l’intero processo completamente virtuale e tagli tutti questi costi.
  • Nessun vantaggio ASIC: Poiché l’intero processo sarà virtuale, non dipenderà da chi dispone delle apparecchiature o degli ASIC (circuiti integrati specifici dell’applicazione) migliori.
  • Rende il 51% più difficile da attaccare: L’attacco del 51% avviene quando un gruppo di minatori ottiene più del 50% della potenza di hashing del mondo. Usare la proof of stake annulla questo attacco.
  • Validatori privi di malware: Qualsiasi validatore che ha i propri fondi bloccati nella blockchain si assicurerebbe di non aggiungere blocchi errati o dannosi alla catena perché ciò significherebbe che l’intera quota investita sarebbe stata tolta da loro.
  • Creazione di blocchi: Rende più veloce la creazione di blocchi più recenti e l’intero processo.
  • Scalabilità: Rende scalabile la blockchain introducendo il concetto di “sharding” (ne parleremo più avanti).

Anche se in passato ci sono state varie implementazioni semplicistiche di Proof of Stake, ciò che separa Casper dal resto è che incentiva i minatori onesti e punisce quelli disonesti. Se hai messo la tua puntata su un blocco dannoso, la posta ti verrà tolta. Punirà chiunque non rispetti le regole.

Ecco come lo spiega Vitalik:

“Immagina 100 persone sedute attorno a un tavolo circolare. Una persona ha un pacco di documenti, ognuno con una diversa cronologia delle transazioni. Il primo partecipante prende una penna e ne firma una, quindi la passa alla persona successiva, che fa una scelta simile. Ogni partecipante riceve $ 1 solo se firma la cronologia delle transazioni che la maggior parte dei partecipanti firma alla fine. Se firmi una pagina e in seguito firmi un’altra pagina, la tua casa brucia “

Ha poi aggiunto che questo è probabilmente un buon incentivo per firmare il pezzo di carta giusto!

Cosa sono gli smart contract?

I contratti intelligenti sono contratti automatizzati. Si eseguono da soli con istruzioni specifiche scritte sul suo codice che vengono eseguite quando vengono soddisfatte determinate condizioni.

Come assumere The Perfect Ethereum Developer

Puoi saperne di più sugli smart contract nella nostra guida approfondita qui.

I contratti intelligenti sono il modo in cui le cose vengono fatte nell’ecosistema di Ethereum. Quando qualcuno vuole portare a termine un compito particolare in Ethereum, avvia un contratto intelligente con una o più persone.

Gli smart contract sono una serie di istruzioni, scritte utilizzando il linguaggio di programmazione “solidity”, che funziona sulla base della logica IFTTT ovvero il SE-QUESTO-ALLORA-QUELLA logica. Fondamentalmente, se viene eseguita la prima serie di istruzioni, eseguire la funzione successiva e dopo quella successiva e continuare a ripetere fino a raggiungere la fine del contratto.

Il modo migliore per capirlo è immaginare un distributore automatico. Ogni passo che fai agisce come un trigger per l’esecuzione del passaggio successivo. È un po ‘come l’effetto domino. Quindi, esaminiamo i passaggi che eseguirai durante l’interazione con il distributore automatico:

Passo 1: Dai dei soldi al distributore automatico.

Passo 2: Premi il pulsante corrispondente all’elemento che desideri.

Passaggio 3: L’oggetto esce e tu lo raccogli.

Ora guarda tutti quei passaggi e pensaci. Qualcuno dei passaggi funzionerà se il precedente non è stato eseguito? Ciascuno di questi passaggi è direttamente correlato al passaggio precedente. C’è un altro fattore a cui pensare ed è parte integrante degli smart contract. Vedi, nella tua intera interazione con il distributore automatico, tu (il richiedente) stavi lavorando esclusivamente con la macchina (il fornitore). Non c’erano assolutamente terze parti coinvolte.

Quindi, ora come sarebbe questa transazione se fosse avvenuta nella rete Ethereum?

Supponi di aver appena acquistato qualcosa da un distributore automatico nella rete Ethereum, come saranno i passaggi allora?

Passo 1: Dai del denaro al distributore automatico e questo viene registrato da tutti i nodi della rete Ethereum e la transazione viene aggiornata nel libro mastro.

Passo 2: Premi il pulsante corrispondente all’elemento che desideri e la registrazione viene aggiornata nella rete e nel registro Ethereum.

Passaggio 3: L’oggetto esce e lo raccogli e questo viene registrato da tutti i nodi e dal libro mastro.

Ogni transazione che effettui tramite i contratti intelligenti verrà registrata e aggiornata dalla rete. Ciò che fa è che mantiene tutte le persone coinvolte nel contratto responsabili delle proprie azioni. Elimina la malizia umana rendendo visibile all’intera rete ogni azione intrapresa

Ok, quindi fino ad ora abbiamo coperto cos’è Ethereum, cos’è il mining e cosa sono i contratti intelligenti. Se il tuo candidato non può rispondere a nessuno di questi in modo soddisfacente, lascialo andare in quell’istante. Non vale il tuo tempo.

Padronanza del codice Smart Contract

Ovviamente, questo dovrebbe essere il pane quotidiano di tutti i grandi sviluppatori. Un modo per comprendere definitivamente l’esperienza di uno sviluppatore è chiedergli di spiegare come funziona un determinato contratto. Qui ti mostreremo due codici di solidità. Puoi eseguire questo codice da loro e chiedere loro di scomporlo e spiegarti cosa sta succedendo in ogni passaggio.

Esempio di codice n. 1

Il codice e la spiegazione sono stati presi da toptal.

pragma solidity 0.4.18;

importare "./Vehicle.sol";

contratto VehicleOwner {

indirizzo pubblico proprietario;

mappatura (bytes32 => indirizzo) veicoli pubblici;

evento NewVehicleAdded (indirizzo newVehicle indicizzato, timestamp uint256);

function VehicleOwner () public {

proprietario = msg.sender;

}

/ **

* @dev Genera se chiamato da un account diverso dal proprietario.

* /

modifier onlyOwner () {

require (msg.sender == proprietario);

_;

}

function createNewVehicle (string model, string make, bytes32 vin) public onlyOwner {

indirizzo newVehicle = new Vehicle (model, make, vin);

veicoli [vin] = newVehicle;

NewVehicleAdded (newVehicle, now);

}

}

Quindi, andiamo riga per riga e capiamo cosa sta succedendo qui.

Codice: pragma solidity 0.4.18;

Analisi: specifica la versione del compilatore utilizzato. In questo 0.4.18

Codice: import “./Vehicle.sol”;

Analisi: importa il contratto intelligente che viene utilizzato per rappresentare i nuovi veicoli.

Codice: contratto VehicleOwner {

Analisi: dichiara il contratto del proprietario del veicolo.

Codice:

indirizzo pubblico proprietario;

mappatura (bytes32 => indirizzo) veicoli pubblici;

Analisi: qui è dove arricchiamo il nostro contratto. Questa prima variabile chiama il proprietario e rappresenta l’Ethereum che ha creato una determinata istanza del contratto VehicleOwner.

Il secondo, chiamato veicoli, verrà utilizzato per memorizzare un elenco dei veicoli di proprietà del proprietario, assegnando gli indirizzi dei contratti ai numeri di identificazione del veicolo forniti.

Codice:

function VehicleOwner () public {

proprietario = msg.sender;

}

Analisi: vedi come la funzione ha lo stesso nome del contratto? Questo perché questa particolare funzione è un costruttore. L’unica funzione che svolge è assegnare l’indirizzo che ha chiamato la funzione come titolare del contratto.

Codice:

modifier onlyOwner () {

require (msg.sender == proprietario);

_;

}

Analisi: questo modificatore di funzione viene utilizzato per assicurarsi che solo il proprietario del contratto abbia accesso al contratto.

Guarda quello “_”?

Questo produce per il corpo della funzione a cui il modificatore viene successivamente applicato.

Codice:

function createNewVehicle (string model, string make, bytes32 vin) public onlyOwner {

indirizzo newVehicle = new Vehicle (model, make, vin);

veicoli [vin] = newVehicle;

NewVehicleAdded (newVehicle, now);

}

Analisi: questo crea un nuovo contratto sulla blockchain che è una rappresentazione di un nuovo veicolo. Il costruttore del contratto del veicolo riceve tre proprietà: modello, marca e vin, l’ultima delle quali può essere utilizzata per identificare quel particolare veicolo.

La creazione di un nuovo contratto restituisce il suo indirizzo appena assegnato. Nella funzione, utilizzando la mappatura del veicolo, leghiamo il vin dato a quell’indirizzo. Infine, la funzione trasmette un nuovo evento, passando l’indirizzo e il timestamp corrente.

Esempio di codice n. 2

contratto BasicIterator

{

creatore dell’indirizzo; // prenotane uno "indirizzo"-tipo spot

uint8 [10] numeri interi; // riserva una porzione di memoria per 10 interi senza segno a 8 bit in un array

function BasicIterator ()

{

creatore = msg.sender;

uint8 x = 0;

// Sezione 1: Assegnazione di valori

mentre (x < integers.length) {

numeri interi [x] = x;

x ++;

}}

funzione getSum () costante restituisce (uint) {

uint8 sum = 0;

uint8 x = 0;

// Sezione 2: aggiunta degli interi in un array.

mentre (x < integers.length) {

somma = somma + numeri interi [x];

x ++;

}

somma di ritorno;

}

// Sezione 3: soppressione del contratto

funzione kill ()

{

if (msg.sender == creatore)

{

suicidio (creatore);

}

}

}

Quindi, analizziamo.

Sezione 1: Assegnazione di valori

Nella prima fase stiamo riempiendo un array chiamato “interi” che accetta 10 interi senza segno a 8 bit. Il modo in cui lo stiamo facendo è tramite un ciclo while. Diamo un’occhiata a cosa sta succedendo all’interno del ciclo while.

mentre (x < integers.length) {

numeri interi [x] = x;

x ++;

}

Ricorda, abbiamo già assegnato un valore “0” all’intero x. Il ciclo while va da 0 a integers.length. Integers.length è una funzione che restituisce la capacità massima dell’array. Quindi, se decidessimo che un array avrà 10 numeri interi, arrayname.length restituirà un valore di 10. Nel ciclo sopra, il valore di x va da 0 a 9 (<10) e assegna il valore di se stesso anche all’array di interi. Quindi, alla fine del ciclo, gli interi avranno il seguente valore:

0,1,2,3,4,5,6,7,8,9.

Sezione 2: aggiunta del contenuto dell’array

All’interno della funzione getSum () aggiungeremo il contenuto dell’array stesso. Il modo in cui lo faràè ripetendo lo stesso ciclo while come sopra e usando la variabile “sum” per aggiungere il contenuto dell’array.

Sezione 3: soppressione del contratto

Questa funzione termina il contratto e invia i fondi rimanenti nel contratto all’autore del contratto.

Quindi questo dovrebbe darti una buona idea di come sono i contratti di solidità e che tipo di scomposizione del codice dovresti aspettarti dai tuoi potenziali clienti.

Qual è la differenza tra Ether e Gas?

Questo è un altro concetto fondamentale con cui i tuoi sviluppatori dovrebbero avere familiarità.

Ether è il token principale dell’ecosistema. È ciò che incentiva i giocatori a portare a termine la fine dello smart contract.

Il gas è la quantità di carburante necessaria per soddisfare tutte le esigenze di un determinato contratto.

Quando qualcuno invia un contratto intelligente, ha un valore di gas predeterminato. Quando il contratto viene eseguito, ogni fase del contratto richiede una certa quantità di gas per l’esecuzione.

Questo può portare a due scenari:

  • Il gas richiesto è superiore al limite impostato. In tal caso, lo stato del contratto viene ripristinato al suo stato originale e tutto il gas viene utilizzato.
  • Il gas richiesto è inferiore al limite impostato. In tal caso, il contratto è concluso e il gas residuo viene consegnato al responsabile del contratto.

Quello che segue è un grafico che mostra il prezzo medio del gas a Wei.

Come assumere The Perfect Ethereum Developer

Credito immagine: Etherscan

Il gas è la linfa vitale di Ethereum.

Tutte le transazioni in Ethereum sono convalidate dai minatori. Fondamentalmente, devono inserire manualmente ogni singola transazione nei blocchi che hanno estratto per convalidare la transazione. In cambio dei loro servizi, raccolgono una certa quantità di commissioni di transazione.

Di solito, vengono privilegiati i contratti intelligenti con tariffe elevate del gas perché i minatori hanno la possibilità di riscuotere commissioni più elevate lì. La commissione raccolta è ancora piuttosto nominale rispetto al bitcoin.

Questo grafico qui confronta le commissioni di transazione di Bitcoin con Ethereum.

Come assumere The Perfect Ethereum Developer

Credito immagine: Bitinfocharts

In effetti, come puoi vedere, in questa transazione di 0,01 Ether è stato raccolto solo 0,00000000000002 Ether come commissioni di transazione che è <$ 0,000001.

Come assumere The Perfect Ethereum Developer

Credito immagine: Etherscan

Quindi, come puoi vedere, i minatori in Ethereum, scrivendo, raccolgono commissioni di transazione molto nominali. Ovviamente riscuotere le commissioni di transazione è un ruolo secondario per i minatori, il loro compito principale è … beh … il mio!

Domande e risposte

Quindi, distillando tutta questa conoscenza, concentriamoci su alcune domande specifiche che puoi porre.

  1. D) Come viene definito il costruttore del contratto?
  2. UN) Il costruttore è definito come una funzione, denominata esattamente come il contratto.

  1. D) Dove vengono registrati gli eventi in Ethereum e qual è il loro scopo?
  2. UN)  I log sono gli eventi emessi dai contratti. Queste sono parti delle ricevute delle loro transazioni e dei risultati dei codici operativi LOG che vengono eseguiti sulla Ethereum Virtual Machine (EVM).

Gli eventi vengono utilizzati principalmente per comunicare con i front-end o come archiviazione dati economica. Perché i valori di ritorno delle transazioni sono solo le transazioni sottoposte a hashing, perché la blockchain impiega un po ‘di tempo per raggiungere il consenso e convalidare le transazioni, estraendole in nuovi blocchi. Emettendo eventi e facendo in modo che i front-end ascoltino (guardino) quegli eventi, si ottiene una comunicazione efficiente.

  1. D) Quali sono le mappature?
  2. UN) La mappatura è equivalente a un dizionario o una mappa in altri linguaggi di programmazione. È l’archiviazione chiave-valore.

  1. D) Qual è lo scopo dei modificatori?
  2. UN) Come suggerisce il nome; modificano le funzioni che li utilizzano. Tuttavia, le condizioni del modificatore devono essere soddisfatte prima che la funzione venga eseguita. In caso contrario, i modificatori lanci un errore.

  1. D) Cosa sono le librerie Ethereum?
  2. UN) Le biblioteche di Ethereum aiutano nell’isolamento di parti integranti della logica. Sono un gruppo di pacchetti creati per l’uso su blockchain che utilizzano la Ethereum Virtual Machine (EVM). Tutte le librerie sono distribuite e collegabili nei tuoi smart contract. Possono essere chiamati tramite DELEGATECALL.

  1. D) Perché costa denaro invocare un metodo su uno Smart Contract?
  2. UN) Quando i metodi vengono richiamati, cambiano lo stato della blockchain. Poiché l’operazione richiede gas, costa denaro.

Dove puoi trovare grandi sviluppatori?

È difficile trovare grandi sviluppatori in “luoghi tradizionali” come LinkedIn e Google. Tuttavia, Reddit, GitHub ecc. Sono ottimi posti per trovare questi sviluppatori.

Inoltre, c’è un’altra cosa. Poiché questo è un talento di nicchia, dovresti essere aperto al fatto che potrebbero essere nella tua città o anche nel tuo paese. Dovresti provvedere per i lavori in località remote, soprattutto se stai cercando la crema del raccolto.

Può essere una seccatura, ma questa è una di quelle cose “qualità rispetto alla quantità”.

Come assumere sviluppatori Ethereum: conclusione

Quando intervisti gli sviluppatori di Ethereum, devi tenere a mente una cosa. Non è necessario che rispondano completamente a tutte le domande. Ciò che conta è la loro passione e se sono stati in grado di rispondere in modo specifico alle domande che riguardano il loro lavoro e il loro ruolo.

Ad ogni modo, questa guida dovrebbe aiutarti a concentrarti su incredibili sviluppatori blockchain. Solo un’ultima parola di consiglio. Si prega di non scendere a compromessi sulla qualità degli sviluppatori. Ricorda, la qualità trionferà sempre sulla quantità.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me