allValidatorsKeys.pem bundle. mxnode automates the file distribution and per-node config edits.
Primary install
~/VALIDATOR_KEYS/allValidatorsKeys.pem. Drop it there before installing.
What mxnode does:
- Builds the node binary once.
- For each of the four nodes (shards 0/1/2/metachain):
- Copies
allValidatorsKeys.pemto~/elrond-nodes/node-{i}/config/with mode0600. - Stamps
Preferences.RedundancyLevel = 0. - Stamps
Preferences.DestinationShardAsObserver = "<shard>". - Enables
[DbLookupExtensions] Enabled = true.
- Copies
- Writes 4 systemd units and records everything in
state.toml.
Backup install
Same command, one extra flag:RedundancyLevel = 1 on every node. The backup observes the network alongside the primary and only signs when mx-chain-go’s redundancy logic detects the primary has gone silent.
For a backup-of-backup chain, increase the level:
--backup with no value defaults to 1 — the common case.
Concepts
Explicit keys file path
If your bundle isn’t at the default location (e.g. mounted from a vault):File permissions
Per-node copies are written with mode0600 (owner read/write only). The owner is the custom_user from config.toml (auto-detected to your login user during init). No other user on the box can read the keys.
Verifying
After install, sanity-check each node:--backup install, RedundancyLevel reads 1 (or your chosen N) instead.
Adding nodes later
mxnode add-nodes reuses the existing allValidatorsKeys.pem from node-0 automatically — no --keys-file needed:
mxnode cleanup --yes --execute and reinstall.
Observer keys
Plain observer installs ship novalidatorKey.pem. The mx-chain-go binary generates one on first start when config/ has none, so the observer comes up with a throwaway key without any operator action.
For a stable observer identity (e.g. to populate Preferences.Identity), generate a key pair manually with mxnode keygen and drop the resulting validatorKey.pem into the workdir’s config/ before starting the node. See operations.
Configuration knobs
The relevant per-node fields, all stamped intoprefs.toml automatically:
Operators who need other prefs can layer overrides via
[overrides.prefs] in config.toml — see configuration.
