Skip to content

Commit

Permalink
update genesis file content (#783)
Browse files Browse the repository at this point in the history
* update genesis file content

Signed-off-by: Alexandra Tran <alexandra.tran@consensys.net>

* remove minify because of bug

see tikitu/jsmin#33

Signed-off-by: Nicolas MASSART <nicolas.massart@consensys.net>

Co-authored-by: Nicolas MASSART <nicolas.massart@consensys.net>
  • Loading branch information
alexandratran and NicolasMassart committed Sep 7, 2021
1 parent ffaccaf commit d2974a3
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 49 deletions.
2 changes: 1 addition & 1 deletion CI/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ mkdocs-markdownextradata-plugin==0.1.3
mkdocs-exclude==1.0.2
mkdocs-redirects==1.0.0
mkdocs-git-revision-date-localized-plugin==0.5.0
mkdocs-minify-plugin==0.3.0
# mkdocs-minify-plugin==0.3.0
plantuml-markdown==3.3.0
4 changes: 2 additions & 2 deletions docs/HowTo/Configure/Consensus-Protocols/Clique.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ Existing signers propose and vote to [add or remove signers](Add-Validators.md#c

## Genesis file

To use Clique in a private network, Besu requires a Clique genesis file. When connecting to Rinkeby,
To use Clique in a private network, Besu requires a Clique [genesis file](../Genesis-File.md). When connecting to Rinkeby,
Besu uses the
[`rinkeby.json`](https://github.com/hyperledger/besu/blob/master/config/src/main/resources/rinkeby.json)
genesis file in the `/besu/config/src/main/resources` directory.

A Clique genesis file defines properties specific to Clique.

!!! example "Sample Clique genesis file"
!!! example "Example Clique genesis file"

```json
{
Expand Down
6 changes: 2 additions & 4 deletions docs/HowTo/Configure/Consensus-Protocols/IBFT.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,10 @@ propagating incorrect information to peers.

## Genesis file

To use IBFT 2.0, Besu requires an IBFT 2.0 genesis file. The genesis file defines properties
To use IBFT 2.0, Besu requires an IBFT 2.0 [genesis file](../Genesis-File.md). The genesis file defines properties
specific to IBFT 2.0.

!!! example "Sample IBFT 2.0 genesis file"

Example genesis file for a 4 nodes IBFT2 network.
!!! example "Example IBFT 2.0 genesis file"

```json
{
Expand Down
6 changes: 2 additions & 4 deletions docs/HowTo/Configure/Consensus-Protocols/QBFT.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,10 @@ propagating incorrect information to peers.

## Genesis file

To use QBFT, Besu requires a QBFT genesis file. The genesis file defines properties
To use QBFT, Besu requires a QBFT [genesis file](../Genesis-File.md). The genesis file defines properties
specific to QBFT.

!!! example "Sample QBFT genesis file"

Example genesis file for a 4 nodes QBFT network.
!!! example "Example QBFT genesis file"

```json
{
Expand Down
2 changes: 1 addition & 1 deletion docs/HowTo/Configure/Consensus-Protocols/QuorumIBFT.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Besu nodes can operate (that is, submit transactions and receive blocks) in a Qu

To connect to a Quorum IBFT 1.0 network:

1. In the Quorum IBFT 1.0 genesis file, update the consensus protocol specified in the `config`
1. In the Quorum IBFT 1.0 [genesis file](../Genesis-File.md), update the consensus protocol specified in the `config`
property from `istanbul` to `ibft`.

```json
Expand Down
10 changes: 5 additions & 5 deletions docs/HowTo/Configure/Contracts-in-Genesis.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
description: Predeploying contracts in the genesis file
description: Pre-deploying contracts in the genesis file
---

# Pre-deploying contracts in the genesis file

To pre-deploy contracts when starting Besu, specify the contract code in the genesis file.
To pre-deploy contracts when starting Besu, specify the contract code in the [genesis file](Genesis-File.md).

!!! example "Contract code in the genesis file"

Expand All @@ -27,7 +27,7 @@ To pre-deploy contracts when starting Besu, specify the contract code in the gen

The contract code in the genesis file defines the:

* Address
* Balance
* Bytecode
* Address.
* Balance.
* Bytecode.
* Key value pairs for contract storage.
9 changes: 4 additions & 5 deletions docs/HowTo/Configure/Genesis-File.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,22 @@ description: Configuring a network using the genesis file

# Creating the Hyperledger Besu genesis file

The genesis file defines the first block in the chain and the first block defines which chain you
The genesis file defines the first block in the chain, and the first block defines which chain you
want to join.

For Ethereum MainNet and public testnets (for example, Rinkeby) the genesis configuration
definition is in Besu and used when specifying a public network using the
[`--network`](../../Reference/CLI/CLI-Syntax.md#network) command line option.

For private networks, create a JSON genesis file and then specify the genesis file using the
For private networks, [create a JSON genesis file](https://consensys.net/blog/quorum/hyperledger-besu-how-to-create-an-ethereum-genesis-file/),
then specify the genesis file using the
[`--genesis-file`](../../Reference/CLI/CLI-Syntax.md#genesis-file) command line option.

The genesis file specifies the [network-wide settings](../../Reference/Config-Items.md), such as
those for a [free gas network](FreeGas.md), so all nodes in a network must use the same genesis
file.

!!!example

Example for a 4 nodes IBFT2 network.
!!! example "Example IBFT 2.0 genesis file"

```json
{
Expand Down
40 changes: 20 additions & 20 deletions docs/Reference/Config-Items.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@
description: Configuration items specified in the Hyperledger Besu genesis file
---

# Genesis file
# Genesis file items

The genesis file contains [network configuration items](#configuration-items) and
[genesis block parameters](#genesis-block-parameters).
The [Besu genesis file](../HowTo/Configure/Genesis-File.md) contains [network configuration items](#configuration-items)
and [genesis block parameters](#genesis-block-parameters).

## Configuration items

Network configuration items are specified in the genesis file in the `config` object.

| Item | Description |
|---------------------|-:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Chain ID | [Chain ID for the network](../Concepts/NetworkID-And-ChainID.md) |
| Milestone blocks | [Milestone blocks for the network](#milestone-blocks) |
| `ethash` | Specifies network uses [Ethash](../Concepts/Consensus-Protocols/Overview-Consensus.md) and contains [`fixeddifficulty`](#Fixed Difficulty) |
| `clique` | Specifies network uses [Clique](../HowTo/Configure/Consensus-Protocols/Clique.md) and contains [Clique configuration items](../HowTo/Configure/Consensus-Protocols/Clique.md#genesis-file) |
| `ibft2` | Specifies network uses [IBFT 2.0](../HowTo/Configure/Consensus-Protocols/IBFT.md) and contains [IBFT 2.0 configuration items](../HowTo/Configure/Consensus-Protocols/IBFT.md#genesis-file) |
| `qbft` | Specifies network uses [QBFT](../HowTo/Configure/Consensus-Protocols/QBFT.md) and contains [QBFT configuration items](../HowTo/Configure/Consensus-Protocols/QBFT.md#genesis-file) |
| Item | Description |
|---------------------|-:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Milestone blocks | [Milestone blocks for the network](#milestone-blocks). |
| `chainID` | [Chain ID for the network](../Concepts/NetworkID-And-ChainID.md). |
| `ethash` | Specifies network uses [Ethash](../Concepts/Consensus-Protocols/Overview-Consensus.md) and contains [`fixeddifficulty`](#fixed-difficulty). |
| `clique` | Specifies network uses [Clique](../HowTo/Configure/Consensus-Protocols/Clique.md) and contains [Clique configuration items](../HowTo/Configure/Consensus-Protocols/Clique.md#genesis-file). |
| `ibft2` | Specifies network uses [IBFT 2.0](../HowTo/Configure/Consensus-Protocols/IBFT.md) and contains [IBFT 2.0 configuration items](../HowTo/Configure/Consensus-Protocols/IBFT.md#genesis-file). |
| `qbft` | Specifies network uses [QBFT](../HowTo/Configure/Consensus-Protocols/QBFT.md) and contains [QBFT configuration items](../HowTo/Configure/Consensus-Protocols/QBFT.md#genesis-file). |
| `transitions` | Specifies block at which to change [IBFT 2.0](../HowTo/Configure/Consensus-Protocols/Add-Validators.md#adding-and-removing-validators-without-voting) or [QBFT](../HowTo/Configure/Consensus-Protocols/Add-Validators.md#adding-and-removing-validators-without-voting_1) validators. |
| `contractSizeLimit` | Maximum contract size in bytes. Specify in [free gas networks](../HowTo/Configure/FreeGas.md). The default is `24576` and the maximum size is `2147483647`. |
| `evmStackSize` | Maximum stack size. Specify to increase the maximum stack size in private networks with complex smart contracts. The default is `1024`. |
| `isQuorum` | Set to `true` to allow [interoperable private transactions] between Hyperledger Besu and [GoQuorum clients] using the Tessera private transaction manager. |
| `ecCurve` | Specifies [the elliptic curve to use](../HowTo/Configure/Alternative-EC-Curves.md). Default is `secp256k1`. |
| `contractSizeLimit` | Maximum contract size in bytes. Specify in [free gas networks](../HowTo/Configure/FreeGas.md). The default is `24576` and the maximum size is `2147483647`. |
| `evmStackSize` | Maximum stack size. Specify to increase the maximum stack size in private networks with complex smart contracts. The default is `1024`. |
| `isQuorum` | Set to `true` to allow [interoperable private transactions] between Hyperledger Besu and [GoQuorum clients] using the Tessera private transaction manager. |
| `ecCurve` | Specifies [the elliptic curve to use](../HowTo/Configure/Alternative-EC-Curves.md). Default is `secp256k1`. |

## Genesis block parameters

Expand All @@ -32,8 +32,8 @@ The purpose of some genesis block parameters varies depending on the consensus p
[IBFT 2.0](../HowTo/Configure/Consensus-Protocols/IBFT.md), or
[QBFT](../HowTo/Configure/Consensus-Protocols/QBFT.md)). These parameters include:

* `difficulty`
* `extraData`
* `difficulty`.
* `extraData`.
* `mixHash`.

The following table describes the genesis block parameters with the same purpose across all
Expand All @@ -44,14 +44,14 @@ consensus protocols.
| `coinbase` | Address to pay mining rewards to. Can be any value in the genesis block (commonly set to `0x0000000000000000000000000000000000000000`). |
| `gasLimit` | Block gas limit. Total gas limit for all transactions in a block. |
| `nonce` | Used in block computation. Can be any value in the genesis block (commonly set to `0x0`). |
| `timestamp` | Creation date and time of the block. Must be before the next block so we recommend specifying `0x0` in the genesis file. |
| `timestamp` | Creation date and time of the block. Must be before the next block so we recommend specifying `0x0` in the genesis file. |
| `alloc` | Defines [accounts with balances](Accounts-for-Testing.md) or [contracts](../HowTo/Configure/Contracts-in-Genesis.md). |

## Milestone blocks

In public networks, the milestone blocks specify the blocks at which the network changed protocol.

!!! example "Ethereum Mainnet Milestone Blocks"
!!! example "Ethereum MainNet milestone blocks"

```json
{
Expand All @@ -74,7 +74,7 @@ In public networks, the milestone blocks specify the blocks at which the network

In private networks, the milestone block defines the protocol version for the network.

!!! example "Private Network Milestone Block"
!!! example "Private network milestone block"

```json
{
Expand Down
14 changes: 7 additions & 7 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ nav:
- Start Besu: HowTo/Get-Started/Starting-node.md
- Configure Besu:
- Consensus protocols:
- Clique: HowTo/Configure/Consensus-Protocols/Clique.md
- IBFT 2.0: HowTo/Configure/Consensus-Protocols/IBFT.md
- QBFT: HowTo/Configure/Consensus-Protocols/QBFT.md
- Clique: HowTo/Configure/Consensus-Protocols/Clique.md
- Quorum IBFT 1.0 network: HowTo/Configure/Consensus-Protocols/QuorumIBFT.md
- Add and remove validators: HowTo/Configure/Consensus-Protocols/Add-Validators.md
- Create Besu genesis file: HowTo/Configure/Genesis-File.md
- Create a genesis file: HowTo/Configure/Genesis-File.md
- Specify options in a configuration file: HowTo/Configure/Using-Configuration-File.md
- Configure a free gas network: HowTo/Configure/FreeGas.md
- Configure TLS: HowTo/Configure/Configure-TLS.md
Expand Down Expand Up @@ -264,11 +264,11 @@ plugins:
- global/*
- git-revision-date-localized:
locale: en
- minify:
minify_html: true
minify_js: true
htmlmin_opts:
remove_comments: true
# - minify:
# minify_html: true
# minify_js: true
# htmlmin_opts:
# remove_comments: true
- redirects:
redirect_maps:
# Configure redirects using key:value pairs:
Expand Down

0 comments on commit d2974a3

Please sign in to comment.