support for snapshots recovery

This commit is contained in:
tomg10
2024-03-21 16:01:41 +01:00
parent 97a71926d7
commit 281068a752
4 changed files with 21 additions and 2 deletions

View File

@ -87,6 +87,7 @@ Basic auth secret can be generated by `htpasswd` and `sed` for interpolation:
`ansible-galaxy collection install community.general`
2. Prepare the latest database backup on your host. you can download it from our public GCS buckets:
Skip this step if you are recovering from a snapshot!
* [Era Mainnet latest dump](https://storage.googleapis.com/zksync-era-mainnet-external-node-backups/external_node_latest.pgdump)
* [Era Sepolia Testnet latest dump](https://storage.googleapis.com/zksync-era-boojnet-external-node-snapshots/external_node_latest.pgdump)
@ -95,6 +96,7 @@ Basic auth secret can be generated by `htpasswd` and `sed` for interpolation:
Downloaded dump file should be placed into `{{ storage_directory }}/pg_backups` directory (`/usr/src/en/pg_backups` by default)
3. **OPTIONAL**: If you already have running node, you can copy its tree and state directory to a new host's `{{ storage_directory }}/db`. (`/usr/src/en/db` by default)
Skip this step if you are recovering from a snapshot!
**Keep in mind that tree and state should be older than PostgreSQL database backup.**
@ -110,6 +112,14 @@ vm_auth_password
5. Connect to your host, and see status of `postgres` container. It can take a lot of time before PostgreSQL database backup will be restored (hours to days, depending on your disk throughput and IOPS), after which PostgreSQL server will be ready for use. Once `postgres` becomes "healthy", `external_node` runs automatically.
## Snapshots Recovery
example config enabling recovery from a snapshot
```yaml
- enable_snapshots_recovery: true
- snapshots_bucket_base_url: "zksync-era-mainnet-external-node-snapshots"
```
## Example Playbook
```yaml
@ -125,7 +135,6 @@ vm_auth_password
l2_chain_id: "324"
l1_chain_id: "1"
enable_tls: false
partner_id: matterlabs
vars_files:
- secrets/mainnet_secrets.yml
roles: