Skip to content
This repository has been archived by the owner on May 17, 2022. It is now read-only.

Style update #307

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
19 changes: 9 additions & 10 deletions source/about.rst
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
***************************************
The Homestead Documentation Initiative
The Homestead Documentation initiative
***************************************
|Gitter|

.. |Gitter| image:: img/homestead-guide.svg
:target: https://gitter.im/ethereum/homestead-guide?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge

Purpose and Audience
Purpose and audience
===============================================================================

This guide should serve to be an entry level for all Ethereum users and developers.
The goal is to create documentation with information, short tutorials, and examples that will cover all of the basic and intermediate functionality of using Ethereum to interact with dapps or develop a dapp.
This guide serves as an entry level text for Ethereum users and developers. The goal is to create documentation with information, short tutorials, and examples that will cover all of the basic and intermediate functionality of using Ethereum to interact with dapps or develop a dapp.

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.

Expand All @@ -24,7 +23,7 @@ Examples of overly specific and technical documentation include:
* ETHash, CASPER, ABI, RLP, or other technical specs.
* Full API specs for protocols. Caveat: If an example, information, or tutorial needs to reference API calls for a client or interface in order to fulfill its example it is acceptable to reference the specific call. Be sure to make a reference where the user can find remaining pieces of the specific documentation that may be on the GitHub Wiki.

Resources for Exemplary Documentation
Resources for exemplary documentation
===============================================================================

Here are some examples of previous Ethereum documentation + good examples of documentation.
Expand All @@ -36,7 +35,7 @@ Here are some examples of previous Ethereum documentation + good examples of doc
* Other Ethereum Links: https://souptacular.gitbooks.io/ethereum-tutorials-and-tips-by-hudson/content/giant_ethereum_resource_list.html
* Django Docs - https://docs.djangoproject.com/en/1.9/

Restructured Text Markup, Sphinx
Restructured text markup, Sphinx
=======================================

* Best Cheat Sheet - https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst
Expand All @@ -45,7 +44,7 @@ Restructured Text Markup, Sphinx
* RST Primer http://sphinx-doc.org/rest.html
* http://sphinx-doc.org/markup/inline.html

Compilation and Deployment
Compilation and deployment
===============================================================================

We use `make` with the autogenerated read-the-docs `Makefile` to build the doc.
Expand All @@ -56,7 +55,7 @@ We use `make` with the autogenerated read-the-docs `Makefile` to build the doc.
cd homestead-guide
make html

Processing Tips
Processing tips
===============================================================================

Fix section delimiter lines (always use 80-long ones to have correct length, unless the title is greater than 80 chars in length)
Expand All @@ -69,12 +68,12 @@ Fix section delimiter lines (always use 80-long ones to have correct length, unl
for f in `ls source/*/*.rst`; do cat $f|perl -pe 's/\++$/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/' > $f.o; mv $f.o $f; done
for f in `ls source/*/*.rst`; do cat $f|perl -pe 's/\#+$/################################################################################/' > $f.o; mv $f.o $f; done

Referencing Old Documentation
Referencing old documentation
===============================================================================

old-docs-for-reference folder has all of the Frontier Gitbook and Ethereum Wiki doc. Feel free to copy/paste information from those documents that is still relevant.

Migrate and Convert Old Wiki Content Using Pandoc
Migrate and convert old Wiki content using Pandoc
===============================================================================

If you still want to clone the absolute latest Ethereum Wiki and Frontier Guide docs:
Expand Down
65 changes: 18 additions & 47 deletions source/account-management.rst
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
********************************************************************************
Account Management
Account management
********************************************************************************

.. _Accounts:

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 <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.
Accounts are essential for users to interact with the Ethereum blockchain via transactions.
Accounts play a central role in Ethereum. There are two types of accounts: *externally owned accounts* (EOAs) and *contract accounts*.

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.
This section describes 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 <Contracts>`.

Accounts represent identities of external agents (e.g., human personas, mining nodes or automated agents). Accounts use public key cryptography to sign transaction so that the EVM can securely validate the identity of a transaction sender.
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.
Accounts interact with the Ethereum blockchain via transactions.

Accounts represent identities of external agents (e.g., human personas, mining nodes
or automated agents). Accounts use public key cryptography to sign transactions so
that the EVM can securely validate the identity of a transaction sender.

Keyfiles
================================================================================

Every account is defined by a pair of keys, a private key and public key. Accounts are indexed by their *address* which is derived from the public key by taking the last 20 bytes. Every private key/address pair is encoded in a *keyfile*. Keyfiles are JSON text files which you can open and view in any text editor. The critical component of the keyfile, your account’s private key, is always encrypted, and it is encrypted with the password you enter when you create the account. Keyfiles are found in the ``keystore`` subdirectory of your Ethereum node’s data directory. Make sure you backup your keyfiles regularly! See the section :ref:`backup-and-restore-accounts` for more information.
Every account is defined by a pair of keys, a private key and public key. Accounts
are indexed by their *address* which is derived from the public key by taking the
last 20 bytes. Every private key/address pair is encoded in a *keyfile*.

Keyfiles are JSON text files which you can open and view in any text editor. The critical component of the keyfile, your account’s private key, is always encrypted, and it is encrypted with the password you enter when you create the account. Keyfiles are found in the ``keystore`` subdirectory of your Ethereum node’s data directory. Make sure you backup your keyfiles regularly! See the section :ref:`backup-and-restore-accounts` for more information.

Creating a key is tantamount to creating an account.

Expand All @@ -30,7 +38,7 @@ Of course your new account will not contain any Ether. But it'll be yours and yo

It is safe to transfer the entire directory or any individual keyfile between Ethereum nodes.

.. Warning:: Note that in case you are adding keyfiles to your node from a different node, the order of accounts may change. So make sure you do not rely or change the index in your scripts or code snippets.
.. Warning:: Note that in case you are adding keyfiles to your node from a different node, the order of accounts may change. So make sure you do not rely on or change the index in your scripts or code snippets.

.. _creating_an_account:

Expand Down Expand Up @@ -82,7 +90,7 @@ To list all the accounts with keyfiles currently in you’re ``keystore`` folder
account #2: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}


The filenames of keyfiles has the format ``UTC--<created_at UTC ISO8601>-<address hex>``. The order of accounts when listing, is lexicographic, but as a consequence of the timestamp format, it is actually order of creation.
The filenames of keyfiles has the format ``UTC--<created_at UTC ISO8601>-<address hex>``. The order of accounts when listing, is lexicographic (alphabetic), but as a consequence of the timestamp format, it is actually order of creation.


Using geth console
Expand Down Expand Up @@ -166,7 +174,7 @@ Creating an account using the GUI Mist Ethereum wallet couldn’t be easier. In
.. Note:: The Mist wallet is still in active development, so details of the steps outlined above may change with upgrades.


Creating a Multi-Signature Wallet in Mist
Creating a multi-signature wallet in Mist
--------------------------------------------------------------------------------

The Mist Ethereum wallet has an option to secure your wallet balance with a multisig wallet. The advantage of using a multisig wallet is that it requires authorization from more than one account to withdrawal larger amounts from your balance. Before you can create a multisig wallet, you'll need to create more than one account.
Expand Down Expand Up @@ -205,7 +213,7 @@ Troubleshooting:
Using Eth
--------------------------------------------------------------------------------

Every options related to key management available using geth can be used the same way in eth.
Every option related to key management available using geth can be used the same way in eth.

Below are "account" related options:

Expand Down Expand Up @@ -301,43 +309,6 @@ Now let's make sure it worked properly by listing the keys in the wallet:

It reports one key on each line (for a total of one key here). In this case our key is stored in a file 055dde... and has an ICAP address beginning XE472EVK.... Not especially easy things to remember so rather helpful that it has its proper name, test, too.

Importing your presale wallet
================================================================================


Using Mist Ethereum wallet
--------------------------------------------------------------------------------

Importing your presale wallet using the GUI Mist Ethereum wallet is very easy. In fact, you will be asked if you want to import your presale wallet during the installation of the app.

.. Warning:: Mist wallet is beta software. Beware and use it at your own risk.

Instructions for installing the Mist Ethereum wallet are given in the section :ref:`Creating an account: Using Mist Ethereum wallet <using-mist-ethereum-wallet>`.

Simply drag-and-drop your ``.json`` presale wallet file into the designated area and enter your password to import your presale account.

.. image:: img/51PresaleImportInstall.png
:width: 582px
:height: 469px
:scale: 75 %
:alt: presale-import
:align: center

If you choose not to import your presale wallet during installation of the app, you can import it at any time by selecting the ``Accounts`` menu in the app’s menu bar and then selecting ``Import Pre-sale Accounts``.

.. Note:: The Mist wallet is still in active development, so details of the steps outlined above may change with upgrades.

Using geth
--------------------------------------------------------------------------------

If you have a standalone installation of geth, importing your presale wallet is accomplished by executing the following command in a terminal:

.. code-block:: Bash

geth wallet import /path/to/my/presale-wallet.json

You will be prompted to enter your password.

Updating an account
================================================================================

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
********************************************************************************
Accessing Contracts and Transactions
Accessing contracts and transactions
********************************************************************************

RPC
Expand Down Expand Up @@ -249,7 +249,7 @@ can connect to a local or remote geth or eth node. It will load the web3.js libr
smart contract from the console using web3.js. In fact the examples in the :ref:`Web3.js <using_web3.js>` section can by copied into the console.


Viewing Contracts and Transactions
Viewing contracts and transactions
================================================================================

There are several online blockchain explorers available that will allow you to inspect the Ethereum blockchain.
Expand All @@ -265,7 +265,7 @@ Hosted blockchain explorers
- `EtherCamp <https://live.ether.camp/>`_
- `EtherScan <http://etherscan.io/>`_ (and for `Testnet <http://testnet.etherscan.io>`_)

Other Resources
Other resources
--------------------------------------------------------------------------------

* `EtherNodes <http://ethernodes.org/>`_ - Geographic distribution of nodes and split by client
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _account-types-gas-and-transactions:

********************************************************************************
Account Types, Gas, and Transactions
Account types, gas, and transactions
********************************************************************************

EOA vs contract accounts
Expand Down
2 changes: 1 addition & 1 deletion source/contracts-and-transactions/developer-tools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Dapp browsers
* `Supernova <http://www.supernove.cc>`_ - (discontinued).

********************************************************************************
Developer Tools
Developer tools
********************************************************************************


Expand Down
8 changes: 4 additions & 4 deletions source/contracts-and-transactions/ethereum-tests/index.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
.. _Ethereum Tests:
.. _Ethereum tests:

################################################################################
Ethereum Tests
Ethereum tests
################################################################################
| Common tests for all clients to test against. The `git repo <https://github.com/ethereum/tests>`_ updated regulary with new tests.
| This section describes basic test concepts and templates which are created by cpp-client.
| Common tests for all clients to test against. The `git repo <https://github.com/ethereum/tests>`_ updated regulary with new tests.
| This section describes basic test concepts and templates which are created by cpp-client.
|

.. toctree::
Expand Down
2 changes: 1 addition & 1 deletion source/contracts-and-transactions/index.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
################################################################################
Contracts and Transactions
Contracts and transactions
################################################################################

.. toctree::
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
********************************************************************************
Web3 Base Layer Services
Web3 base layer services
********************************************************************************

In addition to the Ethereum blockchain, more components are being developed that decentralise other important aspects of web applications.
Expand Down
2 changes: 1 addition & 1 deletion source/ethereum-clients/choosing-a-client.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ releases. The table below contains links to the latest release.
.. _ruby-ethereum-v0.9.3: https://rubygems.org/gems/ruby-ethereum/versions/0.9.3

********************************************************************************
Installing a Client
Installing a client
********************************************************************************

There are a number of "official" clients whose development has been funded
Expand Down
4 changes: 2 additions & 2 deletions source/ethereum-clients/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _Ethereum Clients:
.. _Ethereum clients:

################################################################################
Ethereum Clients
Ethereum clients
################################################################################

.. toctree::
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,6 @@ How will Ethereum ensure the network is capable of making 10,000+ transactions-p
----------------------------------------------------------------------------------------------
Ethereum is planning on implementing a proof-of-stake consensus protocol change during the Serenity phase of their development roadmap. More information on the likely Ethereum PoS candidate and how it may increase transactions-per-second can be `found here <https://blog.ethereum.org/2015/08/01/introducing-casper-friendly-ghost/>`_.

Where do the contracts reside?
----------------------------------------------------------------------------------------------
TODO

Your question is still not answered?
----------------------------------------------------------------------------------------------
Ask the community on `Ethereum StackExchange <http://ethereum.stackexchange.com/>`_.
Loading