[DOCS] massive documentation update (#20229)

This PR:

- reorganizes all documentation pages so they live in the right category
- removes lots of legacy docs
- contains many improvements to active documentation pages

Geth user documentation is now spread across five major categories:

- Install and Build: installation and compile instructions
- Using Geth: this is for pages about general geth usage.
- For dApp Developers: this is for programming guides and functionality specific
   to dapp development. All the dev guides for mobile framework and Go APIs live here.
- JSON-RPC APIs: this has its own section because there is now a sub-page for
   every name space. I have also added an overview text that explains how to set
   up the API servers.
- For Geth Developers: this is for geth contributors
This commit is contained in:
Felix Lange
2019-11-05 13:46:00 +01:00
committed by GitHub
parent 86b20d897e
commit 7416b05b81
76 changed files with 3537 additions and 4680 deletions

View File

@ -1,104 +1,67 @@
---
title: Getting Started with Geth
permalink: getting-started
permalink: docs/getting-started
sort_key: A
---
## Installing
To use Geth, you need to install it first. You can install the geth software in a variety
of ways. These include installing it via your favorite package manager; downloading a
standalone pre-built binary; running as a docker container; or building it yourself.
You can install the Go implementation of Ethereum in a variety of ways. These include installing it via your favorite package manager; downloading a standalone pre-built binary; running as a docker container; or building it yourself. This section highlights the common options, but you can find others in the left hand menu, or in the [install and build](/install-and-build/Installing-Geth) section.
For this tutorial, we'll assume you are comfortable with downloading a pre-built binary.
Head over to the [install and build](./install-and-build/installing-geth) section and
follow the instructions for your operating system if you wish to use a different
installation method.
### Install on macOS via Homebrew
### Downloading Geth
You can install go-ethereum on macOS using [our Homebrew tap](https://github.com/ethereum/homebrew-ethereum). If you don't have Homebrew, [install it first](http://brew.sh/).
We distribute all our stable releases and development builds as standalone binaries. These
are useful for scenarios where you'd like to: a) install a specific version of our code
(e.g., for reproducible environments); b) install on machines without internet access
(e.g., air gapped computers); or c) do not like automatic updates and would rather
manually install software.
Then run the following commands to add the tap and install geth:
To download Geth, go to the [Downloads page](https://geth.ethereum.org/downloads) and
select the latest stable release matching your platform.
```shell
brew tap ethereum/ethereum
brew install ethereum
```
_[Read this guide](/install-and-build/Installing-Geth#install-on-macos-via-homebrew) further Homebrew options._
### Install on Ubuntu via PPAs
You can install go-ethereum on Ubuntu-based distributions using the built-in launchpad PPAs (Personal Package Archives). We provide a single PPA repository with both our stable and our development releases for Ubuntu versions `trusty`, `xenial`, `zesty` and `artful`.
Install dependencies first:
```shell
sudo apt-get install software-properties-common
```
To enable our launchpad repository run:
```shell
sudo add-apt-repository -y ppa:ethereum/ethereum
```
After that you can install the stable version of go-ethereum:
```shell
sudo apt-get update
sudo apt-get install ethereum
```
_[Read this guide](/install-and-build/Installing-Geth#install-on-ubuntu-via-ppas) for further Ubuntu options._
### Install on Windows
_Although we were shipping Chocolatey packages for a time after the Frontier release, the constant manual approval process led to us stopping distribution. We will try to negotiate trusted package status for go-ethereum so the Chocolatey option is available again._
Until then grab a Windows installer from our [downloads](https://geth.ethereum.org/downloads) page.
### Download standalone binary
We distribute all our stable releases and development builds as standalone binaries. These are useful for scenarios where you'd like to: a) install a specific version of our code (e.g., for reproducible environments); b) install on machines without internet access (e.g., air gapped computers); or c) do not like automatic updates and would rather manually install software.
We create the following standalone binaries:
We create the following archives:
- 32bit, 64bit, ARMv5, ARMv6, ARMv7 and ARM64 archives (`.tar.gz`) on Linux
- 64bit archives (`.tar.gz`) on macOS
- 32bit and 64bit archives (`.zip`) and installers (`.exe`) on Windows
For all binaries we provide two options, one containing only Geth, and another containing Geth along with all the developer tools from our repository (`abigen`, `bootnode`, `disasm`, `evm`, `rlpdump`). Read our [`README`](https://github.com/ethereum/go-ethereum#executables) for more information about these executables.
For all binaries we provide two options, one containing only Geth, and another containing
Geth along with all the developer tools from our repository (`abigen`, `bootnode`,
`disasm`, `evm`, `rlpdump`). Read our
[`README`](https://github.com/ethereum/go-ethereum#executables) for more information about
these executables.
To download these binaries, head to the [Go Ethereum Downloads](https://geth.ethereum.org/downloads) page.
### Creating an account
### Run inside docker container
We maintain a Docker image with recent snapshot builds from our `develop` branch on DockerHub. In addition to the container based on Ubuntu (158 MB), there is a smaller image using Alpine Linux (35 MB). To use the alpine [tag](https://hub.docker.com/r/ethereum/client-go/tags), replace `ethereum/client-go` with `ethereum/client-go:alpine` in the examples below.
To pull the image and start a node, run these commands:
```shell
docker pull ethereum/client-go
docker run -it -p 30303:30303 ethereum/client-go
```
_[Read this guide](/install-and-build/Installing-Geth#run-inside-docker-container) for further Docker options._
## Starting a node
### Create an account
Before starting Geth you first need to create an account that represents a key pair. Use the following command to create a new account and set a password for that account:
Before starting Geth you first need to create an account that represents a key pair. Use
the following command to create a new account and set a password for that account:
```shell
geth account new
```
_[Read this guide](/interface/Managing-your-accounts) for more details on importing existing Ethereum accounts and other uses of the `account` command._
_[Read this guide](./interface/managing-your-accounts) for more details on importing
existing Ethereum accounts and other uses of the `account` command._
### Sync modes
Running Geth starts an Ethereum node that can join any existing network, or create a new one. You can start Geth in one of three different sync modes using the `--syncmode "{mode}"` argument that determines what sort of node it is in the network.
Running Geth starts an Ethereum node that can join any existing network, or create a new
one. You can start Geth in one of three different sync modes using the `--syncmode "{mode}"`
argument that determines what sort of node it is in the network.
These are:
- **Full**: Downloads all blocks (including headers, transactions and receipts) and generates the state of the blockchain incrementally by executing every block.
- **Fast** (Default): Downloads all blocks (including headers, transactions and receipts), verifies all headers, and downloads the state and verifies it against the headers.
- **Light**: Downloads all block headers, block data, and verifies some randomly.
- **Full**: Downloads all blocks (including headers, transactions and receipts) and
generates the state of the blockchain incrementally by executing every block.
- **Fast** (Default): Downloads all blocks (including headers, transactions and
receipts), verifies all headers, and downloads the state and verifies it against the
headers.
- **Light**: Downloads all block headers, block data, and verifies some randomly.
For example:
@ -106,22 +69,24 @@ For example:
geth --syncmode "light"
```
### Connect to node
### Javascript Console
Once you have an account and Geth is running, you can interact with it by opening another terminal and using the following command to open a JavaScript console:
Once you have an account and Geth is running, you can interact with it by opening another
terminal and using the following command to open a JavaScript console:
```shell
geth attach
```
In the console you can issue any of the Geth commands, for example, to list all the accounts on the node, use:
In the console you can issue any of the Geth commands, for example, to list all the
accounts on the node, use:
```shell
eth.accounts
```js
> eth.accounts
```
You can also enter the console directly when you start the node with the `console` command:
```shell
geth --syncmode "light" console
geth console --syncmode "light"
```