Στο σύστημα Ethereum, η κατάσταση αποτελείται από αντικείμενα που ονομάζονται "λογαριασμοί" (κάθε λογαριασμός αποτελείται από μια διεύθυνση 20 byte) και μεταβάσεις καταστάσεων που μεταφέρουν αξία και πληροφορίες μεταξύ δύο λογαριασμών. Ένας λογαριασμός Ethereum αποτελείται από τέσσερα μέρη: Ένας τυχαίος αριθμός που καθορίζει έναν μετρητή που μπορεί να υποβληθεί σε επεξεργασία μόνο μία φορά ανά συναλλαγή Το τρέχον υπόλοιπο Ethereum του λογαριασμού Ο κωδικός σύμβασης του λογαριασμού, εάν υπάρχει Αποθήκευση του λογαριασμού (κενό από προεπιλογή) Με απλά λόγια, κάθε λογαριασμός Ethereum αποτελείται από ένα ζεύγος δημόσιων και ιδιωτικών κλειδιών. Το δημόσιο κλειδί μπορεί να γίνει κατανοητό ως η διεύθυνση λογαριασμού, στην οποία μπορεί να έχει πρόσβαση οποιοσδήποτε άλλος λογαριασμός Ένα ιδιωτικό κλειδί μπορεί να γίνει κατανοητό ως κρυπτογραφημένος κωδικός πρόσβασης και αυτό το ζεύγος δημόσιων και ιδιωτικών κλειδιών μαζί σχηματίζουν έναν μοναδικά αναγνωρισμένο λογαριασμό Ethereum. Για παράδειγμα, στον πρώτο λογαριασμό Ethereum eth.accounts[0] που δημιουργήσαμε στην προηγούμενη ενότητα, η διεύθυνση 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f είναι το δημόσιο κλειδί και ο κρυπτογραφημένος κωδικός πρόσβασης είναι το ιδιωτικό κλειδί. Αύξηση λογαριασμών Μπορούμε να εισάγουμε την εντολή personal.newAccount("123") για να δημιουργήσουμε έναν νέο λογαριασμό, (σημειώστε ότι το 123 μπορεί να αλλάξει σε οποιονδήποτε άλλο κωδικό πρόσβασης)
Όταν η ιδιωτική αλυσίδα Ethereum εξορύσσεται, ο εξορυσσόμενος αιθέρας θα κατατεθεί στον πρώτο λογαριασμό Ethereum, δηλαδή eth.accounts[0], και το eth.accounts[1] δεν θα έχει ether από προεπιλογή. Αυτή τη στιγμή, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να ελέγξουμε το υπόλοιπο του Ethereum στο eth.accounts[0].
Πώς να μετατρέψετε το Ethereum μεταξύ δύο λογαριασμών Όπως αναφέρθηκε προηγουμένως, το δημόσιο κλειδί (διεύθυνση) κάθε λογαριασμού είναι ο πυρήνας όλων των λειτουργιών λογαριασμού Ethereum, αλλά η συμβολοσειρά διευθύνσεων είναι πολύ μεγάλη, επομένως χρησιμοποιούμε acc0/acc1 για να αναπαραστήσουμε τους λογαριασμούς[0] και [1] αντίστοιχα και ορίζουμε 0,01 ETH που θα μεταφερθούν
Προς το παρόν, μπορούμε να χρησιμοποιήσουμε το eth.sendTransaction για να μεταφέρουμε 0,01 ETH από acc0 σε acc1.
Ένας μηχανισμός προστασίας Ethereum που κλειδώνει αυτόματα λογαριασμούς κάθε τόσο, οπότε οποιαδήποτε μετατροπή ETH μεταξύ λογαριασμών θα απορριφθεί εκτός εάν ο λογαριασμός ξεκλειδωθεί. Αυτή τη στιγμή, πρέπει να εκτελέσουμε personal.unlockAccount(acc0) και να εισαγάγουμε τον κωδικό πρόσβασης για να ξεκλειδώσουμε το acc0.
Αυτή τη στιγμή, εκτελούμε ξανά την εντολή eth.sendTransaction({from: acc0, to: acc1, value: amount}), και το αποτέλεσμα είναι το εξής:
Μπορούμε να δούμε ότι αυτή τη στιγμή, το acc1 έχει τιμή 1000000000000000000000000, αντί για το προηγούμενο 0. Γιατί όμως είναι τόσο μεγάλη η αξία όταν προφανώς θέλουμε να δώσουμε 0.01 νομίσματα αιθέρα; Στην πραγματικότητα, είναι σωστό, χρειάζεται μόνο να εισάγουμε την εντολή web3.fromWei(100000000000000000000, "αιθέρας") για να μάθουμε.
Η βασική μονάδα του Αιθέρα
Η μικρότερη μονάδα νομίσματος Ether είναι το Wei, η οποία είναι επίσης η προεπιλεγμένη μονάδα της γραμμής εντολών και, στη συνέχεια, μία μονάδα για κάθε 1000, με αυτή τη σειρά
kwei (1000 Wei) mwei (1000 KWei) Γκουέι (1000 MWέι) Szabo (1000 gwei) Φίνεϊ (1000 szabo) Αιθέρας (1000 Finney) Με απλά λόγια, είναι 1 ETH = 100000000000000000000000 Wei (γι' αυτό μεταφέραμε 0.01 ETH στην προηγούμενη διακοπή, αλλά το αποτέλεσμα ήταν πολύ μεγάλο) Πώς να κάνετε μετατροπή μεταξύ αιθέρα και wei
|