13.06.2017 Views

Whitepaper - Ethereum Classic With Cover

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Using geth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />

1.6.4 GPU mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

Ubuntu Linux set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

Mac set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

Windows set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

Using ethminer with geth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

Using ethminer with eth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

1.6.5 Pool mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

Mining pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

1.6.6 Mining resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

POS vs POW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

1.7 Contracts and Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

1.7.1 Account Types, Gas, and Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

EOA vs contract accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

What is a transaction? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

What is a message? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

What is gas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

Estimating transaction costs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

Account interactions example - betting contract . . . . . . . . . . . . . . . . . . . . . . . 76<br />

Signing transactions offline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

1.7.2 Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

What is a contract? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

<strong>Ethereum</strong> high level languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

Writing a contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

Compiling a contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

Create and deploy a contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

Interacting with a contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

Contract metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

Testing contracts and transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

1.7.3 Accessing Contracts and Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

Deploy contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

Interacting with smart contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

Web3.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

Viewing Contracts and Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

1.7.4 Mix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

Project Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

Scenarios Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />

State Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />

Transaction Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

JavaScript console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />

Transaction debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

Dapps deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

1.7.5 Dapps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

Dapp directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

Dapp browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

1.7.6 Developer Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

Dapp development resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

Mix-IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

IDEs/Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

<strong>Ethereum</strong>-console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

Base layer services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />

The EVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

1.7.7 <strong>Ethereum</strong> Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

iii

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!