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

Commit

Permalink
Merge pull request #91 from ethereum/Soup's_Changes
Browse files Browse the repository at this point in the history
Finished to-dos, updated index page, took off light-client until for now
  • Loading branch information
Souptacular committed Mar 8, 2016
2 parents ad8c99d + e6e1673 commit 697d759
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 70 deletions.
13 changes: 4 additions & 9 deletions source/developing-on-ethereum/test-networks.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
.. _test-networks:

********************************************************************************
Test Networks
********************************************************************************
Expand All @@ -12,7 +11,7 @@ continue throughout the Frontier and Homestead milestones of the software.
Usage
--------------------------------------------------------------------------------

TurboEthereum (C++)
++eth (C++ client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is supported natively on 0.9.93 and above. Pass the ``--morden`` argument in when starting any of the clients. e.g.:
Expand Down Expand Up @@ -88,15 +87,11 @@ Two ways to obtain Morden testnet ether:
- Mine using your CPU/GPU, (see :ref:`mining`).
- Use the `Ethereum wei faucet <https://zerogox.com/ethereum/wei_faucet>`__.

.. todo::
Finish Morden Testnet Section


Setting Up a Local Private Testnet
================================================================================
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.
Ethereum and you can avoid having to mine or find Morden test ether.

The things that are required to specify in a private chain are:
- Custom Genesis File
Expand Down Expand Up @@ -133,7 +128,7 @@ Command line parameters for private network
--------------------------------------------------------------------------------

There are some command line options (also called “flags”) that are
necessary in order to make sure that your network is private. We already covered the genesis flag, but we need a few more.
necessary in order to make sure that your network is private. We already covered the genesis flag, but we need a few more. Note that all of the commands below are to be used in the geth Ethereum client.

``--nodiscover``

Expand Down Expand Up @@ -246,4 +241,4 @@ 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`).
22 changes: 10 additions & 12 deletions source/ethereum-ecosystem/infrastructure.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _infrastructure:

********************************************************************************
Infrastructure
********************************************************************************
Expand All @@ -11,14 +13,10 @@ The basis for decentralised consensus is the peer-to-peer network of participati
Ethereum network stats
--------------------------------------------------

Live statistics on the Ethereum network can be viewed on the `stats dashboard <https://ethstats.net/>`_. This dashboard displays important numbers such as the current block, hash difficulty, gas price and gas spending and is updated realtime.
The nodes shown on the page are only a selection of actual nodes on the network.
Anyone is allowed to connect. The `Netstats README on github <https://github.com/cubedro/eth-netstats>`_ describes how to connect.


.. todo::
extend network stats to network types
`EthStats\.net <https://ethstats.net/>`_ is a dashboard of live statistics of the Ethereum network. This dashboard displays important information such as the current block, hash difficulty, gas price, and gas spending. The nodes shown on the page are only a selection of actual nodes on the network.
Anyone is allowed to add their node to the EthStats dashboard. The `Eth\-Netstats README on Github <https://github.com/cubedro/eth-netstats>`_ describes how to connect.

`EtherNodes\.com <https://www.ethernodes.org/>`_ displays current and historical data on node count and other information on both the Ethereum mainnet and Morden testnet.

Public, private, and consortium blockchains
------------------------------------------------
Expand Down Expand Up @@ -139,11 +137,13 @@ Trading and price analytics
* Aggregating realtime stats of major ETH markets:

* `Tradeblock <https://tradeblock.com/ethereum>`_
* `Ethereumwisdom <http://ethereumwisdom.com>`_
* `EthereumWisdom <http://ethereumwisdom.com>`_
* `Cryptocompare <https://www.cryptocompare.com/coins/eth/overview>`_
* `Coinmarketcap <https://coinmarketcap.com/currencies/ethereum/>`_

Wallet and Ether storage services
.. _Ethereum-wallets-and-storage-solutions:

Ethereum wallets and storage solutions
----------------------------------------------------

* `Mist Ethereum Wallet <https://github.com/ethereum/mist/releases>`_ - Wallet created by the Ethereum Foundation. Standalone GUI wallet.
Expand All @@ -154,8 +154,6 @@ Wallet and Ether storage services
* `Icebox <https://github.com/ConsenSys/icebox>`_ by `ConsenSys <https://consensys.net/>`_ - Cold storage based on lightwallet with HD wallet library integrated.
* `Kraken Wallet Sweeper Tool <https://www.kraken.com/ether>`_ - Pre-sale wallet import



Mining pools
================================================================================

Expand Down Expand Up @@ -195,4 +193,4 @@ Resources
* `pool hashrate distribution for august 2015 <ehttp://cryptomining-blog.com/5607-the-current-state-of-ethereum-mining-pools/>`_
* `Unmaintained list of pools on Forum <https://forum.ethereum.org/discussion/3659/list-of-pools>`_
* `Mining profitability calculator by cryptowizzard <http://cryptowizzard.github.io/eth-mining-calculator/>`_
* `Mining profitability calculator on etherscan <http://etherscan.io/ether-mining-calculator>`_
* `Mining profitability calculator on etherscan <http://etherscan.io/ether-mining-calculator>`_
Binary file removed source/img/ethereum-logo.jpg
Binary file not shown.
24 changes: 10 additions & 14 deletions source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,16 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to Ethereum Homestead Documentation!
Ethereum Homestead Documentation
===============================================================================


.. image:: img/ethereum-logo.jpg
.. :height: 300px
.. :width: 300 px
.. image:: img/ethereum-homestead-documentation-logo.png
.. :height: 500px
.. :width: 394 px
:scale: 50 %
:alt: ethereum-logo
:align: center
Homestead To-Dos
===============================================================================

See `this page <https://ethereum-homestead.readthedocs.org/en/latest/about.html>`__ to help us with these to-dos :)

.. todolist::


Contents
===============================================================================

Expand All @@ -34,4 +25,9 @@ Contents
using-ethereum-the-basics/using-ethereum-the-basics.rst
contracts-and-transactions/contracts-and-transactions.rst
developing-on-ethereum/developing-on-ethereum.rst
frequently-asked-questions/frequently-asked-questions.rst
frequently-asked-questions/frequently-asked-questions.rst

Improve the Documentation
===============================================================================

See `this page <https://ethereum-homestead.readthedocs.org/en/latest/about.html>`__ to help us improve the documentation.
76 changes: 41 additions & 35 deletions source/using-ethereum-the-basics/connecting-to-the-network.rst
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
.. _connecting-to-the-network:

********************************************************************************
Connecting to the Network
********************************************************************************

How to Connect
================================================================================
Geth continuously attempts to connect to other nodes on the network
until it has peers. If you have UPnP enabled on your router or run
ethereum on an Internet-facing server, it will also accept connections
from other nodes.

Geth finds peers through something called the discovery protocol. In
the discovery protocol, nodes are gossipping with each other to find
out about other nodes on the network. In order to get going initially,
geth uses a set of bootstrap nodes whose endpoints are recorded in the
source code.

Geth continuously attempts to connect to other nodes on the network until it has peers. If you have UPnP enabled on your router or run Ethereum on an Internet-facing server, it will also accept connections from other nodes.

Geth finds peers through something called the discovery protocol. In the discovery protocol, nodes are gossipping with each other to find out about other nodes on the network. In order to get going initially, geth uses a set of bootstrap nodes whose endpoints are recorded in the source code.

Checking Connectivity and ENODE IDs
--------------------------------------------------------------------------------
Expand Down Expand Up @@ -78,41 +71,45 @@ To check the ports used by geth and also find your enode URI run:
ListenAddr: '[::]:30303'
}
Common Problems With Connectivity
Download the blockchain quickly
================================================================================
When you start an Ethereum client, the Ethereum blockchain is automatically downloaded. The time it takes download the Ethereum blockchain can vary based on client, client settings, connection speed, and number of peers available. Below are some options for more quickly obtaining the Ethereum blockchain.

Using geth
--------------------------------------------------------------------------------
Sometimes you just can't get connected. The most common reasons are
as follows:
If you are using the geth client, there are some things you can do to speed up the time it takes to download the Ethereum blockchain. If you choose to use the ``--fast`` flag to perform an Ethereum fast sync, you will not retain past transaction data. You cannot use this flag after performing all or part of a normal sync operation, meaning you should not have any portion of the Ethereum blockchain downloaded before using this command. `See this Ethereum Stack\.Exchange answer for more information <http://ethereum.stackexchange.com/questions/1845/why-isnt-fast-sync-the-default>`_.

- Your local time might be incorrect. An accurate clock is required
to participate in the Ethereum network. Check your OS for how to resync
your clock (example sudo ntpdate -s time.nist.gov) because even 12
seconds too fast can lead to 0 peers.
- Some firewall configurations can prevent UDP traffic from flowing.
You can use the static nodes feature or ``admin.addPeer()`` on the console
to configure connections by hand.
Below are some flags to use when you want to sync your client more quickly.

To start geth without the discovery protocol, you can use the `--nodiscover` parameter. You only want this if you are running a test node or an experimental test network with fixed nodes.
``--fast``

Syncing vs Fast Syncing
--------------------------------------------------------------------------------
This flag enables fast syncing through state downloads rather than downloading the full block data. This will also reduce the size of your blockchain dramatically.
NOTE: ``--fast`` can only be run if you are syncing your blockchain from scratch and only the first time you download the blockchain for security reasons. `See this Reddit post for more information <https://www.reddit.com/r/ethereum/comments/3y9316/geth_fast_option_question/>`_.

.. todo::
Explain syncing vs. fast syncing.
``--cache=1024``

Megabytes of memory allocated to internal caching (min 16MB / database forced). Default is 16MB, so increasing this to 256, 512, 1024 (1GB), or 2048 (2GB) depending on how much RAM your computer has should make a difference.

Light Client Network Connectivity
================================================================================
``--jitvm``

This flag enable the JIT VM.

Full example command with console:

.. todo::
Explain light client.
.. code-block:: Bash
geth --fast --cache=1024 --jitvm console
For more discussion on fast syncing and blockchain download times, `see this Reddit post <https://www.reddit.com/r/ethereum/comments/46c4ga/lets_benchmark_the_clients/>`_.

Exporting/Importing the blockchain
--------------------------------------------------------------------------------
If you already have a full Ethereum node synced, you can export the blockchain data from the fully synced node and import it into your new node. You can accomplish this in geth by exporting your full node with the command ``geth export filename`` and importing the blockchain into your node using ``geth import filename``.

Static Nodes, Trusted Nodes, and Boot Nodes
================================================================================

Geth supports a feature called static nodes if you have certain
peers you always want to connect to. Static nodes are re-connected
on disconnects. You can configure permanent static nodes by putting something like
the following into ``<datadir>/static-nodes.json`` (this should be the same folder that your ``chaindata`` and ``keystore`` folders are in)
Geth supports a feature called static nodes if you have certain peers you always want to connect to. Static nodes are re-connected on disconnects. You can configure permanent static nodes by putting something like the following into ``<datadir>/static-nodes.json`` (this should be the same folder that your ``chaindata`` and ``keystore`` folders are in)

.. code-block:: Javascript
Expand All @@ -121,9 +118,18 @@ the following into ``<datadir>/static-nodes.json`` (this should be the same fold
"enode://pubkey@ip:port"
]
You can also add static nodes at runtime via the Javascript console using `admin.addPeer()`

.. code-block:: Console
> admin.addPeer("enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303")
Common problems with connectivity
--------------------------------------------------------------------------------
Sometimes you just can't get connected. The most common reasons are
as follows:

- Your local time might be incorrect. An accurate clock is required to participate in the Ethereum network. Check your OS for how to resync your clock (example sudo ntpdate -s time.nist.gov) because even 12 seconds too fast can lead to 0 peers.
- Some firewall configurations can prevent UDP traffic from flowing. You can use the static nodes feature or ``admin.addPeer()`` on the console to configure connections by hand.

To start geth without the discovery protocol, you can use the `--nodiscover` parameter. You only want this if you are running a test node or an experimental test network with fixed nodes.

0 comments on commit 697d759

Please sign in to comment.