Ethereum Classic Documentation Release 0.1
Total Page:16
File Type:pdf, Size:1020Kb
Ethereum Classic Documentation Release 0.1 Ethereum classic community July 31, 2016 Contents 1 Contents 3 1.1 Introduction.............................................3 1.1.1 What is Ethereum?.....................................3 A next generation blockchain................................3 Ethereum Virtual Machine..................................3 How does Ethereum work?..................................4 1.1.2 How to use this guide?...................................6 Using Ethereum: The Basics.................................6 1.1.3 The Classic ‘Release’....................................6 Motivation..........................................6 Goals.............................................6 A Crypto-Decentralist Manifesto...............................6 1.1.4 Web 3: A platform for decentralized apps.........................7 Smart contracts........................................8 DAO.............................................8 1.1.5 History of Ethereum....................................8 Inception...........................................8 The Ethereum Foundation and the ether presale.......................9 ETH/DEV and Ethereum development............................9 The Ethereum Frontier launch................................ 10 1.1.6 Community......................................... 11 Reddit............................................. 11 Ethereum Classic Wiki.................................... 11 Telegram........................................... 12 Slack............................................. 12 Ethereum Improvement Proposals (EIPs).......................... 12 Chinese Community..................................... 12 Russian Community..................................... 12 Indonesian Community.................................... 12 Gitter Rooms (old)...................................... 12 Stack Exchange (old)..................................... 13 Obsolete........................................... 13 1.1.7 The Ethereum Foundation................................. 13 Ethereum Foundation’s faces to the community....................... 14 1.1.8 Contributors......................................... 14 1.2 Ethereum Clients........................................... 17 1.2.1 Choosing a client...................................... 17 Why are there multiple Ethereum clients?.......................... 17 1.2.2 Installing a Client...................................... 17 What should I install on my desktop/laptop?......................... 17 What should I install on my mobile/tablet?......................... 18 What should I install on my SBC?.............................. 18 i 1.2.3 cpp-ethereum........................................ 19 Quick Start.......................................... 19 Details............................................ 20 1.2.4 go-ethereum......................................... 42 1.2.5 pyethapp.......................................... 42 1.2.6 ethereumjs-lib........................................ 43 1.2.7 Ethereum(J)......................................... 43 1.2.8 ethereumH......................................... 43 1.2.9 Parity............................................ 44 1.2.10 ruby-ethereum........................................ 44 1.3 Account Management........................................ 44 1.3.1 Accounts.......................................... 44 1.3.2 Keyfiles........................................... 45 1.3.3 Creating an account..................................... 45 Using geth account new ................................ 45 Using geth console...................................... 46 Using Mist Ethereum wallet................................. 47 Creating a Multi-Signature Wallet in Mist.......................... 48 Using Eth........................................... 49 Using EthKey (deprecated).................................. 50 1.3.4 Importing your presale wallet................................ 51 Using Mist Ethereum wallet................................. 51 Using geth.......................................... 52 1.3.5 Updating an account.................................... 52 Using geth.......................................... 52 1.3.6 Backup and restore accounts................................ 52 Manual backup/restore.................................... 52 Importing an unencrypted private key............................ 53 1.4 Ether................................................. 53 1.4.1 What is ether?........................................ 53 Denominations........................................ 53 1.4.2 Ether supply......................................... 54 1.4.3 Getting ether........................................ 54 Trustless services....................................... 54 List of centralised exchange marketplaces.......................... 55 Centralised fixed rate exchanges............................... 55 Trading and price analytics.................................. 55 1.4.4 Online wallets, paper wallets, and cold storage....................... 55 1.4.5 Sending ether........................................ 56 1.4.6 Gas and ether........................................ 57 1.5 The Ethereum network........................................ 57 1.5.1 Connecting to the Network................................. 57 The Ethereum network.................................... 57 How to connect........................................ 58 Download the blockchain faster............................... 59 Static Nodes, Trusted Nodes, and Boot Nodes........................ 60 1.5.2 Test Networks........................................ 61 Morden testnet........................................ 61 1.5.3 Setting up a local private testnet.............................. 61 eth (C++ client)........................................ 61 geth (Go client)........................................ 62 1.6 Mining................................................ 64 1.6.1 Introduction......................................... 64 What is mining?....................................... 65 Mining rewards........................................ 65 Ethash DAG......................................... 66 1.6.2 The algorithm........................................ 66 1.6.3 CPU mining......................................... 67 ii Using geth.......................................... 67 1.6.4 GPU mining......................................... 68 Hardware........................................... 68 Ubuntu Linux set-up..................................... 68 Mac set-up.......................................... 69 Windows set-up........................................ 69 Using ethminer with geth................................... 70 Using ethminer with eth................................... 70 1.6.5 Pool mining......................................... 72 Mining pools......................................... 72 1.6.6 Mining resources...................................... 72 POS vs POW......................................... 73 1.7 Contracts and Transactions...................................... 73 1.7.1 Account Types, Gas, and Transactions........................... 73 EOA vs contract accounts.................................. 73 What is a transaction?.................................... 74 What is a message?...................................... 74 What is gas?......................................... 74 Estimating transaction costs................................. 75 Account interactions example - betting contract....................... 76 Signing transactions offline.................................. 78 1.7.2 Contracts.......................................... 79 What is a contract?...................................... 79 Ethereum high level languages................................ 79 Writing a contract...................................... 80 Compiling a contract..................................... 80 Create and deploy a contract................................. 82 Interacting with a contract.................................. 83 Contract metadata...................................... 83 Testing contracts and transactions.............................. 84 1.7.3 Accessing Contracts and Transactions........................... 85 RPC.............................................. 85 Conventions......................................... 85 Deploy contract........................................ 85 Interacting with smart contracts............................... 87 Web3.js............................................ 88 Console............................................ 88 Viewing Contracts and Transactions............................. 89 1.7.4 Mix............................................. 89 Project Editor......................................... 89 Scenarios Editor....................................... 90 State Viewer......................................... 91 Transaction Explorer..................................... 92 JavaScript console...................................... 93 Transaction debugger..................................... 94 Dapps deployment...................................... 94 Code Editor.......................................... 95 1.7.5 Dapps............................................ 95 Dapp directories....................................... 95 Dapp browsers........................................ 96 1.7.6 Developer Tools....................................... 96 Dapp development resources................................. 96 Mix-IDE........................................... 97 IDEs/Frameworks...................................... 97 Ethereum-console.....................................