English
PlatON nodes,
Herschel (v1.2.1) has been released on PlatON, which is a minor version upgrade. You can decide whether to upgrade as needed. For conditions where an upgrade is advised, please refer to the Impact on DApps section of this article.
Upgrade Operation Manual: 【手册】PlatON网络1.2.1版本升级操作手册 1
Reasons for the Upgrade
Although V1.2.0 supports two ChainIDs (100 and 210425) at the same time, the following problems still exist:
- Failure to use the new ChainID on MetaMask
- A new contract cannot be created by using the new ChainID through the SDK or by unlocking the account on the node
According to the final goal of the PIP-7 proposal, the ChainID of the PlatON Mainnet will eventually be 210425 alone. To minimize the impact on the application in the subsequent upgrade, the default ChainID used by nodes is set to a new value (210425), which also allows MetaMask to adapt to the new ChainID. This stage will be implemented through PlatON V1.2.1. At the same time, the above-mentioned problems, i.e. failure to use the new ChainID or error when a contract deployment is initiated by unlocking the account on the node, are also fixed in this version.
Impact of the Upgrade
Impact on Validators
V1.2.1 is a minor version upgrade (Patch) and does not require on-chain proposals, so there will be no impact on validators or validator candidates.
Impact on DApps
After the upgrade to V1.2.1, developers need to pay attention to the following changes to determine whether the application logic needs to be modified.
- The CHAINID command in the contract still returns the original ChainID, and will return the new ChainID in the subsequent versions
- The application can use both the new ChainID and the original ChainID when initiating transactions
- The new ChainID is obtained through the RPC interface
- The new ChainID is used to send transactions via unlock
Most of the deployed DApps do not need to be modified, but suggestions are as below:
- Check whether the CHAINID command is used in the contract, and evaluate the impact on the existing logic if the command returns the original ChainID. You need to know that external transactions may use the new ChainID , say, transactions issued via Metamask
- Check the way of initiating transactions off-chain. Please be noted that the ChainID obtained through the RPC interface is the new ChainID, and the unlock method also uses the new ChainID
- If you want to upgrade the contract and the contract uses the CHAINID command, it is advised to adapt both the original and the new ChainIDs at the same time
For newly deployed DApps, suggestions are as below:
- Since PlatON will gradually reduce the support for the original ChainID, please use the new ChainID to initiate transactions if possible to alleviate the impact of subsequent upgrades on the application
- Since the CHAINID command in the contract still returns the original ChainID, and will return the new ChainID in the future upgrade, it is advised to adapt both the new and the original ChainIDs
Please refer to the Development Manual for the best practice of DApps’ adaptation to two ChainIDs.
Impact on Users
After upgrading to V1.2.1, users can decide whether to use the new ChainID or the original one.
PlatON Mainnet
- Use the new ChainID
If users wish to use the new ChainID, they can specify a new RPCURL when adding a new network on MetaMask: https://openapi2.platon.network/rpc after the release of V1.2.1.
They may also add PlatON Mainnet through ChainList: open ChainList (https://chainlist.org/), search for “PlatON”, and find the PlatON Mainnet.
- Continue to use the original ChainID
The public RPC service (address: https://openapi.platon.network/rpc) provided for developers with the original ChainID will be retained. Users who have added the original ChainID network configuration before the upgrade can continue to use the original configuration, but it is advised to switch to the network configuration of the new ChainID.
PlatON DevNet
- Use the new ChainID
If users want to use the new ChainID, please specify a new RPCURL when adding a new network on MetaMask: https://devnetopenapi2.platon.network/rpc.
- Continue to use the original ChainID
Similar to the case on the Mainnet, the public RPC address of PlatON DevNet https://devnetopenapi.platon.network/rpc will continue to provide developers with public RPC services with the original ChainID 210309. MetaMask users who have added the DevNet can still use it without any impact.
Nodes That Need An Upgrade
V1.2.1 does not require governance upgrades, and whether each node is upgraded will not affect the normal operation of the network.
- The validator can decide whether to upgrade or not
If the validator does not upgrade to this version, V1.2.0 can still verify or propose blocks normally. Validators can determine whether to upgrade or not by themselves. - Nodes maintained by developers
If the developer’s application uses the original ChainID, an upgrade is not a must. But if the developer wants to use the new ChainID in the future, it is advised to upgrade the node connected by the application to V1.2.1.
How to Upgrade
- Upgrade time
An upgrade to V1.2.1 can be possible only after the V1.2.0 upgrade proposal is approved. - Upgrade operation
You can directly replace the node process file with v1.2.1 after the version is released and the proposal is passed.
For details, refer to the Upgrade Operation Manual.
Version Statement
Herschel (v1.2.1) is the second phase implementation of the PIP-7 proposal, which sets the default ChainID used by nodes to a new value (210425).
New Features
- Change the Mainnet’s default ChainID from 100 to 210425.
New Fixes
- Fix contract deployment error when initiating transaction signatures via unlock (truffle-issue-33).
- Fix error when deploying a contract with a new ChainID (issue-1922 1).
Statement
This version is a minor version upgrade. Each node can determine whether to upgrade or not as needed.
This article is reproduced from https://forum.latticex.foundation/t/topic/6192