parent
5ac91d1d88
commit
ea894dbb47
|
@ -98,4 +98,4 @@ Updating Geth to the latest version simply requires stopping the node, downloadi
|
|||
|
||||
## What is a preimage?
|
||||
|
||||
Geth stores the Ethereum state in a [Patricia Merkle Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/#state-trie). It contains `(key,value)` pairs with account addresses as keys and and [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#top) encoded `account` as the value, where an account is an array containing essential account information, specifically: `nonce`, `balance`, `StorageRoot` and `codeHash`. Definitions for these parameters are available in the Ethereum whitepaper. However, Geth's state trie does not use the keys directly, instead account information is indexed using the SHA3 hash of the key. This means that looking up the account information for an address can be done by traversing the trie for `sha3(address)`, but querying addresses that contain certain data is not possible - the addresses themselves are not part of the trie. This problem is solved using preimages - these are mappings of addresses to their hashes. Geth generates these preimages during block-by-block sync as information is added to the trie but they are deleted once they reach a certain age (128 blocks by default). To retain the preimages, Geth should be started with `--cache.preimages=true`.
|
||||
Geth stores the Ethereum state in a [Patricia Merkle Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/#state-trie). It contains `(key,value)` pairs with account addresses as keys and [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#top) encoded `account` as the value, where an account is an array containing essential account information, specifically: `nonce`, `balance`, `StorageRoot` and `codeHash`. Definitions for these parameters are available in the Ethereum whitepaper. However, Geth's state trie does not use the keys directly, instead account information is indexed using the SHA3 hash of the key. This means that looking up the account information for an address can be done by traversing the trie for `sha3(address)`, but querying addresses that contain certain data is not possible - the addresses themselves are not part of the trie. This problem is solved using preimages - these are mappings of addresses to their hashes. Geth generates these preimages during block-by-block sync as information is added to the trie but they are deleted once they reach a certain age (128 blocks by default). To retain the preimages, Geth should be started with `--cache.preimages=true`.
|
||||
|
|
|
@ -42,7 +42,7 @@ Enter 'ok' to proceed:
|
|||
>
|
||||
```
|
||||
|
||||
Geth can be started in a separate terminal. To connect to Clef, ensure the data directory is consistent with the path provided to Clef and pass the location of the the Clef IPC file - which Clef saves to the path provided to its `--configdir` flag - in this case we set it to `~/go-ethereum/sepolia-data/clef`:
|
||||
Geth can be started in a separate terminal. To connect to Clef, ensure the data directory is consistent with the path provided to Clef and pass the location of the Clef IPC file - which Clef saves to the path provided to its `--configdir` flag - in this case we set it to `~/go-ethereum/sepolia-data/clef`:
|
||||
|
||||
```sh
|
||||
geth --sepolia --datadir sepolia <other flags> --signer=sepolia-data/clef/clef.ipc
|
||||
|
|
|
@ -16,7 +16,7 @@ To follow along with the instructions on this page it will be useful to have:
|
|||
|
||||
## Monitoring stack {#monitoring-stack}
|
||||
|
||||
An Ethereum client collects lots of data which can be read in the form of a chronological database. To make monitoring easier, this data can be fed into data visualisation software. On this page, a Geth client will be configured to push data into a InfluxDB database and Grafana will be used to visualize the data.
|
||||
An Ethereum client collects lots of data which can be read in the form of a chronological database. To make monitoring easier, this data can be fed into data visualisation software. On this page, a Geth client will be configured to push data into an InfluxDB database and Grafana will be used to visualize the data.
|
||||
|
||||
## Setting up InfluxDB {#setting-up-influxdb}
|
||||
|
||||
|
@ -35,7 +35,7 @@ sudo systemctl start influxdb
|
|||
sudo apt install influxdb-client
|
||||
```
|
||||
|
||||
By default, InfluxDB it is reachable at `localhost:8086`. Before using the `influx` client, a new user with admin privileges needs to be created. This user will serve for high level management, creating databases and users.
|
||||
By default, InfluxDB is reachable at `localhost:8086`. Before using the `influx` client, a new user with admin privileges needs to be created. This user will serve for high level management, creating databases and users.
|
||||
|
||||
```sh
|
||||
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"
|
||||
|
@ -80,7 +80,7 @@ docker run \
|
|||
prom/prometheus:latest
|
||||
```
|
||||
|
||||
Here a example directory of `/path/to/prometheus`:
|
||||
Here is an example directory of `/path/to/prometheus`:
|
||||
|
||||
```sh
|
||||
prometheus/
|
||||
|
|
Loading…
Reference in New Issue