-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #169 from irisnet/sheldon/v2.0
add irishub v2.0 upgrade docs
- Loading branch information
Showing
1 changed file
with
147 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# IRIS Hub Upgrade v2.0.0 | ||
|
||
## Upgrade Proposal | ||
|
||
We are prepared to upgrade the IRIS Hub based upon | ||
|
||
- Version: `v2.0.0` | ||
- Commit hash: `3f885283746f6f5515ba31a06bd4801fa155937b`; | ||
- Chain Halt at Block Height: `19514010`; | ||
|
||
## Upgrade Process | ||
|
||
### 1. Vote | ||
|
||
```bash | ||
iris tx gov vote <proposal-id> <yes|no|no_with_veto|abstain> --chain-id irishub-1 --fees 0.3iris --from <MyWallet> | ||
``` | ||
|
||
### 2. Upgrade Nodes | ||
|
||
**Note 1:** ⚠️ **This upgrade involves configuration modification, and the following configuration needs to be added to `app.toml`** | ||
|
||
```toml | ||
############################################################################### | ||
### EVM Configuration ### | ||
############################################################################### | ||
|
||
[evm] | ||
|
||
# Tracer defines the 'vm.Tracer' type that the EVM will use when the node is run in | ||
# debug mode. To enable tracing use the '--evm.tracer' flag when starting your node. | ||
# Valid types are: json|struct|access_list|markdown | ||
tracer = "" | ||
|
||
# MaxTxGasWanted defines the gas wanted for each eth tx returned in ante handler in check tx mode. | ||
# defualt = 0 | ||
max-tx-gas-wanted = 40000000 | ||
|
||
############################################################################### | ||
### JSON RPC Configuration ### | ||
############################################################################### | ||
|
||
[json-rpc] | ||
|
||
# Enable defines if the gRPC server should be enabled. | ||
enable = true | ||
|
||
# Address defines the EVM RPC HTTP server address to bind to. | ||
# If you want to expose it externally, change it to: address = "0.0.0.0:8545" | ||
address = "127.0.0.1:8545" | ||
|
||
# Address defines the EVM WebSocket server address to bind to. | ||
# If you want to expose it externally, change it to: address = "0.0.0.0:8546" | ||
ws-address = "127.0.0.1:8546" | ||
|
||
# API defines a list of JSON-RPC namespaces that should be enabled | ||
# Example: "eth,txpool,personal,net,debug,web3" | ||
api = "eth,net,web3" | ||
|
||
# GasCap sets a cap on gas that can be used in eth_call/estimateGas (0=infinite). Default: 25,000,000. | ||
gas-cap = 40000000 | ||
|
||
# EVMTimeout is the global timeout for eth_call. Default: 5s. | ||
evm-timeout = "5s" | ||
|
||
# TxFeeCap is the global tx-fee cap for send transaction. Default: 1eth. | ||
txfee-cap = 1 | ||
|
||
# FilterCap sets the global cap for total number of filters that can be created | ||
filter-cap = 200 | ||
|
||
# FeeHistoryCap sets the global cap for total number of blocks that can be fetched | ||
feehistory-cap = 100 | ||
|
||
# LogsCap defines the max number of results can be returned from single 'eth_getLogs' query. | ||
logs-cap = 10000 | ||
|
||
# BlockRangeCap defines the max block range allowed for 'eth_getLogs' query. | ||
block-range-cap = 10000 | ||
|
||
# HTTPTimeout is the read/write timeout of http json-rpc server. | ||
http-timeout = "30s" | ||
|
||
# HTTPIdleTimeout is the idle timeout of http json-rpc server. | ||
http-idle-timeout = "2m0s" | ||
|
||
# AllowUnprotectedTxs restricts unprotected (non EIP155 signed) transactions to be submitted via | ||
# the node's RPC when the global parameter is disabled. | ||
allow-unprotected-txs = false | ||
|
||
# MaxOpenConnections sets the maximum number of simultaneous connections | ||
# for the server listener. | ||
max-open-connections = 0 | ||
|
||
# EnableIndexer enables the custom transaction indexer for the EVM (ethereum transactions). | ||
enable-indexer = false | ||
|
||
# MetricsAddress defines the EVM Metrics server address to bind to. Pass --metrics in CLI to enable | ||
# Prometheus metrics path: /debug/metrics/prometheus | ||
metrics-address = "0.0.0.0:6065" | ||
|
||
############################################################################### | ||
### TLS Configuration ### | ||
############################################################################### | ||
|
||
[tls] | ||
|
||
# Certificate path defines the cert.pem file path for the TLS configuration. | ||
certificate-path = "" | ||
|
||
# Key path defines the key.pem file path for the TLS configuration. | ||
key-path = "" | ||
``` | ||
|
||
**Note 2:** ⚠️ **This upgrade adds the EVM function. If you want to use the EVM function, you need to open the JRPC access endpoint of the EVM on the node. The default ports are 8545, 8546,. Due to potential dangerous issues known to EVM JRPC, node verifiers are strongly advised not to keep the private key and mnemonic information of the verifier or other accounts on the physical machine! ! ! In addition, it is suggested that node verifiers can map the default port to other ports.** | ||
|
||
If the **Upgrade Proposal** successfully passes, the IRIS Hub will be halted automatically at around UTC `2023-04-17 05:30:00Z`, so we can upgrade all of the irishub nodes right away. | ||
|
||
**Note: All nodes have to be upgraded, whether it is a validator node, a seed node or a full node.** | ||
|
||
The specific steps are as follows: | ||
|
||
```bash | ||
# 1. Compile and install the new version, go 1.18+ is required | ||
git clone https://github.com/irisnet/irishub | ||
cd irishub && git checkout v2.0.0 | ||
make install | ||
|
||
# 2. Check the version number | ||
iris version --long | ||
name: iris | ||
server_name: iris | ||
version: v2.0.0 | ||
commit: | ||
build_tags: netgo,ledger | ||
go: go version go1.18 darwin/amd64 | ||
|
||
# 3. Close the old software | ||
kill -9 <iris-pid> | ||
|
||
# 4. Restart | ||
iris start --home=<path-to-your-home> | ||
``` | ||
|
||
### 3. Wait for Blocks | ||
|
||
When the voting power of validators that have completed the upgrade exceeds 67%, irishub can resume producing blocks, and the upgrade is completed. |