From 2ea99a50a4adeee6e960cd7ef58a8a2cba8a3810 Mon Sep 17 00:00:00 2001 From: worryFree56 Date: Fri, 11 Feb 2022 15:51:33 +0800 Subject: [PATCH 1/7] add update docs --- docs/daemon/intro.md | 2 +- docs/get-started/install.md | 2 +- docs/get-started/mainnet.md | 34 ++-------- docs/get-started/upgrade-process.md | 71 -------------------- docs/get-started/upgrade.md | 85 ++++++++++++++++-------- docs/zh/daemon/intro.md | 2 +- docs/zh/get-started/install.md | 2 +- docs/zh/get-started/mainnet.md | 45 ++++--------- docs/zh/get-started/upgrade-process.md | 80 ----------------------- docs/zh/get-started/upgrade.md | 90 +++++++++++++++++--------- 10 files changed, 143 insertions(+), 270 deletions(-) delete mode 100644 docs/get-started/upgrade-process.md delete mode 100644 docs/zh/get-started/upgrade-process.md diff --git a/docs/daemon/intro.md b/docs/daemon/intro.md index b975080a9..a52b5fe34 100644 --- a/docs/daemon/intro.md +++ b/docs/daemon/intro.md @@ -14,7 +14,7 @@ It's recommended that you run Plug Chain Hub nodes on Linux Server. - 2 CPU - Memory: 4GB -- Disk: 256GB SSD +- Disk: 500GB SSD - OS: Ubuntu 16.04 LTS + - Bandwidth: 5Mbps - Allow all incoming connections on TCP port 26656 and 26657 diff --git a/docs/get-started/install.md b/docs/get-started/install.md index 55dd4ac2d..4e261721c 100644 --- a/docs/get-started/install.md +++ b/docs/get-started/install.md @@ -51,7 +51,7 @@ Make sure that your server can access to google.com because our project depends ```bash git clone https://github.com/oracleNetworkProtocol/plugchain.git cd plugchain -git checkout v0.5.0 +git checkout v1.0.0 make install ``` diff --git a/docs/get-started/mainnet.md b/docs/get-started/mainnet.md index 693920a36..7601cdbc3 100644 --- a/docs/get-started/mainnet.md +++ b/docs/get-started/mainnet.md @@ -13,7 +13,7 @@ order: 3 ### Start node from genesis :::tip -You must use Plug Chain [v0.5.0](https://github.com/oracleNetworkProtocol/plugchain.git) to initialize your node. +You must use Plug Chain [v1.0.0](https://github.com/oracleNetworkProtocol/plugchain.git) to initialize your node. ::: 1. Initialize the node @@ -22,44 +22,24 @@ You must use Plug Chain [v0.5.0](https://github.com/oracleNetworkProtocol/plugch plugchaind init --chain-id=plugchain ``` -2. Download genesis.json and seed information disclosed on the mainnet or enter the cloned plugchain directory: -*[Mainnet genesis file and seed information](https://github.com/oracleNetworkProtocol/plugchain/blob/main/mainnet/v1)*, the following is achieved by moving the genesis.json in the clone warehouse. +2. Download the `genesis.json`, `app.toml`, `config.toml` public on the mainnet: ```bash -mv ./mainnet/v1/genesis.json ~/.plugchain/ -``` - -:::warning -The following third step can be skipped, if skipping, you need to add the parameter `--p2p.seeds` parameter to the fourth step) -::: - -3. After overwriting genesis.json in the data directory, modify the seeds parameter in ~/.plugchain/config/config.toml and add seed information - -Modify the seeds provided in the ./mainnet/v1/seeds.txt file and modify the `seeds` parameter in ~/.plugchain/config/config.toml to set the seed nodes of the link. The seed information is separated by English commas +curl -o ~/.plugchain/config/genesis.json https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/genesis.json +curl -o ~/.plugchain/config/app.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/app.toml +curl -o ~/.plugchain/config/config.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/config.toml +```` +3. Before starting, if you want to modify the service port, seed information, peering point, sentinel mode, etc., you can modify the file by yourself, and then start the node. 4. Start the node service ```bash # Start the node (you can also use nohup or systemd to run in the background) -# The third step does not modify the seed information. When running startadd the parameter -# --p2p.seeds="7488f044132cec94e72c0eb5cdd267fb5607f5d1@47.102.107.120:26656,60fde7a070938367ede8943ee45bee622424753a@47.102.126.234:26656" - -# If you modify the service port configuration, you need to add parameters where the service is used: -# For example, modify the default tendermint rpc service: tcp://localhost:26657 => tcp://localhost:5000 -# When using cli, commands with the `--node` parameter need to point to this parameter as --node=tcp://localhost:5000 -# For example: plugchaind q account gx1tulwx2hwz4dv8te6cflhda64dn0984harlzegw --node tcp://localhost:5000 plugchaind start --minimum-gas-prices 0.0001plug ``` -When the block reaches the upgrade height (762880) -``` -ERR UPGRADE "x/token" NEEDED at height: 762880: -2:04AM ERR CONSENSUS FAILURE!!! err="UPGRADE \"x/token\" NEEDED at height: 762880: " -``` -You can [Upgrade Info](./upgrade-process.md) - ## Upgrade to Validator Node ### Create a Wallet diff --git a/docs/get-started/upgrade-process.md b/docs/get-started/upgrade-process.md deleted file mode 100644 index b1d5f9b1f..000000000 --- a/docs/get-started/upgrade-process.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -order: 8 ---- - - -# Upgrade operation - -This project elaborates on the upgrade plan and method for newly added community nodes and running community nodes -## Scheme 1 Upgrade to the latest height one by one - -:::warning -Current Plug Chain version upgrade status v0.5.0 (762880)-> v0.6.0 -> +++ -::: -1. Online node scheme -```shell -# After the upgrade community proposal takes effect, after the upgrade height is reached (762880), the node stops coming out, and the binary files need to be upgraded manually - -# Pull v0.6.0 version code -git fetch origin v0.6.0 - -# Execute the compiled binary file -make install - -# Print the version to confirm whether it is successful -plugchaind version - -# After success, kill -9 pid to kill the original process of plugchaind, and then start its own node. When the verifier node upgrades more than 2/3, the node will generate a block -``` -2. New node scheme -```shell -# According to the above prompt, the newly added node needs to use the v0.5.0 binary file to synchronize the block first to reach the upgrade height, and then use the v0.6.0 binary file to upgrade to synchronize the latest block - -# Generate and compile the specified version of the binary -git checkout v0.5.0 && make install - -# Print version view -plugchaind version - -# Then generate your own data directory and synchronize the blocks -``` - - -When the block reaches the upgrade height (762880) -``` -ERR UPGRADE "x/token" NEEDED at height: 762880: -2:04AM ERR CONSENSUS FAILURE!!! err="UPGRADE \"x/token\" NEEDED at height: 762880: " -``` - -You need to upgrade with the upgraded version one by one. At present, it is v0.6.0. If the local code does not have tag v0.6.0, you need to execute `git fetch origin v0.6.0` to pull the remote warehouse code, and then execute - -``` -git fetch origin v0.6.0 && make install - -# Use the v0.6.0 binary file to start the node for synchronization -``` - - - -## Scheme 2 Download and upgrade the current version of the block data, use the latest binary file plugchaind to start the node - -This solution is used for newly added nodes to prevent multiple upgrades, the newly added nodes need to be upgraded step by step to reach the latest height - -```shell -# Through the official version block data, download the version you need to the node server according to your needs - -# Then according to the downloaded block data version, use the upgraded binary file of the next version to initialize the node, then decompress the data package to cover the data directory of the data directory, then configure the creation file and seed information, and start the node for synchronization area Piece - -# For example, the official block data version is the block data before v0.6.0 upgrade -# 1. The version of the binary file that needs to be compiled is v0.6.0 -# 2. Use the v0.6.0 version to initialize the node, configure the genesis file and seed information, then overwrite the data directory, and start the node. -``` \ No newline at end of file diff --git a/docs/get-started/upgrade.md b/docs/get-started/upgrade.md index 4091a3f62..a0dde07f4 100644 --- a/docs/get-started/upgrade.md +++ b/docs/get-started/upgrade.md @@ -2,53 +2,82 @@ order: 7 --- -# Plug Chain Hub Upgrade, Instructions +# Plug Chain Hub latest version upgrade -This document describes the steps for validator and full node operators for the successful execution of the *upgrade plan*. +This document describes the steps for validators and full node operators to successfully execute the *upgrade plan*. The official is not responsible for the loss of assets due to the upgrade. Please back up your assets when upgrading. +Plug Chain will stop running the main chain at block height `3000000` and upgrade to the official version `v1.0`. -TOC: -- [Preparing for the upgrade](#preparing-for-the-upgrade) - - [Backups](#backups) - - [Testing](#testing) -- [Upgrade process](./upgrade-process.md) -- [Rollback plan](#rollback-plan) -- [Risks](#risks) +The upgrade contents are as follows: +1. Upgrade the mainnet and change the chain-id to `plugchain_520-1` +2. Modify the coin name `plug` on the chain to: (the data of the relevant coins on the chain are data with a precision of 0, and the coin name with a precision of 6 is used for wallet, browser, and external APP application display) + - precision 0: `uplugcn` + - Precision 6: `plugcn` +3. Modify the community proposal module (gov) `fundraising` and `voting period`, the overall revision is 14 days +4. Adjust the maximum number of validators to `50` +5. Access the EVM module +6. Enable the function of destroying `plugcn` +7. Overall adjustment of `x/liquidity`, `x/token` and other module fee parameters +8. The wallet supports two key signature algorithms `secp256k1`, `eth_secp256k1` -## Preparing for the upgrade +Precautions: +1. No transaction records are kept +2. The current block height is retained, and the original block height data is not retained +3. Retain proposal information +4. Keep the liquidity project data and keep the token data -### Backups -Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally this can be done by backing up the `.plugchain` directory. -It is critically important for validator operators to back-up the `.plugchain/data/priv_validator_state.json` file after stopping the plugchaind process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted. -### Testing +# backup -For those validator and full node operators that are interested in ensuring preparedness for the impending upgrade , use plugchain-tesetnet-1 network to test upgrade. +*First you need to stop the node running* -## Upgrade duration +1. Validator Node + - Backup entire data directory, default `.plugchain/` + - Backup `.plugchain/data/priv_validator_state.json` file, the data in `.plugchain/data/` can be deleted. + +2. Other functional nodes + - Backup wallet directory -The upgrade may take several hours to complete because Plug Chain Hub participants operate globally with differing operating hours and it may take some time for operators to upgrade their binaries and connect to the network. -## Rollback plan +# Steps -During the network upgrade, core Plug Chain teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped. +1. Get the `v1.0.0` binary file plugchaind -Steps to skip this upgrade proposal are simply to resume the Plug Chain Hub network with the (downgraded) v0.5.0 binary using the following command: +```bash +# Pull the v1.0.0 version code (you can use `git tag` to view the next tag version locally, if there is `v1.0.0`, skip this step) +git fetch origin v1.0.0 -> plugchaind start --unsafe-skip-upgrade 762880 +# Execute the compiled binary +make install -Note: There is no particular need to restore a state snapshot prior to the upgrade height, unless specifically directed by core Plug Chain teams. +```` -Important: A social consensus decision to skip the upgrade will be based solely on technical merits, thereby respecting and maintaining the decentralized governance process of the upgrade proposal's successful YES vote. +2. Create a new data directory, you can use --home to specify the data directory -## Communications +```bash +plugchaind init myNode --chain-id plugchain_520-1 +```` -Operators are encouraged to join the `#validators-verified` channel of the Plug Chain Community Discord. This channel is the primary communication tool for operators to ask questions, report upgrade status, report technical issues, and to build social consensus should the need arise. This channel is restricted to known operators and requires verification beforehand - requests to join the `#validators-verified` channel can be sent to the `#validators-public` channel. +3. Download the `genesis.json`, `app.toml`, `config.toml` public on the mainnet: -## Risks -As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing. +```bash +curl -o ~/.plugchain/config/genesis.json https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/genesis.json +curl -o ~/.plugchain/config/app.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/app.toml +curl -o ~/.plugchain/config/config.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/config.toml +```` -The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it. \ No newline at end of file +*The fourth step only requires the operation of the validator node, and the rest of the nodes are skipped* + +4. The validator node needs to overwrite the `node_key.json` and `priv_validator_key.json` files in the config directory of the original node into the config of the new data directory to identify the validator, and other nodes do not need it. + +5. * Modify the current configuration according to the original node configuration to meet your own needs. If you need to operate the wallet, you need to import the backup wallet directory into the new data directory before you can operate. * + + +6. Start the node + +```bash +plugchaind start +```` \ No newline at end of file diff --git a/docs/zh/daemon/intro.md b/docs/zh/daemon/intro.md index 3f4592318..1c24df315 100644 --- a/docs/zh/daemon/intro.md +++ b/docs/zh/daemon/intro.md @@ -14,7 +14,7 @@ plugchaind可执行程序是运行Plug Chain Hub节点的入口,包括验证 - 2 CPU - 内存:4GB -- 磁盘:256GB SSD +- 磁盘:500GB SSD - 系统:Ubuntu 16.04 LTS + - 带宽:5Mbps - 允许TCP端口26656和26657的所有传入连接 diff --git a/docs/zh/get-started/install.md b/docs/zh/get-started/install.md index 2968be633..3c966c184 100644 --- a/docs/zh/get-started/install.md +++ b/docs/zh/get-started/install.md @@ -50,7 +50,7 @@ go version ```bash git clone https://github.com/oracleNetworkProtocol/plugchain.git cd plugchain -git checkout v0.5.0 +git checkout v1.0.0 make install ``` > 如果克隆仓库比较慢或者没反应的情况,可以把克隆地址 `github.com` 换成国内镜像,已知的国内镜像有`github.com.cnpmjs.org`和`git.sdut.me/` diff --git a/docs/zh/get-started/mainnet.md b/docs/zh/get-started/mainnet.md index fcba417a6..52021b5da 100644 --- a/docs/zh/get-started/mainnet.md +++ b/docs/zh/get-started/mainnet.md @@ -13,7 +13,7 @@ order: 3 ### Start node from genesis :::tip -必须使用 Plug Chain [v0.5.0](https://github.com/oracleNetworkProtocol/plugchain.git) 初始化你的节点 +必须使用 Plug Chain [v1.0.0](https://github.com/oracleNetworkProtocol/plugchain.git) 初始化你的节点 ::: 1. 初始化节点 @@ -22,54 +22,37 @@ order: 3 plugchaind init --chain-id=plugchain ``` -2. 下载主网公开的 genesis.json和种子信息 或者 进入clone下来的 Plug Chain 目录里面: -*[主网创世文件和种子信息](https://github.com/oracleNetworkProtocol/plugchain/blob/main/mainnet/v1)* ,如下通过移动clone的仓库里面的genesis.json 来实现覆盖。 +2. 下载主网公开的 `genesis.json`,`app.toml`,`config.toml`: ```bash -mv ./mainnet/v1/genesis.json ~/.plugchain/ +curl -o ~/.plugchain/config/genesis.json https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/genesis.json +curl -o ~/.plugchain/config/app.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/app.toml +curl -o ~/.plugchain/config/config.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/config.toml ``` - -:::warning -如下第三步可跳过,如跳过需要在第四步加上参数 `--p2p.seeds` 参数) -::: - -3. 覆盖数据目录的genesis.json之后,修改 ~/.plugchain/config/config.toml 里面 seeds 参数,添加种子信息 - -把 ./mainnet/v1/seeds.txt 文件中提供的 seeds , 修改 ~/.plugchain/config/config.toml 中的`seeds`参数以设置链接的种子节点,种子信息以英文逗号分隔 - +3. 启动之前如果想修改服务端口,种子信息,对等点,哨兵模式等,可自行修改文件,然后再启动节点。 4. 启动节点服务 ```bash # 启动节点(也可使用 nohup 或 systemd 等方式后台运行) -# 第三步未修改种子信息,运行start时,添加参数: -# --p2p.seeds="7488f044132cec94e72c0eb5cdd267fb5607f5d1@47.102.107.120:26656,60fde7a070938367ede8943ee45bee622424753a@47.102.126.234:26656" - -# 如果修改服务端口配置,需要在使用服务的地方加上参数: -# 比如修改默认的tendermint rpc服务: tcp://localhost:26657 => tcp://localhost:5000 -# cli使用时,有`--node`参数的命令 都需要指向此参数为 --node=tcp://localhost:5000 -# 例如: plugchaind q account gx1tulwx2hwz4dv8te6cflhda64dn0984harlzegw --node tcp://localhost:5000 - -plugchaind start --minimum-gas-prices 0.0001plug +plugchaind start ``` -:::tip -您可能会看到一些连接错误,这没关系,P2P网络正在尝试查找可用的连接 +接下来,你的节点将执行所有链升级过程。在每次升级之间,你必须使用特定的版本同步区块。不用担心在升级高度使用旧版本,节点会自动停止。 +| 提案 | 起始高度 | 升级高度 | plugchaind 版本 | +| -------- | ------------ | -------------- | ----- | +| [v1.0](https://www.plugchain.network/v2/communityDetail?id=7) | 3000000 | | [v1.0.0](https://github.com/oracleNetworkProtocol/plugchain/tree/v1.0.0) | -::: -待区块达到升级高度(762880),节点会panic死掉,信息如下: -``` -ERR UPGRADE "x/token" NEEDED at height: 762880: -2:04AM ERR CONSENSUS FAILURE!!! err="UPGRADE \"x/token\" NEEDED at height: 762880: " -``` +:::tip +您可能会看到一些连接错误,这没关系,P2P网络正在尝试查找可用的连接 -这个是社区提案升级高度,需要使用新的二进制文件运行链:[升级信息](./upgrade-process.md) +::: ## 升级为验证人节点 diff --git a/docs/zh/get-started/upgrade-process.md b/docs/zh/get-started/upgrade-process.md deleted file mode 100644 index 434d3c23f..000000000 --- a/docs/zh/get-started/upgrade-process.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -order: 8 ---- - - -# 升级操作 - -本项目,针对新加入的社区节点和正在运行的社区节点升级的方案和方法进行阐述 -## 方案一 逐个版本升级到最新高度 - -:::warning -当前plugchain版本升级情况 v0.5.0 (块高762880停止出块) -> v0.6.0 -> +++ -::: -1. 在线节点方案 -```shell -# 升级社区提案生效之后,到升级高度之后,节点停止出来,需要手动升级二进制文件 - -# 拉取v0.6.0版本代码 (本地可使用 `git tag` 查看下tag版本,如果有 `v0.6.0`,跳过此步骤) -git fetch origin v0.6.0 - -# 执行编译二进制文件 -make install - -# 打印版本,确认是否成功 -plugchaind version - -# 成功之后,kill -9 pid 杀死 plugchaind 原来的进程,然后启动自己的节点,待验证者节点升级量超过2/3时,节点出块 -``` -2. 新加入节点方案 - -```shell -# 根据上面提示,新加入的节点,需要先使用v0.5.0版本的二进制文件进行同步区块,达到升级到高度(762880),然后使用v0.6.0的二进制文件进行升级同步最新区块 - -# 生成指定版本的二进制并编译 -git checkout v0.5.0 && make install - -# 打印版本查看 -plugchaind version - -# 然后生成自己的数据目录,配置创世文件和种子信息,进行同步区块 -``` - -待区块达到升级高度(762880),节点会panic死掉,信息如下: - -``` -ERR UPGRADE "x/token" NEEDED at height: 762880: -2:04AM ERR CONSENSUS FAILURE!!! err="UPGRADE \"x/token\" NEEDED at height: 762880: " -``` - -需要逐次使用升级的版本进行升级。目前是v0.6.0,如果本地代码没有tag v0.6.0,需要先执行 `git fetch origin v0.6.0` 拉去远程仓库代码,然后执行 - -``` -git checkout v0.6.0 && make install - -# 使用v0.6.0版本的二进制文件启动节点进行同步 - -``` - - - -## 方案二 下载升级当前版本的块数据,使用最新二进制文件plugchaind 启动节点 - -此方案针对新加入节点使用,防止多次升级之后,新加入的节点需要逐级升级达到最新高度 - - -:::warning -目前官方还未提供区块打包数据。后续会完善此升级方案。 TODO -::: - -```shell - -# 通过官方提供的版本区块数据, 根据自己的需求下载自己需要的版本到节点服务器 - -# 然后根据下载的区块数据版本,使用升级的下个版本的二进制文件进行初始化节点,然后把数据包解压覆盖数据目录的data目录,然后配置好创世文件和种子信息,启动节点进行同步区块 - -# 举例 ,官方提供的区块数据版本为v0.6.0升级之前的区块数据 -# 1. 需要编译的二进制文件版本为v0.6.0 -# 2. 使用v0.6.0版本 初始化节点,配置创世文件和种子信息,然后覆盖data数据目录,启动节点即可。 - -``` \ No newline at end of file diff --git a/docs/zh/get-started/upgrade.md b/docs/zh/get-started/upgrade.md index 8ec36c48a..7c4d3608b 100644 --- a/docs/zh/get-started/upgrade.md +++ b/docs/zh/get-started/upgrade.md @@ -2,51 +2,83 @@ order: 7 --- -# Plug Chain Hub 升级, 指示 +# Plug Chain Hub 最新版本升级 -本文档描述了验证器和全节点操作员成功执行*升级计划*的步骤。 +本文档描述了验证器和全节点操作员成功执行*升级计划*的步骤。由于升级导致的资产丢失,官方概不负责,请升级时备份好自己的财产。 +Plug Chain 将在区块高度 `3000000` 停止主链运行,进行正式版本`v1.0`升级。 -目录: -- [准备升级](#升级准备) - - [备份](#备份) - - [测试](#测试) -- [升级流程](./upgrade-process.md) -- [回滚计划](#回滚升级计划) -- [风险](#risks) -- [常见问题](#faq) +升级内容如下: +1. 升级主网,修改chain-id 为 `plugchain_520-1` +2. 修改链上币名 `plug` 为:(链上相关币数据是精度0的数据,精度6的币名用于钱包,浏览器,外部APP应用展示) + - 精度0: `uplugcn` + - 精度6: `plugcn` +3. 修改社区提案模块(gov) `募资` 和 `投票期的时间`,整体修改为14天 +4. 调整最大验证者个数为`50`个 +5. 接入EVM模块 +6. 开通销毁`plugcn`功能 +7. 整体调整`x/liquidity`,`x/token`等模块手续费参数 +8. 钱包支持两种密钥签名算法 `secp256k1`,`eth_secp256k1` -## 升级准备 +注意事项: +1. 不保留交易记录 +2. 保留当前块高高度,不保留原先块高数据 +3. 保留提案信息 +4. 保留liquidity项目数据,保留token数据 -### 备份 -在升级之前,鼓励验证者拍摄完整的数据快照。 快照在很大程度上依赖于基础设施,但通常这可以通过备份 `.plugchain` 目录来完成。 -验证器操作员在停止 plugchaind 进程后备份 `.plugchain/data/priv_validator_state.json` 文件至关重要。 当您的验证者参与共识轮次时,此文件会在每个区块更新。 它是防止双重签名所需的关键文件,以防升级失败并需要重新启动之前的链。 -### 测试 -对于那些有兴趣确保为即将到来的升级做好准备的验证者和全节点运营商,请使用 plugchain-tesetnet-1 网络来测试升级。 +# 备份 -## 回滚升级计划 +*首先需要停止节点运行* -在网络升级过程中,Plug Chain 核心团队将时刻保持警惕,并与运营商沟通升级状态。 在此期间,核心团队将听取运营商的需求,以确定升级是否遇到意外挑战。 遇到突发挑战,核心团队在与运营商协商并达成社会共识后,可以选择宣布跳过升级。 +1. 验证者节点 + - 备份整个数据目录,默认 `.plugchain/` + - 备份 `.plugchain/data/priv_validator_state.json` 文件,`.plugchain/data/`里面的数据就可以删除。 + +2. 其余功能节点 + - 备份钱包目录 -跳过此升级建议的步骤只是使用以下命令使用(降级的)v0.5.0 二进制文件恢复 `plugchain` 网络: +# 操作步骤 -> plugchaind start --unsafe-skip-upgrade 762880 +1. 获取 `v1.0.0` 版本的二进制文件plugchaind -:::warning -没有特别需要在升级高度之前恢复状态快照,除非由核心 Plug Chain 团队特别指示。 -::: +```bash +# 拉取v1.0.0版本代码 (本地可使用 `git tag` 查看下tag版本,如果有 `v1.0.0`,跳过此步骤) +git fetch origin v1.0.0 -:::danger -跳过升级的社会共识决定将完全基于技术优点,从而尊重和维护升级提案成功投票的去中心化治理过程。 -::: +# 执行编译二进制文件 +make install +``` -## Risks +2. 创建新的数据目录,可使用 --home 指定数据目录 -作为在您的共识节点上执行升级程序的验证者,双重签名和被削减的风险更高。 此过程中最重要的部分是在启动验证器和签名之前验证您的软件版本和创世文件哈希。 +```bash +plugchaind init myNode --chain-id plugchain_520-1 +``` + +3. 下载主网公开的 `genesis.json`,`app.toml`,`config.toml`: + + +```bash +curl -o ~/.plugchain/config/genesis.json https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/genesis.json +curl -o ~/.plugchain/config/app.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/app.toml +curl -o ~/.plugchain/config/config.toml https://raw.githubusercontent.com/oracleNetworkProtocol/plugchain/main/mainnet/v1/config.toml +``` + +*第四步只需要验证者节点操作,其余节点跳过* + +4. 验证者节点需要把 原来节点config目录的 `node_key.json`,`priv_validator_key.json` 文件覆盖到新数据目录的config里面作为识别验证者,其余节点不需要。 + +5. *根据原来节点的配置修改当下配置满足自己的需求,需要操作钱包的,需要把备份的钱包目录导入到新数据目录才可以操作。* + + +6. 启动节点 + +```bash +plugchaind start +``` -验证者可以做的最危险的事情是发现他们犯了错误并在网络启动期间再次重复升级过程。 如果您在此过程中发现错误,最好的做法是等待网络启动后再进行更正。 From 81f2237bf5e4c5f2b381ca4586c75160d5f9fcec Mon Sep 17 00:00:00 2001 From: worryFree56 Date: Fri, 11 Feb 2022 15:55:06 +0800 Subject: [PATCH 2/7] add upgrade file --- mainnet/first/genesis.json | 753 ++++++++++++++++++++++++++++++++ mainnet/{v1 => first}/seeds.txt | 0 mainnet/v1/app.toml | 250 +++++++++++ mainnet/v1/config.toml | 401 +++++++++++++++++ mainnet/v1/genesis.json | 753 -------------------------------- 5 files changed, 1404 insertions(+), 753 deletions(-) create mode 100644 mainnet/first/genesis.json rename mainnet/{v1 => first}/seeds.txt (100%) create mode 100644 mainnet/v1/app.toml create mode 100644 mainnet/v1/config.toml diff --git a/mainnet/first/genesis.json b/mainnet/first/genesis.json new file mode 100644 index 000000000..5b1f6ebaa --- /dev/null +++ b/mainnet/first/genesis.json @@ -0,0 +1,753 @@ +{ + "genesis_time": "2021-08-19T08:56:38.706170801Z", + "chain_id": "plugchain", + "initial_height": "1", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1", + "time_iota_ms": "1000" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": {} + }, + "app_hash": "", + "app_state": { + "auth": { + "params": { + "max_memo_characters": "256", + "tx_sig_limit": "7", + "tx_size_cost_per_byte": "10", + "sig_verify_cost_ed25519": "590", + "sig_verify_cost_secp256k1": "1000" + }, + "accounts": [ + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1sq37d4en3r7akx9u9j2ytrz5pyqyudtg20u3nt", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx10ha2nray76sg80lwfzehhg3dn3hwk6xpp2kgqq", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1h252xupqd6krjtuqxa9ns0573gm38xzkzd6qx2", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1dpfkv9g8pjvv74fll6ttpl98mhuck24gd7n7p6", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1fjljkcf5f9ceh9cu54z7pp9wtmm586r2fm5gde", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx100sjlen6ehxkd4694dtuts6zdly0yah45vmqau", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1qq2zq2hghzggurar9xm6gphz3q4e6rrpr6704g", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1mcwcw3n4lgzl7l8wtzwaz05n0j6qfthmmh22nu", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx142vptf8u29a6yr2kcaa74u359xel6fn3umpsr5", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1uj92s59llkzt8hl6ec57n693jzmcwq8gjn2x85", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1zmps6d5ln0dal4vt2ewag392gfa57hr2kx97lg", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1jeaut5hfgqwzaarknt0ewxdkyd5eqryqs2wdd7", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1rskdkye43lwemcxvazdkazkw8wwfl3m8zhae0y", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1feflr34xppg2pjjvswntwkwt4vjdj53an4yumy", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1su37pgezwkcged4amgrhc3tgpumhgkerfa5jzz", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1mlzk4d0wqwa343xsssft9umu2duzjzvmauuxxn", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", + "pub_key": null, + "account_number": "0", + "sequence": "0" + } + ] + }, + "bank": { + "params": { + "send_enabled": [], + "default_send_enabled": true + }, + "balances": [ + { + "address": "gx1qq2zq2hghzggurar9xm6gphz3q4e6rrpr6704g", + "coins": [ + { + "denom": "plug", + "amount": "1450977000000000" + } + ] + }, + { + "address": "gx1zmps6d5ln0dal4vt2ewag392gfa57hr2kx97lg", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1rskdkye43lwemcxvazdkazkw8wwfl3m8zhae0y", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", + "coins": [ + { + "denom": "plug", + "amount": "80000000000000" + } + ] + }, + { + "address": "gx1fjljkcf5f9ceh9cu54z7pp9wtmm586r2fm5gde", + "coins": [ + { + "denom": "plug", + "amount": "4352931000000000" + } + ] + }, + { + "address": "gx1feflr34xppg2pjjvswntwkwt4vjdj53an4yumy", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1dpfkv9g8pjvv74fll6ttpl98mhuck24gd7n7p6", + "coins": [ + { + "denom": "plug", + "amount": "200000000000000" + } + ] + }, + { + "address": "gx100sjlen6ehxkd4694dtuts6zdly0yah45vmqau", + "coins": [ + { + "denom": "plug", + "amount": "2176465500000000" + } + ] + }, + { + "address": "gx10ha2nray76sg80lwfzehhg3dn3hwk6xpp2kgqq", + "coins": [ + { + "denom": "plug", + "amount": "304877700000000" + } + ] + }, + { + "address": "gx1sq37d4en3r7akx9u9j2ytrz5pyqyudtg20u3nt", + "coins": [ + { + "denom": "plug", + "amount": "759450000000000" + } + ] + }, + { + "address": "gx1su37pgezwkcged4amgrhc3tgpumhgkerfa5jzz", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", + "coins": [ + { + "denom": "plug", + "amount": "20000000000000" + } + ] + }, + { + "address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", + "coins": [ + { + "denom": "plug", + "amount": "20000000000000" + } + ] + }, + { + "address": "gx1jeaut5hfgqwzaarknt0ewxdkyd5eqryqs2wdd7", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx142vptf8u29a6yr2kcaa74u359xel6fn3umpsr5", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1h252xupqd6krjtuqxa9ns0573gm38xzkzd6qx2", + "coins": [ + { + "denom": "plug", + "amount": "160000000000000" + } + ] + }, + { + "address": "gx1mcwcw3n4lgzl7l8wtzwaz05n0j6qfthmmh22nu", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1mlzk4d0wqwa343xsssft9umu2duzjzvmauuxxn", + "coins": [ + { + "denom": "plug", + "amount": "580390800000000" + } + ] + }, + { + "address": "gx1uj92s59llkzt8hl6ec57n693jzmcwq8gjn2x85", + "coins": [ + { + "denom": "plug", + "amount": "725488500000000" + } + ] + }, + { + "address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", + "coins": [ + { + "denom": "plug", + "amount": "80000000000000" + } + ] + } + ], + "supply": [], + "denom_metadata": [] + }, + "capability": { + "index": "1", + "owners": [] + }, + "crisis": { + "constant_fee": { + "denom": "plug", + "amount": "1000" + } + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.010000000000000000", + "bonus_proposer_reward": "0.040000000000000000", + "withdraw_addr_enabled": true + }, + "fee_pool": { + "community_pool": [] + }, + "delegator_withdraw_infos": [], + "previous_proposer": "", + "outstanding_rewards": [], + "validator_accumulated_commissions": [], + "validator_historical_rewards": [], + "validator_current_rewards": [], + "delegator_starting_infos": [], + "validator_slash_events": [] + }, + "evidence": { + "evidence": [] + }, + "genutil": { + "gen_txs": [ + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "operate-fund-1", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1000000", + "delegator_address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", + "validator_address": "gxvaloper1rkecwy9pjsfd058w0pwa2perquc8xe638h4u5p", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "i4unhp2x1nry+iBrSBa4eag4e9rOU//MA4vcwHVJws0=" + }, + "value": { + "denom": "plug", + "amount": "80000000000000" + } + } + ], + "memo": "0673b5aac6efffbc222bd2f241fbff0100b7e9ec@172.31.163.239:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A4dOjpzl0c8DgZSjevGFfFdUWM4Kjubqi9fvBLSOFe0s" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + } + }, + "signatures": [ + "9FRAzXxiqTs1uIj7YrSZzJQv1fy1gL8FpvF54A+9xw4WNdXdqbxT2KMfBlZ23DNL9tPPrTpEu/SwAMXfNsJcDg==" + ] + }, + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "technical-community-2", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1000000", + "delegator_address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", + "validator_address": "gxvaloper13psx8meszh22y8glk2rz23sdqe2yhtgev8f7na", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "MKqyUqkdyiZuaQpkcn5HsSd5eYzHRtJfPMv1ZfQYxFE=" + }, + "value": { + "denom": "plug", + "amount": "20000000000000" + } + } + ], + "memo": "5037ca3ae464302a3ace4db167624734a9fdf0f2@172.31.163.243:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A0EIxC1Dt0TOqMMw7qMU0cyFtv6K7TZ02sBFQdD20N20" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + } + }, + "signatures": [ + "MiOOkGYb7s453hUS7scu+5Aax4jm7tTvgfwBg3Y9V+FgtxutHq8L3vAho67f8GRtnuqOZgayRdktKaK2lT5tOA==" + ] + }, + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "operate-fund-2", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1000000", + "delegator_address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", + "validator_address": "gxvaloper1lxefa0fzge2qhfkm7wul8s4prvezfydcfhz2za", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "2KHomwxLpPe/Orbg4h7D7yeUGZd/ghKSPr2jhE+IiNk=" + }, + "value": { + "denom": "plug", + "amount": "80000000000000" + } + } + ], + "memo": "707a5b83a05aa70e195519cb63a4fe53ea51c87a@172.31.163.242:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "ArkWG3pTzfgUG4rJLHbAGnLxGrmBhwnHMWqZb5/u+vc5" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + } + }, + "signatures": [ + "eZKwiKLmg1w1DxhRfMnLi+kqfU+tfP5JaRD33yfj2f0Xt2f6b3KKo5brTW1cImMXlV0KLRRg/ihba5ogz3T4ZA==" + ] + }, + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "technical-community-1", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1000000", + "delegator_address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", + "validator_address": "gxvaloper1s7v7qtg9l9rxks0pglrpmaphw0xl8mqwnd56qv", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "eDBAgddvpngzYE0GbenBX2/0P471Rnz3jMPR/lRF9JY=" + }, + "value": { + "denom": "plug", + "amount": "20000000000000" + } + } + ], + "memo": "d9c82536ddb1eb68873857d613d4adb8f27277c4@172.31.163.245:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A8N9163+Bd1hvuqmTMBD8dlGlcVM047z+PsNJ0MvuCg9" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + } + }, + "signatures": [ + "QXN7Zh4gwX63ZRjWBv6Jwehi9gcl1Wn56k5Rs/KuU+s/NDmQ7dw33b/8yFPbIDqWMcIuy7ABE4gMY1JBCChZRw==" + ] + } + ] + }, + "gov": { + "starting_proposal_id": "1", + "deposits": [], + "votes": [], + "proposals": [], + "deposit_params": { + "min_deposit": [ + { + "denom": "plug", + "amount": "10000000" + } + ], + "max_deposit_period": "604800s" + }, + "voting_params": { + "voting_period": "1209600s" + }, + "tally_params": { + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000" + } + }, + "ibc": { + "client_genesis": { + "clients": [], + "clients_consensus": [], + "clients_metadata": [], + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint" + ] + }, + "create_localhost": false, + "next_client_sequence": "0" + }, + "connection_genesis": { + "connections": [], + "client_connection_paths": [], + "next_connection_sequence": "0" + }, + "channel_genesis": { + "channels": [], + "acknowledgements": [], + "commitments": [], + "receipts": [], + "send_sequences": [], + "recv_sequences": [], + "ack_sequences": [], + "next_channel_sequence": "0" + } + }, + "mint": { + "minter": { + "inflation": "0.130000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "plug", + "inflation_rate_change": "0.130000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "goal_bonded": "0.670000000000000000", + "blocks_per_year": "6311520" + } + }, + "params": null, + "plugchain": {}, + "slashing": { + "params": { + "signed_blocks_window": "100", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600s", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [], + "missed_blocks": [] + }, + "staking": { + "params": { + "unbonding_time": "1814400s", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "plug" + }, + "last_total_power": "0", + "last_validator_powers": [], + "validators": [], + "delegations": [], + "unbonding_delegations": [], + "redelegations": [], + "exported": false + }, + "transfer": { + "port_id": "transfer", + "denom_traces": [], + "params": { + "send_enabled": true, + "receive_enabled": true + } + }, + "upgrade": {}, + "vesting": {} + } + } \ No newline at end of file diff --git a/mainnet/v1/seeds.txt b/mainnet/first/seeds.txt similarity index 100% rename from mainnet/v1/seeds.txt rename to mainnet/first/seeds.txt diff --git a/mainnet/v1/app.toml b/mainnet/v1/app.toml new file mode 100644 index 000000000..4fffdee49 --- /dev/null +++ b/mainnet/v1/app.toml @@ -0,0 +1,250 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +############################################################################### +### Base Configuration ### +############################################################################### + +# The minimum gas prices a validator is willing to accept for processing a +# transaction. A transaction's fees must meet the minimum of any denomination +# specified in this config (e.g. 0.25token1;0.0001token2). +minimum-gas-prices = "0.0001uplugcn" + +# default: the last 100 states are kept in addition to every 500th state; pruning at 10 block intervals +# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node) +# everything: all saved states will be deleted, storing only the current state; pruning at 10 block intervals +# custom: allow pruning options to be manually specified through 'pruning-keep-recent', 'pruning-keep-every', and 'pruning-interval' +pruning = "default" + +# These are applied if and only if the pruning strategy is custom. +pruning-keep-recent = "0" +pruning-keep-every = "0" +pruning-interval = "0" + +# HaltHeight contains a non-zero block height at which a node will gracefully +# halt and shutdown that can be used to assist upgrades and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-height = 0 + +# HaltTime contains a non-zero minimum block time (in Unix seconds) at which +# a node will gracefully halt and shutdown that can be used to assist upgrades +# and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-time = 0 + +# MinRetainBlocks defines the minimum block height offset from the current +# block being committed, such that all blocks past this offset are pruned +# from Tendermint. It is used as part of the process of determining the +# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates +# that no blocks should be pruned. +# +# This configuration value is only responsible for pruning Tendermint blocks. +# It has no bearing on application state pruning which is determined by the +# "pruning-*" configurations. +# +# Note: Tendermint block pruning is dependant on this parameter in conunction +# with the unbonding (safety threshold) period, state pruning and state sync +# snapshot parameters to determine the correct minimum value of +# ResponseCommit.RetainHeight. +min-retain-blocks = 0 + +# InterBlockCache enables inter-block caching. +inter-block-cache = true + +# IndexEvents defines the set of events in the form {eventType}.{attributeKey}, +# which informs Tendermint what to index. If empty, all events will be indexed. +# +# Example: +# ["message.sender", "message.recipient"] +index-events = [] + +############################################################################### +### Telemetry Configuration ### +############################################################################### + +[telemetry] + +# Prefixed with keys to separate services. +service-name = "" + +# Enabled enables the application telemetry functionality. When enabled, +# an in-memory sink is also enabled by default. Operators may also enabled +# other sinks such as Prometheus. +enabled = false + +# Enable prefixing gauge values with hostname. +enable-hostname = false + +# Enable adding hostname to labels. +enable-hostname-label = false + +# Enable adding service to labels. +enable-service-label = false + +# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink. +prometheus-retention-time = 0 + +# GlobalLabels defines a global set of name/value label tuples applied to all +# metrics emitted using the wrapper functions defined in telemetry package. +# +# Example: +# [["chain_id", "cosmoshub-1"]] +global-labels = [ +] + +############################################################################### +### API Configuration ### +############################################################################### + +[api] + +# Enable defines if the API server should be enabled. +enable = false + +# Swagger defines if swagger documentation should automatically be registered. +swagger = false + +# Address defines the API server to listen on. +address = "tcp://0.0.0.0:1317" + +# MaxOpenConnections defines the number of maximum open connections. +max-open-connections = 1000 + +# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds). +rpc-read-timeout = 10 + +# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds). +rpc-write-timeout = 0 + +# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes). +rpc-max-body-bytes = 1000000 + +# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). +enabled-unsafe-cors = false + +############################################################################### +### Rosetta Configuration ### +############################################################################### + +[rosetta] + +# Enable defines if the Rosetta API server should be enabled. +enable = false + +# Address defines the Rosetta API server to listen on. +address = ":8080" + +# Network defines the name of the blockchain that will be returned by Rosetta. +blockchain = "app" + +# Network defines the name of the network that will be returned by Rosetta. +network = "network" + +# Retries defines the number of retries when connecting to the node before failing. +retries = 3 + +# Offline defines if Rosetta server should run in offline mode. +offline = false + +############################################################################### +### gRPC Configuration ### +############################################################################### + +[grpc] + +# Enable defines if the gRPC server should be enabled. +enable = true + +# Address defines the gRPC server address to bind to. +address = "0.0.0.0:9090" + +############################################################################### +### gRPC Web Configuration ### +############################################################################### + +[grpc-web] + +# GRPCWebEnable defines if the gRPC-web should be enabled. +# NOTE: gRPC must also be enabled, otherwise, this configuration is a no-op. +enable = true + +# Address defines the gRPC-web server address to bind to. +address = "0.0.0.0:9091" + +# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). +enable-unsafe-cors = false + +############################################################################### +### State Sync Configuration ### +############################################################################### + +# State sync snapshots allow other nodes to rapidly join the network without replaying historical +# blocks, instead downloading and applying a snapshot of the application state at a given height. +[state-sync] + +# snapshot-interval specifies the block interval at which local state sync snapshots are +# taken (0 to disable). Must be a multiple of pruning-keep-every. +snapshot-interval = 0 + +# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). +snapshot-keep-recent = 2 + +############################################################################### +### 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 '--trace' flag when starting your node. +# Valid types are: json|struct|access_list|markdown +tracer = "" + +############################################################################### +### JSON RPC Configuration ### +############################################################################### + +[json-rpc] + +# Enable defines if the gRPC server should be enabled. +enable = false + +# Address defines the EVM RPC HTTP server address to bind to. +address = "0.0.0.0:8545" + +# Address defines the EVM WebSocket server address to bind to. +ws-address = "0.0.0.0: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 = 25000000 + +# 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 + + +############################################################################### +### 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 = "" diff --git a/mainnet/v1/config.toml b/mainnet/v1/config.toml new file mode 100644 index 000000000..1cdf91ab2 --- /dev/null +++ b/mainnet/v1/config.toml @@ -0,0 +1,401 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or +# relative to the home directory (e.g. "data"). The home directory is +# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable +# or --home cmd flag. + +####################################################################### +### Main Base Config Options ### +####################################################################### + +# TCP or UNIX socket address of the ABCI application, +# or the name of an ABCI application compiled in with the Tendermint binary +proxy_app = "tcp://127.0.0.1:26658" + +# A custom human readable name for this node +moniker = "Plug Chain Node" + +# If this node is many blocks behind the tip of the chain, FastSync +# allows them to catchup quickly by downloading blocks in parallel +# and verifying their commits +fast_sync = true + +# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb +# * goleveldb (github.com/syndtr/goleveldb - most popular implementation) +# - pure go +# - stable +# * cleveldb (uses levigo wrapper) +# - fast +# - requires gcc +# - use cleveldb build tag (go build -tags cleveldb) +# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) +# - EXPERIMENTAL +# - may be faster is some use-cases (random reads - indexer) +# - use boltdb build tag (go build -tags boltdb) +# * rocksdb (uses github.com/tecbot/gorocksdb) +# - EXPERIMENTAL +# - requires gcc +# - use rocksdb build tag (go build -tags rocksdb) +# * badgerdb (uses github.com/dgraph-io/badger) +# - EXPERIMENTAL +# - use badgerdb build tag (go build -tags badgerdb) +db_backend = "goleveldb" + +# Database directory +db_dir = "data" + +# Output level for logging, including package level options +log_level = "info" + +# Output format: 'plain' (colored text) or 'json' +log_format = "plain" + +##### additional base config options ##### + +# Path to the JSON file containing the initial validator set and other meta data +genesis_file = "config/genesis.json" + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +priv_validator_key_file = "config/priv_validator_key.json" + +# Path to the JSON file containing the last sign state of a validator +priv_validator_state_file = "data/priv_validator_state.json" + +# TCP or UNIX socket address for Tendermint to listen on for +# connections from an external PrivValidator process +priv_validator_laddr = "" + +# Path to the JSON file containing the private key to use for node authentication in the p2p protocol +node_key_file = "config/node_key.json" + +# Mechanism to connect to the ABCI application: socket | grpc +abci = "socket" + +# If true, query the ABCI app on connecting to a new peer +# so the app can decide if we should keep the connection or not +filter_peers = false + + +####################################################################### +### Advanced Configuration Options ### +####################################################################### + +####################################################### +### RPC Server Configuration Options ### +####################################################### +[rpc] + +# TCP or UNIX socket address for the RPC server to listen on +laddr = "tcp://127.0.0.1:26657" + +# A list of origins a cross-domain request can be executed from +# Default value '[]' disables cors support +# Use '["*"]' to allow any origin +cors_allowed_origins = [] + +# A list of methods the client is allowed to use with cross-domain requests +cors_allowed_methods = ["HEAD", "GET", "POST", ] + +# A list of non simple headers the client is allowed to use with cross-domain requests +cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ] + +# TCP or UNIX socket address for the gRPC server to listen on +# NOTE: This server only supports /broadcast_tx_commit +grpc_laddr = "" + +# Maximum number of simultaneous connections. +# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +grpc_max_open_connections = 900 + +# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool +unsafe = false + +# Maximum number of simultaneous connections (including WebSocket). +# Does not include gRPC connections. See grpc_max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +max_open_connections = 900 + +# Maximum number of unique clientIDs that can /subscribe +# If you're using /broadcast_tx_commit, set to the estimated maximum number +# of broadcast_tx_commit calls per block. +max_subscription_clients = 100 + +# Maximum number of unique queries a given client can /subscribe to +# If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set to +# the estimated # maximum number of broadcast_tx_commit calls per block. +max_subscriptions_per_client = 5 + +# How long to wait for a tx to be committed during /broadcast_tx_commit. +# WARNING: Using a value larger than 10s will result in increasing the +# global HTTP write timeout, which applies to all connections and endpoints. +# See https://github.com/tendermint/tendermint/issues/3435 +timeout_broadcast_tx_commit = "10s" + +# Maximum size of request body, in bytes +max_body_bytes = 1000000 + +# Maximum size of request header, in bytes +max_header_bytes = 1048576 + +# The path to a file containing certificate that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# If the certificate is signed by a certificate authority, +# the certFile should be the concatenation of the server's certificate, any intermediates, +# and the CA's certificate. +# NOTE: both tls_cert_file and tls_key_file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_cert_file = "" + +# The path to a file containing matching private key that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_key_file = "" + +# pprof listen address (https://golang.org/pkg/net/http/pprof) +pprof_laddr = "localhost:6060" + +####################################################### +### P2P Configuration Options ### +####################################################### +[p2p] + +# Address to listen for incoming connections +laddr = "tcp://0.0.0.0:26656" + +# Address to advertise to peers for them to dial +# If empty, will use the same port as the laddr, +# and will introspect on the listener or use UPnP +# to figure out the address. ip and port are required +# example: 159.89.10.97:26656 +external_address = "" + +# Comma separated list of seed nodes to connect to +seeds = "7488f044132cec94e72c0eb5cdd267fb5607f5d1@47.102.107.120:26656,60fde7a070938367ede8943ee45bee622424753a@47.102.126.234:26656" + +# Comma separated list of nodes to keep persistent connections to +persistent_peers = "" + +# UPNP port forwarding +upnp = false + +# Path to address book +addr_book_file = "config/addrbook.json" + +# Set true for strict address routability rules +# Set false for private or local networks +addr_book_strict = true + +# Maximum number of inbound peers +max_num_inbound_peers = 40 + +# Maximum number of outbound peers to connect to, excluding persistent peers +max_num_outbound_peers = 10 + +# List of node IDs, to which a connection will be (re)established ignoring any existing limits +unconditional_peer_ids = "" + +# Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) +persistent_peers_max_dial_period = "0s" + +# Time to wait before flushing messages out on the connection +flush_throttle_timeout = "100ms" + +# Maximum size of a message packet payload, in bytes +max_packet_msg_payload_size = 1024 + +# Rate at which packets can be sent, in bytes/second +send_rate = 5120000 + +# Rate at which packets can be received, in bytes/second +recv_rate = 5120000 + +# Set true to enable the peer-exchange reactor +pex = true + +# Seed mode, in which node constantly crawls the network and looks for +# peers. If another node asks it for addresses, it responds and disconnects. +# +# Does not work if the peer-exchange reactor is disabled. +seed_mode = false + +# Comma separated list of peer IDs to keep private (will not be gossiped to other peers) +private_peer_ids = "" + +# Toggle to disable guard against peers connecting from the same ip. +allow_duplicate_ip = false + +# Peer connection configuration. +handshake_timeout = "20s" +dial_timeout = "3s" + +####################################################### +### Mempool Configuration Option ### +####################################################### +[mempool] + +recheck = true +broadcast = true +wal_dir = "" + +# Maximum number of transactions in the mempool +size = 5000 + +# Limit the total size of all txs in the mempool. +# This only accounts for raw transactions (e.g. given 1MB transactions and +# max_txs_bytes=5MB, mempool will only accept 5 transactions). +max_txs_bytes = 1073741824 + +# Size of the cache (used to filter transactions we saw earlier) in transactions +cache_size = 10000 + +# Do not remove invalid transactions from the cache (default: false) +# Set to true if it's not possible for any invalid transaction to become valid +# again in the future. +keep-invalid-txs-in-cache = false + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes}. +max_tx_bytes = 1048576 + +# Maximum size of a batch of transactions to send to a peer +# Including space needed by encoding (one varint per transaction). +# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 +max_batch_bytes = 0 + +####################################################### +### State Sync Configuration Options ### +####################################################### +[statesync] +# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine +# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in +# the network to take and serve state machine snapshots. State sync is not attempted if the node +# has any local state (LastBlockHeight > 0). The node will have a truncated block history, +# starting from the height of the snapshot. +enable = false + +# RPC servers (comma-separated) for light client verification of the synced state machine and +# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding +# header hash obtained from a trusted source, and a period during which validators can be trusted. +# +# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2 +# weeks) during which they can be financially punished (slashed) for misbehavior. +rpc_servers = "" +trust_height = 0 +trust_hash = "" +trust_period = "168h0m0s" + +# Time to spend discovering snapshots before initiating a restore. +discovery_time = "15s" + +# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp). +# Will create a new, randomly named directory within, and remove it when done. +temp_dir = "" + +# The timeout duration before re-requesting a chunk, possibly from a different +# peer (default: 1 minute). +chunk_request_timeout = "10s" + +# The number of concurrent chunk fetchers to run (default: 1). +chunk_fetchers = "4" + +####################################################### +### Fast Sync Configuration Connections ### +####################################################### +[fastsync] + +# Fast Sync version to use: +# 1) "v0" (default) - the legacy fast sync implementation +# 2) "v1" - refactor of v0 version for better testability +# 2) "v2" - complete redesign of v0, optimized for testability & readability +version = "v0" + +####################################################### +### Consensus Configuration Options ### +####################################################### +[consensus] + +wal_file = "data/cs.wal/wal" + +# How long we wait for a proposal block before prevoting nil +timeout_propose = "3s" +# How much timeout_propose increases with each round +timeout_propose_delta = "500ms" +# How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) +timeout_prevote = "1s" +# How much the timeout_prevote increases with each round +timeout_prevote_delta = "500ms" +# How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) +timeout_precommit = "1s" +# How much the timeout_precommit increases with each round +timeout_precommit_delta = "500ms" +# How long we wait after committing a block, before starting on the new +# height (this gives us a chance to receive some more precommits, even +# though we already have +2/3). +timeout_commit = "5s" + +# How many blocks to look back to check existence of the node's consensus votes before joining consensus +# When non-zero, the node will panic upon restart +# if the same consensus key was used to sign {double_sign_check_height} last blocks. +# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. +double_sign_check_height = 0 + +# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) +skip_timeout_commit = false + +# EmptyBlocks mode and possible interval between empty blocks +create_empty_blocks = true +create_empty_blocks_interval = "0s" + +# Reactor sleep duration parameters +peer_gossip_sleep_duration = "100ms" +peer_query_maj23_sleep_duration = "2s" + +####################################################### +### Transaction Indexer Configuration Options ### +####################################################### +[tx_index] + +# What indexer to use for transactions +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. +indexer = "kv" + +####################################################### +### Instrumentation Configuration Options ### +####################################################### +[instrumentation] + +# When true, Prometheus metrics are served under /metrics on +# PrometheusListenAddr. +# Check out the documentation for the list of available metrics. +prometheus = false + +# Address to listen for Prometheus collector(s) connections +prometheus_listen_addr = ":26660" + +# Maximum number of simultaneous connections. +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +max_open_connections = 3 + +# Instrumentation namespace +namespace = "tendermint" diff --git a/mainnet/v1/genesis.json b/mainnet/v1/genesis.json index 5b1f6ebaa..e69de29bb 100644 --- a/mainnet/v1/genesis.json +++ b/mainnet/v1/genesis.json @@ -1,753 +0,0 @@ -{ - "genesis_time": "2021-08-19T08:56:38.706170801Z", - "chain_id": "plugchain", - "initial_height": "1", - "consensus_params": { - "block": { - "max_bytes": "22020096", - "max_gas": "-1", - "time_iota_ms": "1000" - }, - "evidence": { - "max_age_num_blocks": "100000", - "max_age_duration": "172800000000000", - "max_bytes": "1048576" - }, - "validator": { - "pub_key_types": [ - "ed25519" - ] - }, - "version": {} - }, - "app_hash": "", - "app_state": { - "auth": { - "params": { - "max_memo_characters": "256", - "tx_sig_limit": "7", - "tx_size_cost_per_byte": "10", - "sig_verify_cost_ed25519": "590", - "sig_verify_cost_secp256k1": "1000" - }, - "accounts": [ - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1sq37d4en3r7akx9u9j2ytrz5pyqyudtg20u3nt", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx10ha2nray76sg80lwfzehhg3dn3hwk6xpp2kgqq", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1h252xupqd6krjtuqxa9ns0573gm38xzkzd6qx2", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1dpfkv9g8pjvv74fll6ttpl98mhuck24gd7n7p6", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1fjljkcf5f9ceh9cu54z7pp9wtmm586r2fm5gde", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx100sjlen6ehxkd4694dtuts6zdly0yah45vmqau", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1qq2zq2hghzggurar9xm6gphz3q4e6rrpr6704g", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1mcwcw3n4lgzl7l8wtzwaz05n0j6qfthmmh22nu", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx142vptf8u29a6yr2kcaa74u359xel6fn3umpsr5", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1uj92s59llkzt8hl6ec57n693jzmcwq8gjn2x85", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1zmps6d5ln0dal4vt2ewag392gfa57hr2kx97lg", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1jeaut5hfgqwzaarknt0ewxdkyd5eqryqs2wdd7", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1rskdkye43lwemcxvazdkazkw8wwfl3m8zhae0y", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1feflr34xppg2pjjvswntwkwt4vjdj53an4yumy", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1su37pgezwkcged4amgrhc3tgpumhgkerfa5jzz", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1mlzk4d0wqwa343xsssft9umu2duzjzvmauuxxn", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", - "pub_key": null, - "account_number": "0", - "sequence": "0" - } - ] - }, - "bank": { - "params": { - "send_enabled": [], - "default_send_enabled": true - }, - "balances": [ - { - "address": "gx1qq2zq2hghzggurar9xm6gphz3q4e6rrpr6704g", - "coins": [ - { - "denom": "plug", - "amount": "1450977000000000" - } - ] - }, - { - "address": "gx1zmps6d5ln0dal4vt2ewag392gfa57hr2kx97lg", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1rskdkye43lwemcxvazdkazkw8wwfl3m8zhae0y", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", - "coins": [ - { - "denom": "plug", - "amount": "80000000000000" - } - ] - }, - { - "address": "gx1fjljkcf5f9ceh9cu54z7pp9wtmm586r2fm5gde", - "coins": [ - { - "denom": "plug", - "amount": "4352931000000000" - } - ] - }, - { - "address": "gx1feflr34xppg2pjjvswntwkwt4vjdj53an4yumy", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1dpfkv9g8pjvv74fll6ttpl98mhuck24gd7n7p6", - "coins": [ - { - "denom": "plug", - "amount": "200000000000000" - } - ] - }, - { - "address": "gx100sjlen6ehxkd4694dtuts6zdly0yah45vmqau", - "coins": [ - { - "denom": "plug", - "amount": "2176465500000000" - } - ] - }, - { - "address": "gx10ha2nray76sg80lwfzehhg3dn3hwk6xpp2kgqq", - "coins": [ - { - "denom": "plug", - "amount": "304877700000000" - } - ] - }, - { - "address": "gx1sq37d4en3r7akx9u9j2ytrz5pyqyudtg20u3nt", - "coins": [ - { - "denom": "plug", - "amount": "759450000000000" - } - ] - }, - { - "address": "gx1su37pgezwkcged4amgrhc3tgpumhgkerfa5jzz", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", - "coins": [ - { - "denom": "plug", - "amount": "20000000000000" - } - ] - }, - { - "address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", - "coins": [ - { - "denom": "plug", - "amount": "20000000000000" - } - ] - }, - { - "address": "gx1jeaut5hfgqwzaarknt0ewxdkyd5eqryqs2wdd7", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx142vptf8u29a6yr2kcaa74u359xel6fn3umpsr5", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1h252xupqd6krjtuqxa9ns0573gm38xzkzd6qx2", - "coins": [ - { - "denom": "plug", - "amount": "160000000000000" - } - ] - }, - { - "address": "gx1mcwcw3n4lgzl7l8wtzwaz05n0j6qfthmmh22nu", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1mlzk4d0wqwa343xsssft9umu2duzjzvmauuxxn", - "coins": [ - { - "denom": "plug", - "amount": "580390800000000" - } - ] - }, - { - "address": "gx1uj92s59llkzt8hl6ec57n693jzmcwq8gjn2x85", - "coins": [ - { - "denom": "plug", - "amount": "725488500000000" - } - ] - }, - { - "address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", - "coins": [ - { - "denom": "plug", - "amount": "80000000000000" - } - ] - } - ], - "supply": [], - "denom_metadata": [] - }, - "capability": { - "index": "1", - "owners": [] - }, - "crisis": { - "constant_fee": { - "denom": "plug", - "amount": "1000" - } - }, - "distribution": { - "params": { - "community_tax": "0.020000000000000000", - "base_proposer_reward": "0.010000000000000000", - "bonus_proposer_reward": "0.040000000000000000", - "withdraw_addr_enabled": true - }, - "fee_pool": { - "community_pool": [] - }, - "delegator_withdraw_infos": [], - "previous_proposer": "", - "outstanding_rewards": [], - "validator_accumulated_commissions": [], - "validator_historical_rewards": [], - "validator_current_rewards": [], - "delegator_starting_infos": [], - "validator_slash_events": [] - }, - "evidence": { - "evidence": [] - }, - "genutil": { - "gen_txs": [ - { - "body": { - "messages": [ - { - "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", - "description": { - "moniker": "operate-fund-1", - "identity": "", - "website": "", - "security_contact": "", - "details": "" - }, - "commission": { - "rate": "0.100000000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.010000000000000000" - }, - "min_self_delegation": "1000000", - "delegator_address": "gx1rkecwy9pjsfd058w0pwa2perquc8xe639n92ms", - "validator_address": "gxvaloper1rkecwy9pjsfd058w0pwa2perquc8xe638h4u5p", - "pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "i4unhp2x1nry+iBrSBa4eag4e9rOU//MA4vcwHVJws0=" - }, - "value": { - "denom": "plug", - "amount": "80000000000000" - } - } - ], - "memo": "0673b5aac6efffbc222bd2f241fbff0100b7e9ec@172.31.163.239:26656", - "timeout_height": "0", - "extension_options": [], - "non_critical_extension_options": [] - }, - "auth_info": { - "signer_infos": [ - { - "public_key": { - "@type": "/cosmos.crypto.secp256k1.PubKey", - "key": "A4dOjpzl0c8DgZSjevGFfFdUWM4Kjubqi9fvBLSOFe0s" - }, - "mode_info": { - "single": { - "mode": "SIGN_MODE_DIRECT" - } - }, - "sequence": "0" - } - ], - "fee": { - "amount": [], - "gas_limit": "200000", - "payer": "", - "granter": "" - } - }, - "signatures": [ - "9FRAzXxiqTs1uIj7YrSZzJQv1fy1gL8FpvF54A+9xw4WNdXdqbxT2KMfBlZ23DNL9tPPrTpEu/SwAMXfNsJcDg==" - ] - }, - { - "body": { - "messages": [ - { - "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", - "description": { - "moniker": "technical-community-2", - "identity": "", - "website": "", - "security_contact": "", - "details": "" - }, - "commission": { - "rate": "0.100000000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.010000000000000000" - }, - "min_self_delegation": "1000000", - "delegator_address": "gx13psx8meszh22y8glk2rz23sdqe2yhtgewreguv", - "validator_address": "gxvaloper13psx8meszh22y8glk2rz23sdqe2yhtgev8f7na", - "pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "MKqyUqkdyiZuaQpkcn5HsSd5eYzHRtJfPMv1ZfQYxFE=" - }, - "value": { - "denom": "plug", - "amount": "20000000000000" - } - } - ], - "memo": "5037ca3ae464302a3ace4db167624734a9fdf0f2@172.31.163.243:26656", - "timeout_height": "0", - "extension_options": [], - "non_critical_extension_options": [] - }, - "auth_info": { - "signer_infos": [ - { - "public_key": { - "@type": "/cosmos.crypto.secp256k1.PubKey", - "key": "A0EIxC1Dt0TOqMMw7qMU0cyFtv6K7TZ02sBFQdD20N20" - }, - "mode_info": { - "single": { - "mode": "SIGN_MODE_DIRECT" - } - }, - "sequence": "0" - } - ], - "fee": { - "amount": [], - "gas_limit": "200000", - "payer": "", - "granter": "" - } - }, - "signatures": [ - "MiOOkGYb7s453hUS7scu+5Aax4jm7tTvgfwBg3Y9V+FgtxutHq8L3vAho67f8GRtnuqOZgayRdktKaK2lT5tOA==" - ] - }, - { - "body": { - "messages": [ - { - "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", - "description": { - "moniker": "operate-fund-2", - "identity": "", - "website": "", - "security_contact": "", - "details": "" - }, - "commission": { - "rate": "0.100000000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.010000000000000000" - }, - "min_self_delegation": "1000000", - "delegator_address": "gx1lxefa0fzge2qhfkm7wul8s4prvezfydctnjudv", - "validator_address": "gxvaloper1lxefa0fzge2qhfkm7wul8s4prvezfydcfhz2za", - "pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "2KHomwxLpPe/Orbg4h7D7yeUGZd/ghKSPr2jhE+IiNk=" - }, - "value": { - "denom": "plug", - "amount": "80000000000000" - } - } - ], - "memo": "707a5b83a05aa70e195519cb63a4fe53ea51c87a@172.31.163.242:26656", - "timeout_height": "0", - "extension_options": [], - "non_critical_extension_options": [] - }, - "auth_info": { - "signer_infos": [ - { - "public_key": { - "@type": "/cosmos.crypto.secp256k1.PubKey", - "key": "ArkWG3pTzfgUG4rJLHbAGnLxGrmBhwnHMWqZb5/u+vc5" - }, - "mode_info": { - "single": { - "mode": "SIGN_MODE_DIRECT" - } - }, - "sequence": "0" - } - ], - "fee": { - "amount": [], - "gas_limit": "200000", - "payer": "", - "granter": "" - } - }, - "signatures": [ - "eZKwiKLmg1w1DxhRfMnLi+kqfU+tfP5JaRD33yfj2f0Xt2f6b3KKo5brTW1cImMXlV0KLRRg/ihba5ogz3T4ZA==" - ] - }, - { - "body": { - "messages": [ - { - "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", - "description": { - "moniker": "technical-community-1", - "identity": "", - "website": "", - "security_contact": "", - "details": "" - }, - "commission": { - "rate": "0.100000000000000000", - "max_rate": "0.200000000000000000", - "max_change_rate": "0.010000000000000000" - }, - "min_self_delegation": "1000000", - "delegator_address": "gx1s7v7qtg9l9rxks0pglrpmaphw0xl8mqw3fyv0a", - "validator_address": "gxvaloper1s7v7qtg9l9rxks0pglrpmaphw0xl8mqwnd56qv", - "pubkey": { - "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "eDBAgddvpngzYE0GbenBX2/0P471Rnz3jMPR/lRF9JY=" - }, - "value": { - "denom": "plug", - "amount": "20000000000000" - } - } - ], - "memo": "d9c82536ddb1eb68873857d613d4adb8f27277c4@172.31.163.245:26656", - "timeout_height": "0", - "extension_options": [], - "non_critical_extension_options": [] - }, - "auth_info": { - "signer_infos": [ - { - "public_key": { - "@type": "/cosmos.crypto.secp256k1.PubKey", - "key": "A8N9163+Bd1hvuqmTMBD8dlGlcVM047z+PsNJ0MvuCg9" - }, - "mode_info": { - "single": { - "mode": "SIGN_MODE_DIRECT" - } - }, - "sequence": "0" - } - ], - "fee": { - "amount": [], - "gas_limit": "200000", - "payer": "", - "granter": "" - } - }, - "signatures": [ - "QXN7Zh4gwX63ZRjWBv6Jwehi9gcl1Wn56k5Rs/KuU+s/NDmQ7dw33b/8yFPbIDqWMcIuy7ABE4gMY1JBCChZRw==" - ] - } - ] - }, - "gov": { - "starting_proposal_id": "1", - "deposits": [], - "votes": [], - "proposals": [], - "deposit_params": { - "min_deposit": [ - { - "denom": "plug", - "amount": "10000000" - } - ], - "max_deposit_period": "604800s" - }, - "voting_params": { - "voting_period": "1209600s" - }, - "tally_params": { - "quorum": "0.334000000000000000", - "threshold": "0.500000000000000000", - "veto_threshold": "0.334000000000000000" - } - }, - "ibc": { - "client_genesis": { - "clients": [], - "clients_consensus": [], - "clients_metadata": [], - "params": { - "allowed_clients": [ - "06-solomachine", - "07-tendermint" - ] - }, - "create_localhost": false, - "next_client_sequence": "0" - }, - "connection_genesis": { - "connections": [], - "client_connection_paths": [], - "next_connection_sequence": "0" - }, - "channel_genesis": { - "channels": [], - "acknowledgements": [], - "commitments": [], - "receipts": [], - "send_sequences": [], - "recv_sequences": [], - "ack_sequences": [], - "next_channel_sequence": "0" - } - }, - "mint": { - "minter": { - "inflation": "0.130000000000000000", - "annual_provisions": "0.000000000000000000" - }, - "params": { - "mint_denom": "plug", - "inflation_rate_change": "0.130000000000000000", - "inflation_max": "0.200000000000000000", - "inflation_min": "0.070000000000000000", - "goal_bonded": "0.670000000000000000", - "blocks_per_year": "6311520" - } - }, - "params": null, - "plugchain": {}, - "slashing": { - "params": { - "signed_blocks_window": "100", - "min_signed_per_window": "0.500000000000000000", - "downtime_jail_duration": "600s", - "slash_fraction_double_sign": "0.050000000000000000", - "slash_fraction_downtime": "0.010000000000000000" - }, - "signing_infos": [], - "missed_blocks": [] - }, - "staking": { - "params": { - "unbonding_time": "1814400s", - "max_validators": 100, - "max_entries": 7, - "historical_entries": 10000, - "bond_denom": "plug" - }, - "last_total_power": "0", - "last_validator_powers": [], - "validators": [], - "delegations": [], - "unbonding_delegations": [], - "redelegations": [], - "exported": false - }, - "transfer": { - "port_id": "transfer", - "denom_traces": [], - "params": { - "send_enabled": true, - "receive_enabled": true - } - }, - "upgrade": {}, - "vesting": {} - } - } \ No newline at end of file From aeba25b26cf794f7c0eb1e9e0a4e2c14423f4e70 Mon Sep 17 00:00:00 2001 From: worryFree56 Date: Fri, 11 Feb 2022 16:50:42 +0800 Subject: [PATCH 3/7] Modify the mainnet upgrade content --- docs/cli-client/gov.md | 8 ++++---- docs/cli-client/nft.md | 4 ++-- docs/cli-client/params.md | 8 ++++---- docs/cli-client/staking.md | 10 +++++----- docs/cli-client/tx.md | 20 ++++++++++---------- docs/concepts/general-concepts.md | 4 ++-- docs/concepts/gov-params.md | 6 +++--- docs/concepts/validator-faq.md | 4 ++-- docs/daemon/local-testnet.md | 6 +++--- docs/endpoints/grpc-client.md | 6 +++--- docs/endpoints/legacy-rest.md | 8 ++++---- docs/features/bank.md | 8 ++++---- docs/features/distribution.md | 6 +++--- docs/features/governance.md | 24 ++++++++++++------------ docs/features/staking.md | 8 ++++---- docs/features/upgrade.md | 6 +++--- docs/get-started/mainnet.md | 8 ++++---- docs/get-started/testnet.md | 10 +++------- docs/get-started/upgrade.md | 6 +++--- docs/zh/cli-client/gov.md | 8 ++++---- docs/zh/cli-client/nft.md | 4 ++-- docs/zh/cli-client/params.md | 8 ++++---- docs/zh/cli-client/staking.md | 10 +++++----- docs/zh/cli-client/tx.md | 20 ++++++++++---------- docs/zh/concepts/general-concepts.md | 24 ++++++++++++------------ docs/zh/concepts/gov-params.md | 8 ++++---- docs/zh/concepts/validator-faq.md | 6 +++--- docs/zh/daemon/local-testnet.md | 6 +++--- docs/zh/endpoints/grpc-client.md | 6 +++--- docs/zh/endpoints/legacy-rest.md | 8 ++++---- docs/zh/features/bank.md | 6 +++--- docs/zh/features/distribution.md | 4 ++-- docs/zh/features/governance.md | 26 +++++++++++++------------- docs/zh/features/mint.md | 4 ++-- docs/zh/features/staking.md | 8 ++++---- docs/zh/features/upgrade.md | 6 +++--- docs/zh/get-started/mainnet.md | 6 +++--- docs/zh/get-started/testnet.md | 7 +++---- docs/zh/get-started/upgrade.md | 6 +++--- 39 files changed, 168 insertions(+), 173 deletions(-) diff --git a/docs/cli-client/gov.md b/docs/cli-client/gov.md index 811559bce..e241781cd 100644 --- a/docs/cli-client/gov.md +++ b/docs/cli-client/gov.md @@ -186,8 +186,8 @@ Where proposal.json contains: "title": "Community Pool Spend", "description": "Pay me some Atoms!", "recipient": "gx1mjk4p68mmulwla3x5uzlgjwsc3zrms448rel3q", - "amount": "1000plug", - "deposit": "1000plug" + "amount": "1000uplugcn", + "deposit": "1000uplugcn" } ``` @@ -217,7 +217,7 @@ Where proposal.json contains: "value": 105 } ], - "deposit": "1000plug" + "deposit": "1000uplugcn" } ``` @@ -283,5 +283,5 @@ plugchaind tx gov vote [proposal-id] [option] [flags] ### Vote for an active proposal ```bash -plugchaind tx gov vote