Ultima-1.1.1
Release Summary
item | value | comment |
---|---|---|
Mandatory upgrade | No | |
Version | ultima1.1.1 | |
Upgrade Deadline | 2022.4.20 12:00 | |
Tag version of Github | https://github.com/vision-consensus/vision-core/releases/tag/mainnet_ultima_v1.1.1 | |
Docker Image Version | maintainers/vision-mainnet:ultima_v1.1.1 maintainers/vision-mainnet:latest |
Features changed in this version
Version 1.1.0 of Ultima introduces several optimization updates. We optimized the compatibility of the EVM interface, mainly optimizing three interfaces: eth_getLogs, eth_getTransactionByHash, and eth_estimateGas.
API
1. EVM-compatible JsonRpc interface method optimization
In versions prior to ultima 1.1.1, no eth_getLogs method, eth_estimateGas is a fixed value, and the data returned by eth_getTransactionByHash is incomplete. In the new version, we have optimized these methods so that more complete information can be queried by these methods.
VIP: https://github.com/vision-consensus/vision-improvement-proposals/blob/feature/vip09/vip09.md
Code: https://github.com/vision-consensus/vision-core/pull/153
Node Upgrade Procedure
Compile the source code to upgrade
1. Close the process
# Get the PID of the running vision-core process
ps aux | grep "java -Xmx.*g -XX:+UseConcMarkSweepGC -jar"
# Stop the process
kill -15 PID
2. back up the node's data
# Back up the jar package of the currently running vision-core application
mv FullNode.jar FullNode.jar.$(date '+%FT%T').bak
# Back up the current database
tar --force-local -zcvf "output-directory-$(date '+%FT%T')-backup.tar.gz" output-directory
3. Get the new version of the jar package
# Get the latest version of java source code
git clone https://github.com/vision-consensus/vision-core.git
# Compile the source code and get the FullNode.jar package
cd vision-core
gradle build -x test
# Copy the FullNode.jar package to the previous working directory, you need to replace $OLD_WORKDIR in the following command according to the working directory you are using
cp -a build/libs/FullNode.jar $OLD_WORKDIR
Get the official jar package directly
You can also get the official jar package directly to re-run the service.
Link address : https://github.com/vision-consensus/vision-core/releases/download/mainnet_ultima_v1.1.1/FullNode.jar
Enables support for the new jsonrpc interface
This update to the underlying code mainly adds new interfaces. In order to enable support for these new interfaces, we need to add support fields to the configuration file. In order to do this, we need to pull the new configuration file : https://vision-mainnet-configs.s3.us-east-2.amazonaws.com/stage001/vision-mainnet.config
replace the original configuration file and run the node again. If we don't need support for these new interfaces, we can omit this step and use the previous configuration file.
4. Start the node
# Go to your original working directory, replace $OLD_WORKDIR by yourself
cd $OLD_WORKDIR
# Start the node
# FullNode:
nohup java -Xmx12g -XX:+UseConcMarkSweepGC -jar FullNode.jar -c configs/vision-mainnet.config &
# FVGuarantee:
nohup java -Xmx12g -XX:+UseConcMarkSweepGC -jar FullNode.jar --witness -p <privateKey> -c configs/vision-mainnet.config &
# If you need to use another witness account, please replace the <privateKey>
- Upgrade completed, please wait until the whole network upgrade is completed.
Docker image upgrade
1. Close the container
# Shut down the docker container, please replace the container name of the vision-core service by yourself
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
2. backup node data
# Enter the external volume mapped by the vision-core service container, please replace VOLUME_NAME by yourself
cd $VOLUME_NAME
# Back up the current database
tar --force-local -zcvf "output-directory-$(date '+%FT%T')-backup.tar.gz" output-directory
3. pull the latest docker image
docker pull maintainers/vision-mainnet:latest
Pull the image first and then run the container
Please use "docker pull" to pull the latest image independently first. Then use the following docker run command to run the container. Otherwise, nodes that have pulled the image with the same name locally will run the container directly with the original image. In this case, the node is restarting the service without upgrading the underlying code.
Enable support for the new jsonrpc interface, which is optional in this update
There are several new jsonrpc interfaces in this update, if we want to enable support for these new interfaces, we need to use the new configuration file.
Please get the configuration file manually to replace the configuration file in the previous external mount volume, if you don't have a custom external mount volume, then the file should be located in the file system: /data/mainnet/configs/mainnet.config
New configuration file link: https://vision-mainnet-configs.s3.us-east-2.amazonaws.com/stage001/vision-mainnet.configHow to do it.
cd /data/mainnet/configs/
wget https://vision-mainnet-configs.s3.us-east-2.amazonaws.com/stage001/vision-mainnet.config
mv vision-mainnet.config mainnet.config
4. Starting a Docker container service with a new image
# fv witness Node:
docker run -itd \
-v "/data/mainnet:/data/vision" \
-p 7080:7080 \
-p 7081:7081 \
-p 7082:7082 \
-p 16666:16666 \
-p 60061:60061 \
-p 60071:60071 \
-p 60081:60081 \
--name vision-mainnet-FVGuarantee \
maintainers/vision-mainnet:latest --private <private-key>
# Please replace <private-key> with the private key corresponding to the witness account used by your node.
# FullNode 节点:
docker run -itd \
-v "/data/mainnet:/data/vision" \
-p 7080:7080 \
-p 7081:7081 \
-p 7082:7082 \
-p 16666:16666 \
-p 60061:60061 \
-p 60071:60071 \
-p 60081:60081 \
--name vision-fullnode \
maintainers/vision-mainnet:latest
Keep the original external mount volume
When rerunning a container with a new image, be sure to keep the original external container hanging on the volume. Do not change it.
5. The upgrade is complete, please wait for the completion of the network-wide upgrade
Updated over 2 years ago