Mastering Blockchain in no time part 2 — υλοποίηση PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Mastering Blockchain in no time part 2 — υλοποίηση

Purbaryandi

Σε αυτήν τη σειρά άρθρων, θα δημιουργήσουμε ένα απλοποιημένο κρυπτονόμισμα που βασίζεται στην απλή εφαρμογή blockchain στο Golang σε λιγότερο από 5 λεπτά. πρέπει πρώτα να εγκαταστήσετε το golang για να κάνετε αυτό το έργο. για το πρόγραμμα επεξεργασίας κειμένου μπορείτε να χρησιμοποιήσετε οτιδήποτε, εδώ χρησιμοποιώ τον κώδικα του visual studio.

Mastering Blockchain in no time part 2 — υλοποίηση PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
πηγή: bitdegree

Το εγκαταστήσατε; Εντάξει, ας το κάνουμε!

εάν έχετε δημιουργήσει το έργο δημιουργήστε ένα αρχείο main.go . Oke lets code, πρώτα θα ξεκινήσουμε από το main.go Ας ξεκινήσουμε με το τμήμα struct Block του «blockchain». Στο blockchain, μπλοκάρει που αποθηκεύουν πολύτιμες πληροφορίες. Για παράδειγμα, το bitcoin μπλοκάρει τις συναλλαγές καταστημάτων, την ουσία οποιουδήποτε κρυπτονομίσματος. Εκτός από αυτό, ένα μπλοκ περιέχει ορισμένες τεχνικές πληροφορίες, όπως την έκδοσή του, την τρέχουσα χρονική σήμανση και τον κατακερματισμό του προηγούμενου μπλοκ. Σε αυτό το άρθρο δεν πρόκειται να εφαρμόσουμε το μπλοκ όπως περιγράφεται στις προδιαγραφές blockchain ή Bitcoin, αντίθετα, θα χρησιμοποιήσουμε μια απλοποιημένη έκδοση του, η οποία περιέχει μόνο σημαντικές πληροφορίες. Εδώ είναι πώς φαίνεται. εδώ έχουμε ένα μπλοκ δομής:

πληκτρολογήστε Block struct {

Timestamp είναι η τρέχουσα χρονική σήμανση (όταν δημιουργείται το μπλοκ), transactions είναι οι πραγματικές πολύτιμες πληροφορίες που περιέχονται στο μπλοκ, prevhas αποθηκεύει τον κατακερματισμό του προηγούμενου μπλοκ και Hash είναι ο κατακερματισμός του μπλοκ. Στις προδιαγραφές Bitcoin Timestamp, prevhash, να Hash είναι κεφαλίδες μπλοκ, οι οποίες σχηματίζουν ξεχωριστή δομή δεδομένων και συναλλαγές (transaction στην περίπτωσή μας) είναι μια ξεχωριστή δομή δεδομένων. Οπότε τα ανακατεύουμε εδώ για απλότητα.

Πώς υπολογίζουμε λοιπόν τους κατακερματισμούς; Ο τρόπος υπολογισμού των κατακερματισμών είναι ένα πολύ σημαντικό χαρακτηριστικό του blockchain και είναι αυτό το χαρακτηριστικό που κάνει το blockchain ασφαλές. Το θέμα είναι ότι ο υπολογισμός ενός κατακερματισμού είναι μια υπολογιστικά δύσκολη λειτουργία, χρειάζεται λίγο χρόνο ακόμη και σε γρήγορους υπολογιστές (γι' αυτό οι άνθρωποι αγοράζουν ισχυρές GPU για την εξόρυξη Bitcoin). Πρόκειται για ένα σκόπιμο αρχιτεκτονικό σχέδιο, το οποίο καθιστά δύσκολη την προσθήκη νέων μπλοκ, αποτρέποντας έτσι την τροποποίησή τους μετά την προσθήκη τους. Θα συζητήσουμε και θα εφαρμόσουμε αυτόν τον μηχανισμό σε επόμενο άρθρο.

Προς το παρόν, θα πάρουμε απλώς πεδία μπλοκ, θα τα συνδέσουμε και θα υπολογίσουμε έναν κατακερματισμό SHA-256 στον συνδυασμένο συνδυασμό. Ας το κάνουμε αυτό μέσα Newhash μέθοδος:

func NewHash(time time.Time, συναλλαγές []string, prevhash []byte) []byte {

Στη συνέχεια, ακολουθώντας μια σύμβαση Golang, θα εφαρμόσουμε μια συνάρτηση που θα απλοποιήσει τη δημιουργία ενός μπλοκ και το φινίρισμα:

func Blocks(transactions []string, prevhash []byte) *Block {

συνεχίζουμε να δημιουργούμε μια λειτουργία εκτύπωσης. η λειτουργία εκτύπωσης είναι χρήσιμη για την εκτύπωση των περιεχομένων κάθε μπλοκ που εκτελεί μια συναλλαγή. εδώ είναι ο κωδικός:

func Print(block *Block) {

Και συναλλαγή συνάρτησης για συναλλαγή εκτύπωσης:

func Συναλλαγή(μπλοκ *Αποκλεισμός) {

αφού ολοκληρωθούν όλες οι απαιτούμενες λειτουργίες, θα το χρησιμοποιήσουμε στην κύρια λειτουργία:

func main () {

εντάξει όλος ο κώδικας τελειώσαμε να γράφουμε. Ας το εκτελέσουμε πληκτρολογώντας go run main.go στο τερματικό. Έξοδος:

Συμπέρασμα

Κατασκευάσαμε ένα πολύ απλό πρωτότυπο blockchain: είναι απλώς μια σειρά μπλοκ, με κάθε μπλοκ να έχει σύνδεση με το προηγούμενο. Ωστόσο, το πραγματικό blockchain είναι πολύ πιο περίπλοκο. Στο blockchain μας η προσθήκη νέων μπλοκ είναι εύκολη και γρήγορη, αλλά στο πραγματικό blockchain η προσθήκη νέων μπλοκ απαιτεί λίγη δουλειά: πρέπει κανείς να εκτελέσει μερικούς βαρείς υπολογισμούς πριν λάβει άδεια προσθήκης μπλοκ (αυτός ο μηχανισμός ονομάζεται Proof-of-Work). Επίσης, το blockchain είναι μια κατανεμημένη βάση δεδομένων που δεν έχει έναν μόνο υπεύθυνο λήψης αποφάσεων. Έτσι, ένα νέο μπλοκ πρέπει να επιβεβαιωθεί και να εγκριθεί από άλλους συμμετέχοντες στο δίκτυο (αυτός ο μηχανισμός ονομάζεται συναίνεση). Και δεν υπάρχουν ακόμη συναλλαγές στο blockchain μας!

Source: https://medium.com/@purbaryandi/mastering-blockchain-in-no-time-part-2-implementation-433dc7967fe8?source=rss——cryptocurrency-5

Σφραγίδα ώρας:

Περισσότερα από Μέτριας Δυσκολίας