Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/Concepts/Protocol-Upgrades.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
description: Protocol Upgrades
<!--- END of page meta data -->

# Network upgrades in private networks

Network upgrades are the mechanism for upgrading the Ethereum protocol. The point in time at
which the protocol upgrade is applied is the network upgrade.

For the Ethereum mainnet and public testnets (for example, Rinkeby) the milestone blocks are defined in
Hyperledger Besu. Upgrading your Besu client applies the network upgrade.

For private networks, protocol upgrades must be agreed on and the network upgrade co-ordinated with all network participants.
The [milestone block](../Reference/Config-Items.md#milestone-blocks) at which to apply the protocol upgrade
[is specified in the genesis file](../HowTo/Upgrade/Upgrade-Protocol.md).

## Backwards Compatibility

Some protocol upgrades include changes that may break existing contracts (for example, gas cost changes).
Before upgrading your protocol, review included EIPs for possible impact. A [meta EIP](https://eips.ethereum.org/meta)
for each protocol upgrade lists included EIPs. For example, [Istanbul](https://eips.ethereum.org/EIPS/eip-1679).

!!! tip
To maintain compatibility with future protocol upgrades, do not hardcode any gas price assumptions.

Implementing upgradeable contracts enables contracts to be upgraded if a protocol upgrade does include
breaking changes.
3 changes: 3 additions & 0 deletions docs/HowTo/Backup/Backup.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ or `/opt/besu/database` if using the [Besu Docker image](../../HowTo/Get-Started
The default data location is the directory in which Besu is installed
or `/opt/besu/database` if using the [Besu Docker image](../../HowTo/Get-Started/Run-Docker-Image.md).

The default data location is the directory in which Besu is installed
or `/opt/besu/database` if using the [Besu Docker image](../../HowTo/Get-Started/Run-Docker-Image.md).

Having some data reduces the time to synchronise a new node. Periodic backups can be performed of
the data directory and the data sent to your preferred backup mechanism. For example, cron job and
rsync, archives to cloud such as s3, or `tar.gz` archives.
Expand Down
18 changes: 18 additions & 0 deletions docs/HowTo/Upgrade/Upgrade-Protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
description: Upgrading protocol versions
<!--- END of page meta data -->

## Upgrading your protocol in a private network

To [upgrade the protocol](../../Concepts/Protocol-Upgrades.md) (also known as a hardfork) in a private network:

1. Review included EIPs for breaking changes. A [meta EIP](https://eips.ethereum.org/meta)
for each hardfork lists included EIPs. For example, [Istanbul](https://eips.ethereum.org/EIPS/eip-1679).
1. Network participants agree on block number at which to [hardfork](../../Concepts/Protocol-Upgrades.md).
1. For each node in the network:

a. Add the [milestone block number](../../Reference/Config-Items.md#milestone-blocks) to the genesis file.
b. Restart node before reaching milestone block.

!!! caution
To avoid a forked network, all network participants must update their genesis file to include the
agreed on milestone block and restart their node before reaching the milestone block.
5 changes: 4 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,9 @@ nav:
- Use Alethio Lite Explorer: HowTo/Deploy/Lite-Block-Explorer.md
- Use Alethio EthStats Lite Network Monitor: HowTo/Deploy/Lite-Network-Monitor.md
- Backup and Restore: HowTo/Backup/Backup.md
- Upgrade Network: HowTo/Upgrade/Upgrade-Network.md
- Upgrade:
- Upgrade Network: HowTo/Upgrade/Upgrade-Network.md
- Upgrade Protocol: HowTo/Upgrade/Upgrade-Protocol.md
- Develop Dapps on Besu:
- Use Truffle with Besu: HowTo/Develop-Dapps/Truffle.md
- Use Web3.js to Sign Transactions: HowTo/Develop-Dapps/Use-web3js.md
Expand Down Expand Up @@ -155,6 +157,7 @@ nav:
- Permissioning:
- Overview: Concepts/Permissioning/Permissioning-Overview.md
- Onchain Permissioning: Concepts/Permissioning/Onchain-Permissioning.md
- Protocol Upgrades: Concepts/Protocol-Upgrades.md
- Pruning: Concepts/Pruning.md
- Transactions:
- Transaction Pool: Concepts/Transactions/Transaction-Pool.md
Expand Down