mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 10:01:38 +00:00
Improve translation and readability
This commit is contained in:
parent
ae73cdf65d
commit
39e0b12b15
@ -35,7 +35,7 @@ BLOG DI ETHEREUM PER TENERSI AGGIORNATI. TUTTO IL CODICE QUI PRESENTE E' FORNITO
|
|||||||
COSÌ COM'È, CON ANNESSI RISCHI SOSTANZIALI DI ERRORI O PATTERN DI PROGRAMMAZIONE
|
COSÌ COM'È, CON ANNESSI RISCHI SOSTANZIALI DI ERRORI O PATTERN DI PROGRAMMAZIONE
|
||||||
DEPRECATI.
|
DEPRECATI.
|
||||||
|
|
||||||
A differenza di altri tipi di codice, potresti aver bisogno di usare pattern di
|
A differenza di altri linguaggi, potresti aver bisogno di usare pattern di
|
||||||
pausing, deprecation e throttling usage per ridurre il rischio. Questo documento
|
pausing, deprecation e throttling usage per ridurre il rischio. Questo documento
|
||||||
tratta principalmene la sintassi e quindi esclude molti design pattern in voga.
|
tratta principalmene la sintassi e quindi esclude molti design pattern in voga.
|
||||||
|
|
||||||
@ -97,8 +97,8 @@ Sul tuo Metamask, dovrai cambiare la testnet in `Kovan`.
|
|||||||
|
|
||||||
![Solidity-in-remix](../images/solidity/metamask-kovan.png)
|
![Solidity-in-remix](../images/solidity/metamask-kovan.png)
|
||||||
|
|
||||||
Riceverai degli Ethereum di test gratuiti. Per distribuire degli smart contract
|
Riceverai degli Ethereum di test gratuiti. Abbiamo bisogno di Ethereum per
|
||||||
su una testnet abbiamo bisogno di Ethereum.
|
distribuire degli smart contract su una testnet.
|
||||||
|
|
||||||
Nell'esempio precedente non avevamo usato una testnet, ma avevamo distribuito
|
Nell'esempio precedente non avevamo usato una testnet, ma avevamo distribuito
|
||||||
su un ambiente virtuale fittizio. Quando si lavora su una testnet, possiamo
|
su un ambiente virtuale fittizio. Quando si lavora su una testnet, possiamo
|
||||||
@ -244,7 +244,7 @@ uint8 b;
|
|||||||
int64 c;
|
int64 c;
|
||||||
uint248 e;
|
uint248 e;
|
||||||
|
|
||||||
// Attenzione a non andare in overflow, e a proteggersi dagli attacchi che lo fanno
|
// Attenzione a non andare in overflow e a proteggersi dagli attacchi che lo fanno
|
||||||
// Ad esempio per quanto rigrada l'addizione, conviene fare:
|
// Ad esempio per quanto rigrada l'addizione, conviene fare:
|
||||||
uint256 c = a + b;
|
uint256 c = a + b;
|
||||||
assert(c >= a); // 'assert' testa gli invarianti interni; require viene usato
|
assert(c >= a); // 'assert' testa gli invarianti interni; require viene usato
|
||||||
@ -285,7 +285,7 @@ owner.transfer(SOME_BALANCE); // fallisce e, in tal caso, ripristina
|
|||||||
// false se fallisce
|
// false se fallisce
|
||||||
if (owner.send) {} // RICORDA: metti la send in un 'if' dato che gli indirizzi
|
if (owner.send) {} // RICORDA: metti la send in un 'if' dato che gli indirizzi
|
||||||
// usati nei contratti hanno delle funzioni, che vengono eseguite quando viene
|
// usati nei contratti hanno delle funzioni, che vengono eseguite quando viene
|
||||||
// fatta una send, che possono fallire
|
// fatta una send, che possono fallire.
|
||||||
// Inoltre fai attenzione a scalare i saldi PRIMA di provare a fare una send,
|
// Inoltre fai attenzione a scalare i saldi PRIMA di provare a fare una send,
|
||||||
// dato il rischio di chiamate riscorsive che potrebbero prosciugare il contratto
|
// dato il rischio di chiamate riscorsive che potrebbero prosciugare il contratto
|
||||||
|
|
||||||
@ -387,7 +387,7 @@ delete b;
|
|||||||
// reimposta, imposta tutte le variabili della struttura a 0, tranne i mapping
|
// reimposta, imposta tutte le variabili della struttura a 0, tranne i mapping
|
||||||
|
|
||||||
// Enumerazioni
|
// Enumerazioni
|
||||||
enum State { Created, Locked, Inactive }; // di solito si usano per le macchine di stato
|
enum State { Created, Locked, Inactive }; // di solito si usano per gli automi a stati finiti
|
||||||
State public state; // Dichiara una variabile da un enum
|
State public state; // Dichiara una variabile da un enum
|
||||||
state = State.Created;
|
state = State.Created;
|
||||||
// Le enum possono essere convertite esplicitamente in int
|
// Le enum possono essere convertite esplicitamente in int
|
||||||
@ -414,7 +414,7 @@ uint createdState = uint(State.Created); // 0
|
|||||||
// 4. Variabili globali degne di nota
|
// 4. Variabili globali degne di nota
|
||||||
// ** this **
|
// ** this **
|
||||||
this; // indirizzo del contratto
|
this; // indirizzo del contratto
|
||||||
// di solito si usa per trasferire il aldo rimanente altrove
|
// di solito si usa per trasferire altrove il saldo rimanente
|
||||||
// al termine della vita del contratto
|
// al termine della vita del contratto
|
||||||
this.balance;
|
this.balance;
|
||||||
this.someFunction(); // invoca una funzione esterna tramite chiamata,
|
this.someFunction(); // invoca una funzione esterna tramite chiamata,
|
||||||
@ -490,7 +490,7 @@ function increment(uint x) view returns (uint x) {
|
|||||||
|
|
||||||
// Di solito è una buona idea marcare esplicitamente ogni funzione
|
// Di solito è una buona idea marcare esplicitamente ogni funzione
|
||||||
|
|
||||||
// Funzioni hoisted - e si può assegnare una funzione ad una variabile
|
// Le funzioni sono hoisted e si può assegnare una funzione ad una variabile
|
||||||
function a() {
|
function a() {
|
||||||
var z = b;
|
var z = b;
|
||||||
b();
|
b();
|
||||||
@ -603,7 +603,7 @@ for(uint x = 0; x < refundAddressList.length; x++) {
|
|||||||
// 2. Questo loop potrebbe essere arbitrariamente lungo (si basa sul numero
|
// 2. Questo loop potrebbe essere arbitrariamente lungo (si basa sul numero
|
||||||
// degli utenti che hanno diritto al rimborso), quindi potrebbe fallire sempre
|
// degli utenti che hanno diritto al rimborso), quindi potrebbe fallire sempre
|
||||||
// se supera il tetto massimo di gas per blocco;
|
// se supera il tetto massimo di gas per blocco;
|
||||||
// Come soluzione, si potrebbe permettere agli utenti di prelevare
|
// Come soluzione, si permette agli utenti di prelevare
|
||||||
// individualmente dal loro subaccount e segnare il rimborso come riscosso
|
// individualmente dal loro subaccount e segnare il rimborso come riscosso
|
||||||
// Ad es. preferire pull payments ai push payment
|
// Ad es. preferire pull payments ai push payment
|
||||||
|
|
||||||
@ -671,7 +671,7 @@ import "github.com/ethereum/dapp-bin/library/iterable_mapping.sol";
|
|||||||
// (di solito il creatore)
|
// (di solito il creatore)
|
||||||
selfdestruct(SOME_ADDRESS);
|
selfdestruct(SOME_ADDRESS);
|
||||||
|
|
||||||
// rimuove il codice e quanto in memoria dal blocco corrente e tutti i futuri blocchi
|
// rimuove il codice e quanto in memoria dal blocco corrente e da tutti i blocchi futuri
|
||||||
// aiuta ad alleggerire i client, ma le informazioni precedenti continueranno
|
// aiuta ad alleggerire i client, ma le informazioni precedenti continueranno
|
||||||
// a persistere sulla blockchain
|
// a persistere sulla blockchain
|
||||||
|
|
||||||
@ -692,14 +692,14 @@ function remove() {
|
|||||||
|
|
||||||
// A. Offruscamento
|
// A. Offruscamento
|
||||||
// Tutte le variabili sono pubblicamente visibili sulla blockchain, quindi
|
// Tutte le variabili sono pubblicamente visibili sulla blockchain, quindi
|
||||||
// qualsiasi cosa privata ha bisogno di essere offruscata (es. hash con una
|
// qualsiasi informazione privata ha bisogno di essere offruscata (es. hash con una
|
||||||
// chiave segreta)
|
// chiave segreta)
|
||||||
|
|
||||||
// Passi: 1. Impegnarsi pagare una certa cifra, 2. Rivelare l'impegno preso
|
// Passi: 1. Impegnarsi pagare una certa cifra, 2. Rivelare l'impegno preso
|
||||||
keccak256("una_puntata_d_asta", "un segreto"); // impegno
|
keccak256("una_puntata_d_asta", "un segreto"); // impegno
|
||||||
|
|
||||||
// in futuro, l'invocazione della funzione rivelatrice del contratto
|
// in futuro, l'invocazione della funzione rivelatrice del contratto
|
||||||
// mostrerà la puntata ed il segreto che produce lo SHA3
|
// mostrerà la puntata con il segreto che produce lo SHA3
|
||||||
reveal(100, "ilMioSegreto");
|
reveal(100, "ilMioSegreto");
|
||||||
|
|
||||||
// B. Ottimizzazione della memoria (storage)
|
// B. Ottimizzazione della memoria (storage)
|
||||||
@ -717,7 +717,7 @@ reveal(100, "ilMioSegreto");
|
|||||||
// o lo stato delle transazioni
|
// o lo stato delle transazioni
|
||||||
|
|
||||||
// Anche se 'private' non permette agli altri *contratti* di leggere alcune
|
// Anche se 'private' non permette agli altri *contratti* di leggere alcune
|
||||||
// informazioni direttamente, qualsiasi altro attore può leggere i dati
|
// informazioni direttamente, qualsiasi altro attore può leggerle
|
||||||
// sulla blockchain
|
// sulla blockchain
|
||||||
|
|
||||||
// Tutti i dati, dall'inizio, vegono conservati sulla blockchain e
|
// Tutti i dati, dall'inizio, vegono conservati sulla blockchain e
|
||||||
|
Loading…
Reference in New Issue
Block a user