Leestijd: 4 min.
Overzicht
Vanwege het veelvuldige gebruik in webapplicaties en de eenvoudige syntaxis wordt Ruby door een groot aantal mensen gebruikt. In deze handleiding wordt uitgelegd hoe je in Ruby een Ethereum-adres aanmaakt met behulp van de ruby-eth-gem/het ruby-eth -pakket.
Vereisten
- Ruby is op uw systeem geïnstalleerd (Ruby 2.x +)
- Ruby-omgevingsbeheerder (RBEnv)
- Een teksteditor
Wat is een Ethereum-adres?
Wanneer je je aanmeldt bij een platform op internet, moet je je identificeren met een combinatie van inloggegevens. Beschouw een Ethereum-adres als je gebruikersnaam en de bijbehorende privésleutel als het wachtwoord. Hoewel je Ethereum-adres openbaar is en gedeeld kan worden, moet de privésleutel altijd geheim blijven. Met deze combinatie kun je communiceren met de Ethereum-blockchain. Een Ethereum-adres is je identiteit op de blockchain en ziet er als volgt uit: „0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE“. Een geldig Ethereum-adres is vereist voor:
- Ethereum ontvangen/verzenden
- Transacties ondertekenen/verzenden
- Verbinding maken met gedecentraliseerde applicaties
Hoe een Ethereum-adres wordt gegenereerd:
- Eerst wordt een willekeurige privésleutel van 64 (hex) tekens (256 bits / 32 bytes) gegenereerd.
Bijvoorbeeld:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- Vervolgens wordt met behulp van het Elliptic Curve Digital Signature Algorithm (ECDSA) een openbare sleutel van 128 (hex) tekens (64 bytes) afgeleid uit de gegenereerde privésleutel.
Bijvoorbeeld:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
- Vervolgens wordt de Keccak-256-hashfunctie toegepast op (128 tekens / 64 bytes) van de openbare sleutel om een hash-string van 64 tekens (32 bytes) te verkrijgen. De laatste 40 tekens / 20 bytes van deze string, voorafgegaan door 0x, vormen het uiteindelijke Ethereum-adres.
Bijvoorbeeld:
0xd5e099c71b797516c10ed0f0d895f429c2781142
Opmerking: 0x in de code geeft aan dat het getal of de tekenreeks in hexadecimale notatie is geschreven.
Wat is Ruby?
Ruby is een open-source, geïnterpreteerde programmeertaal op hoog niveau. Ruby is ontstaan uit een mix van Perl, Smalltalk, Eiffel, Ada en Lisp, de favoriete programmeertalen van Yukihiro „Matz“ Matsumoto. Ruby is volledig objectgeoriënteerd; zelfs de meest elementaire gegevenstypen, zoals gehele getallen, beschikken over methoden en instantievariabelen. Dit maakt methodenketens mogelijk, waarbij meerdere regels code tot één regel kunnen worden samengevoegd. Ruby on Rails, een Ruby-framework, heeft ertoe bijgedragen dat de taal aan populariteit heeft gewonnen voor webprogrammering, met als belangrijkste voordeel dat programmeurs niet veel tijd hoeven te besteden aan het aanmaken van bestanden.
Om ons doel – het aanmaken van een Ethereum-adres – te bereiken, gebruiken we een Ruby-gem genaamd ruby-eth.
Wat is ruby-eth?
Ruby-eth is een bibliotheek die helpt bij het ondertekenen van transacties en het genereren van sleutels. Met Ruby-eth kunnen we Ethereum-transacties opstellen en verzenden via elk willekeurig knooppunt. De gem maakt het mogelijk om sleutels los te koppelen van knooppunten. Onderteken transacties en beheer sleutels overal waar je Ruby kunt draaien, en verzend transacties via elk gewenst knooppunt-eindpunt.
Afhankelijkheden installeren
Voordat we de gems installeren, gaan we eerst controleren of Ruby is geïnstalleerd. Open een terminal en voer het volgende uit:
$ ruby -v
Voor Linux/UNIX: je kunt het pakketbeheersysteem van je distributie gebruiken door de handleiding hier te volgen, of door hulpprogramma’s van derden te gebruiken, zoals rbenv of RVM.
Voor macOS: je kunt hulpprogramma's van derden gebruiken, zoals rbenv of RVM.
Voor Windows: je kunt RubyInstaller gebruiken.
We gaan rbenv gebruiken om de Ruby-versie voor ons project te beheren. Om eerst te controleren of rbenv is geïnstalleerd, typ je:
$ rbenv -v
Het moet de huidige versie van rbenv weergeven die op je systeem is geïnstalleerd; als dat niet het geval is, download het dan aan de hand van de informatie hier. Ga vervolgens naar je terminal en typ het volgende om een specifieke Ruby-versie in die map te activeren.
$ rbenv install 2.6.5
$ rbenv local 2.6.5
Zodra we zeker weten dat Ruby is geïnstalleerd en dat het om de juiste versie gaat (in dit geval 2.6.5), gaan we verder met het installeren van de benodigde gems. Je kunt deze vanaf de opdrachtregel installeren met RubyGems, de pakketbeheerder voor Ruby:
$ gem install eth
Als je macOS gebruikt, kun je tijdens het installeren van gem een probleem met de machtigingen tegenkomen, omdat de Ruby-versie die bij macOS wordt meegeleverd doorgaans bedoeld is voor eigen gebruik door Apple; we raden je aan om rbenv en RVM (Ruby Version Manager) te gebruiken om een aparte Ruby-versie te beheren. Deze wordt in een sandbox in je thuismap geïnstalleerd, zodat je er wijzigingen in kunt aanbrengen zonder dat je bang hoeft te zijn dat je de Ruby van het systeem in de war brengt.
Een Ethereum-adres aanmaken.
Open je teksteditor, maak een nieuw Ruby-bestand met de naam address.rb en kopieer en plak de volgende code daarin.
require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"
Uitleg bij de bovenstaande code
Regel 1: De gem/het pakket eth importeren.
Regel 2: Het Eth-object instantiëren, een nieuwe sleutel aanmaken en deze opslaan in de variabele key.
Regel 3: Een hexadecimale openbare sleutel genereren op basis van de sleutel met behulp van de methode `public_hex`.
Regel 4: Een hexadecimale privésleutel genereren op basis van de sleutel met behulp van de methode `private_key` en daar het voorvoegsel `0x` aan toevoegen; deze vervolgens weergeven met een waarschuwing.
Regel 5: Het adres genereren en het afdrukken met de tekenreeks „Address:“
Sla het bestand op en voer het uit met behulp van.
$ ruby address.rb
Als alles goed gaat en de code succesvol wordt uitgevoerd, zou het er zo uit moeten zien.

Conclusie
Gefeliciteerd, je hebt nu je eigen Ethereum-adres, dat je kunt gebruiken om transacties te ondertekenen of te versturen en om met het Ethereum-netwerk te communiceren. Bekijk de handleiding over hoe je verbinding kunt maken met Ethereum met behulp van Ruby (ethereum.rb).
Schrijf je in voor onze nieuwsbrief voor meer artikelen en handleidingen over Ethereum. Als je feedback hebt, neem dan gerust contact met ons op via Twitter. Je kunt ook altijd met ons chatten op onze Discord-communityserver, waar je enkele van de coolste ontwikkelaars tegenkomt die je ooit zult ontmoeten :)
