Mogu li stvoriti Linux / MacOS-ov program Ethereum Developer Setup na Windowsu: Vodič za postavljanje Windows podsustava za Linux

blog 1NewsDevelopersEnterpriseBlockchain ObjašnjeniDogađaji i konferencijePressBilteni

Pretplatite se na naše obavijesti.

Email adresa

Poštujemo vašu privatnost

HomeBlogDevelopers

Mogu li stvoriti Linux / MacOS-ov program Ethereum Developer Setup na Windowsu: Vodič za postavljanje Windows podsustava za Linux

Upute korak po korak o tome kako koristiti WSL 2 za postavljanje vašeg okruženja za razvoj pametnog ugovora Ethereum i tijek rada Thomas Hay, 18. studenog 2020. Objavljeno 18. studenog 2020.

blockchain

U ConsenSys Academy zatražili smo od svih u programu za programere da na početku preuzmu Virtual Box i Ubuntu. Cilj nam je da svaki student može imati dosljedno korisničko iskustvo prilikom postavljanja svog lokalnog razvojnog okruženja. Bez obzira na svoj izvorni operativni sustav (OS), svi bi imali Ubuntu i mogli bi pokretati isti softver. To je dobra ideja u teoriji. U praksi smo sa studentima radili na rješavanju problema vezanih uz dostupnu memoriju na njihovom stroju kako bismo to uspjeli. Gotovo uvijek će korisnici Maca nastaviti bez preuzimanja Ubuntua, jer je MacOS Unix-ov sustav. Korisnici Windowsa često su frustrirani jer nisu mogli koristiti razvojne alate slijedeći upute koje preporučujemo na njihovom matičnom OS-u, a ako su htjeli pokrenuti sve na Windowsu, morali su se pridržavati skupa uputa paralelnih onima za Linux i MacOS korisnici. 

Pratili smo razvoj Windows podsustava za Linux (WSL). Pokretanje WSL 2 poklopilo se s pitanjima naše trenutne kohorte učenika Bootcampa o tome mogu li koristiti WSL 2 umjesto preuzimanja virtualne kutije. Smatrao sam da je prošlo vrijeme pružiti veći fokus na to kako koristiti WSL 2 kako bi se korisnicima Windowsa pružilo Linux razvojno iskustvo tijekom korištenja alata Ethereum koji preporučujemo. Ovaj članak podijelit će s vama neke osobine koje smo imali kod korištenja WSL-a 2 za postavljanje vašeg Ethereum razvojnog okruženja (poput onoga što morate učiniti da biste iskoristili tartuf naredbe). 

Naš ekosustav ima mnogo korisnih članaka i vodiča, ali ljudi ih stvaraju pod pretpostavkom da je na korisniku instaliran Linux ili MacOS. Želim da Ethereum bude dostupan svima i htio sam podijeliti ono što smatram da je trenutno najlakši način za programere koji koriste Windows da postave svoje razvojno okruženje kako bi mogli slijediti većinu članaka objavljenih o razvoju pametnih ugovora.

Možete uskočiti u donji vodič ili preskočiti kratku povijest zašto su korisnici Linuxa i MacOS-a tradicionalno imali lakši put do alata za programere u Ethereumu..

Korištenje WSL 2 za postavljanje vašeg okruženja za razvojne programere Ethereum

Korak 1: Preuzimanje WSL-a 2

TLDR; Windows stvarno dobro provodi kroz upute kako instalirati WSL 2 na vaš stroj. “Vodič za instalaciju Windows podsustava za Linux za Windows 10”Sveobuhvatan je članak jer i on odgovara naslovu, kao i pruža savjete za rješavanje problema. Otkrili smo i to gledanje počevši od 8:24 od WSL2: Brže kodirajte na Windows podsustavu za Linux! | Kartice protiv razmaka video daje neki dodatni kontekst oko toga kako omogućiti WSL putem grafičkog korisničkog sučelja (GUI) umjesto putem naredbenog retka (ili PowerShell). Možda ćete morati ponovno pokrenuti računalo nekoliko puta, a u nekim slučajevima, ovisno o hardveru vašeg računala, to može potrajati. Bio bih spreman odvojiti pola dana kao najgori mogući scenarij, samo da bih upravljao vašim očekivanjima za sve instalacije koje ćete učiniti.

U koraku 6 spomenuti članak, Odlučio sam instalirati Ubuntu 20.04 LTS, kako mi je bilo najugodnije s ovom raspodjelom naspram ostalih na popisu. Pokušao sam instalirati Ubuntu putem ponuđene veze do trgovine Windows, kojoj sam pristupio putem svog web preglednika, ali moj Windows stroj tada me zatražio da instaliram pomoću ugrađene aplikacije Microsoft Store.

Također sam instalirao Windows terminal, što nije bilo obavezno. To sam učinio nakon gomile pogrešaka koje ćete vidjeti u 3. koraku. Umjesto da nastavim “ići svojim putem”, odlučio sam slijediti ono što mi je Microsoft govorio. Prednost Windows Terminala je u tome što u prozoru terminala možete otvoriti više kartica terminala različitih operativnih sustava.

Korak 2: Pokretanje WSL 2 zajedno s VSCode

Predlažemo da koristite bilo koji IDE koji vam najviše odgovara. Osobno koristim VSCode, pa sam želio shvatiti kako mogu koristiti VSCode uz WSL 2. Već imam instaliran VSCode, pa ako ga nemate, izvolite i instalirajte ga. Tada sam, kako bih pokrenuo Ubuntu, pronašao odgovor na 5:31 videozapisa na WSL-u koji je izradio Microsoft.

Korištenje naredbe:

kodirati. 

automatski preuzeo, instalirao i pokrenuo VSCode, ali otkrio sam da se moja proširenja koja koristim za pisanje pametnih ugovora ne instaliraju automatski.

Jednostavno kliknite na zeleni tekst instaliran u WSL: Ubuntu. VSCode me također zatražio da instaliram neke dodatne knjižnice putem terminala u VSCodeu i zatražio da unesem lozinku za svoju Linux distribuciju (a to je Ubuntu 20.04 LTS)

Postoji duži tutorial pod nazivom Započnite koristiti Visual Studio Code za Windows podsustav za Linux koji pruža dulji vodič ako još niste instalirali VSCode. Od ovog trenutka naprijed, napravio sam sve sljedeće korake unutar terminala VSCode, koji je sada postavljen kao bash ljuska.

Korak 3. Instalirajte nvm, Node i npm

Prije instaliranja alata za programere poput Trufflea, moramo instalirati nvm, Node i npm. Pogledajte izravno članak Postavite svoj NodeJS razvoj s WSL 2.  

Prva idiosinkrazija na koju sam naletio je da dokumentacija nije imala najnoviju verziju nvm-a i zato preporučujem da odete na nvm GitHub spremište kako biste saznali trenutno izdanje. Nakon instalacije nvm, kada sam pokrenuo naredbu naredbe -v nvm da potvrdim da je instaliran u mom terminalu, ništa se nije dogodilo (nvm treba vratiti). Sugeriralo mi je da zatvorim terminal i ponovo ga otvorim, a zatim ponovo pokrenim naredbu. Kad sam to učinio, dobio sam nvm.

Zatim sam ukucao nvm install node –lts i odlučio se za LTS (dugoročno stabilno) izdanje. Nakon provjere da li sam instalirao i čvor i npm (čvor –verzija, npm –verzija). Prešao sam na sljedeći korak. 

Nemojte raditi sljedeće

Ovo je jasan primjer nečitanja dokumentacije (uvijek pročitajte dokumentaciju). Gore opisane korake poduzeo sam nakon što sam prvi put krenuo putem nepreciznog čitanja dokumenata. Kronološki sam prvo otvorio terminal s VSCode i upisao

čvor -v

da vidim jesam li ga instalirao. Budući da nisam imao instaliran čvor, vratilo se sljedeće:

Utipkao sam predloženo

sudo apt instalirati nodejs

i zatraženo je da unesem moju lozinku.za moju linux distribuciju (Ubuntu 20.04 LTS). Zatim sam ukucao

čvor -v

Vratila se verzija 10.19.0. Pogledao sam web mjesto Node.js i preporučeno stabilno izdanje bilo je 14.15.0 LTS. Nije ono što sam želio da se dogodi. Uz to, kad sam upisao

npm -v

da vidim jesam li instalirao NPM, vratio sam loš tumač: Nema takve datoteke ili direktorija. Što je pošlo po zlu? Da sam počeo čitati članak, vidio bih sljedeće

“Verzija Nodea koja se može instalirati pomoću Ubuntuove naredbe apt-get trenutno je zastarjela”

Ako ste se zatekli ovim putem, morate deinstalirati Nodejs – evo nekoliko korisnih uputa, ali vi ćete upotrijebiti naredbu

sudo apt-get pročišćavanje čvorova

unutar terminala da to učini.

Ako prijeđete izravno na web mjesto Node.js i preuzmete i instalirate, instalirat ćete distribuciju sustava Windows koju nećete moći koristiti u Ubuntuu. Zato prvo pročitajte gornju dokumentaciju i ne pokušavajte samo „uskočiti:.

Učite na mojim greškama i uštedite vrijeme. Pročitajte dokumentaciju.

Korak 4. Instalirajte paket tartufa

U ovom trenutku mogao bih slijediti korake opisane na portalu ConsenSys Developer Portal.

Obavezno uklonite komentare iz razvojne mreže (kao što je prikazano dolje) u datoteci tartuf-config.js

Ako to ne učinite, dobit ćete sljedeću pogrešku:

Čekajte … Sve sam to namjestio i dogodila se pogreška, udaljio sam se, a sada kad ga pokrećem, zaboravio sam lozinku za svoju linux distribuciju!!!

Ah, da. I ja sam to učinio. Pronašao sam članak “Stvorite korisnički račun i lozinku za svoju novu Linux distribuciju”Vrlo korisno. 

Stvari koje sam instalirao u Windows ne prikazuju se kad pokrenem Ubuntu! Što daje!!

Zapamtite, Ubuntu je drugačiji operativni sustav od Windows-a. Ne očekuje se da će programi instalirani na sustavu Windows odmah pokrenuti Ubuntu distribuciju i obrnuto, osim ako nisu specifični programi konfigurirani za to – primjer je Windows Terminal. Pretpostavimo da sve što instalirate na jednu neće raditi na drugoj da bi bilo sigurno.

Što dalje?

Sada slijedite korak 2: Stvaranje pametnog ugovora i Korak 3: Pokrenite decentraliziranu aplikaciju pomoću istih naredbi koje pružaju ovi vodiči.

Kratka povijest operativnih sustava i kontekst za programere Ethereuma

Zašto korisnici Windowsa imaju drugačije iskustvo s razvojnim alatima Ethereuma od onih koji koriste Linux ili MacOS? Linux i MacOS nisu isti operativni sustav, a Linux je bezbroj distribucija. Čini se da bi za rješavanje različitih operativnih sustava morao postojati više skupova alata. Da biste odgovorili na ovo pitanje, potrebna je kratka lekcija iz povijesti. Preporučujem gledanje videozapisa Crash Course-a Operativni sustavi: Crash Course Computer Science # 18 za neke sažete osnovne informacije. 

Naša se priča nastavlja s Unixom. Nakon što izdanje Unixa 1969. godine, ovaj se operativni sustav brzo uspostavio unutar računalne zajednice. Računarstvom su tijekom 1970-ih dominirale istraživačke, velike tvrtke ili hobističke / hakerske zajednice i nije imalo grafičko korisničko sučelje na kakvo smo navikli danas. U to se vrijeme Unix temeljio na terminalu, pa se sve radilo putem onoga što bismo nazvali naredbenim retkom.

Osamdesete su se poklopile s Microsoftom i Appleom koji su izdali popularne operativne sustave za publiku osobnog računala. Napredak koji su ti operativni sustavi donijeli, uz smanjenje troškova hardvera i memorije, pomogao je rasti broj ljudi izvan akademske zajednice ili poslovnog svijeta koji su mogli priuštiti računalo za osobnu upotrebu. Microsoft je 1981. objavio operativni sustav Microsoft Disk (MS-DOS). Kada Microsoft Windows objavljen je 1985. godine, ovaj grafički operativni sustav zasnovan na korisničkom sučelju izgrađen je na vrhu MS-DOS koda, čineći računalo puno dostupnijim krajnjem korisniku.

Apple je zapravo dopustio pokretanje više OS-a na Apple II-u, koji se prvi put počeo prodavati krajem 1970-ih. No, Apple je prije Microsofta shvatio koliko bi GUI bio važan za usvajanje osobnog računala. Appleov prvi OS zasnovan na GUI-u, Macintosh operativni sustav (koji se danas naziva Classic MacOS) potječe iz Apple Lisa (LisaOS), računalo izdano 1983. godine. Operativni sustav na Lisi nadahnut je radom obavljenim u Xeroxovom istraživačkom centru Palo Alto (PARC), a mnogi iz Xerox PARC tima radili su u Appleu. Kada je 1984. objavljen mnogo popularniji Apple Macintosh, na njemu je radio Classic MacOS. Gledajući stare slike i videozapise Macintosha, iznenadio sam se koliko je sučelje klasičnog MacOS-a poznato MacOS-u koji se danas izvršava na mom Apple računalu.

Unix je bio dominantan operativni sustav u svijetu računarstva, a nastavio je biti popularan izvan prostora osobnog računala u 1980-ima. Tijekom 1980-ih to je značilo da postoje tri različita operativna sustava izgrađena na tri različite baze podataka. Korištenje programa u tim operativnim sustavima ne može se dogoditi u izvornom obliku. Programi su morali biti modificirani da rade s OS-om. Operativni sustavi Apple i Microsoft utemeljeni na GUI-u učinili su računarstvo dostupnim masama. Za programere je izrada aplikacije koja bi mogla raditi na računalu zahtijevala poznavanje operativnog sustava (a to još uvijek čini). No, Apple bi donio izbore koji bi programerima koji poznaju Unix naredbe olakšali upotrebu MacOS-a ili operacijskog sustava temeljenog na Unixu, a manje prepreku ulazu.

Apple je počeo povlačiti prema Operativni sustav zasnovan na Unixu, počevši od 1988. godine, kada je objavljen Unix-ov A / UX. Na paralelnom kolosijeku, NeXT, čiji je suosnivač Steve Jobs 1985. godine po odlasku iz Applea, stvarao je OS temeljen na Unixu pod nazivom NeXTSTEP. Apple je kupio NeXT 1996. godine i stekao intelektualno vlasništvo koje će postati MacOS X. Da rezimiramo, Appleov suosnivač napustio je tvrtku, suosnivač je druge računalne tvrtke za izgradnju računala i operativnih sustava, koju je potom kupila tvrtka koju je prvo osnovao, a koja je nakon toga postala izvršna direktorica, a zatim preuzeo projekt od njegova nova tvrtka, a taj je softverski projekt napravljen da postane osnova MacOS-a koji trenutno radim na svom Apple računalu. U Stevu Jobsu Waltera Issacsona nalazi se citat Larryja Ellisona, suosnivača Oraclea, o razgovoru koji je vodio sa Steveom Jobsom dok su bili na odmoru na Havajima.

“Znate Larry, mislim da sam pronašao način da se vratim u Apple i dobijem kontrolu nad njim, a da ga ne morate kupiti”, rekao je Jobs dok su šetali obalom. Ellison se prisjetio: “Objasnio je svoju strategiju, a to je navođenje Applea da kupi NeXT, a zatim bi ušao u upravni odbor i bio na korak od toga da bude izvršni direktor.”

Isaacson, Walter. Steve Jobs. New York; Toronto: Simon & Schuster, 2011. str.300

Dakle, tako je MacOS postao operativni sustav zasnovan na Unixu i omogućio izvršavanje naredbe Unix na terminalu u MacOS-u.

Windows nije postao Unix-ov. Nakon velikog uspjeha sustava Windows 95/98, Windows je prešao na izgradnju svog OS-a od NT-a (kratica NT više ne znači ništa, ali postoji mnogo teorija i povijesti oko izbora NT-a – zabavna zečja rupa koja se spušta ako vas zanima povijest Microsofta). Počevši sa sustavom Windows 2000, Microsoft je prestao ovisnost o DOS-u (što je dovelo do ovog nevjerojatnog video snimka Billa Gatesa koji je isključio DOS kada je izašao Windows XP). Windows se i dalje temelji na NT-u za sva sljedeća izdanja, uključujući Windows 10.

Između Applea i Microsofta pojavio bi se treći konkurent. Linux je 1991. godine razvio i objavio Linus Torvalds. To je operativni sustav sličan Unixu, a zahvaljujući tome što je besplatan i lako prilagodljiv, a brzo su ga usvojile zajednice programera koje nisu željele biti zaključane na Apple ili Microsoft. Linux je nastavio stjecati popularnost i našao se korištenim u mnogim različitim računalnim okruženjima. Primjerice, Android, koji je mobilni operativni sustav, izgrađen je na Linuxu i najpopularniji je operativni sustav za pametne telefone. Linux je također održavao Unix naredbe ljuske. Za više informacija o Linuxu, Pokretanje Linuxa, treće izdanje je sveobuhvatan resurs.

Budući da se temelje na Unixu, značilo je da su naredbe napisane u MacOS terminalu i Linux terminalu sintaktički iste jer obje koriste bash ljusku (ili neki njen derivat poput zsh). Korisnici Windowsa često moraju prevesti naredbu koju vide u vodiču napisanom za to da bash ljuska radi u sustavu Windows PowerShell ili Cmd. Korisnici Linuxa ili MacOS-a mogu samo pokrenuti naredbu. Programeri provode tonu vremena u terminalu. To je značilo da je instaliranje i korištenje određenog alata za programere za Ethereum (i mnoge druge jezike), poput nvm, Node, npm, i Truffle zahtijevao drugačiji set uputa za korisnike Windowsa. 

Rezultat je veća kompatibilnost između Linuxa i MacOS-a – i stoga se mnoge naredbe koje se koriste u Ubuntu terminalu, Linux distribuciji, također mogu koristiti (uglavnom) naizmjenično u MacOS terminalu. Windows je u prošlosti navalio na OS temeljen na Unixu, ali izlazak WSL-a 2016. za Windows 10 bio je prvi put da su korisnici Windowsa mogli koristiti Linux kernel dok istovremeno koriste Windows bez virtualnog stroja. WSL 2 stvorio je lagani virtualni stroj koji radi u sustavu Windows, što znači da se programer više ne mora baviti problemima s memorijom i pohranom koji se odnose na preuzimanje virtualnog okvira ili korištenje VMWare za instalaciju Ubuntua.

Zašto to utječe na programere Ethereuma? Ethereumov Genesis Block dogodio se 30. srpnja 2015. godine, a prema riječima suosnivača i osnivača ConsenSysa Joea Lubina Ethereuma, većina razvoja odvijala se na Ubuntuu i MacOS-u X. Stoga ne čudi da je velik dio izvornog alata dobro funkcionirao s operativnim sustavima nalik Unixu. Iako postoji alat razvijen posebno za Windows, često je iskustvo za programere bolje kada mogu koristiti Unix-sličan terminal za instaliranje softvera i pokretanje naredbi. 

Microsoft je uložio posao u izbacivanje WSL-a 2 i poboljšao se tamo gdje ga mnogi iz zajednice koriste od kraja 2018. za instaliranje Linux distribucije. Ako koristite Windows, više vas neće mučiti da slijedite malo modificirani skup uputa prilikom izrade vašeg dApp-a. Korisnici Windowsa sada mogu slijediti tutoriale za Ethereum za Linux ili Mac.

Izuzetno zabavno štivo, koje mi je preporučio Avery Erwin, jest Neal Stephenson “Na početku je bio naredbeni redak”, esej / knjiga o njegovom osobnom iskustvu s operativnim sustavima tijekom vremenskog razdoblja opisanog u ovoj kratkoj povijesti.

Zaključak

Ovaj vodič i kratka povijest pružaju korisnicima Windows-a uvid u to kako postaviti svoje razvojno okruženje koristeći WSL 2, Ubuntu, VSCode, npx, Node, npm i Truffle. Također daje malo povijesti kako i zašto to moramo učiniti. Ako imate komentare ili korisne savjete na temelju svog iskustva, pošaljite ih na [e-pošta zaštićena] kako bih mogao ažurirati ovaj članak i priznati vas za vaš doprinos.

Posebna zahvalnost Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson i više ljubaznih prijatelja na recenziji i komentarima na ovaj tutorial i povijest. Cijenim vaše komentare.

DevelopersSmart ContractsWindowsNewsletterPrepišite se na naš bilten za najnovije vijesti o Ethereumu, rješenja za poduzeća, resurse za programere i još mnogo toga. Adresa e-pošte

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