From ee0683f8f1a90fa2fb09b03fbe61c4f96d793edb Mon Sep 17 00:00:00 2001 From: greggdourgarian Date: Thu, 18 Aug 2016 12:17:39 -0500 Subject: [PATCH] minor typo corrections: misspelling of "it's" improper capitalization of "ether" other minor typos --- .../go-ethereum-wiki.rst/Mutan-0.2.rst | 4 +- .../go-ethereum-wiki.rst/Mutan-0.4.rst | 4 +- .../go-ethereum-wiki.rst/Mutan-0.5.rst | 4 +- .../go-ethereum-wiki.rst/Mutan-0.6.rst | 4 +- .../go-ethereum-wiki.rst/Mutan.rst | 4 +- ...re-protocol-Extended-(Child-processes).rst | 2 +- .../main-wiki.rst/Ethereum-Wire-Protocol.rst | 2 +- source/about.rst | 2 +- source/account-management.rst | 2 +- .../accessing-contracts-and-transactions.rst | 7 ++-- .../account-types-gas-and-transactions.rst | 10 ++--- .../developer-tools.rst | 16 ++++---- .../ethereum-tests/difficulty_tests/index.rst | 30 +++++++------- .../ethereum-tests/rlp_tests/index.rst | 16 ++++---- .../transaction_tests/index.rst | 36 ++++++++--------- .../ethereum-tests/using-testeth.rst | 40 +++++++++---------- source/ether.rst | 10 ++--- .../frequently-asked-questions.rst | 4 +- source/index.rst | 4 +- source/introduction/community.rst | 2 +- source/introduction/foundation.rst | 2 +- source/mining.rst | 2 +- source/network/test-networks.rst | 8 ++-- 23 files changed, 107 insertions(+), 108 deletions(-) diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.2.rst b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.2.rst index 260c7a01..dfab8e08 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.2.rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.2.rst @@ -196,7 +196,7 @@ iteration is controlled by a conditional block. InitStmt = SimpleStmt . PostStmt = SimpleStmt . -A "for" in it's simplest form is a C-Like "while" statement (therefor +A "for" in its simplest form is a C-Like "while" statement (therefor Mutan doesn't have a "while") .. code:: go @@ -205,7 +205,7 @@ Mutan doesn't have a "while") a = a * 2 } -A "for" statement in it's purest form is controlled my a initialiser, +A "for" statement in its purest form is controlled my a initialiser, condition and a post statement which will be executed at the end of the Block diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.4.rst b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.4.rst index 96b41c07..04b753e2 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.4.rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.4.rst @@ -199,7 +199,7 @@ iteration is controlled by a conditional block. InitStmt = SimpleStmt . PostStmt = SimpleStmt . -A "for" in it's simplest form is a C-Like "while" statement (therefor +A "for" in its simplest form is a C-Like "while" statement (therefor Mutan doesn't have a "while") .. code:: go @@ -208,7 +208,7 @@ Mutan doesn't have a "while") a = a * 2 } -A "for" statement in it's purest form is controlled my a initialiser, +A "for" statement in its purest form is controlled my a initialiser, condition and a post statement which will be executed at the end of the Block diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.5.rst b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.5.rst index e064bec7..c59d5041 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.5.rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.5.rst @@ -201,7 +201,7 @@ iteration is controlled by a conditional block. InitStmt = SimpleStmt . PostStmt = SimpleStmt . -A "for" in it's simplest form is a C-Like "while" statement (therefor +A "for" in its simplest form is a C-Like "while" statement (therefor Mutan doesn't have a "while") .. code:: go @@ -210,7 +210,7 @@ Mutan doesn't have a "while") a = a * 2 } -A "for" statement in it's purest form is controlled my a initialiser, +A "for" statement in its purest form is controlled my a initialiser, condition and a post statement which will be executed at the end of the Block diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.6.rst b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.6.rst index 9a0e3224..96f84721 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.6.rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan-0.6.rst @@ -204,7 +204,7 @@ iteration is controlled by a conditional block. InitStmt = SimpleStmt . PostStmt = SimpleStmt . -A "for" in it's simplest form is a C-Like "while" statement (therefor +A "for" in its simplest form is a C-Like "while" statement (therefor Mutan doesn't have a "while") .. code:: go @@ -213,7 +213,7 @@ Mutan doesn't have a "while") a = a * 2 } -A "for" statement in it's purest form is controlled my a initialiser, +A "for" statement in its purest form is controlled my a initialiser, condition and a post statement which will be executed at the end of the Block diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan.rst b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan.rst index 02d78b20..94d16e23 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Mutan.rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Mutan.rst @@ -192,7 +192,7 @@ iteration is controlled by a conditional block. InitStmt = SimpleStmt . PostStmt = SimpleStmt . -A "for" in it's simplest form is a C-Like "while" statement (therefor +A "for" in its simplest form is a C-Like "while" statement (therefor Mutan doesn't have a "while") .. code:: go @@ -201,7 +201,7 @@ Mutan doesn't have a "while") a = a * 2 } -A "for" statement in it's purest form is controlled my a initialiser, +A "for" statement in its purest form is controlled my a initialiser, condition and a post statement which will be executed at the end of the Block diff --git a/old-docs-for-reference/go-ethereum-wiki.rst/Wire-protocol-Extended-(Child-processes).rst b/old-docs-for-reference/go-ethereum-wiki.rst/Wire-protocol-Extended-(Child-processes).rst index 9a802be4..979fa20d 100644 --- a/old-docs-for-reference/go-ethereum-wiki.rst/Wire-protocol-Extended-(Child-processes).rst +++ b/old-docs-for-reference/go-ethereum-wiki.rst/Wire-protocol-Extended-(Child-processes).rst @@ -1,5 +1,5 @@ Ethereum Child processes allow any node to connect to an existing node -and share it's parent process to handle all network communication and +and share its parent process to handle all network communication and data persisting. This will allow for multiple Ethereum light nodes on the same host with full access to the block chain through the parent process. diff --git a/old-docs-for-reference/main-wiki.rst/Ethereum-Wire-Protocol.rst b/old-docs-for-reference/main-wiki.rst/Ethereum-Wire-Protocol.rst index 49100acc..9924d83f 100644 --- a/old-docs-for-reference/main-wiki.rst/Ethereum-Wire-Protocol.rst +++ b/old-docs-for-reference/main-wiki.rst/Ethereum-Wire-Protocol.rst @@ -21,7 +21,7 @@ Ethereum Sub-protocol **Status** [``+0x00``: ``P``, ``protocolVersion``: ``P``, ``networkId``: ``P``, ``td``: ``P``, ``bestHash``: ``B_32``, ``genesisHash``: ``B_32``] -Inform a peer of it's current **ethereum** state. This message should be +Inform a peer of its current **ethereum** state. This message should be sent *after* the initial handshake and *prior* to any **ethereum** related messages. \* ``protocolVersion`` is one of: \* ``0x00`` for PoC-1; \* ``0x01`` for PoC-2; \* ``0x07`` for PoC-3; \* ``0x09`` for diff --git a/source/about.rst b/source/about.rst index a74af1cc..b17e3654 100644 --- a/source/about.rst +++ b/source/about.rst @@ -15,7 +15,7 @@ The goal is to create documentation with information, short tutorials, and examp Any information that is overly specific, technical, or not necessary to accomplish the documentation's goal will remain on the Ethereum Github Wiki. It may be referenced in this guide if necessary. Although much of the information will be similar between the Frontier Guide and the Homestead Guide, efforts need to be made to make sure the information ported over is still accurate. -This document is client agnostic and examples and tutorials may be based on any client that the author decides to write on, as long as a distinction is made as to what client is being used in the examples/tutorials. +This document is client agnostic, and examples and tutorials may be based on any client that the author decides to write on, as long as a distinction is made as to what client is being used in the examples/tutorials. Although overly specific and technical documentation will not be included in the first iterations of this guide, community use and popularity of this guide will dictate future decisions to move Github wiki documentation to this format. diff --git a/source/account-management.rst b/source/account-management.rst index b5a7e51c..741b84da 100644 --- a/source/account-management.rst +++ b/source/account-management.rst @@ -8,7 +8,7 @@ Accounts ================================================================================ Accounts play a central role in Ethereum. There are two types of accounts: *externally owned accounts* (EOAs) and *contract accounts*. Here we focus on externally owned accounts, which will be referred to simply as *accounts*. Contract accounts will be referred to as *contracts* and are :ref:`discussed in detail in Contracts `. This generic notion of account subsuming both externally owned accounts and contracts is justified in that these entities are so called *state objects*. These entities have a state: accounts have balance and contracts have both balance and contract storage. The state of all accounts is the state of the Ethereum network which is updated with every block and which the network really needs to reach a consensus about. -Account are essential for users to interact with the Ethereum blockchain via transactions. +Accounts are essential for users to interact with the Ethereum blockchain via transactions. If we restrict Ethereum to only externally owned accounts and allow only transactions between them, we arrive at an "altcoin" system that is less powerful than bitcoin itself and can only be used to transfer ether. diff --git a/source/contracts-and-transactions/accessing-contracts-and-transactions.rst b/source/contracts-and-transactions/accessing-contracts-and-transactions.rst index f41fab00..3b1875df 100644 --- a/source/contracts-and-transactions/accessing-contracts-and-transactions.rst +++ b/source/contracts-and-transactions/accessing-contracts-and-transactions.rst @@ -63,8 +63,8 @@ note that data in these examples will differ on your local node. If you want to > curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a"], "id":2}' localhost:8545 {"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"} -Remember when we said that numbers are hex encoded? In this case the balance is returned in Wei as a hex string. If we want to have the balance in -Ether as a number we can use web3 from the geth console. +Remember when we said that numbers are hex encoded? In this case the balance is returned in eei as a hex string. If we want to have the balance in +ether as a number we can use web3 from the geth console. .. code:: js @@ -126,7 +126,7 @@ Now that our contract is deployed we can interact with it. There are 2 methods f If we look at the documentation for the `eth_sendTransaction `_ we can see that we need to supply several arguments. In our case we need to specify the ``from``, ``to`` and ``data`` arguments. ``From`` is the public address of our account and ``to`` the contract address. The ``data`` argument is a bit harder. It contains a payload that defines which method must be called and with which arguments. -This is were the ABI comes into play. The ABI defines how to define and encode data for the EVM. You can read +This is were the ABI comes into play. The ABI defines how to define and encode data for the EVM. You can read `all the details about the ABI here `_. The bytes of the payload is the function selector and defines which method is called. This is done by taking the first 4 bytes from the Keccak hash @@ -270,4 +270,3 @@ Other Resources * `EtherNodes `_ - Geographic distribution of nodes and split by client * `EtherListen `_ - Realtime Ethereum transaction visualizer and audializer - diff --git a/source/contracts-and-transactions/account-types-gas-and-transactions.rst b/source/contracts-and-transactions/account-types-gas-and-transactions.rst index e56777be..e06018c5 100644 --- a/source/contracts-and-transactions/account-types-gas-and-transactions.rst +++ b/source/contracts-and-transactions/account-types-gas-and-transactions.rst @@ -18,7 +18,7 @@ Externally owned accounts (EOAs) An externally controlled account -- has an Ether balance, +- has an ether balance, - can send transactions (ether transfer or trigger contract code), - is controlled by private keys, - has no associated code. @@ -28,7 +28,7 @@ Contract accounts A contract -- has an Ether balance, +- has an ether balance, - has associated code, - code execution is triggered by transactions or messages (calls) received from other contracts. - when executed @@ -42,7 +42,7 @@ All action on the Ethereum block chain is set in motion by transactions fired fr This execution needs to be completely deterministic, its only context is the position of the block on the blockchain and all data available. The blocks on the blockchain represent units of time, the blockchain itself is a temporal dimension and represents the entire history of states at the discrete time points designated by the blocks on the chain. -All Ether balances and values are denominated in units of wei: 1 Ether is 1e18 wei. +All ether balances and values are denominated in units of wei: 1 ether is 1e18 wei. .. note:: "Contracts" in Ethereum should not be seen as something that should be "fulfilled" or "complied with"; rather, they are more like "autonomous agents" that live inside of the Ethereum execution environment, always executing a specific piece of code when "poked" by a message or transaction, and having direct control over their own ether balance and their own key/value store to store their permanent state. @@ -83,7 +83,7 @@ When you are running a decentralized application (dapp), it interacts with the b When a contract is executed as a result of being triggered by a message or transaction, every instruction is executed on every node of the network. This has a cost: for every executed operation there is a specified cost, expressed in a number of gas units. -Gas is the name for the execution fee that senders of transactions need to pay for every operation made on an Ethereum blockchain. The name gas is inspired by the view that this fee acts as cryptofuel, driving the motion of smart contracts. Gas is purchased for ether from the miners that execute the code. Gas and ether are decoupled deliberately since units of gas align with computation units having a natural cost, while the price of ether generally fluctuates as a result of market forces. The two are mediated by a free market: the price of gas is actually decided by the miners, who can refuse to process a transaction with a lower gas price than their minimum limit. To get gas you simply need to add ether to your account. The Ethereum clients automatically purchase gas for your Ether in the amount you specify as your maximum expenditure for the transaction. +Gas is the name for the execution fee that senders of transactions need to pay for every operation made on an Ethereum blockchain. The name gas is inspired by the view that this fee acts as cryptofuel, driving the motion of smart contracts. Gas is purchased for ether from the miners that execute the code. Gas and ether are decoupled deliberately since units of gas align with computation units having a natural cost, while the price of ether generally fluctuates as a result of market forces. The two are mediated by a free market: the price of gas is actually decided by the miners, who can refuse to process a transaction with a lower gas price than their minimum limit. To get gas you simply need to add ether to your account. The Ethereum clients automatically purchase gas for your ether in the amount you specify as your maximum expenditure for the transaction. The Ethereum protocol charges a fee per computational step that is executed in a contract or transaction to prevent deliberate attacks and abuse on the Ethereum network. Every transaction is required to include a gas limit and a fee that it is willing to pay per gas. Miners have the choice of including the transaction and collecting the fee or not. If the total amount of gas used by the computational steps spawned by the transaction, including the original message and any sub-messages that may be triggered, is less than or equal to the gas limit, then the transaction is processed. If the total gas exceeds the gas limit, then all changes are reverted, except that the transaction is still valid and the fee can still be collected by the miner. All excess gas not used by the transaction execution is reimbursed to the sender as Ether. You do not need to worry about overspending, since you are only charged for the gas you consume. This means that it is useful as well as safe to send transactions with a gas limit well above the estimates. @@ -119,7 +119,7 @@ The approximate cost, using the default gas price (as of January 2016), would be 3 \* 0.05e12 = 1.5e11 wei -Since 1 Ether is 1e18 wei, the total cost would be 0.00000015 Ether. +Since 1 ether is 1e18 wei, the total cost would be 0.00000015 Ether. This is a simplification since it ignores some costs, such as the cost of passing the 2 numbers to contract, before they can even be added. diff --git a/source/contracts-and-transactions/developer-tools.rst b/source/contracts-and-transactions/developer-tools.rst index 130b959d..4f03b44f 100644 --- a/source/contracts-and-transactions/developer-tools.rst +++ b/source/contracts-and-transactions/developer-tools.rst @@ -45,7 +45,7 @@ Dapp development requires an understanding of the Web3 Javascript API, the JSON * `JSON RPC API `__ - This is the low level JSON RPC 2.0 interface to interface with a node. This API is used by the `Web3 JavaScript API `__. * `Solidity Docs `__ - Solidity is the Ethereum developed Smart Contract language, which compiles to EVM (Ethereum Virtual Machine) opcodes. -* :ref:`test-networks` - Test networks help developers develop and test Ethereum code and network interactions without spending their own Ether on the main network. Test network options are listed below. +* :ref:`test-networks` - Test networks help developers develop and test Ethereum code and network interactions without spending their own ether on the main network. Test network options are listed below. * :ref:`IDE-or-development-framework`. This assists you in developing, debugging, and deploying Ethereum applications. @@ -93,7 +93,7 @@ Mix-IDE Mix is the official Ethereum IDE that allows developers to build and deploy contracts and decentralized applications on top of the Ethereum blockchain. It includes a Solidity source code debugger. :ref:`sec:mix` - + IDEs/Frameworks ================================================================================ @@ -102,7 +102,7 @@ Below are developer frameworks and IDEs used for writing Ethereum dapps. * `Truffle `__ - Truffle is a development environment, testing framework and asset pipeline for Ethereum. * `Dapple `__ - Dapple is a tool for Solidity developers to help build and manage complex contract systems on Ethereum-like blockchains. * `Populus `__ - Populus is a Smart Contract development framework written in python. -* `Eris-PM `__ - The Eris Package Manager deploys and tests smart contract systems on private and public chains. +* `Eris-PM `__ - The Eris Package Manager deploys and tests smart contract systems on private and public chains. * `Embark `__ - Embark is a Ðapp development framework written in JavaScript. * `EtherScripter \(obsolete, discontinued\) `_ * `Resilience Raw Transaction Broadcaster `_ @@ -117,9 +117,9 @@ Commandline console for Ethereum nodes. Here you could find a list of available commands `ethereum node control commands `_ -To use this console you would need to start a local ethereum node with ipc communication socket enabled (file ``geth.ipc`` in data directory). +To use this console you would need to start a local ethereum node with ipc communication socket enabled (file ``geth.ipc`` in data directory). By default ipc socket should be located at you local home directory in .ethereum after you started a node. -You could also set ``--test`` option to use specific node test commands. +You could also set ``--test`` option to use specific node test commands. .. code:: Console @@ -132,15 +132,15 @@ In the console you could then type > web3.eth. (arguments, function(){}) -Here the defenition of ``--test`` mode node commands: +Here the defenition of ``--test`` mode node commands: .. code:: Console - > web3.test.addBlock("[RLP]", function(){}) - Add a block from a string containing it's hex RLP + > web3.test.addBlock("[RLP]", function(){}) - Add a block from a string containing its hex RLP > web3.test.rewindToBlock:("[int]", function(){}) - Reset the blockchain to specified block number > web3.test.mineBlocks:("[int]", function(){}) - Mine a certain amount of NoProof blocks into chain > web3.test.modifyTimestamp:("[int]", function(){}) - Set current block timestamp - > web3.test.setChainParams:("[json]", function(){}) - Reset the blockchain with given node configuration file + > web3.test.setChainParams:("[json]", function(){}) - Reset the blockchain with given node configuration file More information about node `configuration <../network/test-networks.html#custom-networks-eth>`_ file. diff --git a/source/contracts-and-transactions/ethereum-tests/difficulty_tests/index.rst b/source/contracts-and-transactions/ethereum-tests/difficulty_tests/index.rst index 1b467385..2125169f 100644 --- a/source/contracts-and-transactions/ethereum-tests/difficulty_tests/index.rst +++ b/source/contracts-and-transactions/ethereum-tests/difficulty_tests/index.rst @@ -4,28 +4,28 @@ Difficulty Tests ################################################################################ -Found in ``\Basic Tests\difficulty*.json`` files. This tests are designed to just check the difficulty formula of a block. +Found in ``\Basic Tests\difficulty*.json`` files. This tests are designed to just check the difficulty formula of a block. difficulty = DIFFICULTY(currentBlockNumber, currentTimestamp, parentTimestamp, parentDifficulty) described at [EIP2](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.mediawiki) point 4 with homestead changes. -So basically this .json tests are just to check how this function is calculated on different function parameters (parentDifficulty, currentNumber) in it's extremum points. +So basically this .json tests are just to check how this function is calculated on different function parameters (parentDifficulty, currentNumber) in its extremum points. There are several test files: -``difficulty.json`` - Normal Frontier/Homestead chain difficulty tests defined manually +``difficulty.json`` + Normal Frontier/Homestead chain difficulty tests defined manually ``difficultyFrontier.json`` - Same as above, but auto-generated tests -``difficultyMorden.json`` - Tests for testnetwork difficulty. (it has different homestead transition block) + Same as above, but auto-generated tests +``difficultyMorden.json`` + Tests for testnetwork difficulty. (it has different homestead transition block) ``difficultyOlimpic.json`` - Olympic network. (no homestead) + Olympic network. (no homestead) ``difficultyHomestead.json`` - Tests for homestead difficulty (regardless of the block number) + Tests for homestead difficulty (regardless of the block number) ``difficultyCustomHomestead.json`` - Tests for homestead difficulty (regardless of the block number) + Tests for homestead difficulty (regardless of the block number) Basic structure -------------------------------------------------------------------------------- @@ -43,8 +43,8 @@ Basic structure Sections -------------------------------------------------------------------------------- -* ``parentTimestamp`` - indicates the timestamp of a previous block -* ``parentDifficulty`` - indicates the difficulty of a previous block -* ``currentTimestamp`` - indicates the timestamp of a current block -* ``currentBlockNumber`` - indicates the number of a current block (previous block number = currentBlockNumber - 1) -* ``currentDifficulty`` - indicates the difficulty of a current block \ No newline at end of file +* ``parentTimestamp`` - indicates the timestamp of a previous block +* ``parentDifficulty`` - indicates the difficulty of a previous block +* ``currentTimestamp`` - indicates the timestamp of a current block +* ``currentBlockNumber`` - indicates the number of a current block (previous block number = currentBlockNumber - 1) +* ``currentDifficulty`` - indicates the difficulty of a current block diff --git a/source/contracts-and-transactions/ethereum-tests/rlp_tests/index.rst b/source/contracts-and-transactions/ethereum-tests/rlp_tests/index.rst index 7c6279f7..00ba3dc7 100644 --- a/source/contracts-and-transactions/ethereum-tests/rlp_tests/index.rst +++ b/source/contracts-and-transactions/ethereum-tests/rlp_tests/index.rst @@ -4,12 +4,12 @@ RLP Tests ################################################################################ -Describes an **RLP** (https://github.com/ethereum/wiki/wiki/RLP) encoding using the .json file. -The client should read the rlp byte stream, **decode** and check whether the contents match it's json representation. Then it should try do it reverse - **encode** json rlp representation into rlp byte stream and check whether it matches the given rlp byte stream. +Describes an **RLP** (https://github.com/ethereum/wiki/wiki/RLP) encoding using the .json file. +The client should read the rlp byte stream, **decode** and check whether the contents match its json representation. Then it should try do it reverse - **encode** json rlp representation into rlp byte stream and check whether it matches the given rlp byte stream. If it is an invalid RLP byte stream in the test, then 'in' field would contain string 'INVALID' -Some RLP byte streams are expected to be generated by fuzz test suite. For those examples 'in' field would contain string 'VALID' as it means that rlp should be easily decoded. +Some RLP byte streams are expected to be generated by fuzz test suite. For those examples 'in' field would contain string 'VALID' as it means that rlp should be easily decoded. RLP tests are located in in ``/RLPTests`` @@ -20,14 +20,14 @@ Basic structure :: - { - "rlpTest": { - "in": "dog", + { + "rlpTest": { + "in": "dog", "out": "83646f67" }, "multilist": { - "in": [ "zw", [ 4 ], 1 ], + "in": [ "zw", [ 4 ], 1 ], "out": "c6827a77c10401" }, @@ -47,4 +47,4 @@ Sections -------------------------------------------------------------------------------- * ``in`` - json object (array, int, string) representation of the rlp byte stream (\*except values 'VALID' and 'INVALID') -* ``out`` - string of rlp bytes stream \ No newline at end of file +* ``out`` - string of rlp bytes stream diff --git a/source/contracts-and-transactions/ethereum-tests/transaction_tests/index.rst b/source/contracts-and-transactions/ethereum-tests/transaction_tests/index.rst index a9638e00..ffe65247 100644 --- a/source/contracts-and-transactions/ethereum-tests/transaction_tests/index.rst +++ b/source/contracts-and-transactions/ethereum-tests/transaction_tests/index.rst @@ -4,7 +4,7 @@ Transaction Tests ################################################################################ -Describes a complete transaction and its `RLP `_ representation using the .json file. +Describes a complete transaction and its `RLP `_ representation using the .json file. The client should read the rlp and check whether the transaction is valid, has the correct sender and corresponds to the transaction parameters. If it is an invalid transaction, the transaction and the sender object will be missing. @@ -12,21 +12,21 @@ Basic structure -------------------------------------------------------------------------------- :: - { - "transactionTest1": { - "rlp" : "bytearray", + { + "transactionTest1": { + "rlp" : "bytearray", "sender" : "address", "blocknumber" : "1000000" - "transaction" : { - "nonce" : "int", - "gasPrice" : "int", - "gasLimit" : "int", - "to" : "address", - "value" : "int", - "v" : "byte", - "r" : "256 bit unsigned int", - "s" : "256 bit unsigned int", - "data" : "byte array" + "transaction" : { + "nonce" : "int", + "gasPrice" : "int", + "gasLimit" : "int", + "to" : "address", + "value" : "int", + "v" : "byte", + "r" : "256 bit unsigned int", + "s" : "256 bit unsigned int", + "data" : "byte array" } }, @@ -42,10 +42,10 @@ Sections * ``rlp`` - RLP encoded data of this transaction * ``transaction`` - transaction described by fields * ``nonce`` - A scalar value equal to the number of transactions sent by the sender. -* ``gasPrice`` - A scalar value equal to the number of Wei to be paid per unit of gas. -* ``gasLimit`` - A scalar value equal to the maximum amount of gas that should be used in executing this transaction. +* ``gasPrice`` - A scalar value equal to the number of wei to be paid per unit of gas. +* ``gasLimit`` - A scalar value equal to the maximum amount of gas that should be used in executing this transaction. * ``to`` - The 160-bit address of the message call's recipient or empty for a contract creation transaction. -* ``value`` - A scalar value equal to the number of Wei to be transferred to the message call's recipient or, in the case of contract creation, as an endowment to the newly created account. +* ``value`` - A scalar value equal to the number of wei to be transferred to the message call's recipient or, in the case of contract creation, as an endowment to the newly created account. * ``v, r, s`` - Values corresponding to the signature of the transaction and used to determine the sender of the transaction. * ``sender`` - the address of the sender, derived from the v,r,s values. -* ``blocknumber`` - indicates network rules for the transaction. Since blocknumber = **1000000** Homestead rules are applied to transaction. (see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.mediawiki) \ No newline at end of file +* ``blocknumber`` - indicates network rules for the transaction. Since blocknumber = **1000000** Homestead rules are applied to transaction. (see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.mediawiki) diff --git a/source/contracts-and-transactions/ethereum-tests/using-testeth.rst b/source/contracts-and-transactions/ethereum-tests/using-testeth.rst index 15f790f7..a2439158 100644 --- a/source/contracts-and-transactions/ethereum-tests/using-testeth.rst +++ b/source/contracts-and-transactions/ethereum-tests/using-testeth.rst @@ -2,22 +2,22 @@ ***************************************************** Using Testeth ***************************************************** -Ethereum cpp-client testeth tool for creation and execution of ethereum tests. +Ethereum cpp-client testeth tool for creation and execution of ethereum tests. To run tests you should open folder (see also `Installing and building <../../ethereum-clients/cpp-ethereum/index.html#installing-and-building>`_) ``/build/libethereum/test`` - -and execute a command ``./testeth`` This will run all test cases automatically. + +and execute a command ``./testeth`` This will run all test cases automatically. To run a specific test case you could use parameter ``-t`` in the command line option: ``./testeth -t /`` Or just the test suite: - + ``./testeth -t `` - -You could also use ``--filltests`` option to rerun test creation from .json files which are located at ``../cpp-ethereum/test/.json`` + +You could also use ``--filltests`` option to rerun test creation from .json files which are located at ``../cpp-ethereum/test/.json`` ``./testeth -t / --filltests`` @@ -27,11 +27,11 @@ By default using ``--filltests`` option ``testeth`` recreate tests to the ``ETHE | ``ETHEREUM_TEST_PATH="/home/user/ethereum/tests"`` | -Filler files are test templates which are used to fill initial parameters defined at test specification `Ethereum Tests <../ethereum-tests/index.html>`_ and then create a complete test ``.json`` file. You might find filler files very useful when creating your own tests. +Filler files are test templates which are used to fill initial parameters defined at test specification `Ethereum Tests <../ethereum-tests/index.html>`_ and then create a complete test ``.json`` file. You might find filler files very useful when creating your own tests. -The ``--checkstate`` option adds a BOOST error if the post state of filled test differs from it's ``expected`` section. +The ``--checkstate`` option adds a BOOST error if the post state of filled test differs from its ``expected`` section. -To specify a concrete test in a TEST_CASE file for filling/running procedure use ``--singletest`` option: +To specify a concrete test in a TEST_CASE file for filling/running procedure use ``--singletest`` option: ``./testeth -t / --singletest `` @@ -43,25 +43,25 @@ If you want to debug (note: testeth should be build with VMTRACE=1) a single tes | ``./testeth -t / --singletest --vmtrace --verbosity 12`` | -Some tests may use excessive resources when running, so by default they are disabled. Such tests require specific flag to be set in order to be executed. Like ``--performance``, ``--inputLimits``, ``--memory``, ``--quadratic``. You may also enable all of the tests by setting ``--all`` flag. Be careful. Enabled memory tests may stress your system to use 4GB of RAM and more. +Some tests may use excessive resources when running, so by default they are disabled. Such tests require specific flag to be set in order to be executed. Like ``--performance``, ``--inputLimits``, ``--memory``, ``--quadratic``. You may also enable all of the tests by setting ``--all`` flag. Be careful. Enabled memory tests may stress your system to use 4GB of RAM and more. -That's it for test execution. To read more about command line options you may run ``testeth`` with ``--help`` option. +That's it for test execution. To read more about command line options you may run ``testeth`` with ``--help`` option. Now let's see what test cases are available. Test Cases -------------------------------------------------------------------------------- -Almost each test case has it's filler file available at ``/webthree-umbrella/libethereum/test`` +Almost each test case has its filler file available at ``/webthree-umbrella/libethereum/test`` -TEST_SUITE = BlockTests -TEST_CASES = blValidBlockTest blInvalidTransactionRLP blTransactionTest blInvalidHeaderTest userDefinedFile +TEST_SUITE = BlockTests +TEST_CASES = blValidBlockTest blInvalidTransactionRLP blTransactionTest blInvalidHeaderTest userDefinedFile -TEST_SUITE = TransactionTests -TEST_CASES = ttTransactionTest ttWrongRLPTransaction tt10mbDataField userDefinedFile +TEST_SUITE = TransactionTests +TEST_CASES = ttTransactionTest ttWrongRLPTransaction tt10mbDataField userDefinedFile -TEST_SUITE = StateTests -TEST_CASES = stExample stSystemOperationsTest stPreCompiledContracts stLogTests stRecursiveCreate stTransactionTest stInitCodeTest stSpecialTest stRefundTest stBlockHashTest stQuadraticComplexityTest stSolidityTest stMemoryTest stCreateTest userDefinedFileState +TEST_SUITE = StateTests +TEST_CASES = stExample stSystemOperationsTest stPreCompiledContracts stLogTests stRecursiveCreate stTransactionTest stInitCodeTest stSpecialTest stRefundTest stBlockHashTest stQuadraticComplexityTest stSolidityTest stMemoryTest stCreateTest userDefinedFileState -TEST_SUITE = VMTests -TEST_CASES = vm_tests vmArithmeticTest vmBitwiseLogicOperationTest vmSha3Test vmEnvironmentalInfoTest vmBlockInfoTest vmIOandFlowOperationsTest vmPushDupSwapTest vmLogTest vmSystemOperationsTest vmPerformanceTest vmInputLimitsTest1 vmInputLimitsTest2 vmRandom userDefinedFile +TEST_SUITE = VMTests +TEST_CASES = vm_tests vmArithmeticTest vmBitwiseLogicOperationTest vmSha3Test vmEnvironmentalInfoTest vmBlockInfoTest vmIOandFlowOperationsTest vmPushDupSwapTest vmLogTest vmSystemOperationsTest vmPerformanceTest vmInputLimitsTest1 vmInputLimitsTest2 vmRandom userDefinedFile diff --git a/source/ether.rst b/source/ether.rst index f2cc6c27..f10f68c8 100644 --- a/source/ether.rst +++ b/source/ether.rst @@ -11,8 +11,8 @@ computation within the EVM. This is done indirectly by purchasing gas for ether Denominations -------------------------------------------------------- -Ethereum has a metric system of denominations used as units of Ether. Each denomination has its own unique name (some bear the family name of seminal figures playing a role in evolution of computer science and cryptoeconomics). The smallest denomination aka *base unit* of Ether is called Wei. Below is a list of the named denominations and -their value in Wei. Following a common (although somewhat ambiguous) pattern, Ether also designates a unit (of 1e18 or one quintillion Wei) of the currency. Note that the currency is not called Ethereum as many mistakenly think, nor is Ethereum a unit. +Ethereum has a metric system of denominations used as units of ether. Each denomination has its own unique name (some bear the family name of seminal figures playing a role in evolution of computer science and cryptoeconomics). The smallest denomination aka *base unit* of ether is called Wei. Below is a list of the named denominations and +their value in Wei. Following a common (although somewhat ambiguous) pattern, ether also designates a unit (of 1e18 or one quintillion Wei) of the currency. Note that the currency is not called Ethereum as many mistakenly think, nor is Ethereum a unit. +-------------------------+-----------+-------------------------------------------+ @@ -49,7 +49,7 @@ Getting ether In order to obtain Ether, you need to either * become an Ethereum miner (see _`Mining`) or -* trade other currencies for Ether using centralised or trustless services +* trade other currencies for ether using centralised or trustless services * use the user friendly `Mist Ethereum GUI Wallet `_ that as of Beta 6 introduced the ability to purchase ether using the http://shapeshift.io/ API. Trustless services @@ -170,7 +170,7 @@ Ether can also be transferred using the **geth console**. > var amount = web3.toWei(0.01, "ether") > eth.sendTransaction({from:sender, to:receiver, value: amount}) -For more information of Ether transfer transactions, see :ref:`account-types-gas-and-transactions`. +For more information of ether transfer transactions, see :ref:`account-types-gas-and-transactions`. Ethereum is unique in the realm of cryptocurrencies in that ether has utility value as a cryptofuel, commonly referred to as "gas". Beyond transaction fees, gas is a central part of every network request and requires the sender to pay for the computing resources consumed. The gas cost is dynamically calculated, based on the volume and complexity of the request and multiplied by the current gas price. Its value as a cryptofuel has the effect of increasing the stability and long-term demand for ether and Ethereum as a whole. For more information, see :ref:`account-types-gas-and-transactions`. @@ -184,7 +184,7 @@ Gas and ether Gas is supposed to be the constant cost of network resources/utilisation. You want the real cost of sending a transaction to always be the same, so you can't really expect Gas to be issued, currencies in general are volatile. -So instead, we issue Ether whose value is supposed to vary, but also implement a Gas Price in terms of Ether. If the price of Ether goes up, the Gas Price in terms of Ether should go down to keep the real cost of Gas the same. +So instead, we issue ether whose value is supposed to vary, but also implement a Gas Price in terms of Ether. If the price of ether goes up, the Gas Price in terms of ether should go down to keep the real cost of Gas the same. Gas has multiple associated terms with it: Gas Prices, Gas Cost, Gas Limit, and Gas Fees. The principle behind Gas is to have a stable value for how much a transaction or computation costs on the Ethereum network. diff --git a/source/frequently-asked-questions/frequently-asked-questions.rst b/source/frequently-asked-questions/frequently-asked-questions.rst index ecbd5dfb..9c19857a 100644 --- a/source/frequently-asked-questions/frequently-asked-questions.rst +++ b/source/frequently-asked-questions/frequently-asked-questions.rst @@ -11,14 +11,14 @@ Questions What is Ethereum? ---------------------------------------------------------------------------------------------- -Ethereum is a decentralized smart contracts platform that is powered by a cryptocurrency called Ether. A good starting point to learn more about it's workings would be the ":ref:`what-is-ethereum`" page. +Ethereum is a decentralized smart contracts platform that is powered by a cryptocurrency called Ether. A good starting point to learn more about its workings would be the ":ref:`what-is-ethereum`" page. I have heard of Ethereum, but what are Geth, Mist, Ethminer, Mix? ---------------------------------------------------------------------------------------------- * **Geth**: This is the Go implementation of an Ethereum node, and is the basis for any interactions with the Ethereum blockchain. Running this locally will allow you to easily interact with the Ethereum blockchain. Read the `go-ethereum installation instructions `_. -* **Mist**: This is the equivalent of a web browser, but for the Ethereum platform. It acts as a GUI to display the accounts and contracts that you interact with. It also allows you to create and interact with contracts in a graphical user interface without ever touching the command line. If you are not a developer and just want to store Ether and interact with Ethereum contracts, then Mist is the program to use. Downloads can be found on the `Mist releases page `_. +* **Mist**: This is the equivalent of a web browser, but for the Ethereum platform. It acts as a GUI to display the accounts and contracts that you interact with. It also allows you to create and interact with contracts in a graphical user interface without ever touching the command line. If you are not a developer and just want to store ether and interact with Ethereum contracts, then Mist is the program to use. Downloads can be found on the `Mist releases page `_. * **Ethminer**: A standalone miner. This can be used to mine or benchmark a mining set-up. It is compatible with eth, geth, and pyethereum. Check out the :ref:`mining` page for more information. diff --git a/source/index.rst b/source/index.rst index 9b548a9b..17eaa691 100644 --- a/source/index.rst +++ b/source/index.rst @@ -15,8 +15,8 @@ Ethereum Homestead Documentation This documentation is the result of an ongoing collaborative effort by volunteers from the Ethereum :ref:`community`. Although it has not been -authorized by the :ref:`foundation`, we hope you will find it useful, -and welcome new :ref:`contributors`. +authorized by the :ref:`foundation`, we hope you will find it useful. +We welcome new :ref:`contributors`. Contents diff --git a/source/introduction/community.rst b/source/introduction/community.rst index 61779928..318149d2 100644 --- a/source/introduction/community.rst +++ b/source/introduction/community.rst @@ -22,7 +22,7 @@ Further specialised subreddits: * `/r/EtherMining `_ - Ether mining discussion * `/r/Ethmarket `_ - Marketplace for individuals looking to exchange goods and services for Ether * `/r/Ethinvestor `_ - News and prospects for Ethereum investors. Following the long term trends in the Ethereum marketplace. -* `/r/ethereumism/ `_ - a bit more ism, ostic, ical, ist and tinfoil hats, pyramids and crystal ball type of views - the ethereal side of Ethereum +* `/r/ethereumism/ `_ - A bit more ism, ostic, ical, ist and tinfoil hats, pyramids and crystal ball type of views - the ethereal side of Ethereum .. _Ethereum subreddit: https://www.reddit.com/r/ethereum/ diff --git a/source/introduction/foundation.rst b/source/introduction/foundation.rst index 877e4d97..de94a752 100644 --- a/source/introduction/foundation.rst +++ b/source/introduction/foundation.rst @@ -3,7 +3,7 @@ *************************************************** The Ethereum Foundation *************************************************** -The Ethereum Foundation is a non-profit organization registered in Switzerland, and has the purpose of managing the funds that were raised from the Ether Sale in order to best serve the Ethereum and decentralized technology ecosystem. +The Ethereum Foundation is a non-profit organization registered in Switzerland, and has the purpose of managing the funds that were raised from the ether Sale in order to best serve the Ethereum and decentralized technology ecosystem. Founded July 2014 in Switzerland, Stiftung Ethereum’s mission is the promotion of developments of new technologies and applications, especially in the fields of new open and decentralized software architectures. diff --git a/source/mining.rst b/source/mining.rst index d4d66a6e..8a2433a0 100644 --- a/source/mining.rst +++ b/source/mining.rst @@ -9,7 +9,7 @@ Introduction The word mining originates in the context of the gold analogy for crypto currencies. Gold or precious metals are scarce, so are digital tokens, and the only way to increase the total volume is through mining. This is appropriate to the extent that in Ethereum too, the only mode of issuance post launch is via mining. Unlike these examples however, mining is also the way to secure the network by creating, verifying, publishing and propagating blocks in the blockchain. -- Mining Ether = Securing the Network = Verifying Computation +- Mining ether = Securing the Network = Verifying Computation What is mining? -------------------------------------------------------------------------------- diff --git a/source/network/test-networks.rst b/source/network/test-networks.rst index f386c1ac..60cdd527 100644 --- a/source/network/test-networks.rst +++ b/source/network/test-networks.rst @@ -205,7 +205,7 @@ geth (Go client) ================================================================================ -You either pre-generate or mine your own Ether on a private +You either pre-generate or mine your own ether on a private testnet. It is a much more cost effective way of trying out Ethereum and you can avoid having to mine or find Morden test ether. @@ -304,7 +304,7 @@ You will need to start your geth instance with your custom chain command every t Pre-allocating ether to your account -------------------------------------------------------------------------------- -A difficulty of "0x400" allows you to mine Ether very quickly on your private testnet chain. If you create your chain and start mining, you should have hundreds of Ether in a matter of minutes which is way more than enough to test transactions on your network. If you would still like to pre-allocate Ether to your account, you will need to: +A difficulty of "0x400" allows you to mine Ether very quickly on your private testnet chain. If you create your chain and start mining, you should have hundreds of ether in a matter of minutes which is way more than enough to test transactions on your network. If you would still like to pre-allocate Ether to your account, you will need to: 1. Create a new Ethereum account after you create your private chain 2. Copy your new account address @@ -334,7 +334,7 @@ Run the command ``geth account list`` in your terminal to see what account # you Account #2: {e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32} Account #3: {f4dd5c3794f1fd0cdc0327a83aa472609c806e99} -Take note of which account # is the one that you pre-allocated Ether to. +Take note of which account # is the one that you pre-allocated ether to. Alternatively, you can launch the console with ``geth console`` (keep the same parameters as when you launched ``geth`` first). Once the prompt appears, type .. code-block:: Console @@ -355,7 +355,7 @@ Type the following command: > balance = web3.fromWei(eth.getBalance(primary), "ether"); -This should return ``7.5`` indicating you have that much Ether in your account. The reason we had to put such a large number in the alloc section of your genesis file is because the "balance" field takes a number in wei which is the smallest denomination of the Ethereum currency Ether (see _`Ether`). +This should return ``7.5`` indicating you have that much ether in your account. The reason we had to put such a large number in the alloc section of your genesis file is because the "balance" field takes a number in wei which is the smallest denomination of the Ethereum currency ether (see _`Ether`). * https://www.reddit.com/r/ethereum/comments/3kdnus/question_about_private_chain_mining_dont_upvote/