From 566ae0a95bbfdaede045f242a5071185b94ec665 Mon Sep 17 00:00:00 2001
From: liangping <18786721@qq.com>
Date: Tue, 22 Mar 2022 20:32:32 +0800
Subject: [PATCH] add state sync
---
src/chains/README.md | 2 +
src/chains/mainnet/akash.json | 1 +
src/chains/mainnet/cosmos.json | 4 +-
src/chains/mainnet/iris.json | 2 +
src/lang/locales/en.json | 1 +
src/navigation/vertical/index.js | 5 +
src/router/index.js | 22 ++--
src/views/StateSync.vue | 170 +++++++++++++++++++++++++++++++
8 files changed, 198 insertions(+), 9 deletions(-)
create mode 100644 src/views/StateSync.vue
diff --git a/src/chains/README.md b/src/chains/README.md
index 6013f393..fd241dc6 100644
--- a/src/chains/README.md
+++ b/src/chains/README.md
@@ -12,6 +12,7 @@
{
"chain_name": "cosmos",
"api": ["https://cosmos.api.ping.pub"],
+ "rpc": ["https://cosmos.rpc.ping.pub:443","http://your-host:26657"]
"sdk_version": "0.42.6",
"coin_type": "118",
"min_tx_fee": "800",
@@ -28,6 +29,7 @@
```
- **chain_name** the name to identify the chain on ping.pub
- **api** the rest api endpoint.(make sure that CORS is enabled: `Allow-Control-Allow-Origin: *`)
+- **rpc** the rpc endpoint, make sure that the port is added.
- **assets** Native Assets on blockchain.
# Test
diff --git a/src/chains/mainnet/akash.json b/src/chains/mainnet/akash.json
index 89ce03a8..1d6d7ff8 100644
--- a/src/chains/mainnet/akash.json
+++ b/src/chains/mainnet/akash.json
@@ -1,6 +1,7 @@
{
"chain_name": "akash-network",
"api": ["https://akash.api.ping.pub"],
+ "rpc": ["http://rpc.akash.forbole.com:80", "http://akashsentry01.skynetvalidators.com:26657"],
"sdk_version": "0.41.3",
"coin_type": "118",
"min_tx_fee": "8000",
diff --git a/src/chains/mainnet/cosmos.json b/src/chains/mainnet/cosmos.json
index ce3ba6a2..48bcf24e 100644
--- a/src/chains/mainnet/cosmos.json
+++ b/src/chains/mainnet/cosmos.json
@@ -1,7 +1,9 @@
{
"chain_name": "cosmos",
"coingecko": "cosmos",
- "api": ["https://cosmos.api.ping.pub", "https://lcd-cosmoshub.blockapsis.com", "https://cosmoshub.stakesystems.io"],
+ "api": ["https://cosmos.api.ping.pub", "https://lcd-cosmoshub.blockapsis.com"],
+ "rpc": ["http://cosmos.rpc.ping.pub:26657", "https://cosmoshub.validator.network:443"],
+ "state_sync_interval": "1000",
"sdk_version": "0.44.3",
"coin_type": "118",
"min_tx_fee": "800",
diff --git a/src/chains/mainnet/iris.json b/src/chains/mainnet/iris.json
index e17bb870..03d59bbb 100644
--- a/src/chains/mainnet/iris.json
+++ b/src/chains/mainnet/iris.json
@@ -1,6 +1,8 @@
{
"chain_name": "iris-network",
"api": "https://iris.api.ping.pub",
+ "rpc": ["http://34.82.96.8:26657","http://34.77.68.145:26657"],
+ "state_sync_interval": "400",
"sdk_version": "0.42.4",
"coin_type": "118",
"min_tx_fee": "40000",
diff --git a/src/lang/locales/en.json b/src/lang/locales/en.json
index 14702c57..05aee2e2 100644
--- a/src/lang/locales/en.json
+++ b/src/lang/locales/en.json
@@ -39,6 +39,7 @@
"blocks": "Blocks",
"blockchains": "Blockchains",
"uptime": "Uptime",
+ "statesync": "State Sync",
"trade": "Trade",
"gravity": "Gravity(WIP)",
diff --git a/src/navigation/vertical/index.js b/src/navigation/vertical/index.js
index d53ad4e9..d1a06ea3 100644
--- a/src/navigation/vertical/index.js
+++ b/src/navigation/vertical/index.js
@@ -28,6 +28,11 @@ const modules = [
title: 'uptime',
route: 'uptime',
},
+ {
+ scope: 'normal',
+ title: 'statesync',
+ route: 'statesync',
+ },
{
scope: 'cos-mos',
title: 'gravity',
diff --git a/src/router/index.js b/src/router/index.js
index a7df74b6..6bd28144 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -117,6 +117,20 @@ const router = new VueRouter({
],
},
},
+ {
+ path: '/:chain/statesync',
+ name: 'statesync',
+ component: () => import('@/views/StateSync.vue'),
+ meta: {
+ pageTitle: 'State Sync',
+ breadcrumb: [
+ {
+ text: 'State Synchronization',
+ active: true,
+ },
+ ],
+ },
+ },
{
path: '/:chain/uptime',
name: 'uptime',
@@ -317,14 +331,6 @@ const router = new VueRouter({
},
},
// common modules
- {
- path: '/user/login',
- name: 'login',
- component: () => import('@/views/Login.vue'),
- meta: {
- layout: 'full',
- },
- },
{
path: '/error/error-404',
name: 'error-404',
diff --git a/src/views/StateSync.vue b/src/views/StateSync.vue
new file mode 100644
index 00000000..e4e94e54
--- /dev/null
+++ b/src/views/StateSync.vue
@@ -0,0 +1,170 @@
+
+
+
+
+ Starting New Node From State Sync
+ WIP
+
+
+ 1. What's State Sync?
+ The Tendermint Core 0.34 release includes support for state sync, which allows a new node to join a network by fetching a snapshot of the application state at a recent height instead of fetching and replaying all historical blocks. This can reduce the time needed to sync with the network from days to minutes.
+ Click here for more infomation.
+
+ 2. How to use it?
+ We can configure Tendermint to use state sync in $DAEMON_HOME/config/config.toml
, then start your daemon.
+
+
+
+
+
+
+ Enable Snapshot For State Sync
+
+ To make state sync works, We need at least 2 available RPC servers which enabled snapshot. You can configure in $DAEMON_HOME/config/app.toml
,
+ and don't forget to share your RPC server Here
+
+
+
+
+
+