Skip to content

Commit

Permalink
Merge pull request #169 from irisnet/sheldon/v2.0
Browse files Browse the repository at this point in the history
add irishub v2.0 upgrade docs
  • Loading branch information
Haifeng Xi authored Apr 11, 2023
2 parents a526d61 + 319b6b7 commit 44e1c11
Showing 1 changed file with 147 additions and 0 deletions.
147 changes: 147 additions & 0 deletions upgrade/v2.0.0.md
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.

0 comments on commit 44e1c11

Please sign in to comment.