docs: major overhaul (#19395)
This commit is contained in:
committed by
GitHub
parent
6f029479b2
commit
1122480aa3
64
docs/_install-and-build/Backup--restore.md
Normal file
64
docs/_install-and-build/Backup--restore.md
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
title: Backup & restore
|
||||
---
|
||||
**DO NOT FORGET YOUR PASSWORD** and **BACKUP YOUR KEYSTORE**
|
||||
|
||||
# Backup & restore
|
||||
|
||||
## Data directory
|
||||
|
||||
Everything `geth` persists gets written inside its data directory (except for the PoW Ethash DAG, see note below).
|
||||
The default data directory locations are platform specific:
|
||||
|
||||
* Mac: `~/Library/Ethereum`
|
||||
* Linux: `~/.ethereum`
|
||||
* Windows: `%APPDATA%\Ethereum`
|
||||
|
||||
Accounts are stored in the `keystore` subdirectory. The contents of this directories should be transportable between nodes, platforms, implementations (C++, Go, Python).
|
||||
|
||||
To configure the location of the data directory, the `--datadir` parameter can be specified. See [CLI Options](../interface/Command-Line-Options) for more details.
|
||||
|
||||
_**Note:** The [Ethash DAG](../how-to/Mining#ethash-dag) is stored at `~/.ethash` (Mac/Linux) or `%APPDATA%\Ethash` (Windows) so that it can be reused by all clients. You can store this in a different location by using a symbolic link._
|
||||
|
||||
## Upgrades
|
||||
|
||||
Sometimes the internal database formats need updating (for example, when upgrade from before 0.9.20). This can be run with the following command (geth should not be otherwise running):
|
||||
|
||||
```
|
||||
geth upgradedb
|
||||
```
|
||||
|
||||
## Cleanup
|
||||
|
||||
Geth's blockchain and state databases can be removed with:
|
||||
|
||||
```
|
||||
geth removedb
|
||||
```
|
||||
|
||||
This is useful for deleting an old chain and sync'ing to a new one. It only affects data directories that can be re-created on synchronisation and does not touch the keystore.
|
||||
|
||||
## Blockchain import/export
|
||||
|
||||
Export the blockchain in binary format with:
|
||||
```
|
||||
geth export <filename>
|
||||
```
|
||||
|
||||
Or if you want to back up portions of the chain over time, a first and last block can be specified. For example, to back up the first epoch:
|
||||
|
||||
```
|
||||
geth export <filename> 0 29999
|
||||
```
|
||||
|
||||
Note that when backing up a partial chain, the file will be appended rather than truncated.
|
||||
|
||||
Import binary-format blockchain exports with:
|
||||
```
|
||||
geth import <filename>
|
||||
```
|
||||
|
||||
_See https://github.com/ethereum/wiki/wiki/Blockchain-import-export for more info_
|
||||
|
||||
|
||||
And finally: **DO NOT FORGET YOUR PASSWORD** and **BACKUP YOUR KEYSTORE**
|
@ -1,22 +1,22 @@
|
||||
---
|
||||
title: Building Ethereum
|
||||
title: Building Geth
|
||||
---
|
||||
## Installation Instructions
|
||||
|
||||
Follow the appropriate link below to find installation instructions for
|
||||
your platform.
|
||||
|
||||
* [Installation Instructions for Mac OS X](../doc/Installation-Instructions-for-Mac)
|
||||
* [Installation Instructions for Windows](../doc/Installation-instructions-for-Windows)
|
||||
* [Installation Instructions for Mac OS X](Installation-Instructions-for-Mac)
|
||||
* [Installation Instructions for Windows](Installing-Geth)
|
||||
* Installation Instructions for Linux/Unix
|
||||
* [Ubuntu](../doc/Installation-Instructions-for-Ubuntu)
|
||||
* [Arch](../doc/Installation-Instructions-for-Arch)
|
||||
* [FreeBSD](../doc/Installation-Instructions-for-FreeBSD)
|
||||
* [Ubuntu](Installing-Geth)
|
||||
* [Arch](Installation-Instructions-for-Arch)
|
||||
* [FreeBSD](Installation-Instructions-for-FreeBSD)
|
||||
* [Setup for Raspberry Pi](https://github.com/ethereum/wiki/wiki/Raspberry-Pi-instructions)
|
||||
* [ARM](../doc/Installation-Instructions-for-ARM)
|
||||
* [Usage instructions for Docker](../doc/Running-in-Docker)
|
||||
* [ARM](Installation-Instructions-for-ARM)
|
||||
* [Usage instructions for Docker](Running-in-Docker)
|
||||
|
||||
## Quick Links
|
||||
|
||||
* [Ubuntu PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum)
|
||||
* [Download Page](https://geth.ethereum.org/downloads)
|
||||
* [Download Page](https://geth.ethereum.org/downloads)
|
||||
|
13
docs/_install-and-build/Installation-Instructions-for-ARM.md
Normal file
13
docs/_install-and-build/Installation-Instructions-for-ARM.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Installation instructions for ARM
|
||||
---
|
||||
|
||||
Geth is built for ARM using cross-compilation. See [Cross compiling Ethereum](Cross-compiling-Ethereum) for more details.
|
||||
|
||||
## RasPi 2
|
||||
|
||||
1. Download the precompiled binary from https://geth.ethereum.org/downloads/
|
||||
1. Copy it to a location in $PATH (i.e. /usr/local/bin)
|
||||
1. Run `geth`
|
||||
|
||||
Further details: https://github.com/ethereum/wiki/wiki/Raspberry-Pi-instructions
|
@ -0,0 +1,25 @@
|
||||
---
|
||||
title: Installation instructions for Arch
|
||||
---
|
||||
## Installing using pacman
|
||||
|
||||
The `geth` package is available from the [community repo](https://www.archlinux.org/packages/community/x86_64/geth/).
|
||||
|
||||
You can install it using
|
||||
|
||||
```shell
|
||||
pacman -S geth
|
||||
```
|
||||
|
||||
## Installing from source
|
||||
Install dependencies
|
||||
```shell
|
||||
pacman -S git go gcc
|
||||
```
|
||||
|
||||
Download and build geth
|
||||
```shell
|
||||
git clone https://github.com/ethereum/go-ethereum
|
||||
cd go-ethereum
|
||||
make geth
|
||||
```
|
@ -0,0 +1,60 @@
|
||||
---
|
||||
title: Installation instructions for FreeBSD
|
||||
---
|
||||
## Building from source
|
||||
|
||||
### Installing binary package
|
||||
|
||||
Binary packages tend not to be up to date (1.8.9 at the time of writing) with the latest version (1.8.16 at the time of writing). It is recommended that you use ports or compile it yourself.
|
||||
|
||||
```shell
|
||||
pkg install go-ethereum
|
||||
```
|
||||
|
||||
The `geth` command is then available on your system in `/usr/local/bin/geth`, you can start it e.g. on the testnet by typing:
|
||||
|
||||
```shell
|
||||
geth -rinkeby
|
||||
```
|
||||
|
||||
### Using ports
|
||||
|
||||
Go to the `net-p2p/go-ethereum` ports directory:
|
||||
|
||||
```shell
|
||||
cd /usr/ports/net-p2p/go-ethereum
|
||||
```
|
||||
Then build it the standard way (as root):
|
||||
|
||||
```shell
|
||||
make install
|
||||
```
|
||||
|
||||
### Building Geth (command line client)
|
||||
|
||||
Ports are slightly more up to date (1.8.14 at the time of writing)
|
||||
|
||||
Clone the repository to a directory of your choosing:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/ethereum/go-ethereum
|
||||
```
|
||||
|
||||
Building `geth` requires the Go compiler:
|
||||
|
||||
```shell
|
||||
pkg install go
|
||||
```
|
||||
|
||||
If your golang version is >= 1.5, build the `geth` program using the following command.
|
||||
```shell
|
||||
cd go-ethereum
|
||||
make geth
|
||||
```
|
||||
If your golang version is < 1.5 (quarterly packages, for example), use the following command instead.
|
||||
```shell
|
||||
cd go-ethereum
|
||||
CC=clang make geth
|
||||
```
|
||||
|
||||
You can now run `build/bin/geth` to start your node.
|
58
docs/_install-and-build/Installation-Instructions-for-Mac.md
Normal file
58
docs/_install-and-build/Installation-Instructions-for-Mac.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Installation instructions for Mac
|
||||
---
|
||||
## Installing with Homebrew
|
||||
|
||||
By far the easiest way to install go-ethereum is to use our
|
||||
Homebrew tap. If you don't have Homebrew, [install it first](http://brew.sh).
|
||||
|
||||
Then run the following commands to add the tap and install `geth`:
|
||||
|
||||
```shell
|
||||
brew tap ethereum/ethereum
|
||||
brew install ethereum
|
||||
```
|
||||
|
||||
You can install the develop branch by running `--devel`:
|
||||
|
||||
```shell
|
||||
brew install ethereum --devel
|
||||
```
|
||||
|
||||
After installing, run `geth account new` to create an account on your node.
|
||||
|
||||
You should now be able to run `geth` and connect to the network.
|
||||
|
||||
Make sure to check the different options and commands with `geth --help`
|
||||
|
||||
For options and patches, see: https://github.com/ethereum/homebrew-ethereum
|
||||
|
||||
## Building from source
|
||||
|
||||
### Building Geth (command line client)
|
||||
|
||||
Clone the repository to a directory of your choosing:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/ethereum/go-ethereum
|
||||
```
|
||||
|
||||
Building `geth` requires the Go compiler:
|
||||
|
||||
```shell
|
||||
brew install go
|
||||
```
|
||||
|
||||
Finally, build the `geth` program using the following command.
|
||||
```shell
|
||||
cd go-ethereum
|
||||
make geth
|
||||
```
|
||||
|
||||
If you see some errors related to header files of Mac OS system library, install XCode Command Line Tools, and try again.
|
||||
|
||||
```shell
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
You can now run `build/bin/geth` to start your node.
|
114
docs/_install-and-build/Installing-Geth.md
Normal file
114
docs/_install-and-build/Installing-Geth.md
Normal file
@ -0,0 +1,114 @@
|
||||
---
|
||||
title: Installing Geth
|
||||
---
|
||||
The Go implementation of Ethereum can be installed using a variety of ways. These include obtaining it as part of Mist; installing it via your favorite package manager; downloading a standalone pre-built bundle; running as a docker container; or building it yourself. This document will detail all of these possibilities to get you quickly joining the Ethereum network using whatever means you prefer.
|
||||
|
||||
* [Install from a package manager](#install-from-a-package-manager)
|
||||
* [Install on macOS via Homebrew](#install-on-macos-via-homebrew)
|
||||
* [Install on Ubuntu via PPAs](#install-on-ubuntu-via-ppas)
|
||||
* [Install on Windows via Chocolatey](#install-on-windows-via-chocolatey)
|
||||
* [Download standalone bundle](#download-standalone-bundle)
|
||||
* [Run inside docker container](#run-inside-docker-container)
|
||||
* [Build it from source code](#build-it-from-source-code)
|
||||
* [Building without a Go workflow](#building-without-a-go-workflow)
|
||||
|
||||
## Install from a package manager
|
||||
|
||||
### Install on macOS via Homebrew
|
||||
|
||||
### Install on Ubuntu via PPAs
|
||||
|
||||
The simplest way to install go-ethereum on Ubuntu distributions is via the built in launchpad PPAs (Personal Package Archives). We provide a single PPA repository that contains both our stable as well as our develop releases for Ubuntu versions `trusty`, `xenial`, `zesty` and `artful`.
|
||||
|
||||
To enable our launchpad repository please run:
|
||||
|
||||
```
|
||||
sudo add-apt-repository -y ppa:ethereum/ethereum
|
||||
```
|
||||
|
||||
After that you can install the stable version of Go Ethereum:
|
||||
|
||||
```
|
||||
sudo apt-get update
|
||||
sudo apt-get install ethereum
|
||||
```
|
||||
|
||||
Or the develop version via:
|
||||
|
||||
```
|
||||
sudo apt-get update
|
||||
sudo apt-get install ethereum-unstable
|
||||
```
|
||||
|
||||
### Install on Windows via Chocolatey
|
||||
|
||||
Although we were shipping Chocolatey packages for a time after Frontier, it has fallen out of date due to the constant manual approval process. With our new build infrastructure in place we will attempt to negotiate trusted package status for go-ethereum to be able to reinstate the Chocolatey workflow. Until then please grab a Windows installer from our [downloads](https://geth.ethereum.org/downloads) page.
|
||||
|
||||
## Download standalone bundle
|
||||
|
||||
All our stable releases and develop builds are distributed as standalone bundles too. These can be 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) simply do not like automatic updates and would rather manually install software.
|
||||
|
||||
We create the following standalone bundles:
|
||||
|
||||
* 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 archives we provide separate ones containing only Geth, and separate ones containing Geth along with all the developer tools from our repository (`abigen`, `bootnode`, `disasm`, `evm`, `rlpdump`). Please see our [`README`](https://github.com/ethereum/go-ethereum#executables) for more information about these executables.
|
||||
|
||||
To download these bundles, please head the [Go Ethereum Downloads](https://geth.ethereum.org/downloads) page.
|
||||
|
||||
## Run inside docker container
|
||||
|
||||
If you prefer containerized processes, you can run go-ethereum as a docker container too. We currently maintain four different docker images for running the latest stable or develop versions of Geth.
|
||||
|
||||
* `ethereum/client-go:latest` is the latest develop version of Geth
|
||||
* `ethereum/client-go:stable` is the latest stable version of Geth
|
||||
* `ethereum/client-go:{version}` is the stable version of Geth at a specific version number
|
||||
* `ethereum/client-go:release-{version}` is the latest stable version of Geth at a specific version family
|
||||
|
||||
We also maintain four different docker images for running the latest stable or develop versions of miscellaneous Ethereum tools.
|
||||
|
||||
* `ethereum/client-go:alltools-latest` is the latest develop version of the Ethereum tools
|
||||
* `ethereum/client-go:alltools-stable` is the latest stable version of the Ethereum tools
|
||||
* `ethereum/client-go:alltools-{version}` is the stable version of the Ethereum tools at a specific version number
|
||||
* `ethereum/client-go:alltools-release-{version}` is the latest stable version of the Ethereum tools at a specific version family
|
||||
|
||||
The image has the following ports automatically exposed:
|
||||
|
||||
* `8545` TCP, used by the HTTP based JSON RPC API
|
||||
* `8546` TCP, used by the WebSocket based JSON RPC API
|
||||
* `30303` TCP and UDP, used by the P2P protocol running the network
|
||||
* `30304` UDP, used by the P2P protocol's new peer discovery overlay
|
||||
|
||||
*Note, if you are running an Ethereum client inside a docker container, you might want to mount in a data volume as the client's data directory (located at `/root/.ethereum` inside the container) to ensure that downloaded data is preserved between restarts and/or container life-cycles.*
|
||||
|
||||
## Build it from source code
|
||||
|
||||
Go Ethereum (as its name implies) is written in [Go](https://golang.org), and as such to build from source code you'll need to ensure that you have at least Go 1.7 installed (preferably the latest version, currently at 1.9.2). This guide will not go into details on how to install Go itself, for that please consult the [Go installation instructions](https://golang.org/doc/install) and grab any needed bundles from the [Go download page](https://golang.org/dl/).
|
||||
|
||||
Assuming you have Go installed, you can download our project via:
|
||||
|
||||
```
|
||||
go get -d github.com/ethereum/go-ethereum
|
||||
```
|
||||
|
||||
The above command will checkout the default version of Go Ethereum into your local `GOPATH` work space, but it will not build any executables for you. To do that you can either build one specifically:
|
||||
|
||||
```
|
||||
go install github.com/ethereum/go-ethereum/cmd/geth
|
||||
```
|
||||
|
||||
Or you can also build the entire project and install `geth` along with all developer tools by running `go install ./...` in the repository root inside your `GOPATH` work space.
|
||||
|
||||
### Building without a Go workflow
|
||||
|
||||
If you do not want to set up Go work spaces on your machine, only build `geth` and forget about the build process, you can clone our repository directly into a folder of your choosing and invoke `make`, which will configure everything for a temporary build and clean up after itself:
|
||||
|
||||
```
|
||||
git clone https://github.com/ethereum/go-ethereum.git
|
||||
cd go-ethereum
|
||||
make geth
|
||||
```
|
||||
|
||||
This will create a `geth` (or `geth.exe` on Windows) executable file in the `go-ethereum/build/bin` folder that you can move wherever you want to run from. The binary is standalone and doesn't require any additional files.
|
16
docs/_install-and-build/Installing-Go.md
Normal file
16
docs/_install-and-build/Installing-Go.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Installing Go
|
||||
---
|
||||
### Windows
|
||||
|
||||
Download and run the installer found at http://golang.org/doc/install
|
||||
|
||||
### OS X
|
||||
|
||||
Download an install the darwin binary from https://golang.org/dl/
|
||||
|
||||
You can also install go using the Homebrew package manager.
|
||||
|
||||
### Linux
|
||||
|
||||
See information about go-installation at [golang](https://golang.org/doc/install)
|
37
docs/_install-and-build/Running-in-Docker.md
Normal file
37
docs/_install-and-build/Running-in-Docker.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Running in Docker
|
||||
---
|
||||
|
||||
We keep a Docker image with recent snapshot builds from the `develop` branch [on DockerHub](https://hub.docker.com/r/ethereum/client-go/). In addition to the container based on [Ubuntu](http://www.ubuntu.com) (158 MB), there is a smaller image using [Alpine Linux](https://alpinelinux.org) (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, run this command:
|
||||
|
||||
```shell
|
||||
docker pull ethereum/client-go
|
||||
```
|
||||
|
||||
Start a node with:
|
||||
|
||||
```shell
|
||||
docker run -it -p 30303:30303 ethereum/client-go
|
||||
```
|
||||
|
||||
To start a node that runs the JSON-RPC interface on port **8545**, run:
|
||||
|
||||
```shell
|
||||
docker run -it -p 8545:8545 -p 30303:30303 ethereum/client-go --rpc --rpcaddr "0.0.0.0"
|
||||
```
|
||||
**WARNING: This opens your container to external calls. "0.0.0.0" should _not_ be used when exposed to public networks**
|
||||
|
||||
To use the interactive JavaScript console, run:
|
||||
|
||||
```shell
|
||||
docker run -it -p 30303:30303 ethereum/client-go console
|
||||
```
|
||||
|
||||
## Using Data Volumes
|
||||
|
||||
To persist downloaded blockchain data between container starts, use Docker [data volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume). Replace `/path/on/host` with the location you want to store the data in.
|
||||
|
||||
docker run -it -p 30303:30303 -v /path/on/host:/root/.ethereum ethereum/client-go
|
||||
|
Reference in New Issue
Block a user