U libru "Creazione di cuntratti intelligenti di Solidità per a blockchain Ethereum. Guida pratica"

U libru "Creazione di cuntratti intelligenti di Solidità per a blockchain Ethereum. Guida pratica"
Per più di un annu aghju travagliatu nantu à u libru "Creazione di Cuntratti Smart Solidità per l'Ethereu Blockchain. Guida pratica", è avà stu travagliu hè finitu, è u libru publicatu è dispunibule in Litri.

Spergu chì u mo libru vi aiuterà rapidamente à inizià a creazione di cuntatti intelligenti di Solidità è DApps distribuiti per u blockchain Ethereum. Hè custituitu di 12 lezioni cù travaglii pratichi. Dopu avè finitu, u lettore puderà creà i so nodi Ethereum lucali, pubblicà cuntratti intelligenti è chjamanu i so metudi, scambià dati trà u mondu reale è cuntratti intelligenti cù l'oraculi, è travaglià cù a reta di debug di a prova Rinkeby.

U libru hè indirizzatu à tutti quelli chì anu interessatu in tecnulugii avanzati in u campu di i blockchains è volenu acquistà rapidamente cunniscenze chì li permettenu di fà un travagliu interessanti è promettenti.

Quì sottu truverete u sommariu è u primu capitulu di u libru (ancu nantu Litre frammenti di u libru sò dispunibili). Spergu di riceve feedback, cumenti è suggerimenti. Pruvaraghju di piglià tuttu questu in contu quandu preparanu a prossima edizione di u libru.

Indice di cuntenutuIntroduzioneU nostru libru hè destinatu à quelli chì volenu micca solu per capiscenu i principii di u blockchain Ethereu, ma ancu per acquistà cumpetenze pratiche in a creazione di DApps distribuiti in a lingua di prugrammazione Solidità per questa reta.

Hè megliu micca solu di leghje stu libru, ma di travaglià cun ellu, eseguendu i travaglii pratichi descritti in e lezioni. Per travaglià, avete bisognu di un computer locale, un servitore virtuale o nuvola cù Debian o Ubuntu OS installatu. Pudete ancu aduprà Raspberry Pi per fà parechje attività.

À a prima lezzione Fighjemu i principii di u funziunamentu di u blockchain Ethereu è a terminologia basica, è parlemu ancu di induve stu blockchain pò esse usatu.

Goal seconda lezzione - crea un node di blockchain Ethereum privatu per un travagliu ulteriore in stu cursu nantu à un servitore Ubuntu è Debian. Fighjemu à e funziunalità di installà utilità basi, cum'è geth, chì assicura l'operazione di u nostru node blockchain, è ancu u dimonu di almacenamiento di dati decentralized swarm.

Terza lezziò vi insegnerà cumu sperimentà cù Ethereu in un microcomputer Raspberry Pi di prezzu. Puderete installà u sistema operatore Rasberian (OS) nantu à u Raspberry Pi, l'utilità Geth chì alimenta u node blockchain, è u daemon di almacenamiento decentralizatu Swarm.

Lezzione quattru hè dedicatu à i cunti è l'unità di criptu di munita in a reta Ethereum, è ancu modi per trasfiriri fondi da un contu à l'altru da a cunsola Geth. Ampararete cumu creà cunti, inizià transazzione di trasferimentu di fondi, è uttene u statutu di transazzione è a ricevuta.

In a quinta lezzione Puderete cunnosce i cuntratti intelligenti nantu à a reta Ethereum è amparà nantu à a so eseguzione da a macchina virtuale Ethereum.

Puderete creà è publicà u vostru primu cuntrattu intelligente nantu à a reta privata Ethereu è amparà à chjamà e so funzioni. Per fà questu, avete aduprà l'IDE Remix Solidity. Puderete ancu amparà à stallà è aduprà u compilatore batch solc.
Parlaremu ancu di a chjamata Application Binary Interface (ABI) è vi insegneremu cumu aduprà.

Sesta lezzione hè dedicatu à creà script JavaScript chì esegue Node.js è eseguisce operazioni cù i cuntratti intelligenti di Solidity.

Puderete installà Node.js nantu à Ubuntu, Debian è Rasberian OS, scrive scripts per pubblicà un cuntrattu intelligente in a reta locale Ethereum è chjamate e so funzioni.

In più, amparate cumu trasfiriri fondi trà cunti rigulari usendu scripts, è ancu creditu à cunti smart contract.

In a settima lezzione Sapete cumu stallà è aduprà u framework Truffle, populari trà i sviluppatori di u cuntrattu intelligenti di Solidità. Ampararete cumu creà script JavaScript chì chjamanu funzioni di cuntrattu cù u modulu di cuntrattu di truffe, è pruvate u vostru cuntrattu intelligente cù Truffle.

Ottava lezziò dedicatu à i tipi di dati Solidity. Scriverete cuntratti intelligenti chì travaglianu cù tippi di dati cum'è interi firmati è senza signu, numeri firmati, stringhe, indirizzi, variàbili cumplessi, arrays, enumerazioni, strutture è dizziunarii.

In a nona lezzione Serete un passu più vicinu à creà cuntratti intelligenti per a rete principale di Ethereu. Ampararete cumu pubblicà cuntratti cù Truffle nantu à a reta privata Geth, è ancu in u testnet Rinkeby. Debugging un cuntrattu intelligente nantu à a reta di Rinkeby hè assai utile prima di pubblicà nantu à a reta principale - quasi tuttu hè veru quì, ma for free.

Cum'è parte di a lezziò, avete da creà un node di rete di teste Rinkeby, finanzià cù fondi, è pubblicà un cuntrattu intelligente.

Lizioni 10 dedicatu à Ethereum Swarm distributed data storage. Utilizendu l'almacenamiento distribuitu, risparmiate l'almacenamiento di grande quantità di dati nantu à a blockchain Ethereu.

In questu tutoriale, creerete un almacenamentu Swarm locale, scrive è leghje operazioni nantu à i schedari, è i repertorii di schedari. In seguitu, amparate cumu travaglià cù u publicu Swarm gateway, scrive scripts per accede à Swarm da Node.js, è ancu cù u modulu Perl Net::Ethereum::Swarm.

Obiettivu di a lezzione 11 - maestru chì travaglia cù i cuntratti intelligenti di Solidity utilizendu a lingua di prugrammazione populari Python è u framework Web3.py. Puderete installà u quadru, scrive scripts per compilà è pubblicà u cuntrattu intelligente, è chjamate e so funzioni. In questu casu, Web3.py serà utilizatu in u so propiu è in cunghjunzione cù l'ambiente di sviluppu integratu di Truffle.

À a lezione 12 vi amparà à trasfiriri dati trà cuntratti intelligenti è u mondu reale cù oraculi. Questu serà utile per voi per riceve dati da i siti Web, i dispositi IoT, parechji dispositi è sensori, è mandà dati da i cuntratti intelligenti à questi dispositi. In a parti pratica di a lezziò, avete da creà un oraculu è un cuntrattu intelligente chì riceve u scambiu attuale trà USD è rubli da u situ web di u Bancu Centrale di a Federazione Russa.

Lezzione 1. In breve nantu à u blockchain è a reta EthereuU scopu di a lezzione: cunnosce i principii di u funziunamentu di u blockchain Ethereum, i so spazii d'applicazione è a terminologia basica.
I travaglii pratichi: micca trattatu in sta lezzione.

Ùn ci hè guasi un sviluppatore di software oghje chì ùn hà micca intesu nunda di a tecnulugia di blockchain (Blockchain), criptu di monete (Cryptocurrency o Crypto Currency), Bitcoin (Bitcoin), offerta iniziale di monete (ICO, Offerta iniziale di monete), cuntratti intelligenti (Contrattu Smart), è ancu altri cuncetti è termini ligati à blockchain.

A tecnulugia Blockchain apre novi mercati è crea impieghi per i programatori. Sè avete capitu tutte l'intricacies di tecnulugii di criptu di munita è tecnulugii di cuntratti intelligenti, allura ùn deve micca avè prublemi à applicà sta cunniscenza in pratica.

Ci vole à dì chì ci hè assai speculazione intornu à i criptu di muniti è i blockchains. Lasciemu da parte discussioni nantu à i cambiamenti in i tassi di criptocurrency, a creazione di piramidi, l'intricacies di a legislazione di criptocurrency, etc. In u nostru corsu di furmazione, ci cuncintraremu principarmenti nantu à l'aspetti tecnichi di l'applicazione di i cuntratti intelligenti di u blockchain Ethereum (Ethereum, Ether) è u sviluppu di l'applicazioni decentralizate chjamate (Applicazione Distribuita, DApp).

Cosa hè blockchain

Blockchain (Block Chain) hè una catena di blocchi di dati cunnessi à l'altri in un certu modu. À u principiu di a catena ci hè u primu blocu, chì hè chjamatu bloccu primariu (bloccu di genesi) o bloccu di genesi. Hè seguita da u sicondu, dopu u terzu è cusì.

Tutti questi blocchi di dati sò automaticamente duplicati nantu à numerosi nodi di a reta di blockchain. Questu assicura un almacenamentu decentralizatu di dati di blockchain.
Pudete pensà à un sistema di blockchain cum'è un gran numaru di nodi (servitori fisichi o virtuali) cunnessi in una reta è riplicà tutti i cambiamenti in a catena di blocchi di dati. Questu hè cum'è un computer multi-servitore gigante, è i nodi di un tali computer (servitori) ponu esse spargugliati in tuttu u mondu. È ancu pudete aghjunghje u vostru urdinatore à a reta di blockchain.

Database distribuitu

Un blockchain pò esse pensatu cum'è una basa di dati distribuita chì hè replicata in tutti i nodi di a reta di blockchain. In teoria, u blockchain serà operativu finu à chì almenu un node hè travagliatu, almacenà tutti i blocchi di u blockchain.

Registru di dati distribuitu

Blockchain pò esse pensatu cum'è un ledger distribuitu di dati è operazioni (transacciones). Un altru nome per un tali registru hè un ledger.

I dati ponu esse aghjuntu à un ledger distribuitu, ma ùn pò micca esse cambiatu o sguassatu. Questa impossibilità hè ottenuta, in particulare, per l'usu di algoritmi criptografici, algoritmi speciali per aghjunghje blocchi à a catena è almacenamiento decentralizatu di dati.

Quandu aghjunghje blocchi è eseguisce operazioni (transazzione), i chjavi privati ​​​​è publichi sò usati. Limitanu l'utilizatori di blockchain dandu solu l'accessu à i so propri blocchi di dati.

Transazzioni

Blockchain guarda l'infurmazioni nantu à l'operazioni (transacciones) in blocchi. À u listessu tempu, e transazzioni vechji, digià cumpletu, ùn ponu micca esse ritruvate o cambiate. E transazzioni novi sò almacenati in blocchi novi, aghjuntu.

In questu modu, tutta a storia di a transazzione pò esse arregistrata senza cambiamenti nantu à u blockchain. Per quessa, u blockchain pò esse usatu, per esempiu, per almacenà in modu sicuru transazzione bancaria, infurmazione di copyright, storia di cambiamenti in i pruprietarii, etc.

U blockchain Ethereum cuntene i stati di u sistema chjamatu. Quandu e transazzione sò eseguite, u statu cambia da u statu iniziale à u statu attuale. E transazzione sò registrate in blocchi.

Blockchains publichi è privati

Ci vole à nutà quì chì tuttu ciò chì dice hè veru solu per i chjamati rete di blockchain publicu, chì ùn ponu esse cuntrullati da alcuna persona o entità legale, agenzia di guvernu o guvernu.
Chjamatu rete bluccatu privatu sò sottu u cuntrollu tutale di i so criaturi, è tuttu hè pussibule, per esempiu, un sustitutu cumpleta di tutti i blocchi di a catena.

Applicazioni pratiche di blockchain

A cosa pò esse utile a blockchain?

In corta, blockchain permette di fà transazzione (transacciones) in modu sicuru trà e persone o cumpagnie chì ùn anu micca fiducia. Dati arregistrati in u blockchain (transazzioni, dati persunali, documenti, certificati, cuntratti, fatture, etc.) ùn ponu esse falsificati o rimpiazzati dopu a registrazione. Dunque, basatu annantu à u blockchain, hè pussibule di creà, per esempiu, registri distribuiti di fiducia di varii tipi di documenti.

Di sicuru, sapete chì i sistemi di criptu di munita sò creati nantu à a basa di blockchains, pensati per rimpiazzà i soldi di carta ordinariu. Paper money hè ancu chjamatu fiat (da Fiat Money).
Blockchain assicura l'almacenamiento è l'immutabilità di e transazzione registrate in blocchi, per quessa pò esse usatu per creà sistemi di criptocurrency. Contene tutta a storia di u trasferimentu di fondi criptu trà parechji utilizatori (conti), è ogni operazione pò esse tracciata.

Ancu se e transazzioni in i sistemi di criptovaluta ponu esse anonime, a retirazzione di a criptovaluta è u scambiu per i soldi fiat di solitu risultatu in revelà l'identità di u pruprietariu di l'attivu di criptocurrency.

I cosi-chiamati cuntratti intelligenti, chì sò software in esecuzione nantu à a reta Ethereu, permettenu di automatizà u prucessu di cunclusione di transacciones è monitorizà a so implementazione. Questu hè soprattuttu efficace se u pagamentu per a transazzione hè realizatu cù a criptocurrency Ether.

U blockchain Ethereum è i cuntratti intelligenti Ethereum scritti in a lingua di prugrammazione Solidità ponu esse aduprati, per esempiu, in i seguenti spazii:

  • una alternativa à a notarizazione di documenti;
  • u almacenamentu di un registru di l'ogetti immubiliarii è l'infurmazioni nantu à e transazzione cù l'oggetti immubiliarii;
  • almacenamentu di l'infurmazioni di copyright nantu à a pruprietà intellettuale (libri, imagine, opere musicali, etc.);
  • creazione di sistemi di votu indipendenti;
  • finanza è banca;
  • logistica à una scala internaziunale, seguimentu di u muvimentu di merchenzie;
  • almacenamiento di dati persunali cum'è un analogu à un sistema di carta d'identità;
  • transazzione sicura in u campu cummerciale;
  • almacenà i risultati di esami medichi, è ancu a storia di e prucedure prescritte

Prublemi cù blockchain

Ma, sicuru, micca tuttu hè cusì simplice quant'ellu pare !

Ci sò prublemi cù a verificazione di dati prima di aghjunghje à u blockchain (per esempiu, sò falsi?), prublemi cù a sicurità di u sistema è u software di l'applicazione utilizatu per travaglià cù u blockchain, prublemi cù a pussibilità di utilizà metudi di l'ingenieria suciale per arrubbari l'accessu. à cryptocurrency wallets, etc. .P.

In novu, s'ellu ùn parlemu micca di un blockchain publicu, i nodi di quale sò spargugliati in u mondu sanu, ma di un blockchain privatu chì appartene à una persona o urganizazione, allora u livellu di fiducia quì ùn serà micca più altu ch'è u livellu di fiducia. in questa persona o in questa urganizazione.

Hè ancu esse cunsideratu chì i dati arregistrati in u blockchain diventanu dispunibuli per tutti. In questu sensu, blockchain (in particulare publicu) ùn hè micca adattatu per almacenà l'infurmazioni cunfidenziale. In ogni casu, u fattu chì l'infurmazioni nantu à u blockchain ùn pò micca esse cambiatu pò aiutà à prevene o investigà diversi tipi di attività fraudulente.

L'applicazioni decentralizate Ethereum seranu cunvene si paghe per u so usu cù criptocurrency. U più persone chì pussede criptocurrency o sò disposti à cumprà, i più populari DApps è cuntratti intelligenti diventeranu.

I prublemi cumuni cù u blockchain chì impediscenu a so applicazione pratica includenu a velocità limitata à quale ponu aghjunghje novi blocchi è u costu relativamente altu di e transacciones. Ma a tecnulugia in questa zona hè attivamente sviluppata, è ci sò speranze chì i prublemi tecnichi seranu risolti cù u tempu.

Un altru prublema hè chì i cuntratti intelligenti nantu à u blockchain Ethereum operanu in un ambiente isolatu di macchine virtuali, è ùn anu micca accessu à e dati di u mondu reale. In particulare, u prugramma di u cuntrattu intelligente ùn pò micca leghje i dati da i siti o qualsiasi dispositi fisici (sensori, cuntatti, etc.), è ancu ùn pò micca pruduce dati à qualsiasi dispositi esterni. Discuteremu stu prublema è e manere di risolviri in una lezione dedicata à l'oraculi chjamati - intermediari di l'infurmazioni di cuntratti intelligenti.

Ci sò ancu restrizioni legali. In certi paesi, per esempiu, hè pruibitu d'utilizà criptocurrency cum'è un modu di pagamentu, ma pudete pussede cum'è una spezia di attivu digitale, cum'è securities. Tali assi ponu esse acquistati è venduti in u scambiu. In ogni casu, quandu creanu un prughjettu chì travaglia cù criptu di munita, avete bisognu di familiarizà cù a legislazione di u paese sottu à quale u vostru prughjettu casca.

Cumu si forma una catena di blockchain

Comu avemu digià dettu, blockchain hè una catena simplice di blocchi di dati. Prima, u primu blocu di sta catena hè furmatu, dopu u sicondu hè aghjuntu à questu, è cusì. I dati di transazzione sò assuciati per esse guardati in blocchi, è sò aghjuntu à u bloccu più recente.

In Fig. 1.1 avemu dimustratu a versione più simplice di una sequenza di blocchi, induve u primu bloccu si riferisce à u prossimu.

U libru "Creazione di cuntratti intelligenti di Solidità per a blockchain Ethereum. Guida pratica"
Risu. 1.1. Sequenza simplice di blocchi

Cù sta opzione, però, hè assai faciule di tamper cù u cuntenutu di qualsiasi bloccu in a catena, postu chì i blocchi ùn cuntenenu micca infurmazione per pruteggiri contru i cambiamenti. Cunsiderendu chì u blockchain hè destinatu à esse usatu da e persone è cumpagnie trà quale ùn ci hè micca fiducia, pudemu cuncludi chì stu metudu di almacenà e dati ùn hè micca adattatu per u blockchain.

Cuminciamu à prutege i blocchi da a falsificazione. À a prima tappa, avemu da pruvà à prutezzione di ogni bloccu cù un checksum (Fig. 1.2).

U libru "Creazione di cuntratti intelligenti di Solidità per a blockchain Ethereum. Guida pratica"
Risu. 1.2. Aghjunghje a prutezzione per questi blocchi cù un checksum

Avà un attaccu ùn pò micca solu cambià u bloccu, postu chì cuntene u checksum di i dati di u bloccu. A verificazione di u checksum mostrarà chì i dati sò stati cambiati.

Per calculà u checksum, pudete aduprà una di e funzioni di hashing cum'è MD-5, SHA-1, SHA-256, etc. E funzioni Hash calculanu un valore (per esempiu, una stringa di testu di lunghezza constante) eseguendu operazioni irreversibili nantu à un bloccu di dati. L'operazione dipende da u tipu di funzione hash.

Ancu s'è u cuntenutu di u bloccu di dati cambia pocu, u valore di l'hash cambia ancu. Analizendu u valore di a funzione hash, hè impussibile di ricustruisce u bloccu di dati per quale hè statu calculatu.

Sarà abbastanza prutezzione? Sfurtunatamente no.

In questu schema, u checksum (funzione hash) pruteghja solu i blocchi individuali, ma micca tutta a catena di bloccu. Sapendu l'algoritmu per calculà a funzione hash, un attaccu pò facilmente rimpiazzà u cuntenutu di un bloccu. Inoltre, nunda ùn l'impedirà di sguassà blocchi da a catena o aghjunghje novi.

Per prutezzione di a catena sana in tuttu, pudete ancu almacenà in ogni blocu, cù i dati, un hash di i dati da u bloccu precedente (Fig. 1.3).

U libru "Creazione di cuntratti intelligenti di Solidità per a blockchain Ethereum. Guida pratica"
Risu. 1.3. Aghjunghjite l'hash di u bloccu precedente à u bloccu di dati

In questu schema, per cambià un bloccu, avete bisognu di recalculate e funzioni di hash di tutti i blocchi sussegwenti. Sembra, chì hè u prublema?

In i blocchi veri, i difficultà artificiali sò ancu creati per aghjunghje novi blocchi - l'algoritmi chì necessitanu assai risorse informatiche sò usati. In cunsiderà chì per fà cambiamenti à un bloccu, avete bisognu di ricalculate micca solu questu bloccu, ma tutti i successivi, questu serà estremamente difficiule di fà.

Ricurdemu ancu chì i dati di blockchain sò almacenati (duplicati) in numerosi nodi di rete, i.e. U almacenamentu decentralizatu hè utilizatu. È questu rende assai più difficiuli di falsificà un bloccu, perchè i cambiamenti devenu esse fatti à tutti i nodi di a rete.

Siccomu i blocchi guardanu infurmazione nantu à u bloccu precedente, hè pussibule di verificà u cuntenutu di tutti i blocchi in a catena.

Ethereu blockchain

U blockchain Ethereu hè una piattaforma nantu à quale DApps distribuiti ponu esse creati. A cuntrariu di l'altri piattaforme, Ethereu permette l'usu di i chjamati cuntratti intelligenti (cuntratti intelligenti), scritti in a lingua di prugrammazione Solidità.

Sta piattaforma hè stata creata in 2013 da Vitalik Buterin, fundatore di Bitcoin Magazine, è lanciata in 2015. Tuttu ciò chì avemu da studià o da fà in u nostru cursu di furmazione si riferisce specificamente à i cuntratti intelligenti Ethereum blockchain è Solidity.

Mining o cumu si creanu i blocchi

A minera hè un prucessu piuttostu cumplessu è intensivu di risorse per aghjunghje novi blocchi à a catena di blockchain, è micca in tuttu "miniera di criptocurrency". A minera assicura a funziunalità di u blockchain, perchè hè stu prucessu chì hè rispunsevuli di aghjunghje transazzione à u blockchain Ethereu.

E persone è l'urganisazione implicate in l'aghjunghje blocchi sò chjamati minatori.
U software chì curreghja nantu à i nodi minatori prova di truvà un paràmetru di hashing chjamatu Nonce per l'ultimu bloccu per ottene un valore di hash specificu specificatu da a reta. L'algoritmu di hashing Ethash utilizatu in Ethereu permette di ottene u valore Nonce solu per una ricerca sequenziale.

Se u node di u minatore trova u valore Nonce currettu, allora questu hè a prova chjamata di travagliu (PoW, Proof-of-work). In questu casu, se un blocu hè aghjuntu à a reta di Ethereu, u minatore riceve una certa ricumpensa in a valuta di a reta - Ether. À u mumentu di a scrittura, a ricumpensa hè 5 Ether, ma questu serà ridutta cù u tempu.

Cusì, i minatori di Ethereu assicuranu u funziunamentu di a reta aghjustendu blocchi, è ricevenu soldi criptu per questu. Ci hè assai infurmazione nantu à l'internet nantu à i minatori è a minera, ma avemu da fucalizza nantu à a creazione di cuntratti di Solidità è DApps in a reta Ethereu.

Riassuntu di lezzione

In a prima lezziò, avete familiarizatu cù u blockchain è hà amparatu chì hè una sequenza speciale di blocchi. U cuntenutu di i blocchi arregistrati prima ùn pò esse cambiatu, postu chì questu averebbe bisognu di ricalculate tutti i blocchi sussegwenti nantu à parechji nodi di rete, chì esige assai risorse è tempu.

Blockchain pò esse usatu per almacenà i risultati di e transazzione. U so scopu principale hè di urganizà transazzione sicura trà i partiti (persone è urganisazione) trà quale ùn ci hè micca fiducia. Avete amparatu in quali spazii specifichi di l'affari è in quali spazii ponu esse utilizati l'Ethereum blockchain è i cuntratti intelligenti di Solidità. Questu hè u settore bancariu, registrazione di diritti di pruprietà, documenti, etc.

Avete ancu amparatu chì parechji prublemi ponu accade quandu si usa blockchain. Quessi sò prublemi di verificazione di l'infurmazioni aghjuntu à u blockchain, a rapidità di u blockchain, u costu di e transazzione, u prublema di u scambiu di dati trà i cuntratti intelligenti è u mondu reale, è ancu i putenziali attacchi da l'attaccanti destinati à arrubà fondi di criptocurrency da i cunti d'utilizatori. .

Avemu ancu brevemente parlatu di a minera cum'è u prucessu di aghjunghje novi blocchi à u blockchain. A minera hè necessaria per compie e transacciones. Quelli chì participanu à a minera assicuranu u funziunamentu di u blockchain è ricevenu una ricumpensa in criptocurrency per questu.

Lezzione 2. Preparazione di un ambiente di travagliu in Ubuntu è Debian OSSelezziunà un sistema operatore
Installazione di e utilità necessarie
Installazione di Geth è Swarm nantu à Ubuntu
Installazione di Geth è Swarm nantu à Debian
Preparazione preliminare
Scaricatu a distribuzione Go
Stabbilimentu di variabili di l'ambiente
Verificate a versione Go
Installazione di Geth è Swarm
Crià un blockchain privatu
Preparazione di u schedariu genesis.json
Crea un repertoriu per u travagliu
Crea un contu
Cumincià l'inizializazione di u nodu
Opzioni di lanciu di u nodu
Cunnette vi à u nostru node
A gestione minera è u cuntrollu di u bilanciu
Chiudi a cunsola Geth
Riassuntu di lezzione

Lezzione 3. Preparazione di l'ambiente di travagliu nantu à Raspberry Pi 3Preparazione di u Raspberry Pi 3 per u travagliu
Installazione di Rasberian
Installazione di l'aghjurnamenti
Abilitazione di l'accessu SSH
Stabbilimentu di un indirizzu IP staticu
Installazione di e utilità necessarie
Stallà Go
Scaricatu a distribuzione Go
Stabbilimentu di variabili di l'ambiente
Verificate a versione Go
Installazione di Geth è Swarm
Crià un blockchain privatu
Verificate u vostru contu è u saldu
Riassuntu di lezzione

Lezzione 4. Accounts è trasferimentu di fondi trà cuntiVede è aghjunghje cunti
Vede una lista di cunti
Aghjunghje un contu
Opzioni di cumandamentu di u contu geth
Password di contu
Cryptocurrency in Ethereu
Unità di valuta Ethereum
Determinemu u saldu attuale di i nostri cunti
Trasferite fondi da un contu à l'altru
eth.sendTransaction mètudu
Vede u statutu di a transazzione
Ricevuta di transazzione
Riassuntu di lezzione

Lezzione 5. Publicà u vostru primu cuntrattuCuntratti intelligenti in Ethereu
Esecuzione Smart Contract
Ethereum Virtual Machine
Ambiente di sviluppu integratu Remix Solidity IDE
Cumpilazione in esecuzione
Chjama Funzioni di Cuntrattu
Publicà un cuntrattu nantu à una reta privata
Ottene a definizione ABI è u codice binariu di u cuntrattu
Publicazione di u cuntrattu
Verificate u statutu di a transazzione di pubblicazione di u cuntrattu
Chjama Funzioni di Cuntrattu
Batch compiler solc
Installazione di solc nantu à Ubuntu
Installazione di solc in Debian
Cumpilà u cuntrattu HelloSol
Publicazione di u cuntrattu
Installazione di solc nantu à Rasberian
Riassuntu di lezzione

Lezzione 6. Cuntratti intelligenti è Node.jsInstallazione di Node.js
Installazione nantu à Ubuntu
Installazione nantu à Debian
Installazione è esecuzione di Ganache-cli
Installazione Web3
Installazione di solc
Installazione di Node.js nantu à Rasberian
Script per uttene una lista di cunti in a cunsola
Scrittura per publicà un cuntrattu intelligente
Lanciari è ottene paràmetri
Ottene opzioni di lanciamentu
Cumpilazione di u cuntrattu
Unblocking u vostru contu
Carica ABI è codice binariu cuntrattu
Stima a quantità necessaria di gas
Crea un oggettu è cuminciate à publicà un cuntrattu
Esecuzione di u script di publicazione di u cuntrattu
Chjamà funzioni di cuntrattu intelligenti
Hè pussibule aghjurnà un cuntrattu intelligente publicatu?
U travagliu cù Web3 versione 1.0.x
Ottene una lista di cunti
Publicazione di u cuntrattu
Chjama Funzioni di Cuntrattu
Trasferite fondi da un contu à l'altru
Trasferite fondi à u contu cuntrattu
Aghjurnà u cuntrattu intelligente HelloSol
Crea un script per vede u saldu di u vostru contu
Aghjunghjite una chjama à a funzione getBalance à l'script call_contract_get_promise.js
Ripigliemu u cuntu di cuntrattu intelligenti
Riassuntu di lezzione

Lezzione 7. Introduzione à a TruffaInstallazione di Truffle
Crea un prughjettu HelloSol
Crià l'annuariu di u prughjettu è i schedari
annuariu di cuntratti
Migrazioni di catalogu
Test di annuariu
truffle-config.js file
Cumpilà u cuntrattu HelloSol
Cumincià à publicà un cuntrattu
Chjamà e Funzioni di Cuntrattu HelloSol in una Truffa Prompt
Chjamate funzioni di cuntrattu HelloSol da un script JavaScript chì esegue Node.js
Installazione di u modulu truffe-contrat
Chjamate e funzioni di cuntrattu getValue è getString
Chjamate e funzioni di cuntrattu setValue è setString
Modificazione di u cuntrattu è ripubblicazione
U travagliu cù Web3 versione 1.0.x
Fà cambiamenti à u cuntrattu intelligente HelloSol
Scripts per chjamà metudi di cuntrattu
Essai à la truffe
Test di solidità
Test JavaScript
Riassuntu di lezzione

Lezzione 8. Tipi di dati di soliditàCuntrattu per i tipi di dati di apprendimentu
Tipi di dati booleani
Numeri interi senza segnu è interi firmati
Numeri di punti fissi
Indirizzu
Variabili di tippi cumplessi
Arrays di dimensione fissa
Array dinamichi
Enumerazione
Strutture
Mappatura di dizionari
Riassuntu di lezzione

Lezzione 9. Migrazione di cuntratti à a reta privata è à a reta RinkebyPublicà un cuntrattu da Truffle à a reta privata di Geth
Preparazione di un node di rete privata
Preparazione di un cuntrattu per u travagliu
Cumpilazione è migrazione di un cuntrattu à a reta di Truffle
Accuminciamu a migrazione di a rete locale geth
Ottenere artefatti a tartufo
Publicà un cuntrattu da Truffle à u testnet Rinkeby
Preparazione di un node Geth per travaglià cù Rinkeby
Sincronizazione di nodi
Adding accounts
Ricaricamentu di u vostru contu Rinkeby cù etere
Lanciazione di a migrazione di u cuntrattu à a reta Rinkeby
Vede l'infurmazione di u cuntrattu nantu à a reta Rinkeby
Truffle Console per Rinkeby Network
Un modu più faciule per chjamà funzioni di cuntrattu
Chjamate metudi di cuntrattu cù Node.js
Trasferite fondi trà i cunti in a cunsola Truffle per Rinkby
Riassuntu di lezzione

Lezzione 10. Ethereum Swarm Decentralized Data StorageCumu funziona l'Ethereum Swarm?
Installazione è lanciazione di Swarm
Operazioni cù i schedari è i cartulari
Caricà un File à Ethereum Swarm
Leghje un schedariu da Ethereum Swarm
Vede u manifestu di un schedariu caricatu
Caricà i repertorii cù i subdirectorii
Leghje un schedariu da un cartulare telecaricatu
Utilizendu un gateway publicu Swarm
Accessu à Swarm da script Node.js
Perl Net::Ethereum::Modulu Swarm
Installazione di u modulu Net::Ethereum::Swarm
Scrittura è lettura di dati
Riassuntu di lezzione

Lezzione 11. Web3.py framework per travaglià cù Ethereu in PythonStallà Web3.py
Aghjurnà è stallà i pacchetti necessarii
Installazione di u modulu easysolc
Publicà un cuntrattu cù Web3.py
Cumpilazione di u cuntrattu
Cunnessione à un fornitore
Eseguite a publicazione di u cuntrattu
Salvà l'indirizzu di u cuntrattu è abi in un schedariu
Esecuzione di u script di publicazione di u cuntrattu
Chjama i metudi di cuntrattu
Leghje l'indirizzu è abi di un cuntrattu da un schedariu JSON
Cunnessione à un fornitore
Crià un ughjettu di u cuntrattu
Chjama i metudi di cuntrattu
Truffle è Web3.py
Riassuntu di lezzione

Lezzione 12. OraculiUn cuntrattu intelligente pò fidà di dati da u mondu esternu?
Oraculi cum'è intermediari di l'infurmazioni di blockchain
Surghjente di dati
Codice per rapprisintà i dati da a fonte
Oracle per a registrazione di u scambiu in u blockchain
Contrattu USDRate Oracle
Aghjurnà a tarifa di scambiu in un cuntrattu intelligente
Utilizà un Web Socket Provider
Aspittendu l'avvenimentu di RateUpdate
Gestione di l'avvenimentu RateUpdate
Inizià una aghjurnazione di dati in un cuntrattu intelligente
Riassuntu di lezzione

Source: www.habr.com

Add a comment