From fadeac7dece05167b4766383d05fbdf5ef55755f Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Wed, 4 Sep 2019 13:51:21 +0200 Subject: [PATCH] changes made in berlin --- docs/_install-and-build/Backup--restore.md | 7 + docs/_install-and-build/Building-Ethereum.md | 22 ---- docs/_install-and-build/Developers-Guide.md | 4 +- .../Installation-Instructions-for-ARM.md | 13 -- .../Installation-Instructions-for-Arch.md | 25 ---- .../Installation-Instructions-for-FreeBSD.md | 60 --------- .../Installation-Instructions-for-Mac.md | 60 --------- .../Installation-Instructions-for-Ubuntu.md | 6 - docs/_install-and-build/Installing-Geth.md | 104 ++++++++++++++- docs/_install-and-build/Installing-Go.md | 16 --- docs/_install-and-build/Running-in-Docker.md | 68 ---------- docs/getting-started/index.md | 124 ------------------ 12 files changed, 108 insertions(+), 401 deletions(-) delete mode 100644 docs/_install-and-build/Building-Ethereum.md delete mode 100644 docs/_install-and-build/Installation-Instructions-for-ARM.md delete mode 100644 docs/_install-and-build/Installation-Instructions-for-Arch.md delete mode 100644 docs/_install-and-build/Installation-Instructions-for-FreeBSD.md delete mode 100644 docs/_install-and-build/Installation-Instructions-for-Mac.md delete mode 100644 docs/_install-and-build/Installation-Instructions-for-Ubuntu.md delete mode 100644 docs/_install-and-build/Installing-Go.md delete mode 100644 docs/_install-and-build/Running-in-Docker.md delete mode 100644 docs/getting-started/index.md diff --git a/docs/_install-and-build/Backup--restore.md b/docs/_install-and-build/Backup--restore.md index a87b256e1f..293877e247 100644 --- a/docs/_install-and-build/Backup--restore.md +++ b/docs/_install-and-build/Backup--restore.md @@ -3,6 +3,13 @@ title: Backup & restore --- **DO NOT FORGET YOUR PASSWORD** and **BACKUP YOUR KEYSTORE** + + # Backup & restore ## Data directory diff --git a/docs/_install-and-build/Building-Ethereum.md b/docs/_install-and-build/Building-Ethereum.md deleted file mode 100644 index 8128e5e853..0000000000 --- a/docs/_install-and-build/Building-Ethereum.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Building Geth ---- -## Installation Instructions - -Follow the appropriate link below to find installation instructions for -your platform. - -* [Installation Instructions for Mac OS X](Installation-Instructions-for-Mac) -* [Installation Instructions for Windows](Installing-Geth) -* Installation Instructions for Linux/Unix - * [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](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) diff --git a/docs/_install-and-build/Developers-Guide.md b/docs/_install-and-build/Developers-Guide.md index a472946e7c..52a25cc6d4 100644 --- a/docs/_install-and-build/Developers-Guide.md +++ b/docs/_install-and-build/Developers-Guide.md @@ -2,7 +2,7 @@ title: Developers' guide --- **NOTE: These instructions are for people who want to contribute Go source code changes. -If you just want to run ethereum, use the normal [Installation Instructions](Building-Ethereum)** +If you just want to run ethereum, use the normal [Installation Instructions](Installing-Geth)** This document is the entry point for developers of the Go implementation of Ethereum. Developers here refer to the hands-on: who are interested in build, develop, debug, submit a bug report or pull request or contribute code to go-ethereum. @@ -10,7 +10,7 @@ This document is the entry point for developers of the Go implementation of Ethe ### Go Environment -We assume that you have [`go` v1.8 installed](../doc/Installing-Go), and `GOPATH` is set. +We assume that you have [`go` installed](https://golang.org/doc/install), and `GOPATH` is set. **Note**:You must have your working copy under `$GOPATH/src/github.com/ethereum/go-ethereum`. diff --git a/docs/_install-and-build/Installation-Instructions-for-ARM.md b/docs/_install-and-build/Installation-Instructions-for-ARM.md deleted file mode 100644 index 0b96185372..0000000000 --- a/docs/_install-and-build/Installation-Instructions-for-ARM.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -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 \ No newline at end of file diff --git a/docs/_install-and-build/Installation-Instructions-for-Arch.md b/docs/_install-and-build/Installation-Instructions-for-Arch.md deleted file mode 100644 index aa9f016bb7..0000000000 --- a/docs/_install-and-build/Installation-Instructions-for-Arch.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -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 -``` \ No newline at end of file diff --git a/docs/_install-and-build/Installation-Instructions-for-FreeBSD.md b/docs/_install-and-build/Installation-Instructions-for-FreeBSD.md deleted file mode 100644 index fd9e29e347..0000000000 --- a/docs/_install-and-build/Installation-Instructions-for-FreeBSD.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -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. diff --git a/docs/_install-and-build/Installation-Instructions-for-Mac.md b/docs/_install-and-build/Installation-Instructions-for-Mac.md deleted file mode 100644 index ccc25d0b8c..0000000000 --- a/docs/_install-and-build/Installation-Instructions-for-Mac.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Installation instructions for macOS ---- - -## 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 using the `--devel` parameter: - -```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: - -## 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. diff --git a/docs/_install-and-build/Installation-Instructions-for-Ubuntu.md b/docs/_install-and-build/Installation-Instructions-for-Ubuntu.md deleted file mode 100644 index 0fd55a1ee7..0000000000 --- a/docs/_install-and-build/Installation-Instructions-for-Ubuntu.md +++ /dev/null @@ -1,6 +0,0 @@ -Or the development version with: - -```shell -sudo apt-get update -sudo apt-get install ethereum-unstable -``` diff --git a/docs/_install-and-build/Installing-Geth.md b/docs/_install-and-build/Installing-Geth.md index 704db609da..33fe30f04d 100644 --- a/docs/_install-and-build/Installing-Geth.md +++ b/docs/_install-and-build/Installing-Geth.md @@ -6,7 +6,6 @@ The Go implementation of Ethereum can be installed using a variety of ways. Thes * [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) @@ -16,6 +15,31 @@ The Go implementation of Ethereum can be installed using a variety of ways. Thes ### Install on macOS via 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 using the `--devel` parameter: + +```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: + + ### 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`. @@ -40,9 +64,40 @@ sudo apt-get update sudo apt-get install ethereum-unstable ``` -### Install on Windows via Chocolatey +### Installing on FreeBSD using `pkg` -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. +```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 +``` + +### Installing on FreeBSD 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 +``` + +### Installing on Arch Linux 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 +``` ## Download standalone bundle @@ -78,14 +133,15 @@ 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 + * `8547` TCP, used by the GraphQL 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/). +### Most Linux systems +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 the most recent version of Go. 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: @@ -101,6 +157,44 @@ 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. +### MacOS + +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 +``` + +### FreeBSD + +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. + + ### 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: diff --git a/docs/_install-and-build/Installing-Go.md b/docs/_install-and-build/Installing-Go.md deleted file mode 100644 index ca11163873..0000000000 --- a/docs/_install-and-build/Installing-Go.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -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) diff --git a/docs/_install-and-build/Running-in-Docker.md b/docs/_install-and-build/Running-in-Docker.md deleted file mode 100644 index 6e905dd889..0000000000 --- a/docs/_install-and-build/Running-in-Docker.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -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 - -* * * - -We maintain four different docker images for running the latest stable or development versions of Geth. - -- `ethereum/client-go:latest` is the latest development 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 development 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._ diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md deleted file mode 100644 index a91d2cbc32..0000000000 --- a/docs/getting-started/index.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Getting Started with Geth ---- - -## Installing - -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. - -### Install on macOS via Homebrew - -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/). - -Then run the following commands to add the tap and install geth: - -```shell -brew tap ethereum/ethereum -brew install ethereum -``` - -_[Read this guide](/install-and-build/Installation-Instructions-for-Mac) 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/Installation-Instructions-for-Ubuntu) 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: - -- 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. - -To download these binaries, head to the [Go Ethereum Downloads](https://geth.ethereum.org/downloads) page. - -### 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/Installation-Instructions-for-Docker) 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: - -```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._ - -### 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. - -These are: - -- **Full**: Downloads all block headers, block data, and validates all transactions -- **Fast** (Default): Downloads block headers and block data of the most recent transactions (1024) and validates them. -- **Light**: Downloads all block headers, block data, but does not validate transactions. - -For example: - -```shell -geth --syncmode "light" -``` - -### Connect to node - -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: - -```shell -eth.accounts -``` - - - -## Next steps