Padroneggiare la Blockchain in pochissimo tempo, parte 2: implementazione della Data Intelligence di PlatoBlockchain. Ricerca verticale. Ai.

Padroneggiare la Blockchain in pochissimo tempo, parte 2: implementazione

Purbaryandi

In questa serie di articoli, costruiremo una criptovaluta semplificata basata su una semplice implementazione blockchain in Golang in meno di 5 minuti. devi prima installare Golang per realizzare questo progetto. per l'editor di testo puoi usare qualsiasi cosa, qui utilizzo il codice di Visual Studio.

Padroneggiare la Blockchain in pochissimo tempo, parte 2: implementazione della Data Intelligence di PlatoBlockchain. Ricerca verticale. Ai.
fonte: bitdegree

L'hai installato tu? Va bene, facciamolo!

se hai creato il progetto crea un file main.go . oke passiamo al codice, per prima cosa inizieremo da main.go Iniziamo con la parte struct Block di “blockchain”. Nella blockchain, blocca che memorizzano informazioni preziose. Ad esempio, Bitcoin blocca le transazioni in negozio, l'essenza di qualsiasi criptovaluta. Oltre a ciò, un blocco contiene alcune informazioni tecniche, come la sua versione, il timestamp attuale e l'hash del blocco precedente. In questo articolo non implementeremo il blocco così come è descritto nelle specifiche blockchain o Bitcoin, ne utilizzeremo invece una versione semplificata, che contiene solo informazioni significative. Ecco come appare. qui abbiamo un blocco struct:

tipo Struttura del blocco {

Timestamp è il timestamp corrente (quando viene creato il blocco), transactions è l'informazione preziosa effettiva contenuta nel blocco, prevhas memorizza l'hash del blocco precedente e Hash è l'hash del blocco. Nelle specifiche Bitcoin Timestamp, prevhashe Hash sono intestazioni di blocco, che formano una struttura dati separata, e transazioni (transaction nel nostro caso) è una struttura dati separata. Quindi li mescoliamo qui per semplicità.

Allora come calcoliamo gli hash? Il modo in cui vengono calcolati gli hash è una caratteristica molto importante della blockchain, ed è questa caratteristica che rende la blockchain sicura. Il fatto è che calcolare un hash è un'operazione computazionalmente difficile, richiede del tempo anche su computer veloci (ecco perché le persone acquistano potenti GPU per estrarre Bitcoin). Si tratta di un progetto architettonico intenzionale, che rende difficile l'aggiunta di nuovi blocchi, impedendone così la modifica dopo l'aggiunta. Discuteremo e implementeremo questo meccanismo in un prossimo articolo.

Per ora, prenderemo semplicemente i campi del blocco, li concateneremo e calcoleremo un hash SHA-256 sulla combinazione concatenata. Facciamolo dentro Newhash Metodo:

funz NewHash(time time.Time, transazioni []string, prevhash []byte) []byte {

Successivamente, seguendo una convenzione di Golang, implementeremo una funzione che semplificherà la creazione di un blocco e finiremo:

funz Blocchi(transazioni []string, prevhash []byte) *Blocco {

continuiamo a creare una funzione di stampa. la funzione print è utile per stampare il contenuto di ogni blocco che esegue una transazione. ecco il codice:

funz Stampa(blocco *Blocco) {

E transazione funzionale per la transazione di stampa:

funzione Transazione(blocco *Blocco) {

dopo che tutte le funzioni richieste sono state completate, la utilizzeremo nella funzione principale:

funzione principale() {

okay, tutto il codice che abbiamo finito di scrivere. eseguiamolo digitando go run main.go nel terminale. Produzione :

Conclusione

Abbiamo costruito un prototipo di blockchain molto semplice: è semplicemente una serie di blocchi, in cui ciascun blocco ha una connessione con quello precedente. La blockchain vera e propria è però molto più complessa. Nella nostra blockchain aggiungere nuovi blocchi è facile e veloce, ma nella blockchain reale l'aggiunta di nuovi blocchi richiede un po' di lavoro: è necessario eseguire alcuni calcoli pesanti prima di ottenere il permesso di aggiungere blocchi (questo meccanismo è chiamato Proof-of-Work). Inoltre, la blockchain è un database distribuito che non ha un unico decisore. Pertanto, un nuovo blocco deve essere confermato e approvato dagli altri partecipanti alla rete (questo meccanismo si chiama consenso). E non ci sono ancora transazioni nella nostra blockchain!

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

Timestamp:

Di più da Medio