97 lines
4.1 KiB
Markdown
97 lines
4.1 KiB
Markdown
# Validator Key Fix Applied
|
|
|
|
**Date**: $(date)
|
|
**Status**: ✅ **VALIDATOR KEYS REPLACED** | ⏳ **AWAITING BLOCK PRODUCTION**
|
|
|
|
---
|
|
|
|
## Critical Issue Found and Fixed
|
|
|
|
### Problem
|
|
Besu was using **node keys** (for P2P communication) from `/data/besu/key` instead of **validator keys** (for block signing) from `/keys/validators/validator-{N}/key.priv`.
|
|
|
|
This meant:
|
|
- ✅ Nodes could connect to each other (P2P working)
|
|
- ❌ But nodes couldn't produce blocks (wrong key for block signing)
|
|
- ❌ Node key addresses were NOT in the validator set
|
|
- ❌ Validator key addresses WERE in the genesis extraData but not being used
|
|
|
|
### Solution Applied
|
|
Replaced `/data/besu/key` on all validators with their validator keys:
|
|
|
|
1. **Backed up original node keys** to `/data/besu/key.node.backup`
|
|
2. **Copied validator keys** from `/keys/validators/validator-{N}/key.priv` to `/data/besu/key`
|
|
3. **Set correct ownership**: `chown besu:besu /data/besu/key`
|
|
4. **Restarted Besu services** to use new keys
|
|
5. **Verified addresses match**: All validator addresses now match between `/data/besu/key` and `/keys/validators/validator-{N}/address.txt`
|
|
6. **Updated enode URLs**: Collected new enode URLs and updated `static-nodes.json` and `permissions-nodes.toml`
|
|
|
|
---
|
|
|
|
## Changes Made
|
|
|
|
### Key Replacement
|
|
- ✅ VMID 1000: Validator 1 key copied to `/data/besu/key`
|
|
- ✅ VMID 1001: Validator 2 key copied to `/data/besu/key`
|
|
- ✅ VMID 1002: Validator 3 key copied to `/data/besu/key`
|
|
- ✅ VMID 1003: Validator 4 key copied to `/data/besu/key`
|
|
- ✅ VMID 1004: Validator 5 key copied to `/data/besu/key`
|
|
|
|
### Address Verification
|
|
All validators now have matching addresses:
|
|
- ✅ Validator 1: `0x43ea6615474ac886c78182af1acbbf84346f2e9c`
|
|
- ✅ Validator 2: `0x05db2d6b5584285cc03cd33017c0f8da32652583`
|
|
- ✅ Validator 3: `0x23e1139cc8359872f8f4ef0d8f01c20355ac5f4b`
|
|
- ✅ Validator 4: `0x231a55a8ae9946b5dd2dc81c4c07522df42fd3ed`
|
|
- ✅ Validator 5: `0xc0af7f9251dc57cfb84c192c1bab20f5e312acb3`
|
|
|
|
All addresses match genesis.json extraData ✅
|
|
|
|
### New Enode URLs
|
|
Validators now have new enode URLs (since keys changed):
|
|
- VMID 1000: `enode://774723cbec02d8889114291d325cad544b7269fbfa0aa5ce4cd486d1806a90dff8767aa541cdea343c1911cc780992d5322c7c54bbfc55666128c4b8f7ee0702@192.168.11.100:30303`
|
|
- VMID 1001: `enode://d29b70125da5d949e271e926ab0cbd5aa1f3f8aa9fe5fff2dd94f6a8509596f16c45be5c3a8aabdc525c778f00125349dbb82ddc66b0c769efc071e1a967c430@192.168.11.101:30303`
|
|
- VMID 1002: `enode://ccf01ee56d1524568fb0f61f9d8d4b02f1707667c68da307dd639e479ab7ea6eb13f01682862c071329329f71b8d1479813e02bf3a1e59d97bf2becff89fce6d@192.168.11.102:30303`
|
|
- VMID 1003: `enode://2582c3b991a49dec3aaa31ddfb80ada39309d1890d4e7566fd6b2921d48841e14ac519edb43b9434435c218160bfcbb61b27ec7c1bb10c67c7fcfa9da0ce8e8d@192.168.11.103:30303`
|
|
- VMID 1004: `enode://fae5b339389a6d13e6b5417e4c753ce936523069c352a433ccfda1ddc773608c4d636b5a856a18ed76b8a750df512cb441d39c5a16aa3cc2814f412ba94454ef@192.168.11.104:30303`
|
|
|
|
### Configuration Files Updated
|
|
- ✅ `static-nodes.json` updated on all validators with new validator enode URLs
|
|
- ✅ `permissions-nodes.toml` updated on all nodes with new validator enode URLs
|
|
|
|
---
|
|
|
|
## Expected Behavior
|
|
|
|
After this fix:
|
|
1. ✅ Validators should use validator keys for block signing
|
|
2. ✅ Validator addresses match genesis extraData
|
|
3. ✅ Besu should recognize validators as part of the validator set
|
|
4. ⏳ QBFT consensus should activate
|
|
5. ⏳ Blocks should start being produced (every 2 seconds per genesis config)
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ Validator keys in place (DONE)
|
|
2. ✅ Enode URLs updated (DONE)
|
|
3. ⏳ Monitor for block production
|
|
4. ⏳ Verify QBFT consensus activates
|
|
5. ⏳ Check that blocks are produced every ~2 seconds
|
|
|
|
---
|
|
|
|
## Important Notes
|
|
|
|
- **Node keys backed up**: Original node keys saved to `/data/besu/key.node.backup` on all validators
|
|
- **Enode URLs changed**: Since validator keys replaced node keys, enode URLs changed
|
|
- **Sentry nodes unchanged**: Sentries still use their original node keys (not validator keys)
|
|
- **Network should stabilize**: Nodes need time to reconnect with new enode URLs
|
|
|
|
---
|
|
|
|
**Last Updated**: $(date)
|
|
**Status**: ✅ Fix applied, monitoring for block production
|
|
|