|
|
|
---
|
|
|
|
title: Getting Started with Geth
|
|
|
|
permalink: docs/getting-started
|
|
|
|
sort_key: A
|
|
|
|
---
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
### Downloading Geth
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
To download Geth, go to the [Downloads page](https://geth.ethereum.org/downloads) and
|
|
|
|
select the latest stable release matching your platform.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
### Creating 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 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:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
geth --syncmode "light"
|
|
|
|
```
|
|
|
|
|
|
|
|
### 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:
|
|
|
|
|
|
|
|
```js
|
|
|
|
> eth.accounts
|
|
|
|
```
|
|
|
|
|
|
|
|
You can also enter the console directly when you start the node with the `console` command:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
geth console --syncmode "light"
|
|
|
|
```
|