blog 1NieuwsOntwikkelaarsEnterpriseBlockchain ExplainedEvenementen en conferentiesPersNieuwsbrieven

Abonneer op onze nieuwsbrief.

E-mailadres

Wij respecteren uw privacy

HomeBlogOntwikkelaars

Kan ik een Linux / MacOS-achtige Ethereum Developer Setup op Windows maken?: Een gids voor het instellen van het Windows-subsysteem voor Linux

Stap voor stap instructies voor het gebruik van WSL 2 om uw Ethereum slimme contractontwikkelingsomgeving en workflow in te stellen door Thomas Hay 18 november 2020 Geplaatst op 18 november 2020

blockchain


Bij ConsenSys Academy hebben we iedereen in het Developer Program gevraagd om bij de start een Virtual Box en Ubuntu te downloaden. Ons doel is dat elke student een consistente gebruikerservaring kan hebben bij het opzetten van zijn lokale ontwikkelomgeving. Ongeacht hun eigen besturingssysteem (OS), iedereen zou Ubuntu hebben en dezelfde software kunnen gebruiken. In theorie is dit een goed idee. In de praktijk hebben we met studenten samengewerkt om problemen met het beschikbare geheugen op hun computer op te lossen om dit te laten werken. Bijna altijd zullen Mac-gebruikers doorgaan zonder Ubuntu te downloaden, omdat MacOS een op Unix gebaseerd systeem is. Windows-gebruikers zijn vaak gefrustreerd, omdat ze de ontwikkeltools niet konden gebruiken volgens de instructies die we aanbevelen op hun eigen besturingssysteem, en als ze alles op Windows wilden draaien, moesten ze een reeks instructies volgen die parallel waren aan die voor Linux en MacOS-gebruikers. 

We hadden de ontwikkeling van Windows Subsystem for Linux (WSL) gevolgd. De lancering van WSL 2 viel samen met vragen van ons huidige cohort Bootcamp-studenten of ze WSL 2 konden gebruiken in plaats van een Virtual Box te downloaden. Ik vond dat het tijd was om meer aandacht te besteden aan het gebruik van WSL 2 om Windows-gebruikers een Linux-achtige ontwikkelaarservaring te bieden tijdens het gebruik van de Ethereum-tooling die we aanbevelen. Dit artikel zal enkele eigenaardigheden met u delen die we tegenkwamen bij het gebruik van WSL 2 om uw Ethereum-ontwikkelaarsomgeving in te stellen (zoals wat u moet doen om truffel commando’s). 

Ons ecosysteem heeft veel nuttige artikelen en tutorials, maar mensen gaan ervan uit dat de gebruiker Linux of MacOS heeft geïnstalleerd. Ik wil dat Ethereum voor iedereen toegankelijk is, en ik wilde delen wat volgens mij momenteel de gemakkelijkste manier is voor ontwikkelaars die Windows gebruiken om hun ontwikkelomgeving in te stellen, zodat ze de meeste gepubliceerde artikelen over het ontwikkelen van slimme contracten kunnen volgen.

Je kunt in de onderstaande tutorial springen of doorgaan naar een korte geschiedenis over waarom Linux- en MacOS-gebruikers traditioneel een eenvoudiger pad hadden naar ontwikkelaarstooling in Ethereum.

WSL 2 gebruiken om uw Ethereum-ontwikkelaarsomgeving in te stellen

Stap 1: WSL 2 downloaden

TLDR​Windows leidt u heel goed door de instructies voor het installeren van WSL 2 op uw computer.​Windows-subsysteem voor Linux Installatiehandleiding voor Windows 10”Is een uitgebreid artikel omdat het zowel de titel eer aan doet als tips voor het oplossen van problemen geeft. We ontdekten ook dat kijken vanaf 8:24 van WSL2: codeer sneller op het Windows-subsysteem voor Linux!​Tabbladen versus spaties video geeft wat extra context over het inschakelen van WSL via de grafische gebruikersinterface (GUI) in plaats van via de opdrachtregel (of PowerShell). Mogelijk moet u uw computer meerdere keren opnieuw opstarten, en in sommige gevallen kan dit, afhankelijk van de hardware die uw computer heeft, enige tijd duren. Ik zou bereid zijn om een ​​halve dag opzij te zetten als een worstcasescenario, alleen om uw verwachtingen te beheren voor alle installaties die u gaat doen.

In stap 6 van het voornoemd artikel, Ik heb ervoor gekozen om te installeren Ubuntu 20.04 LTS, aangezien ik me het meest op mijn gemak voelde bij deze distributie in vergelijking met de andere opgesomde. Ik heb geprobeerd Ubuntu te installeren via de meegeleverde link naar de Windows Store, toegankelijk via mijn webbrowser, maar mijn Windows-machine vroeg me vervolgens om te installeren met behulp van de ingebouwde Microsoft Store-applicatie.

Ik heb ook geïnstalleerd Windows Terminal, dat was optioneel. Ik deed dit nadat ik een aantal fouten had gemaakt die je zult zien in stap 3. In plaats van door te gaan met “mijn eigen weg te gaan”, besloot ik te volgen wat Microsoft me vertelde. Het voordeel van Windows Terminal is dat u in een terminalvenster meerdere terminaltabbladen van verschillende besturingssystemen kunt openen.

Stap 2: WSL 2 uitvoeren naast VSCode

We raden u aan de IDE te gebruiken waarmee u het meest vertrouwd bent. Persoonlijk gebruik ik VSCode, dus ik wilde uitzoeken hoe ik VSCode naast WSL 2 kon gebruiken. Ik heb VSCode al geïnstalleerd, dus als je het niet hebt geïnstalleerd, ga je gang en installeer het. Om het vervolgens naast Ubuntu te laten werken, vond ik het antwoord op 5:31 van een video op WSL gemaakt door Microsoft.

Met behulp van de opdracht:

code. 

automatisch gedownload, geïnstalleerd en opgestart VSCode, maar ik heb gemerkt dat mijn extensies die ik gebruik om slimme contracten te schrijven niet automatisch worden geïnstalleerd.

Gewoon klikken op de groene tekst die is geïnstalleerd in WSL: Ubuntu. VSCode heeft me ook gevraagd om enkele extra bibliotheken te installeren via de terminal binnen VSCode, en vroeg me om mijn wachtwoord in te voeren voor mijn Linux-distributie (dit is Ubuntu 20.04 LTS)

Er is een langere tutorial genaamd Ga aan de slag met het gebruik van Visual Studio Code voor Windows-subsysteem voor Linux dat biedt een langere doorloop als u VSCode nog niet hebt geïnstalleerd. Vanaf dit punt heb ik alle volgende stappen uitgevoerd in de terminal van VSCode, die nu was ingesteld als een bash-shell.

Stap 3. Installeer nvm, Node en npm

Voordat we ontwikkelaarstools zoals Truffle installeren, moeten we nvm, Node en npm installeren. Verwijs direct naar het artikel Stel uw NodeJS-ontwikkeling in met WSL 2.  

De eerste eigenaardigheid die ik tegenkwam, was dat de documentatie niet de meest up-to-date versie van nvm bevatte, en daarom raad ik aan om naar de nvm GitHub-opslagplaats om de huidige release te weten te komen. Na het installeren van nvm, toen ik de opdracht opdracht -v nvm uitvoerde om te bevestigen dat het in mijn terminal was geïnstalleerd, gebeurde er niets (nvm zou moeten worden geretourneerd). Het stelde voor dat ik mijn terminal sluit en opnieuw open, en vervolgens de opdracht opnieuw uitvoert. Toen ik dit deed, kreeg ik nvm.

Vervolgens typte ik nvm install node in – ik koos voor de LTS-release (langdurige stabiele). Nadat ik had gecontroleerd of ik zowel node als npm had geïnstalleerd (node ​​–version, npm –version). Ik ging naar de volgende stap. 

Doe het volgende niet

Dit is een duidelijk voorbeeld van het niet lezen van de documentatie (lees altijd de documentatie). De stappen die ik hierboven heb beschreven, deed ik nadat ik eerst het pad was ingegaan om de documenten niet helemaal te lezen. Chronologisch opende ik de terminal voor het eerst met VSCode en typte ik in

knooppunt -v

om te zien of ik het had geïnstalleerd. Omdat ik geen knooppunt had geïnstalleerd, keerde het volgende terug:

Ik typte het voorgestelde

sudo apt install nodejs

en werd om mijn wachtwoord gevraagd. voor mijn Linux-distributie (Ubuntu 20.04 LTS). Ik typte toen in

knooppunt -v

De geretourneerde versie was 10.19.0. Ik keek naar de Node.js-website en de aanbevolen stabiele uitgave was 14.15.0 LTS. Niet wat ik wilde gebeuren. Bovendien, toen ik typte

npm -v

om te zien of ik NPM had geïnstalleerd, kreeg ik een slechte tolk terug: geen bestand of map. Wat ging er mis? Als ik net was begonnen met het lezen van het artikel, had ik het volgende gezien

“De versie van Node die kan worden geïnstalleerd met de opdracht apt-get van Ubuntu is momenteel verouderd”

Als je merkt dat je dit pad bent ingeslagen, moet je Nodejs verwijderen – hier zijn enkele handige instructies, maar je zult het commando gebruiken

sudo apt-get purge nodejs

binnen de terminal om dit te doen.

Als u rechtstreeks naar de Node.js-website navigeert en downloadt en installeert, installeert u de Windows-distributie, die u niet kunt gebruiken in Ubuntu. Lees dus eerst de bovenstaande documentatie en probeer niet zomaar “erin te springen:.

Leer van mijn fouten en bespaar uzelf tijd. Lees de documentatie.

Stap 4. Installeer de Truffle Suite

Op dit punt kon ik nu de stappen volgen die worden beschreven op de ConsenSys Developer Portal.

Zorg ervoor dat u het ontwikkelingsnetwerk verwijdert (zoals hieronder te zien is) in het bestand truffle-config.js

Als u dat niet doet, krijgt u de volgende foutmelding:

Wacht … ik heb het allemaal ingesteld en er was een fout, ik liep weg, en nu het actief is, ben ik mijn wachtwoord voor mijn Linux-distributie vergeten!!!

Ahh, ja. Ik heb dit ook gedaan. Ik vond het artikel “Maak een gebruikersaccount en wachtwoord aan voor uw nieuwe Linux-distributie” erg behulpzaam. 

Dingen die ik in Windows heb geïnstalleerd, worden niet weergegeven wanneer ik Ubuntu start! Wat geeft!!

Onthoud dat Ubuntu een ander besturingssysteem is dan Windows. Van programma’s die op Windows zijn geïnstalleerd, wordt niet verwacht dat ze onmiddellijk Ubuntu-distributie uitvoeren en vice versa, tenzij het specifieke programma’s zijn die hiervoor zijn geconfigureerd – Windows Terminal is een voorbeeld. Neem aan dat alles wat u op de ene installeert, voor de zekerheid niet werkt op de andere.

Wat nu?

Volg nu stap 2: maak een slim contract en stap 3: start een gedecentraliseerde applicatie met dezelfde opdrachten als deze tutorials bieden.

Een korte geschiedenis van besturingssystemen en de context voor Ethereum-ontwikkelaars

Waarom hebben Windows-gebruikers een andere ervaring met Ethereum-ontwikkelaarstools dan degenen die Linux of MacOS gebruiken? Linux en MacOS zijn niet hetzelfde besturingssysteem, en er zijn talloze Linux-distributies. Het lijkt erop dat er meerdere sets tools nodig zijn om met de verschillende besturingssystemen om te gaan. Om deze vraag te beantwoorden heb je een korte geschiedenisles nodig. Ik raad aan om de video van Crash Course te bekijken Besturingssystemen: spoedcursus informatica # 18 voor beknopte achtergrondinformatie. 

Ons verhaal begint met Unix. Na de release van Unix in 1969, dit besturingssysteem vestigde zich snel binnen de computergemeenschap. Computergebruik werd in de jaren zeventig sterk gedomineerd door onderzoek, grote bedrijven of hobbyisten / hackers, en beschikte niet over de grafische gebruikersinterfaces die we tegenwoordig gewend zijn.. Unix was op dat moment terminal-gebaseerd, dus alles werd gedaan via wat we de opdrachtregel zouden noemen.

De jaren tachtig vielen samen met het uitbrengen van populaire besturingssystemen door Microsoft en Apple voor het publiek van personal computers. De vooruitgang die deze besturingssystemen met zich meebrachten, naast een verlaging van de kosten van hardware en geheugen, hielpen het aantal mensen buiten de academische wereld of het bedrijfsleven te doen groeien dat zich een computer voor persoonlijk gebruik kon veroorloven.. Microsoft heeft in 1981 het Microsoft Disk Operating System (MS-DOS) uitgebracht. Wanneer Microsoft Windows werd uitgebracht in 1985, dit op een grafische gebruikersinterface gebaseerde besturingssysteem is gebouwd bovenop de MS-DOS-codebasis, de computer veel toegankelijker maken voor de eindgebruiker.

Apple stond het opstarten van meerdere besturingssystemen toe op de Apple II, die eind jaren zeventig voor het eerst met de verkoop begon. Maar Apple, vóór Microsoft, realiseerde zich hoe belangrijk een GUI zou zijn om de acceptatie van de personal computer te stimuleren. Apple’s eerste GUI-gebaseerde besturingssysteem, het Macintosh-besturingssysteem (nu Classic MacOS genoemd) is ontstaan ​​uit de Appel Lisa (LisaOS), een computer uitgebracht in 1983. Het besturingssysteem op de Lisa is sterk geïnspireerd door het werk dat is gedaan in het Palo Alto Research Center (PARC) van Xerox, en velen van het Xerox PARC-team werkten bij Apple. Toen in 1984 de veel populairdere Apple Macintosh werd uitgebracht, draaide Classic MacOS erop. Toen ik naar oude foto’s en video’s van de Macintosh keek, was ik verbaasd over hoe vertrouwd een interface is die Classic MacOS is voor de MacOS die vandaag op mijn Apple-computer draait.

Unix was het dominante besturingssysteem in de computerwereld en bleef in de jaren tachtig populair buiten de persoonlijke computerruimte. In de jaren tachtig betekende dit dat er drie verschillende besturingssystemen waren gebouwd op drie verschillende codebases. Het gebruik van een programma voor deze besturingssystemen kon niet native gebeuren. De programma’s moesten worden aangepast om met het besturingssysteem te werken. De GUI-gebaseerde besturingssystemen van Apple en Microsoft maakten computers toegankelijk voor de massa. Voor ontwikkelaars was het nodig om een ​​applicatie te bouwen die op een computer zou kunnen werken, het besturingssysteem te kennen (en dat doet het nog steeds). Maar Apple zou keuzes maken die het voor ontwikkelaars die bekend zijn met Unix-commando’s gemakkelijker zouden maken om MacOS of een op Unix gebaseerd besturingssysteem te gebruiken, minder een toetredingsdrempel..

Apple begon stappen te zetten in de richting van een Unix-gebaseerd besturingssysteem, beginnend in 1988, toen de op Unix gebaseerde A / UX werd uitgebracht. Op een parallel spoor, NeXT, mede opgericht door Steve Jobs in 1985 na zijn vertrek bij Apple, creëerde een op Unix gebaseerd besturingssysteem met de naam NeXTSTEP. Apple kocht NeXT in 1996 en verwierf het intellectuele eigendom dat MacOS X zou worden. Om samen te vatten, de mede-oprichter van Apple verliet het bedrijf, was medeoprichter van een ander computerbedrijf om computers en besturingssystemen te bouwen, dat vervolgens werd gekocht door het bedrijf dat hij eerst mede-oprichtte, waarvan hij vervolgens CEO werd en vervolgens een project overnam van zijn nieuwe bedrijf, en dat softwareproject werd gebouwd om de basis te worden van de MacOS die ik nu op mijn Apple-computer draai. In Steve Jobs van Walter Issacson staat een citaat van Larry Ellison, mede-oprichter van Oracle, over een gesprek dat hij had met Steve Jobs terwijl ze op vakantie waren in Hawaï..

‘Weet je Larry, ik denk dat ik een manier heb gevonden om weer bij Apple te komen en er controle over te krijgen zonder dat je het hoeft te kopen,’ zei Jobs terwijl ze langs de kust liepen. Ellison herinnerde zich: “Hij legde zijn strategie uit: Apple ertoe brengen NeXT te kopen, waarna hij in het bestuur zou gaan en een stap verwijderd was van het worden van CEO.”

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

Dus dat is hoe MacOS een op Unix gebaseerd besturingssysteem werd en het mogelijk maakte dat de Unix-opdracht op de terminal in MacOS werd uitgevoerd.

Windows werd niet Unix-achtig. Na het grote succes van Windows 95/98, Windows maakte de overstap naar het bouwen van zijn besturingssysteem op basis van NT (het acroniem NT staat niet langer voor wat dan ook, maar er zijn veel theorieën en geschiedenissen rond de keuzes van NT – een leuk konijnenhol als je geïnteresseerd bent in de geschiedenis van Microsoft​Vanaf Windows 2000 heeft Microsoft de afhankelijkheid van DOS (wat leidde tot deze ongelooflijke video waarin Bill Gates DOS uitschakelde toen Windows XP werd uitgebracht​Windows is nog steeds gebaseerd op NT voor alle volgende releases, inclusief Windows 10.

Tussen Apple en Microsoft zou een derde concurrent ontstaan. Linux is in 1991 ontwikkeld en uitgebracht door Linus Torvalds. Het is een Unix-achtig besturingssysteem, en omdat het zowel gratis als gemakkelijk aanpasbaar is, werd het snel overgenomen door ontwikkelaarsgemeenschappen die niet vast wilden zitten aan Apple of Microsoft. Linux bleef aan populariteit winnen en werd in veel verschillende computeromgevingen gebruikt. Android, een mobiel besturingssysteem, is bijvoorbeeld gebouwd op Linux en is het populairste besturingssysteem voor smartphones. Linux handhaafde ook de Unix-shell-opdrachten. Voor meer informatie over Linux, Linux draaien, derde editie is een uitgebreide bron.

Omdat het gebaseerd is op Unix, betekent dit dat commando’s die zijn geschreven in de MacOS-terminal en een Linux-terminal syntactisch hetzelfde zijn omdat ze allebei de bash-shell gebruiken (of een afgeleide daarvan zoals zsh). Windows-gebruikers moeten vaak een opdracht die ze zien in een zelfstudie die is geschreven voor de bash-shell, vertalen om te werken in Windows PowerShell of Cmd. Linux- of MacOS-gebruikers kunnen de opdracht gewoon uitvoeren. Ontwikkelaars brengen veel tijd door in de terminal. Dit betekende dat het installeren en gebruiken van bepaalde ontwikkelaarstools voor Ethereum (en vele andere talen), zoals nvm, Node, npm en Truffle, een andere set instructies vereist voor Windows-gebruikers. 

Het resultaat is dat er een grotere compatibiliteit is tussen Linux en MacOS – en daarom kunnen veel van de commando’s die worden gebruikt in de Ubuntu-terminal, een Linux-distributie, ook (grotendeels) door elkaar worden gebruikt in de MacOS-terminal. Windows is in het verleden overgestapt op een op Unix gebaseerd besturingssysteem, maar de release van WSL in 2016 voor Windows 10 was de eerste keer dat Windows-gebruikers een Linux-kernel konden gebruiken terwijl ze tegelijkertijd Windows gebruikten zonder een virtuele machine. WSL 2 heeft een lichtgewicht virtuele machine gemaakt die in Windows draait, wat betekent dat een ontwikkelaar niet langer te maken heeft met geheugen- en opslagproblemen die verband houden met het downloaden van een virtuele box of het gebruik van VMWare om Ubuntu te installeren.

Waarom heeft dit invloed op Ethereum-ontwikkelaars? Ethereum’s Genesis Block vond plaats op 30 juli 2015, en volgens Ethereum mede-oprichter en oprichter van ConsenSys Joe Lubin, vond de meeste ontwikkeling plaats op Ubuntu en MacOS X. Daarom is het niet verwonderlijk dat veel van de originele tooling goed werkte met Unix-achtige besturingssystemen. Hoewel er tooling is ontwikkeld die specifiek voor Windows is ontwikkeld, is de ervaring voor ontwikkelaars vaak beter wanneer ze een Unix-achtige terminal kunnen gebruiken om software te installeren en opdrachten uit te voeren.. 

Microsoft heeft het werk verzet om WSL 2 uit te brengen en het is verbeterd tot waar velen binnen de gemeenschap het sinds eind 2018 gebruiken om een ​​Linux-distributie te installeren. Als je Windows gebruikt, heb je niet langer de pijn om een ​​licht gewijzigde set instructies te moeten volgen bij het bouwen van je dApp. Windows-gebruikers kunnen nu de Ethereum-tutorials voor Linux of Mac volgen.

Een zeer vermakelijke lezing, mij aangeraden door Avery Erwin, is die van Neal Stephenson “In het begin was de opdrachtregel”, een essay / boek over zijn persoonlijke ervaring met besturingssystemen gedurende de periode die in deze korte geschiedenis wordt beschreven.

Gevolgtrekking

Deze tutorial en korte geschiedenis geven een Windows-gebruiker enig inzicht in hoe ze hun ontwikkelomgeving kunnen opzetten met WSL 2, Ubuntu, VSCode, npx, Node, npm en Truffle. Het geeft ook een stukje geschiedenis van hoe en waarom we dit moeten doen. Als u op basis van uw ervaring opmerkingen of nuttige tips heeft, stuur deze dan naar [e-mail beveiligd] dus ik kan dit artikel bijwerken en u voor uw bijdrage crediteren.

Met speciale dank aan Onyebuchi Valentine Ahiwe, Clemens Wan, Anthony Albertorio, Eli Geschwind, Nick Nelson en meer vriendelijke vrienden voor je recensie en commentaar op deze tutorial en geschiedenis. Ik waardeer uw opmerkingen.

Ontwikkelaars Slimme contracten Windows Nieuwsbrief Abonneer u op onze nieuwsbrief voor het laatste Ethereum-nieuws, bedrijfsoplossingen, bronnen voor ontwikkelaars en meer.

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