Ethereum Homestead Documentation Release 0.1
Total Page:16
File Type:pdf, Size:1020Kb
Ethereum Homestead Documentation Release 0.1 Ethereum community Oct 08, 2017 Contents 1 Contenido 3 1.1 Introduccion.............................................3 1.1.1 ¿Que es Ethereum?.....................................3 1.1.1.1 Una red blockchain de siguiente Generacion...................3 1.1.1.2 La Maquina Virtual de Ethereum o “EVM”....................4 1.1.1.3 ¿Como funciona Ethereum?............................4 1.1.2 How to use this guide?...................................6 1.1.2.1 Using Ethereum: The Basics...........................6 1.1.3 The Homestead Release..................................6 1.1.3.1 Milestones of the Ethereum development roadmap................6 1.1.3.2 Homestead hard fork changes...........................7 1.1.4 Web 3: A platform for decentralized apps.........................8 1.1.4.1 Smart contracts..................................8 1.1.4.2 DAO........................................8 1.1.5 History of Ethereum....................................9 1.1.5.1 Inception......................................9 1.1.5.2 The Ethereum Foundation and the ether presale.................9 1.1.5.3 ETH/DEV and Ethereum development......................9 1.1.5.4 The Ethereum Frontier launch........................... 10 1.1.6 Community......................................... 11 1.1.6.1 Reddit....................................... 11 1.1.6.2 Stack Exchange.................................. 12 1.1.6.3 Gitter Rooms................................... 12 1.1.6.4 Ethereum Improvement Proposals (EIPs)..................... 12 1.1.6.5 Meetups...................................... 13 1.1.6.6 Obsolete...................................... 13 1.1.7 The Ethereum Foundation................................. 13 1.1.7.1 Ethereum Foundation’s faces to the community................. 13 1.1.8 Contributors......................................... 14 1.2 Clientes Ethereum.......................................... 16 1.2.1 Choosing a client...................................... 16 1.2.1.1 Why are there multiple Ethereum clients?.................... 16 1.2.1.2 What should I install on my desktop/laptop?................... 16 1.2.1.3 What should I install on my mobile/tablet?.................... 16 1.2.1.4 What should I install on my SBC?........................ 17 1.2.2 Interacting with Clients................................... 17 1.2.3 cpp-ethereum........................................ 17 1.2.3.1 Quick Start..................................... 18 1.2.3.2 Details....................................... 18 1.2.4 go-ethereum......................................... 35 i 1.2.5 pyethapp.......................................... 35 1.2.6 ethereumjs-lib........................................ 36 1.2.7 Ethereum(J)......................................... 36 1.2.8 ethereumH......................................... 37 1.2.9 Parity............................................ 37 1.2.10 ruby-ethereum........................................ 37 1.3 Connecting to Ethereum Clients................................... 37 1.3.1 web3.js........................................... 38 1.3.2 web3j............................................ 38 1.3.3 Nethereum......................................... 38 1.3.4 ethereum-ruby........................................ 39 1.4 Account Management........................................ 39 1.4.1 Cuentas........................................... 39 1.4.2 Archivos Keyfiles...................................... 39 1.4.3 Creando una cuenta..................................... 40 1.4.3.1 Usando geth account new ......................... 40 1.4.3.2 Usando la consola geth.............................. 41 1.4.3.3 Usando la cartera de Ethereum Mist....................... 42 1.4.3.4 Creando una cartera multifirma en Mist...................... 43 1.4.3.5 Using Eth..................................... 44 1.4.3.6 Using EthKey (deprecated)............................ 45 1.4.4 Importing your presale wallet................................ 46 1.4.4.1 Using Mist Ethereum wallet............................ 46 1.4.4.2 Using geth..................................... 47 1.4.5 Updating an account.................................... 47 1.4.5.1 Using geth..................................... 47 1.4.6 Backup and restore accounts................................ 48 1.4.6.1 Manual backup/restore.............................. 48 1.4.6.2 Importing an unencrypted private key....................... 48 1.5 Ether................................................. 49 1.5.1 What is ether?........................................ 49 1.5.1.1 Denominations................................... 49 1.5.2 Ether supply......................................... 49 1.5.3 Getting ether........................................ 50 1.5.3.1 Trustless services................................. 50 1.5.3.2 List of centralised exchange marketplaces.................... 50 1.5.3.3 Centralised fixed rate exchanges......................... 50 1.5.3.4 Trading and price analytics............................ 50 1.5.4 Online wallets, paper wallets, and cold storage....................... 51 1.5.5 Sending ether........................................ 52 1.5.6 Gas and ether........................................ 52 1.6 La red de Ethereum......................................... 53 1.6.1 Connecting to the Network................................. 53 1.6.1.1 The Ethereum network.............................. 53 1.6.1.2 How to connect.................................. 54 1.6.1.3 Download the blockchain faster.......................... 55 1.6.1.4 Static Nodes, Trusted Nodes, and Boot Nodes.................. 56 1.6.2 Test Networks........................................ 56 1.6.2.1 Morden testnet................................... 56 1.6.3 Setting up a local private testnet.............................. 57 1.6.3.1 eth (C++ client).................................. 57 1.6.3.2 geth (Go client).................................. 58 1.7 Mining................................................ 61 1.7.1 Introduction......................................... 61 1.7.1.1 What is mining?.................................. 61 1.7.1.2 Mining rewards.................................. 62 1.7.1.3 Ethash DAG.................................... 62 1.7.2 The algorithm........................................ 63 ii 1.7.3 CPU mining......................................... 63 1.7.3.1 Using geth..................................... 63 1.7.4 GPU mining......................................... 65 1.7.4.1 Hardware..................................... 65 1.7.4.2 Ubuntu Linux set-up................................ 65 1.7.4.3 Mac set-up..................................... 66 1.7.4.4 Windows set-up.................................. 66 1.7.4.5 Using ethminer with geth............................. 66 1.7.4.6 Using ethminer with eth.............................. 67 1.7.5 Pool mining......................................... 69 1.7.5.1 Mining pools.................................... 69 1.7.6 Mining resources...................................... 69 1.7.6.1 POS vs POW................................... 70 1.8 Contratos y Transacciones...................................... 70 1.8.1 Account Types, Gas, and Transactions........................... 70 1.8.1.1 EOA vs contract accounts............................. 70 1.8.1.2 What is a transaction?............................... 71 1.8.1.3 What is a message?................................ 71 1.8.1.4 What is gas?.................................... 71 1.8.1.5 Estimating transaction costs............................ 72 1.8.1.6 Account interactions example - betting contract................. 73 1.8.1.7 Signing transactions offline............................ 75 1.8.2 Contracts.......................................... 75 1.8.2.1 What is a contract?................................ 75 1.8.2.2 Ethereum high level languages.......................... 76 1.8.2.3 Writing a contract................................. 77 1.8.2.4 Compiling a contract............................... 77 1.8.2.5 Create and deploy a contract........................... 79 1.8.2.6 Interacting with a contract............................. 80 1.8.2.7 Contract metadata................................. 80 1.8.2.8 Testing contracts and transactions......................... 81 1.8.3 Accessing Contracts and Transactions........................... 82 1.8.3.1 RPC........................................ 82 1.8.3.2 Conventions.................................... 82 1.8.3.3 Deploy contract.................................. 83 1.8.3.4 Interacting with smart contracts.......................... 84 1.8.3.5 Web3.js...................................... 86 1.8.3.6 Console...................................... 87 1.8.3.7 Viewing Contracts and Transactions....................... 87 1.8.4 Mix............................................. 87 1.8.4.1 Project Editor................................... 87 1.8.4.2 Scenarios Editor.................................. 89 1.8.4.3 State Viewer.................................... 90 1.8.4.4 Transaction Explorer............................... 90 1.8.4.5 JavaScript console................................. 91 1.8.4.6 Transaction debugger............................... 92 1.8.4.7 Dapps deployment................................. 92 1.8.4.8 Code Editor.................................... 93 1.8.5 Dapps............................................ 93 1.8.5.1 Dapp directories.................................. 93 1.8.5.2 Dapp browsers................................... 94 1.8.6 Developer Tools......................................