Skip to content
This repository has been archived by the owner on Jul 7, 2022. It is now read-only.

Commit

Permalink
updated documentation | dbBackup optional
Browse files Browse the repository at this point in the history
  • Loading branch information
ironoa committed Mar 30, 2021
1 parent 2736601 commit b7ba55d
Show file tree
Hide file tree
Showing 9 changed files with 81 additions and 84 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Expand Up @@ -10,5 +10,5 @@ validator_keyfile
validator_keyfile.pub
credentials.json
config/*
!config/main.template.json
!config/main.sample.json
!config/*template*
!config/*sample*
4 changes: 4 additions & 0 deletions GUIDE_ANSIBLE.md
Expand Up @@ -154,6 +154,10 @@ polkadot_restart_hour='*'
polkadot_restart_day='*'
polkadot_restart_month='*'
polkadot_restart_weekday='*'

# Optional: Restore the chain db from a .7z snapshot
polkadot_db_snapshot_url='https://ksm-rocksdb.polkashots.io/kusama-6658753.RocksDb.7z'
polkadot_db_snapshot_checksum='sha256:4f61a99e4b00acb335aff52f2383880d53b30617c0ae67ac47c611e7bf6971ff'
```

## Execution
Expand Down
2 changes: 1 addition & 1 deletion GUIDE_COMPLETE.md
Expand Up @@ -8,7 +8,7 @@ NodeJS, Yarn and Git installed.

Before using polkadot-secure-validator you need to have installed:

* NodeJS (we recommend using [nvm](https://github.com/nvm-sh/nvm))
* NodeJS v14 or above (we recommend using [nvm](https://github.com/nvm-sh/nvm))

* [Yarn](https://yarnpkg.com/lang/en/docs/install)

Expand Down
4 changes: 4 additions & 0 deletions ansible/inventory.sample
Expand Up @@ -74,3 +74,7 @@ polkadot_restart_hour='*'
polkadot_restart_day='*'
polkadot_restart_month='*'
polkadot_restart_weekday='*'

# Optional: Restore the chain db from a .7z snapshot
polkadot_db_snapshot_url='https://ksm-rocksdb.polkashots.io/kusama-6658753.RocksDb.7z'
polkadot_db_snapshot_checksum='sha256:4f61a99e4b00acb335aff52f2383880d53b30617c0ae67ac47c611e7bf6971ff'
50 changes: 11 additions & 39 deletions config/main.sample.json
@@ -1,22 +1,26 @@
{
"project": "w3f",
"polkadotBinary": {
"url": "https://github.com/w3f/polkadot/releases/download/v0.8.22/polkadot",
"checksum": "sha256:7bfe10a0e46385dfb488dcc05ecffbb3075dcbd1d469e44b67a0f5d870185a05"
"url": "https://github.com/paritytech/polkadot/releases/download/v0.8.29/polkadot",
"checksum": "sha256:0b27d0cb99ca60c08c78102a9d2f513d89dfec8dbd6fdeba8b952a420cdc9fd2"
},
"nodeExporter": {
"enabled": true,
"binary": {
"url": "https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz",
"checksum": "sha256:b2503fd932f85f4e5baf161268854bf5d22001869b84f00fd2d1f57b51b72424"
"url": "https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz",
"checksum": "sha256:3369b76cd2b0ba678b6d618deab320e565c3d93ccb5c2a0d5db51a53857768ae"
}
},
"polkadotRestart": {
"enabled": true,
"minute": "50",
"hour": "4,12,20"
},
"chain": "kusama",
"polkadotNetworkId": "ksmcc3",
"state": {
"project": "my_gcp_state_project"
},
"additionalFlags": "--grandpa-pause 0 0 --db-cache 512",
"validators": {
"telemetryUrl": "wss://my.private.telemetry.endpoint",
"loggingFilter": "sync=trace,afg=trace,babe=debug",
Expand All @@ -27,42 +31,10 @@
"count": 1,
"location": "ewr1",
"projectId": "my_packet_project",
"sshUser": "root",
"nodeName": "myNodeName",
"sshUser": "myName",
"image": "ubuntu_20_04"
}
]
},
"publicNodes": {
"telemetryUrl": "wss://my.private.telemetry.endpoint",
"loggingFilter": "babe=debug",
"nodes": [
{
"provider": "aws",
"machineType": "m4.large",
"count": 1,
"location": "eu-central-1",
"zone": "eu-central-1a",
"sshUser": "ubuntu",
"image": "focal-20.04"
},
{
"provider": "azure",
"machineType": "Standard_D2s_v3",
"count": 1,
"location": "brazilsouth",
"sshUser": "w3fadmin",
"image": "20.04-LTS"
},
{
"provider": "gcp",
"machineType": "n1-standard-2",
"count": 1,
"location": "us-east1",
"zone": "us-east1-b",
"projectId": "my_gcp_project",
"sshUser": "w3fadmin",
"image": "2004"
}
]
}
}
30 changes: 0 additions & 30 deletions config/main.template.json
Expand Up @@ -29,35 +29,5 @@
"sshUser": "root"
}
]
},
"publicNodes": {
"telemetryUrl": "<your-telemetry-endpoint>",
"loggingFilter": "babe=debug",
"nodes": [
{
"provider": "aws",
"machineType": "m4.large",
"count": 1,
"location": "<aws-server-location>",
"zone": "<aws-server-zone>",
"sshUser": "ubuntu"
},
{
"provider": "azure",
"machineType": "Standard_D2s_v3",
"count": 1,
"location": "<azure-server-location>",
"sshUser": "<whatever-azure-ssh-username-you-want>"
},
{
"provider": "gcp",
"machineType": "n1-standard-2",
"count": 1,
"location": "<gcp-server-location>",
"zone": "<gcp-server-zone>",
"projectId": "<gcp-project-id>",
"sshUser": "<whatever-gcp-ssh-username-you-want>"
}
]
}
}
45 changes: 45 additions & 0 deletions config/main.withBackup.sample.json
@@ -0,0 +1,45 @@
{
"project": "w3f",
"polkadotBinary": {
"url": "https://github.com/paritytech/polkadot/releases/download/v0.8.29/polkadot",
"checksum": "sha256:0b27d0cb99ca60c08c78102a9d2f513d89dfec8dbd6fdeba8b952a420cdc9fd2"
},
"nodeExporter": {
"enabled": true,
"binary": {
"url": "https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz",
"checksum": "sha256:3369b76cd2b0ba678b6d618deab320e565c3d93ccb5c2a0d5db51a53857768ae"
}
},
"polkadotRestart": {
"enabled": true,
"minute": "50",
"hour": "4,12,20"
},
"chain": "kusama",
"polkadotNetworkId": "ksmcc3",
"state": {
"project": "my_gcp_state_project"
},
"validators": {
"additionalFlags": "--unsafe-pruning --pruning 1000",
"dbSnapshot": {
"url": "https://ksm-rocksdb.polkashots.io/kusama-6658753.RocksDb.7z",
"checksum": "sha256:4f61a99e4b00acb335aff52f2383880d53b30617c0ae67ac47c611e7bf6971ff"
},
"telemetryUrl": "wss://my.private.telemetry.endpoint",
"loggingFilter": "sync=trace,afg=trace,babe=debug",
"nodes": [
{
"provider": "packet",
"machineType": "c1.small.x86",
"count": 1,
"location": "ewr1",
"projectId": "my_packet_project",
"nodeName": "myNodeName",
"sshUser": "myName",
"image": "ubuntu_20_04"
}
]
}
}
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "polkadot-secure-validator",
"version": "3.4.1",
"version": "3.4.2",
"main": "src/index.js",
"repository": "https://github.com/w3f/polkadot-secure-validator",
"author": "W3F Infrastructure Team <devops@web3.foundation>",
Expand Down
24 changes: 13 additions & 11 deletions src/lib/clients/ansible.js
Expand Up @@ -44,9 +44,6 @@ class Ansible {
const validatorLoggingFilter = this.config.validators.loggingFilter;
const polkadotAdditionalValidatorFlags = this.config.validators.additionalFlags;

const dbSnapshotUrl = this.config.validators.dbSnapshot.url;
const dbSnapshotChecksum = this.config.validators.dbSnapshot.checksum;

let publicNodes = [];
let publicTelemetryUrl = '';
let publicLoggingFilter='';
Expand Down Expand Up @@ -75,25 +72,25 @@ class Ansible {
validatorLoggingFilter,
publicLoggingFilter,

dbSnapshotUrl,
dbSnapshotChecksum,

buildDir,

polkadotAdditionalCommonFlags: this.config.additionalFlags,
polkadotAdditionalValidatorFlags,
polkadotAdditionalPublicFlags
polkadotAdditionalPublicFlags,

nginxUsername: nginxUsername,
nginxPassword: nginxPassword
};
if (this.config.nodeExporter && this.config.nodeExporter.enabled) {

if (this.config.nodeExporter?.enabled) {
data.nodeExporterEnabled = true;
data.nginxUsername = nginxUsername;
data.nginxPassword = nginxPassword;
data.nodeExporterBinaryUrl = this.config.nodeExporter.binary.url;
data.nodeExporterBinaryChecksum = this.config.nodeExporter.binary.checksum;
} else {
data.nodeExporterEnabled = false;
}
if (this.config.polkadotRestart && this.config.polkadotRestart.enabled) {

if (this.config.polkadotRestart?.enabled) {
data.polkadotRestartEnabled = true;
data.polkadotRestartMinute = this.config.polkadotRestart.minute || '*';
data.polkadotRestartHour = this.config.polkadotRestart.hour || '*';
Expand All @@ -104,6 +101,11 @@ class Ansible {
data.polkadotRestartEnabled = false;
}

if(this.config.validators.dbSnapshot?.url != undefined && this.config.validators.dbSnapshot?.checksum != undefined){
data.dbSnapshotUrl = this.config.validators.dbSnapshot.url;
data.dbSnapshotChecksum = this.config.validators.dbSnapshot.checksum;
}

tpl.create(origin, target, data);

return target;
Expand Down

0 comments on commit b7ba55d

Please sign in to comment.