Skip to content

Commit 8da9ce3

Browse files
committed
Update README
1 parent c4c3eb9 commit 8da9ce3

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Shutter Dappnode Package
2+
3+
This package runs a **Shutter Keyper**, as well as its corresponding **Shutter Chain** node, along with a **metrics service** to monitor the node's performance and a **PostgreSQL database** to store the Keyper's state.
4+
5+
### Services
6+
7+
This package includes the following services:
8+
9+
- **Shutter Keyper (`shutter`)**:
10+
11+
- Shutter provides an MEV protection system for rollups. It prevents frontrunning and improves censorship resistance using a threshold encryption mechanism.
12+
13+
- There is a supervisor daemon that first ensures all the initialization and configuration processes are completed and then it starts the `chain` process. Once the `chain` process is healthy, the `keyper` is started, too. To do all this, the supervisor runs the scripts contained in `/usr/local/bin`, following this order: `configure.sh``run_chain.sh``run_keyper.sh`.
14+
15+
- Configuration files for Shutter are generated and managed in `/keyper/config` and `/chain/config`.
16+
17+
- **PostgreSQL Database (`db`)**:
18+
19+
- The database stores the state of the Shutter Keyper and is initialized using the `entrypoint.sh` script.
20+
21+
- Data is persisted in the `db_data` volume, which maps to `/var/lib/postgresql/data`.
22+
23+
- **Metrics Service (`metrics`)**:
24+
25+
- Uses VictoriaMetrics to send performance metrics to a remote Pushgateway.
26+
27+
- Configuration is handled through templates in `/config/gnosis/`, and the main config file (`vmagent.yml`) is dynamically generated based on environment variables.
28+
29+
### Configuration
30+
31+
The setup wizard provides options for users to configure the package, but all fields except `KEYPER_NAME` are optional because they can be included via a config file that is restored through a backup. This allows users to manage their configuration flexibly, either through the wizard or by restoring pre-configured settings.
32+
33+
### Script Integration
34+
35+
The `dvt_lsd_tools.sh` script is sourced from the `staker-package-scripts` repository. This script is downloaded during the Docker build process using the release version specified in the `STAKER_SCRIPTS_VERSION` argument. Once downloaded, it is placed in `/etc/profile.d/`, where it can be used to manage staking-related processes within the package. In order to use it in the scripts, the profile is sourced (`. /etc/profile`).
36+
37+
### Upstream Repository
38+
39+
Currently, there is no upstream repository for this package. The existing release tags for the Shutter components do not correspond directly to Docker image tags, which is why an official upstream repo has not been configured yet. Once the release tags align with the Docker image tags, this can be integrated to automate updates and version tracking for the package.

shutter/supervisord.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ stderr_logfile_maxbytes = 0
3030
[program:chain]
3131
command = run_chain.sh
3232
priority = 2
33-
autostart = false
33+
autostart = false # Only started after configuration process is complete
3434
autorestart = true
3535
stdout_logfile = /dev/stdout
3636
stdout_logfile_maxbytes = 0
@@ -40,7 +40,7 @@ stderr_logfile_maxbytes = 0
4040
[program:keyper]
4141
command = run_keyper.sh
4242
priority = 3
43-
autostart = false
43+
autostart = false # Only started after chain is healthy
4444
autorestart = true
4545
stdout_logfile = /dev/stdout
4646
stdout_logfile_maxbytes = 0

0 commit comments

Comments
 (0)