Sådan ansætter du Ethereum-udviklere (ultimativ guide)

Der er en enorm efterspørgsel efter Ethereum-kvalitetsudviklere og at ansætte Ethereum-udviklere og med god grund.

Blockchain og ICO-rummet er eksploderet i løbet af de sidste par år. Flere og flere mennesker forsøger at komme ind og gøre deres navn i rummet. For at få succes er det imidlertid afgørende for dem at have et stærkt og sundt team. Blockchain-udviklere, og for at være mere præcise, er Ethereum-udviklere den mest kritiske komponent i dette team.

Så i denne vejledning vil vi gøre dit liv meget lettere. Vi vil vise dig, hvordan du kan lokalisere og kortlægge afgrødecremen.

Før vi dog ansætter en ethereum-udvikler, er det vigtigt, at vi ved, hvilken slags mennesker vi ansætter.

Hvad gør en stor Ethereum-udvikler?

I en færdighed, der er lige så niched som “Ethereum Developer”, er det vigtigt at vide, hvad er de basiskvaliteter, der adskiller det bedste fra resten? En stor udvikler skal være mere end bare en koder med blockchain-kodningsfærdigheder. Vi siger ikke, at enkle kodere ikke er værdifulde, men du har brug for en ordentlig udvikler for at skabe et imperium. Så hvad er nogle af de vigtigste kvaliteter, du leder efter?

  • Stærk tro på decentralisering: Disse mennesker tror, ​​at decentralisering vil redde menneskeheden. Dette er den slags mennesker, som traditionelle virksomheder ikke ansætter på grund af deres tro på, at institutioner som samfund, virksomheder og regeringer skal blive decentraliserede.
  • Beherskelse af kryptografi: Blockchain-udviklere skal beherske krypto-økonomi. Der er to dele til kryptoøkonomi, kryptografi og økonomi. Dette er grunden til, at en stor Ethereum-udvikler skal have en udødelig nysgerrighed for kryptografi.
  • Beherskelse af økonomi: Anden halvdel af kryptoøkonomi er “Økonomi”, så en ekspertudvikler skal også have god viden om økonomi og spilteorimekanik. Hvis du opretter en blockchain-platform, skal koden sikre, at alle deltagere er økonomiske incitamenter.
  • Ekstrem nysgerrighed: For at have en så enorm videnbase er disse mennesker ekstremt nysgerrige af natur. Dette er den slags mennesker, der er op til sent på aftenen og gennemgår videoer, fora, wikier for at forstå et bestemt problem.

Så nu kender vi den slags mennesker, vi leder efter. Derfor er det fornuftigt at starte fra bunden med nogle grundlæggende Ethereum.

Hvorfor gør vi det?

Fordi enhver Ethereum-udvikler, der er værd for deres salt, burde være helt fortrolig med disse begreber.

Hvad er Ethereum?

Sådan definerer Ethereums websted sig selv:

”Ethereum er en decentral platform, der kører smarte kontrakter: applikationer, der kører nøjagtigt som programmeret uden mulighed for nedetid, censur, svindel eller indblanding fra tredjepart. Disse apps kører på en specialbygget blockchain, en enormt kraftig delt global infrastruktur, der kan bevæge sig rundt og repræsentere ejerskabet af ejendom. ”

Men i enklere vendinger planlægger Ethereum at være fremtidens ultimative softwareplatform. Hvis fremtiden er decentraliseret, og dAPP’er bliver almindelige, skal Ethereum være fronten og midten af ​​den.

Mens Bitcoin er den første anvendelse af blockchain-teknologi, er det stadig kun en valuta. Ethereum bringer med sig hele omfanget af, hvad der kunne være muligt inden for blockchain-teknologi.

Som Ethereum-medstifter Dr.Gavin Wood udtrykker det:

”Bitcoin er først og fremmest en valuta; dette er en særlig anvendelse af en blockchain. Det er dog langt fra den eneste applikation. For at tage et tidligere eksempel på en lignende situation er e-mail en bestemt brug af internettet og hjalp helt sikkert med at popularisere det, men der er mange andre. ”

Hvordan fungerer Ethereum Mining?

Fra og med nu bruger Ethereum den samme Proof-of-Work-protokol, som Bitcoin bruger. Ethereum planlægger dog snart at flytte til Proof-of-stake, og de vil bruge Casper-protokollen til at foretage denne overgang.

Så hvad er forskellen mellem bevis for indsats og bevis for arbejde? Dette er faktisk noget, du kan bede folk om, at du potentielt interviewer. At vide, hvordan proof-of-work og proof-of-stake fungerer, er absolut kritisk.

Bevis for arbejde: Dette er den protokol, som de fleste kryptokurver som Ethereum og Bitcoin har fulgt indtil videre. Dette betyder, at minearbejdere “mine” kryptokurver ved at løse kryptopusler ved hjælp af dedikeret hardware.

Bevis for indsats: Denne protokol vil gøre hele minedriftsprocessen virtuel. I dette system har vi validatorer i stedet for minearbejdere. Den måde det fungerer på er, at du som validator først bliver nødt til at låse noget af din ether op som stav. Når du har gjort det, begynder du derefter at validere blokke, hvilket grundlæggende betyder, at hvis du ser nogen blokke, som du mener kan føjes til blockchain, kan du validere det ved at placere et væddemål på det. Når og hvis blokken tilføjes, får du en belønning, der er proportional med den indsats, du har investeret. Hvis du imidlertid satser på den forkerte eller den ondsindede blok, vil den indsats, du har investeret, blive taget fra dig.

For at implementere “bevis for indsats” vil Ethereum bruge Casper-konsensusalgoritmen. I starten vil det være et hybrid-stil system, hvor størstedelen af ​​transaktionerne stadig vil blive udført som et bevis på arbejdsstil, mens hver 100. transaktion vil være et bevis på indsatsen. Hvad dette vil gøre er, at det vil give en test i den virkelige verden for bevis for indsats på Ethereums platform. Men hvad betyder det for Ethereum, og hvad er fordelene ved denne protokol? Lad os se.

Sådan ansættes den perfekte Ethereum-udvikler

Fordele ved bevis for indsats

  • Sænker de samlede energi- og monetære omkostninger: Verdens bitcoin-minearbejdere bruger omkring $ 50.000 i timen på elektricitet. Det er $ 1,2 millioner om dagen, $ 36 millioner om måneden og ~ $ 450 millioner om året! Bare læg hovedet omkring disse tal og den mængde strøm, der spildes. Ved at bruge “Proof-of-stake” gør du hele processen fuldstændig virtuel og afskærer alle disse omkostninger.
  • Ingen ASIC-fordel: Da hele processen vil være virtuel, vil det ikke afhænge af, hvem der har det bedre udstyr eller ASIC (applikationsspecifikt integreret kredsløb).
  • Gør 51% angreb hårdere: 51% angreb sker, når en gruppe minearbejdere vinder mere end 50% af verdens hashkraft. Brug af bevis på stav negerer dette angreb.
  • Ondsindelsesfri validatorer: Enhver validator, der har deres midler låst i blockchain, vil sørge for, at de ikke tilføjer nogen forkerte eller ondsindede blokke til kæden, fordi det ville betyde, at hele deres investerede indsats ville blive taget væk fra dem.
  • Bloker oprettelse: Gør oprettelsen af ​​nyere blokke og hele processen hurtigere.
  • Skalerbarhed: Gør blockchain skalerbar ved at introducere begrebet “sharding” (Mere om dette senere.)

Selvom der tidligere har været forskellige forenklede implementeringer af Proof of Stake, adskiller Casper fra resten, at det tilskynder de ærlige minearbejdere og straffer de uærlige. Hvis du har sat din indsats på en ondsindet blok, bliver staven taget fra dig. Det vil straffe enhver, der ikke spiller efter reglerne.

Sådan forklarer Vitalik det:

”Forestil dig 100 mennesker, der sidder omkring et cirkulært bord. En person har et bundt papirer, hver med en anden transaktionshistorik. Den første deltager tager en pen op og underskriver en, og sender den derefter til den næste person, der træffer et lignende valg. Hver deltager får kun $ 1, hvis de underskriver den transaktionshistorik, som de fleste af deltagerne til sidst underskriver. Hvis du underskriver en side og senere underskriver en anden side, brænder dit hus ned, ”

Han tilføjede derefter, at dette sandsynligvis er et godt incitament til at underskrive det rigtige stykke papir!

Hvad er smarte kontrakter?

Smarte kontrakter er automatiserede kontrakter. De udfører selvudførelse med specifikke instruktioner skrevet på dens kode, som bliver udført, når visse betingelser er lavet.

Sådan ansættes den perfekte Ethereum-udvikler

Du kan lære mere om smarte kontrakter i vores dybdegående guide her.

Smarte kontrakter er, hvordan ting bliver gjort i Ethereum-økosystemet. Når nogen ønsker at få udført en bestemt opgave i Ethereum, indleder de en smart kontrakt med en eller flere personer.

Smarte kontrakter er en række instruktioner, der er skrevet ved hjælp af programmeringssproget “soliditet”, som fungerer på basis af IFTTT-logikken, aka IF-THIS-THEN-THAT-logikken. Dybest set, hvis det første sæt instruktioner er udført, skal du udføre den næste funktion og derefter den næste og fortsætte med at gentage, indtil du når slutningen af ​​kontrakten.

Den bedste måde at forstå det på er at forestille sig en automat. Hvert eneste trin, du tager, fungerer som en udløser for det næste trin til at udføre sig selv. Det er lidt som dominoeffekten. Så lad os undersøge de trin, du vil tage, når du interagerer med automaten:

Trin 1: Du giver automaten nogle penge.

Trin 2: Du trykker på knappen, der svarer til det emne, du ønsker.

Trin 3: Varen kommer ud, og du samler den.

Se nu på alle disse trin og tænk over det. Vil nogen af ​​trinnene fungere, hvis den forrige ikke blev udført? Hvert eneste af disse trin er direkte relateret til det forrige trin. Der er endnu en faktor at tænke over, og det er en integreret del af smarte kontrakter. Ser du, i hele din interaktion med automaten arbejdede du (anmoderen) udelukkende med maskinen (udbyderen). Der var absolut ingen tredjeparter involveret.

Så hvordan ville denne transaktion have set ud, hvis den skete i Ethereum-netværket?

Antag at du lige har købt noget fra en salgsautomat i Ethereum-netværket, hvordan vil trinene se ud da?

Trin 1: Du giver automaten nogle penge, og dette registreres af alle knudepunkterne i Ethereum-netværket, og transaktionen opdateres i hovedbogen..

Trin 2: Du trykker på knappen, der svarer til det emne, du vil have, og registrerer det, der opdateres i Ethereum-netværket og hovedbogen.

Trin 3: Varen kommer ud, og du samler den, og dette registreres af alle knudepunkter og hovedbogen.

Hver transaktion, du gennemgår de smarte kontrakter, registreres og opdateres af netværket. Hvad dette gør er, at det holder alle involverede i kontrakten ansvarlige for deres handlinger. Det fjerner menneskelig ondskab ved at gøre enhver handling, der er taget, synlig for hele netværket

Ok så indtil nu har vi dækket, hvad Ethereum er, hvad der er minedrift, og hvad der er smarte kontrakter. Hvis din kandidat ikke kan besvare nogen af ​​disse tilfredsstillende, så lad dem gå lige nu. Det er ikke din tid værd.

Beherskelse af Smart Contract Code

Dette skal selvfølgelig være brød og smør fra alle store udviklere. En måde, du helt sikkert kan forstå en udviklers ekspertise på, er ved at bede dem om at forklare, hvordan en bestemt kontrakt fungerer. Her skal vi vise dig to soliditetskoder. Du kan køre denne kode efter dem og bede dem om at nedbryde den og forklare dig, hvad der sker i hvert trin.

Kodeeksempel nr. 1

Koden og forklaringen er taget fra toptal.

pragmasoliditet 0.4.18;

importere "./Køretøj.sol";

kontrakt VehicleOwner {

adresse offentlig ejer

kortlægning (bytes32 => adresse) offentlige køretøjer

begivenhed NewVehicleAdded (adresseindekseret newVehicle, uint256 tidsstempel);

funktion VehicleOwner () offentlig {

ejer = msg.sender;

}

/ **

* @dev Kaster, hvis den kaldes af en anden konto end ejeren.

* /

kun modifikatorEjer () {

kræve (msg.sender == ejer);

_;

}

funktion createNewVehicle (string model, string make, bytes32 vin) only publicOwner {

adresse newVehicle = nyt køretøj (model, mærke, vin);

køretøjer [vin] = newVehicle;

NewVehicleAdded (newVehicle, now);

}

}

Så lad os gå linje og linje og forstå, hvad der sker her.

Kode: pragmasoliditet 0.4.18;

Analyse: Angiver den anvendte version af compileren. I denne 0.4.18

Kode: import “./Vehicle.sol”;

Analyse: Importerer den smarte kontrakt, der bruges til at repræsentere nye køretøjer.

Kode: kontrakt VehicleOwner {

Analyse: Erklærer køretøjsejerkontrakten.

Kode:

adresse offentlig ejer

kortlægning (bytes32 => adresse) offentlige køretøjer

Analyse: Det er her, vi uddyber vores kontrakt. Denne første variabel kalder ejeren og repræsenterer Ethereum, der oprettede en given forekomst af VehicleOwner-kontrakten.

Den anden, kaldet køretøjer, vil blive brugt til at gemme en liste over køretøjer, der ejes af ejeren, ved at tildele deres kontraktadresser til de angivne køretøjsidentifikationsnumre.

Kode:

funktion VehicleOwner () offentlig {

ejer = msg.sender;

}

Analyse: Se hvordan funktionen har samme navn som kontrakten? Dette skyldes, at denne særlige funktion er en konstruktør. Den eneste funktion, den gør, er at tildele den adresse, der kaldte funktionen som kontraktindehaver.

Kode:

kun modifikatorEjer () {

kræve (msg.sender == ejer);

_;

}

Analyse: Denne funktionsmodifikator bruges, og sørg for, at kun kontraktindehaveren har adgang til kontrakten.

Kan du se det “_”?

Dette giver for kroppen af ​​den funktion, som modifikatoren senere anvendes til.

Kode:

funktion createNewVehicle (string model, string make, bytes32 vin) only publicOwner {

adresse newVehicle = nyt køretøj (model, mærke, vin);

køretøjer [vin] = newVehicle;

NewVehicleAdded (newVehicle, now);

}

Analyse: Dette skaber en ny kontrakt på blockchain, som repræsenterer et nyt køretøj. Bilkontraktens konstruktør modtager tre egenskaber: model, mærke og vin, hvoraf sidstnævnte kan bruges til at identificere det pågældende køretøj.

Oprettelse af en ny kontrakt returnerer den nyligt tildelte adresse. I funktionen, ved hjælp af køretøjets kortlægning, binder vi den givne vin til den adresse. Endelig sender funktionen en ny begivenhed, der videregiver adressen og det aktuelle tidsstempel.

Kodeeksempel nr. 2

kontrakt BasicIterator

{

adresse skaberen; // reserver en "adresse"-skriv stedet

uint8 [10] heltal; // reserver et stykke lagerplads til 10 8-bit usignerede heltal i en matrix

funktion BasicIterator ()

{

skaber = msg.sender;

uint8 x = 0;

// Afsnit 1: Tildeling af værdier

mens (x < heltal.længde) {

heltal [x] = x;

x ++;

}}

funktion getSum () konstant returnerer (uint) {

uint8 sum = 0;

uint8 x = 0;

// Afsnit 2: Tilføjelse af heltal i en matrix.

mens (x < heltal.længde) {

sum = sum + heltal [x];

x ++;

}

returbeløb

}

// Afsnit 3: At dræbe kontrakten

funktion dræbe ()

{

hvis (msg.sender == skaber)

{

selvmord (skaberen);

}

}

}

Så lad os analysere.

Afsnit 1: Tildeling af værdier

I det første trin udfylder vi en matrix kaldet “heltal”, der optager 10 8-bit usignerede heltal. Den måde, vi gør det på, er via en while-loop. Lad os se på, hvad der sker inden for mens løkken.

mens (x < heltal.længde) {

heltal [x] = x;

x ++;

}

Husk, at vi allerede har tildelt en værdi på “0” til heltalet x. Mens loop går fra 0 til heltal. Længde. Integers.length er en funktion, der returnerer arrayets maksimale kapacitet. Så hvis vi besluttede at en matrix vil have 10 heltal, returnerer arrayname.length en værdi på 10. I sløjfen ovenfor går værdien af ​​x fra 0 – 9 (<10) og tildeler også selve værdien til arrayet med heltal. Så i slutningen af ​​sløjfen vil heltal have følgende værdi:

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

Afsnit 2: Tilføjelse af matrixindholdet

Inde i getSum () -funktionen skal vi tilføje indholdet af selve arrayet. Den måde, det skal gøres på, er ved at gentage den samme while-loop som ovenfor og bruge variablen “sum” til at tilføje indholdet af arrayet.

Afsnit 3: At dræbe kontrakten

Denne funktion dræber kontrakten og sender de resterende midler i kontrakten tilbage til kontraktopretteren.

Så dette skal give dig en god idé om, hvordan soliditetskontrakter ser ud, og hvilken slags kodefordeling du kan forvente af dine kundeemner.

Hvad er forskellen mellem ether og gas?

Dette er et andet kernekoncept, som dine udviklere skal være fortrolige med.

Ether er det vigtigste symbol i økosystemet. Det er det, der tilskynder spillerne til at gennemføre deres afslutning på den smarte kontrakt.

Gas er den mængde brændstof, der kræves for at opfylde alle behovene i en given kontrakt.

Når nogen indsender en smart kontrakt, har den en forudbestemt gasværdi. Når kontrakten udføres, kræver hvert eneste trin i kontrakten en vis mængde gas at udføre.

Dette kan føre til to scenarier:

  • Den krævede gas er mere end den indstillede grænse. Hvis det er tilfældet, vendes kontrakttilstanden tilbage til sin oprindelige tilstand, og al gassen er brugt op.
  • Den krævede gas er mindre end den indstillede grænse. Hvis det er tilfældet, så er kontrakten afsluttet, og den resterende gas overgives til kontraktsætteren.

Det følgende er en graf, der viser den gennemsnitlige gaspris i Wei.

Sådan ansættes den perfekte Ethereum-udvikler

Billedkredit: Etherscan

Gas er livsnerven i Ethereum.

Alle transaktioner i Ethereum valideres af minearbejdere. Dybest set skal de manuelt sætte hver eneste transaktion i de blokke, de har udvundet, for at transaktionen skal valideres. Til gengæld for deres tjenester opkræver de et bestemt transaktionsgebyr.

Normalt foretrækkes smarte kontrakter med høje gasafgifter, fordi minearbejdere har chancen for at opkræve højere gebyrer der. Det opkrævede gebyr er dog stadig ret nominelt sammenlignet med bitcoin.

Denne graf her sammenligner transaktionsgebyrer for Bitcoin til Ethereum.

Sådan ansættes den perfekte Ethereum-udvikler

Billedkredit: Bitinfocharts

Som du kan se, blev der i denne transaktion på 0,01 Ether kun 0,0000000000000002 Ether opkrævet som transaktionsgebyrer, hvilket er <0,000001 $.

Sådan ansættes den perfekte Ethereum-udvikler

Billedkredit: Etherscan

Så som du kan se, indsamler minearbejderne i Ethereum meget nominelle transaktionsgebyrer. Det er klart, at indsamle transaktionsgebyrer er en sekundær rolle for minearbejdere, deres hovedopgave er at … godt … mine!

Spørgsmål og svar

Så når vi destillerer al denne viden, lad os nulstille nogle specifikke spørgsmål, som du kan stille.

  1. Q) Hvordan defineres kontraktkonstruktøren?
  2. EN) Konstruktøren er defineret som en funktion, navngivet nøjagtigt den samme som kontrakten.

  1. Q) Hvor er begivenheder logget i Ethereum, og hvad er deres formål?
  2. EN)  Logfiler er de begivenheder, der udsendes af kontrakterne. Dette er dele af deres transaktioners kvitteringer og resultaterne af LOG-koderne, der udføres på Ethereum Virtual Machine (EVM).

Begivenhederne bruges primært til at kommunikere med frontenderne eller som billig datalagring. Fordi returneringsværdierne for transaktioner kun er transaktionerne hashede, fordi det tager lidt tid for blockchain at nå konsensus og validere transaktionerne ved at udvinde dem til nye blokke. Ved at udsende begivenheder og lade frontenderne lytte (se) til disse begivenheder opnås effektiv kommunikation.

  1. Q) Hvad er kortlægningerne?
  2. EN) Kortlægning svarer til en ordbog eller et kort på andre programmeringssprog. Det er nøgle-til-værdi-opbevaring.

  1. Q) Hvad er formålet med modifikatorer?
  2. EN) Som navnet antyder; de ændrer de funktioner, der bruger dem. Modifikatorens betingelser skal dog være opfyldt, før funktionen udføres. Hvis ikke, så modifikatorerne kaster en fejl.

  1. Q) Hvad er Ethereum-biblioteker?
  2. EN) Ethereum-biblioteker hjælper med at isolere integrerede stykker logik. De er en gruppe af pakker, der er bygget til brug på blockchains, der bruger Ethereum Virtual Machine (EVM). Alle biblioteker er implementeret og linkbare i dine smarte kontrakter. De kan ringes op via DELEGATECALL.

  1. Q) Hvorfor koster det penge at påberåbe sig en metode på en smart kontrakt?
  2. EN) Når metoder påberåbes, ændrer de blockchain-tilstanden. Da operationen kræver gas, koster det penge.

Hvor kan du finde gode udviklere?

Det er svært at finde gode udviklere på “traditionelle steder” som LinkedIn og Google. Reddit, GitHub osv. Er dog gode steder at finde disse udviklere.

Der er desuden en ting mere. Da dette er sådan et nichetalent, bør du være åben for, at de måske er i din by eller endda dit eget land. Du bør sørge for job til fjernplacering, især hvis du leder efter afgrødecremen.

Det kan være smertefuldt, men dette er en af ​​disse “kvalitet frem for kvantitet” ting.

Sådan ansætter du Ethereum-udviklere: Konklusion

Når du interviewer Ethereum-udviklere, skal du huske en ting. Det er ikke nødvendigt, at de besvarer alle spørgsmålene grundigt. Det, der betyder noget, er deres lidenskab, og om de specifikt var i stand til at besvare de spørgsmål, der vedrører deres job og rolle.

Under alle omstændigheder bør denne guide hjælpe dig med at nulstille fantastiske blockchain-udviklere. Bare et sidste ord. Venligst kompromis ikke med kvaliteten af ​​udviklerne. Husk, kvalitet vil altid trumfe kvantitet.

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