Ethereum network

Content

Clients


There are four active clients to connect and interact with Ethereum network, ordered here by popularity:  GethParity , Eth and AlthZero. They all enable you to execute Ethereum programs on your computer.

When it comes to choose a client, best is first to evaluate what you will do on the network. If you have a laptop or desktop machine and will essentially use Ethereum as a paiement service,  you should probably just install the Ethereum Wallet and you are done. The Ethereum Wallet is a “single dapp” deployment of the Mist Browser which will be the centerpiece of the Metropolis phase of development, which comes after Homestead.

If you want to interact with Ethereum on the command-line, and to take advantage of the Javascript console then you will want to install one of the above mentioned client.

And last, if you plan to do mining, please visit the mining section.

The wiki will stick to the two most popular clients, Geth and Parity. Please visit  Etherdocs: choose a client in case you are interested by any other ones.

NOTE: following the 2016-06-17 attack against TheDAO, a soft-fork has been decided by the community. For this to happen, every miner shall install and run before the soft fork (probably scheduled 2016-06-30) geth minimum version 1.4.8 or parity 1.2.0.

Geth


TO WRITE

Parity


Parity is an Ethereum client, written from the ground-up for correctness-verifiability, modularisation, low-footprint and high-performance. It utilities the Rust Rust programming language, a hybrid imperative/OO/functional language with an emphasis on efficiency. You will find here a chart showing the efficiency of this client compared to geth or eth.Parity is professionally developed by Ethcore.

As pointed by Vitalik Buterin in this tweet, it is highly recommended to connect to Ethereum with this client, especially with minimum version number 1.2. It seems Parity is gaining traction among the community and may become the  upstream ethereum client.

Parity runs on Linux, Mac OS and windows.

Build and install

You can build parity from source following github instructions and this tutorial from Ethcore. You may too install binaries if your Linux distribution have such a package. Please visit the parity page on Ethcore to download binaries or a Docker image. Archlinux users will find two packages in the AUR repository. The build and installation should normally go smooth if your machine is up to date and correctly setup.

Once the package is installed, run $ parity -v to check the installation went fine. The command shall return the installed version and the license.

Configuration

There is no man page but you can run $ parity --help to see a list of options and default settings. You will see that configuration settings are stored in the~/.parity folder. To run basic parity, first be sure to own a key.

Key management

$ parity account list shall return a list of your Ether accounts. If you already had some keys before parity installation, this command will return a list of them:

 % parity account list
Known addresses:
0XXXYYYYYZZZZZZZZXXXXXYYYYYYYY

If you do not have any key, run $ parity account view  to create one.

The key shall appear in your ~/.parity/keys/ directory. To view details on your key, run $ cat ~/.parity/keys/*

Run parity on Windows 10 OS

Steps
  1. Download the following release(1.2.0).
    1. https://github.com/ethcore/parity/releases/tag/v1.2.0

  2. Run parity.exe and you would see a command line like the one below pop up.


    1. If you intend to run parity with mist, run parity with --geth option to ensure mist compatibility.
      1. Navigate to where parity is installed on your OS.
      2. Drag parity.exe file and drop onto your command line interface and add '--geth' as shown in image below.


      3. Download and run Mist 0.7.6.


  3. Then your default browser should navigate to the following URL 'http://localhost:8080/home/, ' automatically.
     if not type in the address bar 'http://localhost:8080/home'. 


  4. Configure your proxy by following the instructions when you click 'Learn More'
    1. Chrome
      1. Navigate to settings, click 'Advanced settings', under 'Network' click change proxy settings, 
      2. Click 'LAN settings' 
      3. Select 'automatic configuration script' and copy and paste the following: http://localhost:8080/proxy/proxy.pac  into the address input box.
      4. Click Ok.

  5. Point your URL in your browser to http://home.parity/ , you should see the following image if it worked perfectly. You would notice the absence of a yellow triangle.


  6. That's it, your all set.

Run parity on Linux

The simple following command will start parity: $ parity . By default it will connect to other nodes on the Ethereum Homestead network and synchronize the blockchain. Since build 1.2.0, JSON-RPC and dapps server are enabled by default, as well as  the  pruning method set to fast to avoid too large archiving.

You can run parity alongside geth on your machine, even if one client only is needed. In case you run both, please add the –-geth option to the parity command. Below is an example how to start parity with no geth daemon running:

$  parity --pruning=fast --port 30305 --jsonrpc-port 8081 --unlock MyEtherAddress --password MyFile --identity MyNode

with MyEtherAdress being your Ether account address; password the file containing your password account; identity the name you want to give to your node.

Run $ partity --help for an exhaustive list of options.

Start parity with systemd

Edit the parity.service file

[Unit]
Description=Parity Daemon

[Service]
EnvironmentFile=%h/.parity/parity.conf
ExecStart=/usr/bin/parity $ARGS

[Install]
WantedBy=default.target

Edit the parity.conf file

ARGS="--identity MyNode --pruning=fast --port 30305 --jsonrpc-port 8081 --unlock MyEtherAddress --password MyFile"

Move the service file in your systemd user service file directory (usually ~/.config/systemd/user or /etc/systemd/user), move the parity.conf wherever you want as long as its path is correctly set in your service file.

Run

$ systemctl --user start parity.service to start the daemon

$ systemctl --user status parity.service to monitor the status

$ systemctl --user enable parity.service to start the service automatically at boot.

Run Parity with Mist

As of version 1.2, Parity works with the Ethereum Foundation Wallet ("Mist").

Look here for prebuilt binaries of Mist. After installation, configuration files will on Linux will be on ~/.config/Mist directory.  Before starting Mist, make sure Parity is running in Geth-IPC-compatibility mode: start parity with the –geth option.

Now start Mist as you normally would. It will connect to ~/.ethereum/geth.ipc socket if everything is correctly setup.

Import a chain from Geth

On 1.2 and above, use Geth's export feature along with Parity's import. Run the following command to import a previously downloaded chain from Geth.

$ mkfifo /tmp/chain.rlp && geth export /tmp/chain.rlp && sleep 1 && parity import /tmp/chain.rlp

Syncing


When you first run an Ethereum client, It will first need to sync with the current blockchain. Depending on your client, system, bandwith, this action can take very long, up to a few days. Please visit this ethereum stackexchange post for tips.

Visit the ethstats website to check last block number, and compare it with the block you are syncing on your machine. Once they are the same, you know your client is synced.

Blockchain explorer


Blockchain explorer is a very useful tool to monitor live activity on the Ethereum network. The explorer serves as an interface to navigate the Ethereum network, offering high consumability and access to detailed contract and transaction data.

Its main functions allow you to watch real time status of blocks, transactions, smart contracts, as well as many more market statistics. It might help you to diagnose any possible problems when you are sending some coins or should be receiving them.

Explorers

As of 2016-06-22, four blockachain explorers are available on line:

  • Etherscan | Etherscan API
    They support both GET/POST requests and a rate limit of 300 request/min or 5 requests/sec.
    Etherscan also offers a very convenient function: If you register at the site, you can watch your personal accounts and get an email notification if any transaction is recorded involving one of your accounts.
  • Etherchain | The etherchain API
    The etherchain API is free to use. If someone abuses the API they will introduce a rate limiting system. The API is still in Beta, they recommend that you do not build applications that fully rely on it. The API endpoint is CORS enabled.
    Special feature: You can display the complete program execution of every contract invocation step by step. Very usefull for debugging (if a call to a contract doesn't succeed).
  • Ether Camp
    Ether.camp offers a very elaborate user interface to explore the data structures of a contract. A possible use case for this is checking whether you own a specific token. Just enter the address of the token, then open the balanceOf data structure and search for your accounts address.
  • Etherscrape
    EtherScrape is a complementary block explorer for the Ethereum blockchain, that focuses on program analysis and other sophisticated features. It uses fingerprinting to match each smart contract on the blockchain (that is, the compiled bytecode) to the high-level source code (Serpent and Solidity code on Github, for example) that created it. With this fingerprint search, EtherScrape searches the internet for publicly available Serpent and Solidity source code, most of which is found on Github.

Each site has its own layout and their own style - the choice of which site to use will be very much down to personal preference. In the case of Etherscan & Etherchain they offer their own API.

Transaction

 Below is a typical list of information you will get when looking for transaction details.

See also