Autoritatīvs ceļvedis blokķēdes attīstībai

Kriptovalūtas, ICO, burvju interneta nauda - tas viss ir tik sasodīti aizraujoši, un jūs, dedzīgais izstrādātājs, vēlaties iekļūt trakumā. Ar ko sākt?

Es priecājos, ka jūs esat satraukti par šo vietu. Es arī. Bet jūs droši vien atradīsit, ka nav skaidrs, ar ko sākt. Blokķēde pārvietojas ar milzīgu ātrumu, taču nav skaidras virzības uz šo lietu apgūšanu.

Kopš es aizgāju no Airbnb, lai strādātu pilnu slodzi ar blokķēdi, daudzi cilvēki ir vērsušies pie manis un jautājuši, kā nokļūt pilna laika blokķēdes telpā. Apsveriet šo manu autoritatīvo (un neizbēgami nepilnīgo) ceļvedi par to, kā iekļūt blokķēdes inženierijā.

Šī rokasgrāmata turpināsies desmit daļās:

  1. Kāpēc jums vajadzētu iemācīties blokķēdes attīstību?
  2. Priekšnoteikumi
  3. Bitcoin teorētiskie pamati
  4. Pats izveidojiet blokķēdi
  5. Ethereum un gudra līgumu plānošana
  6. Gudra līguma drošība
  7. Treniņa riteņu noņemšana
  8. Veidot savus projektus
  9. Pārvietošanās blokķēdes kopienā
  10. Darba iegūšana

Kāpēc jums vajadzētu iemācīties blokķēdes attīstību?

Pirms atbildu uz šo jautājumu, ļaujiet man vispirms atzīmēt: blokķēde šobrīd ir masveidā pārvērtēta telpa. Šīs cenas nav ilgtspējīgas, un noteikti nāk katastrofa. Tas viss ir noticis iepriekš, un, iespējams, atkārtosies. Bet, ja jūs ilgstoši strādājat šajā telpā, jūs iemācīsities samazināt cenas. Pēc Emina Guna Sirera vārdiem - cenas ir vismazāk interesanta kriptovalūtu daļa. Tās ir ļoti svarīgas tehnoloģijas, un tās neatgriezeniski mainīs pasauli.

Ja neesat pārliecināts, es nevaru pateikt, vai jums vajadzētu ielēkt. Bet es varu pateikt piecus iemeslus, kas mani pārliecināja veikt lēcienu:

  1. Vēl ir agri.

Bitcoin tika izgudrots pirms 10 gadiem, bet jauninājumu līmenis drudža līmeni sasniedza tikai pēdējos pāris gados, it īpaši ar Ethereum izlaišanu 2015. gadā. Lielākā daļa jauno uzņēmumu un ideju šajā telpā ir uzbūvēti Ethereum, kas joprojām ir ļoti nenobriedis.

Pat ja jūs sākat tūlīt, dažu gadu laikā jūs reāli varat kļūt par pasaules līmeņa ekspertu. Lielākā daļa cilvēku vienkārši to nav darījuši tik ilgi, un to nebūs tik grūti panākt. Sākt tagad būtu līdzīgi padziļinātas izglītības ekspertiem, kuri šo tēmu sāka pētīt 2000. gadu beigās.

2. Šai vietai vēl nav spēcīgas talantu piltuves.

Lielākā daļa labāko un spilgtāko studentu universitātēs koncentrējas uz mašīnmācīšanos, tīmekļa programmēšanu vai spēļu izstrādi. Protams, blokķēdes kļūst arvien seksīgākas publiskajā diskursā, taču tās joprojām ir dīvaina un graujoša tēma, par kuru jūs domājat par savu karjeru.

Sākumā blokķēde bija ekskluzīvi cypherpunks, paranojas un dīvaiņu valstība. Tas tikai nesen sāka mainīties. Vienkārši, būdams ziņkārīgs un atvērts domātājs, jūs radīsit lielu vērtību telpā.

3. Liela daļa jauninājumu notiek ārpus akadēmiskās vides.

Cik zināms, Satoshi Nakamoto nebija akadēmiķis. Vēl nav nevienas universitātes vai iestādes, kas piedāvā saskaņotu blokķēdes koncentrāciju. Lielāko daļu jauninājumu šeit ir vadījuši entuziasti, uzņēmēji un neatkarīgi pētnieki. Gandrīz viss, kas jums jāzina, ir baltajās grāmatās, emuāru ierakstos, publiskajos Slack kanālos un atvērtā koda programmatūrā. Viss, kas nepieciešams, ir uzrādīt piedurknes un ielēkt cīņā.

4. Pieprasījums pēc talantiem krietni, tālu pārsniedz piedāvājumu.

Šajā telpā vienkārši nav pietiekami daudz izstrādātāju, un viņi nevar pietiekami ātri apmācīties. Visi sacenšas, lai algotu blokķēdes talantus, un projekti jūt talantu krīzi. Daudzi no labākajiem uzņēmumiem nespēj pietiekami maksāt saviem cilvēkiem par palikšanu, jo viņiem ir pārāk daudz iespēju. Ja jūs iegūsit dažas prasmes zem jostas, būs viegli atrast darbu.

5. Kriptovalūtas ir vienkārši sasodīti foršas.

Kur vēl jūs varat veidot zinātniskās fantastikas materiālus, piemēram, kriptogrāfiski nodrošinātu, decentralizētu naudu? Šobrīd ir savvaļas rietumi - un tas nes labu un sliktu. Vieta varētu izmantot lielāku pārredzamību, un galu galā nāks regulējums. Bet, bez šaubām, kriptonauda ir viena no novatoriskākajām jomām, kurā jūs varat strādāt tieši tagad.

Naval Ravikant nesenā intervijā teica: panākumu atslēga ir dot sabiedrībai lietas, kuras tā vēlas, bet nezina, kā tikt pie pašas. Jūs nevarat iet uz skolu par šādām lietām; ja jūs varētu, pasaule jau to pastāvīgi piegādātu.

Tāpēc uzbūvējiet kaut ko tādu, ko neviens cits nezina. Šobrīd blokķēdes ir pavisam jaunas, un vēl ir tik daudz, lai izdomātu. Ja jums izdosies izveidot decentralizētu tehnoloģiju nākotni, pasaule jūs atalgos ar lielu atdevi.

Tāpēc sakiet, ka vēlaties iemest cepuri. Kas jums jāzina, pirms nokļūstat ringā?

Priekšnoteikumi

Es iesaku uzlabot savu izpratni par pamatiem, pirms jūs ienirt tālāk. Blokķēdes tiek veidotas gadu desmitiem ilgā datorzinātņu, kriptogrāfijas un ekonomikas izpētē. Satoshi Nakamoto bija renegāts, taču viņš labi pārzināja arī vēsturi, kas bija pirms viņa. Lai saprastu, kāpēc darbojas blokķēdes, jums ir jāsaprot to pamatelementi - kas notika pirms blokķēdēm un kāpēc šīs lietas nedarbojās.

Šeit ir daži labi priekšnoteikumi, kas jāzina svarīguma secībā.

Ņemiet vērā, ka šīs saites ir tikai sākumpunkts, iespējams, vēlēsities ienirt dziļāk par daudzām no šīm tēmām.

Datorzinātne

Datu struktūras

Jūs vēlaties iepazīties ar galveno datu struktūru īpašībām un sarežģītības garantijām: saistītie saraksti, binārie meklēšanas koki, jaukšanas kartes un grafiki (konkrēti, vērsti acikliskie grafiki, kas labi redzami blokķēdēs). Tas palīdz tos uzbūvēt no nulles, lai labāk izprastu to darbību un īpašības.

Kriptogrāfija

Kriptogrāfija ir kriptovalūtu vārdabrāle un pamatakmens. Visas kriptovalūtas izmanto publiskās / privātās atslēgas kriptogrāfiju kā identitātes un autentifikācijas pamatu. Es iesaku studēt RSA (to ir viegli iemācīties un tam nav nepieciešams ļoti spēcīgs matemātikas fons), pēc tam apskatiet ECDSA. Eliptiskās līknes kriptogrāfijai nepieciešama ievērojami abstraktāka matemātika - nav svarīgi izprast visas detaļas, taču ziniet, ka šī ir kriptogrāfija, kas tiek izmantota lielākajā daļā kriptovalūtu, ieskaitot Bitcoin.

Otra svarīgā kriptogrāfiskā primitīva ir kriptogrāfiskā jaucējfunkcija. Tos var izmantot, lai izveidotu saistību shēmas, un tie ir Merkles koku celtniecības elements. Merkle koki ļauj Merkle korektūras, viena no galvenajām optimizācijām, ko blokķēdes izmanto mērogošanai.

Izplatītās sistēmas

Par izplatītajām sistēmām ir dažas labas mācību grāmatas, taču tā ir plaša un grūta mācību joma. Izplatītās sistēmas ir absolūti nepieciešamas, lai spriestu par blokķēdēm, tāpēc pirms ķerties pie blokķēdes programmēšanas, šeit ir jāveido pamats.

Kad vairs nedzīvojat ar vienu mašīnu, jums jāsāk domāt par konsekvenci un vienprātību. Jūs vēlaties uzzināt atšķirību starp linearizējamiem un iespējamiem konsekvences modeļiem. Jūs arī vēlaties uzzināt garantijas pret kļūdām izturīgiem vienprātības algoritmiem, piemēram, Paxos un RAFT. Zināt, cik sarežģīti ir argumentēt laiku sadalītajā sistēmā. Novērtējiet kompromisus starp drošību un dzīvīgumu.

Ņemot to vērā, jūs varēsiet saprast grūtības, kas saistītas ar Bizantijas kļūdu tolerantu vienprātību, kas ir primārā publisko blokķēžu drošības prasība. Jūs vēlaties uzzināt par PBFT, kas ir viens no pirmajiem pielāgojamiem algoritmiem, kas nodrošina bizantiešu kļūdu tolerantu vienprātību. PBFT ir pamats daudziem blokķēdes vienprātības algoritmiem, kas nav darba pierādījumi. Vēlreiz jums nav jāsaprot sīkāk par to, kā un kāpēc PBFT ir pareizs, bet gan iegūstiet vispārējo ideju un tās drošības garantijas.

Ir arī ļoti noderīgi izprast tradicionālās datubāzu izplatīšanas metodes (bloku ķēdes tomēr ir datu bāzes). Uzziniet par sadalīšanu (piemēram, izmantojot konsekventu jaukšanu), līdera un sekotāja replikāciju un apņemšanos, kas balstīta uz kvorumu. Izpētiet izplatītās jaukšanas tabulas (DHT), piemēram, Chord vai Kademlia.

Tīklošana

Blokķēdes decentralizācija lielā mērā izriet no viņu vienādranga tīkla topoloģijas. Tādējādi blokķēdes ir bijušo P2P tīklu tiešie pēcteči.

Lai saprastu blokķēdes komunikācijas modeli, jums ir jāsaprot datortīkla pamati: tas nozīmē izprast TCP pret UDP, pakešu modeli, kā izskatās IP paketes un aptuveni to, kā darbojas interneta maršrutēšana.

Publiskās blokķēdes mēdz izplatīt ziņojumus, izmantojot tenkas protokolus, izmantojot plūdus. Ir pamācoši uzzināt P2P tīkla dizaina vēsturi, sākot no Napster līdz Gnutella, BitTorrent un Tor. Blokķēdēm ir sava vieta, taču tās izmanto šo tīklu mācības un to izstrādi.

Ekonomika

Kriptonauda pēc būtības ir daudznozaru - tā ir daļa no tā, kas padara tās tik aizraujošas un radikālas. Līdztekus datorzinātnēm, kriptogrāfijai un tīklošanai tie ir arī cieši saistīti ar ekonomiku. Kriptovalūtas var iegūt daudzas drošības īpašības, izmantojot ekonomisko struktūru, ko bieži dēvē par kriptokonomiku . Ekonomika ir būtiska, lai izprastu kriptovalūtas.

Spēļu teorija

Vissvarīgākā ekonomikas nozare, kas spēlē kriptovalūtās, ir spēļu teorija, izmaksu un stimulu izpēte starp vairākiem aģentiem. Šeit jums nav jāiet īpaši dziļi, taču jums ir jāsaprot spēļu teorētiskās analīzes pamatinstrumenti un tas, kā jūs varat tos izmantot, lai analizētu stimulus vienā kadrā un atkārtotajās spēlēs.

Diviem galvenajiem jēdzieniem jūsu repertuārā jābūt Neša līdzsvaram un Šelinga punktiem, jo ​​tie ir skaidri redzami kriptoekonomiskajā analīzē.

Makroekonomika

Kriptovalūtas nav tikai protokoli, tās ir arī naudas formas. Kā tādi viņi reaģē uz makroekonomikas likumiem (ja tos var saukt par likumiem). Uz kriptovalūtām attiecas atšķirīga monetārā politika, un tās paredzami reaģē uz inflāciju un deflāciju. Jums vajadzētu saprast šos procesus un to ietekmi uz tēriņiem, ietaupījumiem utt.

Vēl viens vērtīgs ekonomiskais jēdziens ir naudas ātrums, it īpaši tāpēc, ka tas atbilst valūtas vērtēšanai.

Mikroekonomika

Kriptovalūtas ir arī dziļi saistītas ar tirgiem, kas prasa izpratni par mikroekonomiku. Piedāvājuma un pieprasījuma līknēm jums būs nepieciešama spēcīga intuīcija. Jums vajadzētu būt iespējai pamatot par konkurenci un alternatīvajām izmaksām (tās bieži attieksies uz kriptovalūtas ieguvi). Daudziem monētu izplatījumiem un kriptokonomiskām sistēmām izsoles teorija ir skaidri redzama.

Es ceru, ka jūs jau iepazīsit dažas no šīm tēmām. Ja esat, nekautrējieties tos pilnībā izlaist vai izlaist.

Labi, līdz šim jūs esat izgājuši cauri un uzlabojuši savus pamatus (vai varbūt esat izlaidis baru, kurš skaita?), Tāpēc tagad, kad jūsu teorija ir pārbaudīta, sāksim darbu ar blokķēdes attīstību.

Bitcoin teorētiskie pamati

2008. gada oktobrī Satoshi Nakamoto publicēja balto grāmatu, kurā viņš aprakstīja decentralizētas digitālās valūtas protokolu. Viņš nosauca šo protokolu par Bitcoin.

Pirms jūs varat saprast lielās idejas, kas slēpjas blokķēdēs, jums jāsāk ar Bitcoin un jāsaprot Satoshi sākotnējais ieskats.

Pirmkārt, es iesaku veidot savas intuīcijas par darba pierādīšanu un dakšu izvēles likumu (pazīstams arī kā Nakamoto konsenss). Sāc šeit:

Es iesaku noskatīties vairāk nekā vienu video paskaidrojumu, lai ideja tiktu iespiesta galvā:

Lieliski. Tagad, kad esat izveidojis savu intuīciju, šis raksts sniegs dziļāku kritisko komponentu ekspozīciju par to, kā darbojas Bitcoin.

Pats izveidojiet blokķēdi

Tagad, kad jums ir augsta līmeņa intuīcija, ir pienācis laiks izveidot savu blokķēdi, kas balstīta uz darbu. Neuztraucieties, tas ir vieglāk, nekā izklausās. Šeit ir daži labi resursi.

Pirmkārt, man ir video lekcija, kurā es precīzi pārskatu, kā to izdarīt Ruby (es iesaku skatīties, pat ja jūs neesat Ruby programmētājs):

Avots un slaidi šeit.

Ir arī citas atrastās bloku ķēdes realizācijas, kas rakstītas dažādās programmēšanas valodās. Turpiniet veidot savu, un pārliecinieties, ka tas galvenokārt ir funkcionāls.

Kad esat to paveicis tik tālu, jums vajadzētu labi saprast, kā ieviest vienkāršu maksājumu lietojumprogrammu blokķēdes (ti, Bitcoin) augšpusē. Jums arī vajadzētu būt pietiekamam fonam, lai jūs spētu izlasīt un saprast oriģinālo Bitcoin dokumentu.

Lai izprastu Bitcoin ieguves ekonomiku un mehāniku, iesaku noskatīties lekciju par Bitcoin ieguvi Bitcoin un Cryptocurrencies Princeton kursā.

Ja esat nonācis tik tālu, jums vajadzētu saprast Bitcoin pietiekami labi, lai izietu cauri Bitcoin bloka galvenei un saprastu, ko nozīmē katrs no tā komponentiem. Jums vajadzētu būt iespējai spēlēt arī ar Bitcoin bloku meklētāju un orientēties neapstrādātos Bitcoin darījumos.

Tagad ir piemērots laiks, lai izpētītu Bitcoin un kriptovalūtu vēsturi. Zemāk esošais video, ko piedāvā UC Berkeley Decal, sniedz labu pārskatu.

Vēl daži papildu kredīta resursi:

  • Akadēmiskie Bitcoin priekšteči
  • Bitcoin mehānika: UTXOs un Bitcoin skripts (Bitcoin skripts nav īpaši svarīgs, tikai apmēram jāzina, ko tas var darīt)
  • Īss Bitcoin dakšu ceļvedis
  • Mīkstas dakšas un kalnraču signalizācija
  • Divkārši tēriņi, 51% uzbrukumu un savtīga ieguve
  • Atkārtot uzbrukumus
  • Bitcoin mērogojamības problēmas, kas ir lielākās strīdus avots Bitcoin ekosistēmā. Jums vajadzētu būt idejai par to, kāpēc Bitcoin ļaudis tik daudz strīdas par bloka lielumu.
  • Nodalīts liecinieks, aka SegWit, nav būtisks, bet tas nāk ļoti daudz.
  • Zibens tīkls, viens no svarīgākajiem Bitcoin mērogošanas risinājumiem, arī vispārina citus blokķēdes
  • Bitcoin pilni mezgli, Bitcoin maksas statistika, diagrammas, diagrammas un citas diagrammas
  • Bitcoin enerģijas patēriņa indekss (publicēšanas laikā Bitcoin ieguve patērē tikpat daudz enerģijas kā visa Peru)
  • Gvernas ieskatīga eseja par sīko Bitcoin neeleganci
  • Jameson Lopp ir daudz citu resursu Bitcoin, ja vēlaties iet dziļāk trušu caurumā.

Ethereum un gudra līgumu plānošana

Tagad, kad esat izveidojis blokķēdi un saprotat Bitcoin dinamiku, ir pienācis laiks iedziļināties Ethereum.

Jūs saprotat, kā blokķēdes un darba pierādīšana var panākt izplatītu, bizantiešu kļūdu tolerantu vienprātību vienādranga tīklā. Bet maksājumu tīkls ir tikai viena lietojumprogramma, kuru varat palaist virs šāda blokķēdes. 2013. gadā Ethereum veidotājs Vitāliks Buterins jautāja: kā būtu, ja jūs izmantotu blokķēdi decentralizēta datora ieviešanai?

Programmā Ethereum jūs maksājat kalnračiem, lai viņi izpildītu jūsu programmas šajā izplatītajā virtuālajā mašīnā. Tas nozīmē, ka jūs varat veikt patvaļīgus aprēķinus, izmantojot pilnīgu Turinga programmēšanas valodu (atšķirībā no Bitcoin skripta). Acīmredzot tas ietver arī ar maksājumiem saistītas lietojumprogrammas, tāpēc Ethereum ļauj izveidot Bitcoin funkcionalitāti un ir radījis inovāciju renesansi.

Tas mūs noved pie viedajiem līgumiem - nosaukuma programmām, kas darbojas ar šādu virtuālo mašīnu. Vieds līgums var tieši mijiedarboties ar blokķēdes kriptovalūtu saskaņā ar programmas izpildi. Citiem vārdiem sakot, jūs varat izveidot finanšu līgumus, kas automātiski izpilda sevi. Tā ir mežonīga ideja, un visdažādākie zinātniskās fantastikas futūristiskie izstrādājumi, ko varat darīt, kad esat pieņēmis šo programmēšanas modeli.

Ethereum ir iespējojis ICO un izstrādātāju vilni, kas veidojas virs blokķēdes. Tā ir otra lielākā kriptonauda aiz Bitcoin, tai ir vairāk nekā 10 reizes nākamās populārākās platformas izstrādātāji, tai ir visspēcīgākā izstrādātāju komanda, visbriedīgākie instrumenti un lielākā daļa SIO un projektu. Tam ir arī vislielākais nozares atbalsts, kas iet tālu. Visticamāk, ja jūs veicat blokķēdes izstrādi, jūs rakstīsit kodu Ethereum viedajiem līgumiem. (Pat ja jūs neesat, tas ir svarīgi, lai saprastu, kas notiek šajā telpā.)

Pirmkārt, detalizētāks augsta līmeņa Ethereum skaidrojums:

Ethereum idejas ir radījušas arī inovāciju vilni kriptokonomikā. Jums vajadzētu iemērkt pirkstus idejās ap DAO un visiem zinātniskās fantastikas drudža sapņiem, par kuriem viņi norāda.

Labi, ar to pietiek fantāzijas, iedziļināsimies tehnikā.

Šeit ir labs pārskats par Ethreum dzelteno papīru un tā iekšpusi, ko izstrādājis Preethi Kasireddy. Ethereum izmanto konta modeli, nevis Bitcoin UTXO modeli - drīz jūs redzēsiet, kāpēc tas atvieglo viedo līgumu rakstīšanu.

Tāpat kā ar jebkuru tehnoloģiju, labākais veids, kā iepazīties ar Ethereum, ir dažu nelielu projektu veidošana.

Ethereum dominējošā programmēšanas valoda ir Solidity, kas ir statiski ierakstīta JavaScript valodas valoda. Tā ir valoda, kurā ir daudz kārpu un daudz apšaubāmu dizaina izvēli. Stingrākas valodas, piemēram, Viper, to var aizstāt, tiklīdz tās būs gatavas ražošanai, taču pašlaik Solidity ir viedās līgumu programmēšanas lingua franca. Būtībā tas ir Ethereum JavaScript, tāpēc jums tas būs jāapgūst (un tā nepilnības).

Lai pirmo reizi iepazītos ar Solidity attīstību, es iesaku izmantot visu CryptoZombies apmācību. Tā ir apburoša un kvalitatīva Codecademy raksturīga apmācība, kas iemācīs Solidity programmēšanas pamatus.

Tagad, kad esat uzmundrinājis apetīti, ir pienācis laiks attīstīties pašam.

Ethereum “sveika pasaule” veido ERC-20 atbilstošu marķieri. Es iesaku šo rokasgrāmatu kā pirmo pamācību, lai iepazīstinātu jūs ar procesu.

Remix ir pārlūkprogrammā ievietots Solidity redaktors un kompilators - būtībā tas ir Ethereum izstrādes apmācības riteņi, tāpēc es iesaku pārstrādāt visu pārējo savu praksi Remix. Bet ir arī vērts izveidot vietējo blokķēdi un izprast Ethereum instrumentus. Šī apmācība ir labs darbs, ejot jums cauri bloku ķēdes galam līdz galam un izskaidrojot gabalus, kad tie iet.

Tālāk es ieteiktu izveidot balsošanas sistēmu. Es to sauktu par Todo App Ethereum. Karlam Floersam ir lieliska apmācība, kurā viņš iepazīstas ar to, kā izveidot drošu apņemšanās-atklāšanas balsojuma sistēmu.

Lieliski, tagad jūsu vidusposma eksāmens: izveidojiet drošu monētu mētāšanas spēli, kur divi spēlētāji var droši likt likmi uz monētas pārsegu. Šoreiz nav apmācības, dariet to pats. Padomājiet par iespējamiem uzbrukumiem - kā spēlētāji var krāpties? Vai varat nodrošināt, ka viņi spēlē godīgi? Šeit ir daži padomi.

Gudra līguma drošība

Drošība ir absolūti nepieciešama blokķēdes attīstībai. Viedos līgumus ir nomocījuši katastrofāli uzlaušanas gadījumi, tostarp DAO uzlaušana, Parity Wallet hack un mīļi nosauktais Parity Wallet hack 2 (tagad ar savu T-kreklu). Jums būs jāizlasa visu šo triecienu analīze, ja jūs gatavojaties rakstīt viedos ražošanas līgumus.

Patiesība ir tāda, ka viedos līgumus ir ārkārtīgi grūti panākt . Lai gan programmēšanas rīku ķēde uzlabosies, lai šos precīzos uzbrukumus padarītu grūtākus, galu galā tos visus izraisīja programmētāja kļūda. Ir arī daudz smalkāku kļūdu, kas rodas no viedās līgumu programmēšanas, piemēram, priekšplānā vai drošā nejaušības ģenerēšanā.

Kā viedam līgumu izstrādātājam jums ir jāuzskata drošība par vissvarīgāko. Viedajā līgumu plānošanā nav “ātri pārvietojieties un salauziet lietas”. Tas nozīmē, ka jebkuram kodam, kas apstrādā ievērojamas naudas plūsmas, vajadzētu darboties, izmantojot tādus statiskos analizatorus kā Oyente vai Securify, rūpīgi pārbaudīt un pēc tam pārbaudīt pieredzējušam viedo līgumu auditoram. Jums vajadzētu arī mēģināt paļauties uz iepriekš pārbaudītām sastāvdaļām, piemēram, OpenZeppelin atvērtā pirmkoda līgumiem.

Lai stiprinātu jūsu drošības jostas, es iesaku strādāt caur The Ethernaut by OpenZeppelin - spēli, kurā atrodat un uzbrūkat viedo līgumu ievainojamībām. Daudziem no viņiem esat atkārtojis reālus uzbrukumus viedajiem līgumiem, kas notikuši savvaļā.

Phil Daian ir arī lielisks viedo līgumu uzlaušanas problēmu kopums, ko sauc par Hack This Contract.

Kad esat to paveicis, es ļoti iesaku izlasīt ConsenSys apkopoto viedo līgumu paraugpraksi. Sagaidiet, ka savā viedo līgumu programmēšanas karjerā daudzas reizes atkārtoti apmeklēsit šo dokumentu. Bibliogrāfiju ir vērts izpētīt arī turpmākai drošības ekspertu lasīšanai.

Treniņa riteņu noņemšana

Ja esat to paveicis tik tālu, tagad jums vajadzētu būt gatavam pāriet no Remix un sākt izmantot nopietnu Solidity izstrādes kaudzi.

Lielākā daļa izstrādātāju teksta redaktoram iesaka VSCode vai Atom, jo ​​viņiem ir pienācīgi spraudņi Solidity. Lai mijiedarbotos ar vietējo blokķēdi, vēlēsities izmantot Ganache (agrāk TestRPC), kā arī trifeļu ietvaru (JS bāzes) testiem un būvniecības cauruļvada konfigurēšanai.

Tagad ir piemērots laiks, lai izpētītu IPFS, kuru varat izmantot kā pilnībā decentralizētu failu glabātuvi par daudz lētākām izmaksām nekā Ethereum blokķēde. Šeit ir īss autora Juan Benet paskaidrojums:

Mijiedarbībai ar Ethereum un IPFS pilnajiem mezgliem Infura ir tas, ko iesaka lielākā daļa izstrādātāju. Etherscan un ETH degvielas uzpildes stacija nodrošina reāllaika noderīgu statistiku Ethereum tīklā.

Kad esat iestatījis pilnu Web3 kaudzīti, mēģiniet izvietot end-to-end Dapp (decentralizētu lietojumprogrammu). Šī apmācība sniedz jauku pilnas kaudzes pārskatu, izmantojot Nend un Postgres aizmugurē, un šī apmācība parādīs, kā izveidot pilnībā decentralizētu lietojumprogrammu, izmantojot IPFS kā savu noturības slāni.

Veidot savus projektus

Tagad jums vajadzētu būt apmierinātam ar lielāko daļu tehnoloģiju - kas paliek, ir sākt veidot lietas un iedziļināties blokķēdes kopienā.

Pirmkārt, sāciet veidot savus projektus. Ja ir kāda lieliska ideja, par kuru jūs esat sajūsmā, ejiet, veidojiet to un pārlieciniet citus, lai jūs ar to uzlauztu! Ja jums vēl nav idejas vai jums nav ērti sasmērēt rokas, ir daudz augstas kvalitātes atvērtā pirmkoda projektu, kas atzinīgi vērtē ieguldījumu. OpenZeppelin varētu būt laba vieta, kur sākt gudrus līgumus.

Vēl labāk, es iesaku sākt ar atrastu aktīvi izstrādātu projektu, kura cienītājs jūs esat. Uzkāpiet uz viņu Slack vai Rocketchat - izstrādātāji parasti ir viegli pieejami. Pasakiet viņiem, ka vēlaties piedalīties, un lūdziet veikt nelielus uzdevumus (vai atrodiet neatrisinātus jautājumus savā Github vietnē).

Ņemiet vērā, ka, kamēr esmu koncentrējies uz protokoliem un viedo līgumu izstrādi, bloku ķēdes uzņēmumiem ir nepieciešami tīmekļa izstrādātāji, lai izveidotu savu pamatfunkciju. Šīm lomām bieži būs nepieciešama mijiedarbība ar blokķēdēm, tāpēc ir svarīgi, lai būtu labs garīgais modelis par to, kā darbojas blokķēdes, taču daudziem bloku ķēdes starta inženieriem lielākā daļa jūsu darba būs Python tīmekļa servera izveidošana vai React priekšgala projektēšana, un mijiedarbība ar blokķēdi var būt maza šī darba sastāvdaļa. Jums nav jākoncentrējas uz viedo līgumu izstrādi - patiesībā tā ir tikai viena darba blokķēdes kaudzes daļa.

Papildus atvērtā pirmkoda ieguldījumiem pastāvīgi parādās arī daudzi blokķēdes hakatoni. Lielākajai daļai projektu ir bezmaksas publisks Slack, kuram varat pievienoties, un pašam Ethereum ir ļoti aktīvs Gitter kanāls, kurā ir daudz devu. Dodoties dziļāk kosmosā, jūs galu galā atradīsit savu vienaudžu grupu neatkarīgi no tā, vai tas ir Slack kanālā, Telegram grupas vai Gitter kanālā. Lai kur tas atrastos, atrodiet savus cilvēkus un turpiniet mācīties.

Pārvietošanās blokķēdes kopienā

Labākais veids, kā patiešām saprast blokķēdes pasauli, ir iegremdēties tajā. Lasiet un klausieties gudrākos cilvēkus, īpaši tos, ko viņi ir rakstījuši agrāk. Šī vienmēr ir bijusi mana stratēģija, mēģinot apgūt jaunu domēnu, un tā man izmaksāja dividendes.

Tur ir daudz laba blockchain satura, bet ir arī daudz crap. Lūk, ieteicamā informatīvā diēta.

Mediji

Trīs fantastiskās iesūtītās podkastus ir Software Engineering Daily Blockchain intervijas, kas nodrošina labu tehnisko ievadu daudzām tēmām un kriptovalūtām. No turienes es iesaku Epicenter un Unchained - jūs vēlaties atgriezties un klausīties daudzas vecākās epizodes. Vēl viens interesants topošais tehniskais apraide ir Conspiratus. Es ieteiktu abonēt katru no šiem.

Ir daži labi Youtube kanāli (kaut arī Youtube ir daudz atkritumu). Abonējiet Ethereum Foundation un skatieties Devcon3 prezentācijas. Berkeley Blockchain ieraksta daudzas savas lekcijas, no kurām lielākā daļa ir izcili tehniski pārskati. Decypher Media ievieto arī sarunas, pārskatus un konsultācijas. Džeksonam Palmeram ir aizraujoši iknedēļas pārskati, tie ir mazāk tehniski, bet ļoti vienmērīgi.

Tiešsaistes lasīšana

Reāllaika blokķēdes pļāpāšanai tas galvenokārt dzīvo divās vietās: Reddit un Twitter. Reddit vairumam subreddits ir ļoti zemas kvalitātes un dominē troksnis. r / Ethereum ir nemainīgi pienācīgas kvalitātes (un konkrētām kriptovalūtām ir daži labi subredditi). Lai gan lielākajā daļā subredditu galvenokārt dominē spekulanti, un tie neder jūsu uzmanībai. Palieciet prom no ar Bitcoin saistītiem subreddits. Bitcoin pazīstami ir viena no toksiskākajām kopienām, un Reddit to tikai palielina.

Twitter ir vairāk jaukts maiss. Labā vai sliktā gadījumā lielākā daļa cilvēku no blokķēdēm dzīvo čivināt. Sākotnēji Blockchain Twitter man zināmā mērā bija noslēpums, bet galu galā es izveidoju neoficiālu čivināt blockchain cilvēku ontoloģiju. Pēc manas pieredzes ir pieci blokķēdes personību veidi: celtnieki, uzņēmēji, žurnālisti, tirgotāji un “domu līderi”.

Izvairieties no “domu līderiem”, piemēram, mēra. Uzņēmējiem var būt viss kārtībā, lai gan viņi galvenokārt darbojas kā uzmundrinoši vīrieši vai čivina par saviem projektiem. Investori galvenokārt čivina par cenām un hype-y projektiem, tāpēc, ja tā ir jūsu lieta, tā ir jūsu lieta. Žurnālisti mēdz čivināt par galvenajiem dienas jaunumiem - es iesaku turēties prom, ja vien jums nav nepieciešama reāllaika analīze, kas jums, iespējams, nav. Ja esat aktīvs tirgotājs, tas varētu būt svarīgi, taču, ja jūs mēģināt balstīties uz blokķēdi, lielākā daļa reāllaika lietu ir uzmanības novēršana.

Vislielāko uzmanību pievērsiet celtniekiem. Viņi ir cilvēki, kuriem šobrīd ir vislielākā nozīme un kuri virzās uz priekšu tehnoloģijas.

Daži pārstāvji no katras kategorijas (vispirms veiciet meklēšanu, kam šie cilvēki seko, ja vēlaties aizpildīt savu Twitter plūsmu):

Celtnieki

  • Vitāliks Buterins, Ethereum
  • Zooko Wilcox, ZCash
  • Niks Szabo, viedo līgumu izgudrotājs
  • Vlads Zamfirs, Ethereum
  • Marko Santori, Cooley LLP
  • Rikardo “pūkains” Spagni, Monero
  • Mets Listons, Gnosis

Uzņēmēji

  • Balaji Srinivasan, Earn.com
  • Ēriks Voorheess, Shapeshift

Investori

  • Naval Ravikant, MetaStable
  • Ari Paul, Blocktower Capital
  • Linda Xie, Scalar Capital
  • Kriss Burniske, Placeholder

Žurnālisti

  • Tuur Demeester, Adamant Research
  • Laura Šīna, Forbes

(Jums vajadzētu arī sekot man, lai gan es noteikti nepieder pie šī saraksta.)

Viss, kas teica, es iesaku samazināt jūsu Twitter un Reddit iedarbību. Ja jūs neesat žurnālists vai dienas tirgotājs, visticamāk, jums nav nepieciešama reāllaika pļāpāšanas kurtuve. Asinhroni jums parādīsies svarīga informācija. Ir vairāki labu ziņu apkopojumi, kas apkopos svarīgākos dienas / nedēļas jaunumus, kurus varat patērēt savā laikā, neatrodoties uzmanības tirgu žēlastībā.

Es iesaku abonēt Inside Bitcoin ikdienas svarīgāko kriptogrāfisko ziņu apkopošanai (tas aptver ne tikai Bitcoin). Žetonu projektiem Token Economy ir lielisks iknedēļas pieraksts, un Week Ethereum ir labi pārdomāti Ethereum ekosistēmā vērsti notikumi.

Turklāt jums, iespējams, nav jāuzrauga reāllaika ziņas. Koncentrējieties uz lietu veidošanu un mācīšanos.

Jūs vēlaties sekot labākajiem emuāriem. Garās formas saturs parasti ir labākais sprādziens. Es iesaku sekot šiem:

  • Vitalik Buterin par izcilu blokķēdes un kriptoekonomikas analīzi (izlasiet arī visus savus vecākos emuāra ierakstus, Vitalik tiek plaši uzskatīts par domātāju vienreiz paaudzē)
  • Datorurķēšana, Kornela pētnieku izplatīta blokķēdes drošības analīzēm
  • Nenumurēts Nika Szabo gaismas emuārs ar izaicinošām un eklektiskām esejām par kriptovalūtu lomu sabiedrībā
  • Money Stuff, Matt Levine's Bloomberg sindikācija, ar griešanu un ieskatu analīzi, kas skar tirgus, finanšu un blokķēdes jaunumu krustojumu
  • Vladam Zamfiram par rūdītām un piesardzīgām perspektīvām attiecībā uz valsti un sabiedrības blokķēdēm
  • Kriss Burniske par virkni izcilu emuāra ziņojumu par to, kā novērtēt kriptogrāfijas aktīvus
  • Jameson Lopp par viņa lieliskajiem tehniskajiem ierakstiem no programmatūras inženiera viedokļa, veidojot blokķēdes ekosistēmu
  • Tim Swanson lieliskā skaitļu siena par prātīgu un neatlaidīgu blokķēdes mānijas dekonstrukciju, īpaši uzņēmuma telpā

(Jums vajadzētu izlasīt arī manu emuāru, lai gan atkal es nepieder pie šī saraksta.)

Grāmatas un kursi

Ja vēlaties strukturētāku pieeju šī materiāla apguvei, tur ir dažas augstas kvalitātes grāmatas un kursi (un daudz zemas kvalitātes grāmatu).

Labākā vispārējā blokshēmu mācību grāmata ir Bitcoin un Cryptocurrency Technologies (kas pavada Princeton Coursera kursu). Vienīgās citas grāmatas, kuras es ieteiktu šajā telpā, ir Andreas Antonopoulos un viņa gaidāmā Mastering Ethereum apgūšana, kuras līdzautors ir Ethereum līdzdibinātājs Gavins Vuds (abus publicējis O'Reilly). Viena netehniskā grāmata, kuru es iesaku, ir Nataniela Poppera digitālais zelts. Diezgan viss pārējais, ko vērts izlasīt, būs emuāros, nevis grāmatās - šī telpa pārvietojas tik ātri, ka vissvarīgākajām figūrām reti ir laiks rakstīt grāmatas, un grāmatas bieži vien ir novecojušas līdz to izlaišanas laikam.

Ja vēlaties strukturētāku pieeju šī materiāla apguvei, tur ir daži augstas kvalitātes kursi (un daudz zemas kvalitātes kursu). Es jau esmu saistīts ar pāris lekcijām no Prinstonas Coursera kursa (videoklipi ir arī Youtube) un UC Berkeley Decal. Esmu dzirdējis arī labu informāciju par Consensys akadēmiju cilvēkiem, kuri vēlas iesaistīties gudrā līgumu izstrādē.

Es arī pasniedzu 4 nedēļu semināru par kriptovalūtām programmatūras izstrādātājiem Bredfīldas datorzinātņu skolā SF. Kurss ir klātienē tikai SF, un vietu skaits ir ierobežots, jo tā ir maza un padziļināta semināra stila klase. Bet, ja jūs esat programmatūras inženieris SF un vēlaties uzzināt vairāk par kriptovalūtu teoriju un praksi, tas jums varētu būt piemērots.

Darba iegūšana

Kā jau teicu iepriekš, bloku ķēdes jaunuzņēmumi pieņem darbā kā traki. Ja jūs patiešām esat tik tālu nonācis un esat paveicis pat pusi no manis ieteiktajām lietām, jūs, iespējams, jau esat nodarbināms šajā telpā. AngelList veica lielisku pierakstu par to, kā iegūt darbu kriptogrāfijas telpā.

Ir vairāki labi apkopotāji ar blockchain saistītiem darba sludinājumiem:

  • AngelList kriptogrāfijas jaunie uzņēmumi
  • BlockchainJobz
  • Ethereum Darbs
  • Esiet kriptogrāfijā
  • Blockchain Job Board
  • Kripto darbu saraksts
  • Google darbi (blockchain meklēšanas vaicājums)
  • ConsenSys darbavietas (Ethereum riska studija, kuras paspārnē ir daudz projektu)

Daži īpaši daudzsološi bloku ķēdes jaunie uzņēmumi, kurus es zinu, pieņem darbā izstrādātājus:

  • 0x
  • Dharma Labs
  • Pilsoniskā

Kriptogrāfijas izstrādātāju tirgū ir arī vairāki lielāki uzņēmumi:

  • Coinbase, kriptogrāfijas Google, vienmēr pieņem darbā kā traks
  • Zvaigžņu un Ripple, ja vēlaties strādāt tieši ar uzņēmumam draudzīgākām kriptovalūtām
  • Square ir integrējis dažus blokķēdes, lai gan nav pārliecināts, vai viņi pieņem darbā ārēji
  • IBM, Visa vai JP Morgan, ja vēlaties to iesist vecajā skolā

(Ņemiet vērā, ka šis konkrētais uzņēmumu saraksts ir īpaši orientēts uz Beju apgabalu, jo tur es dzīvoju, tāpēc jūsu nobraukums var atšķirties. Darba apkopotāji tomēr ir globālāki.)

Bet, manuprāt, labākais veids, kā iesaistīties uzņēmumā, ir atrast projektu, par kuru jūs esat satraukti, un tieši sazināties ar viņiem. Lielākā daļa bloku ķēdes komandu ir gatavi īrēt tālvadību pareizajiem talantiem. Daudzi izstrādātāji ir viegli pieejami vietnē Twitter, Github vai to publiskajos Slack kanālos. Ja jums ir stabils portfelis un jūs varat demonstrēt tehniskās karbonādes, lielākā daļa cilvēku būs pārsteigta, ja izrādīsit kādu iniciatīvu.

Un tas ir tik daudz, cik esmu jums ieguvis. Ja esat paveicis visu iepriekš minēto, jums vajadzētu būt iestatītam, un jūs, iespējams, drīz būsit vēl tālāk nekā es.

Trušu tārpa caurums

Tas, ko esmu jums parādījis, ir tikai sākums. Kriptovalūtas joprojām ir sākumstadijā, un es patiešām uzskatu, ka tā ir visstraujāk attīstošā telpa, kurā varat strādāt. Esmu pārliecināts, ka šī rokasgrāmata būs novecojusi gada laikā, un ir tik daudz pārsteidzošu projektu, kādus vēl neesmu darījis bija iespēja parunāties. Bet, ja jūs nokļūsiet šajā telpā, jūs tos atradīsit savlaicīgi.

Turpiniet izpētīt. Turpini labāk. Turpini mācīties.

Un es ceru redzēt, kā jūs pievienosities mums.

Hasēbs