mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 10:27:59 +00:00
Introduce flag to enable sentry nodes to participate in grandpa gossip (#3018)
Given the following situation: A validator 'A' is not supposed to be connected to the public internet to protect it from e.g. a DoS attack. Instead it connects to a sentry node 'sentry-A' which connects to the public internet. Validator 'B' can reach validator 'A' via sentry node 'sentry-A' and vice versa. A sentry node needs to participate in the grandpa gossip without becoming a validator itself in order to forward these message to its validator. This commit adds a new command line flag (`--grandpa-voter`) forcing a node to participate in the grandpa voting process even though no `--key` was specified. Due to the fact that it does not have a key, it does not become a validator in the network. In order to simulate the above situation this commit also adds a Docker Compose file (`scripts/sentry-node/docker-compose.yml`) with further documentation.
This commit is contained in:
@@ -125,7 +125,7 @@ construct_service_factory! {
|
||||
};
|
||||
|
||||
match config.local_key {
|
||||
None => {
|
||||
None if !service.config.grandpa_voter => {
|
||||
service.spawn_task(Box::new(grandpa::run_grandpa_observer(
|
||||
config,
|
||||
link_half,
|
||||
@@ -133,7 +133,8 @@ construct_service_factory! {
|
||||
service.on_exit(),
|
||||
)?));
|
||||
},
|
||||
Some(_) => {
|
||||
// Either config.local_key is set, or user forced voter service via `--grandpa-voter` flag.
|
||||
_ => {
|
||||
let telemetry_on_connect = TelemetryOnConnect {
|
||||
telemetry_connection_sinks: service.telemetry_on_connect_stream(),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user