{% hint style="warning" %}
- The ICON1 node server must be maintained after STAGE3 until the migration is completed.
- It should be turned off when the Foundation announces that the migration is complete.
- If you are P-Rep, you must use the Keystore file used in ICON1.
- If you’re not using a dual key setup, use your original registration key.
- If you’re using a dual key setup, use the second key (not the registration key). {% endhint %}
{% hint style="danger" %} Top 30 P-Reps participating in Stage2 must fill up this form before starting https://forms.gle/PvyMVDH98DBzn2op7
Before Stage2, top 30 P-Reps must update to the latest ICON1 node version (iconloop/prep-node:20211012.0). {% endhint %}
- Other node operators can wait for further instructions to setup ICON2 - goloop node once the network migration is fully completed. Until then please keep your ICON1 node running as before.
- There are three stages in the migration.
[Completed] STAGE1: Migrate data from ICON1.[Complete] STAGE2: Download the migrated data and Start an ICON2 node. [Action required - PRep]- [In Progress] STAGE3: [Action required - PRep and Exchanges ]
- Send a Proposal (Foundation) → Vote a Proposal (PReps) → Complete consensus
- The Foundation announces the changes. ICON1 node will be stopped.
Exchanges should stop deposits and withdrawals. [Action required - Exchanges ] - Switch to the ICON2 network
- Complete migration
Stage time (KST) | Actions |
---|---|
|
Stage 1-2
|
|
|
|
|
|
Stage2
|
|
Stage3-1
|
|
Stage3-2
|
|
Stage3-3
|
|
Stage 3-4
|
|
Stage3-5
|
|
Announcement
|
|
Stage3-6
|
|
stopped state |
|
|
|
|
|
Announcement
|
|
Stage3-7
|
|
Stage 3-8
|
|
|
|
Announcement
|
|
|
|
Announcement
|
|
|
{% hint style="danger" %} Top 30 P-Reps must update their loopchain node before starting Stage2. This update will make ICON1 stop creating blocks after Revision 13. {% endhint %}
Please update citizen node following guideline before October 26th. Please try to update your node right after your leader turn if you're Main P-Rep.
- Using docker
- Check your docker image tag settings in docker-compose.yml and change the tag to below
image: iconloop/prep-node:20211012.0
- Enter the following commands in order
- Check your docker image tag settings in docker-compose.yml and change the tag to below
docker-compose pull
docker-compose down
docker-compose up -d
- Using snap
- Using citizen pack or binary
Migrate data to 5 node servers provided by the Foundation. When the current block height of ICON1 is reached, upload a backup file of migrated ICON2 data. We tested the compressed backup file and original file as follows.
Using compressed database file | Using original database file | |
---|---|---|
Information of migrated backup file | file size : 1.2TB over |
|
Download time |
|
|
Decompress time |
|
0 min |
Total estimated time |
|
|
STAGE2 Each PRep prepares a new server for ICON2 and copy the Keystore file from another ICON1 server.
If you are P-Rep, you must use the Keystore file used in ICON1.
- Provide the new ICON2 node’s Public IP address for monitoring https://forms.gle/PvyMVDH98DBzn2op7
- Prepare ICON2 node (https://github.com/icon-project/icon2-docker)
- Create a new server for ICON2
- Copy keystore file from ICON1 node to ICON2 node
- Download the ICON2 image or build the image. (
iconloop/icon2-node
) - Start the new ICON2 node
- The following tasks are automatically executed as environment variables of docker
- Download the migrated ICON2 block data
- Start ICON2 node in container
- Join the ICON2 Network
- Start import (The blocks after the backup DB are additionally synchronized)
- Monitor whether it reaches latest height of ICON1 with below command
- Wait and keep the icon1
# docker exec -it icon2-node goloop chain ls
[
{
"cid": "0x1",
"nid": "0x1",
"channel": "icon_dex",
"state": "import_icon 39314952 running",
"height": 4830,
"lastError": ""
}
]
Switch the ICON2 Network
{% hint style="danger" %} During this last stage, exchanges should stop deposits and withdrawals.
The Foundation will let you know when you can setup your ICON2 citizen nodes. Once you are ready, you can resume normal operations. {% endhint %}
Stage 3-1 | Block the network endpoint(ctz.solidwallet.io, wallet.icon.foundation) and prevent the creation of new Transactions. |
---|---|
STAGE3-2 | Send a transaction for a new revision (ICON2 Revision).
|
STAGE3-3 | Wait for consensus proposal to be completed. |
STAGE3-4 | ICON1 node and Citizen node will enter suspend state. |
STAGE3-5 | ICON2 node is changed to Wait for all ICON2 nodes reach to the target. |
Announcement | The Foundation notifies PReps to enter a command: chain stop |
STAGE3-6 | Enter the following command to confirm end of migration
Stop ICON2 migration task
Then ICON2 will fall in
Wait for all ICON2 nodes reach to the target. |
Announcement | The Foundation notifies PReps to enter a command: chain start |
STAGE3-7 | Start chain
Switch the ICON2 network and Start ICON2 consenesus. |
STAGE3-8 | PRep Completed migrations |
STAGE3-9 | Foundation will make backup data with backup node(ICON2 Real data). We'll let you know If we're ready. |
Announcement | Announce a successful migration |
End of migration | 🚀 |
Stage 3-1 | If you are running a citizen node, stop it. |
---|---|
STAGE3-2 | Vote on the proposal with preptools. P-Reps can't vote on icon.community. Use preptools to change the endpoint to your own ICON1 node P-Reps and vote. |
STAGE3-3 | Wait for consensus proposal to be completed. |
STAGE3-4 | ICON1 node and Citizen node will enter suspend state. |
STAGE3-5 | ICON2 node is changed to Wait for all ICON2 nodes reach to the target. |
Announcement | The Foundation notifies PReps to enter a command: chain stop |
STAGE3-6 | Enter the following command
Stop ICON2 migration task
Then ICON2 will fall in “import_icon finished” status after erasing all temporal data. To see the last block height, you need to stop again.
Wait for all ICON2 nodes reach to the target. |
Announcement | The Foundation notifies PReps to enter a command: chain start |
STAGE3-7 | Start chain
Switch the ICON2 network and Start ICON2 consenesus. |
STAGE3-8 | PRep Completed migrations |
STAGE3-9 | Monitor whether consensus is reached and blocks are created. |
Announcement | Shut down old ICON1 server. |
End of migration | 🚀 |
Stage 3-1 | Exchanges should stop deposits and withdrawals. |
---|---|
STAGE3-2 | No action is required. |
STAGE3-3 | No action is required. |
STAGE3-4 | ICON1(Citizen) node will enter suspend state. ICON1 citizen node can’t generate the new block. But It is possible to query the transactions. |
STAGE3-5 | No action is required. |
Announcement | The Foundation notifies PReps to enter a command: chain stop |
STAGE3-6 | Wait and keep the icon1 citizen node. No action is required. |
Announcement | The Foundation notifies PReps to enter a command: chain start |
STAGE3-7 | Wait and keep the icon1 citizen node. No action is required. |
STAGE3-8 | Wait and keep the icon1 citizen node. No action is required. |
STAGE3-9 | If we ready, let you know. Recover citizens with the backup. Start the ICON2 node. |
Announcement | If you are ready, please resume deposits and withdrawals. |
End of migration | 🚀 |