refactor: Reorganize validator architecture for distributed deployment

BREAKING CHANGE: Complete restructuring to support multi-network distributed validator deployment

Architecture Changes:
- Changed from shared single-machine to distributed multi-machine deployment
- 8 separate machines for 8 validators (beta testnet)
- Each validator builds own SDK and frontend locally
- Sequential bootnode connection (V2→V1, V3→V2, etc.)

New Structure:
- Multi-network support: beta_testnet, staging, mainnet
- Beta testnet: 8 validators with complete keys
- Staging: 20 validator slots (validator1 ready)
- Mainnet: 100 validator slots (validator1 ready)

Setup Script v3.0.0:
- Automatic dependency detection and installation
- Builds as actual user (fixes permission issues)
- Interactive bootnode configuration for validators > 1
- Systemd service generation per validator per network
- Nginx frontend deployment per validator

Usage:
sudo ./setup.sh <network> <validator_number>
Example: sudo ./setup.sh beta_testnet 8

Removed:
- scripts/ directory (helper scripts for shared deployment)
- validators/ directory (moved to beta_testnet/validators/)

Added:
- beta_testnet/ (8 validators with keys)
- staging/ (20 validator structure)
- mainnet/ (100 validator structure)
- Multi-network chain-specs directories
This commit is contained in:
2025-11-06 08:24:12 +03:00
parent 046efcc17d
commit f08f0017d1
16 changed files with 341 additions and 371 deletions
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
# ========================================
# Validator 1 - Real Beta Testnet Keys
# ========================================
# Generated from actual running beta testnet
# Validator Name: Validator-beta-1 (Bootnode)
# RPC Port: 9944
# P2P Port: 30333
# BABE Keys (Block Authorship)
export BABE_SEED="state open glance maze canyon cable cargo parent blind mystery cheese foot"
export BABE_PUBLIC_KEY="0x9e7490cfe0dd32860282dd4e74b5c40c9237fb6e478066c334c931742308e008"
# GRANDPA Keys (Finality)
export GRAN_SEED="kick surge tube arrange enforce witness mouse spray disease inquiry inch stamp"
export GRAN_PUBLIC_KEY="0x16da26f049b37e9b03d14439457ac164f14f5174b1f10ddab2e0dc3ef7903675"
# PARA Keys (Parachain)
export PARA_SEED="march cancel try improve lunch phrase rebuild initial theme snap giant dry"
export PARA_PUBLIC_KEY="0xc62b764ea84411f550818a41a6abacddb9388cefbc22412f2bee335e9709a717"
# ASGN Keys (Assignment)
export ASGN_SEED="nephew dignity smoke sunny access soon breeze inch dove park fault museum"
export ASGN_PUBLIC_KEY="0xa4c75d886439ae7d764cc600051af1d2128d2a8a1cdf3d642eda76824ccaf518"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="vicious mixed hour wage clog yellow elbow zoo clock better rhythm diagram"
export AUDI_PUBLIC_KEY="0x66e821a23729878d8b7d04c69ec0fed9b0f5facae48917c1b83a4ad15cf00720"
# BEEF Keys (BEEFY)
export BEEF_SEED="practice cable fog idea rigid hybrid digital snack setup right advance romance"
export BEEF_PUBLIC_KEY="0x0281ba169080b261add0cd22bfb47477eddab854caa17423b12ddeed6504b04aef"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-1"
export RPC_PORT=9944
export P2P_PORT=30333
export WS_PORT=9944
export PROMETHEUS_PORT=9615
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 2 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-2
# RPC Port: 9945
# P2P Port: 30334
# BABE Keys (Block Authorship)
export BABE_SEED="nature pink baby physical hotel dirt soon meadow coin employ enroll remind"
export BABE_PUBLIC_KEY="0xbef3df377441fe6ad64b81e84c8d201bc5c0bc2bb2e1a85f1e84927c62c5572b"
# GRANDPA Keys (Finality)
export GRAN_SEED="rent little raven auction error goat error water twice defy hard slab"
export GRAN_PUBLIC_KEY="0x806cfed7a6d025bc2e7a195bcd5ac50317f824ce6971cf30f95c6a621d6e55bf"
# PARA Keys (Parachain)
export PARA_SEED="mystery rescue elbow update effort path sleep rather deer undo school size"
export PARA_PUBLIC_KEY="0xfca6fd2976ae3ea397b15cdc5b0b044fe90a2094328edfa013db80cf04ba1a67"
# ASGN Keys (Assignment)
export ASGN_SEED="curious step vast scan couch episode maid trap crazy swap junior slab"
export ASGN_PUBLIC_KEY="0xfaad0803c450bf084ca3035bd1d69481db58444b32dd0eaa55de69a5314b0559"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="race frequent goose clean labor differ credit lawn lab risk ocean black"
export AUDI_PUBLIC_KEY="0x7aeed77ed10108ead6c58dd45dd987aba28ea6e9cdf90f8893112c08bb0d4251"
# BEEF Keys (BEEFY)
export BEEF_SEED="industry flush stairs zoo world width dentist special life retire suffer myth"
export BEEF_PUBLIC_KEY="0x020177ca58f45047c737e6e02adba1ac3520eb881ea38ad39751d32d7c89d5efaa"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-2"
export RPC_PORT=9945
export P2P_PORT=30334
export WS_PORT=9945
export PROMETHEUS_PORT=9616
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 3 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-3
# RPC Port: 9946
# P2P Port: 30335
# BABE Keys (Block Authorship)
export BABE_SEED="cycle judge gentle cute spirit crunch build flee popular cube wagon void"
export BABE_PUBLIC_KEY="0x2825cb78cb345b078a189e6a280916f7771df991113e587b9a0694df33abe909"
# GRANDPA Keys (Finality)
export GRAN_SEED="prefer sugar friend wagon about love blouse coast table future lonely slice"
export GRAN_PUBLIC_KEY="0xcf2862bbfabf42dfc361e2fd0ee860e55e80f093ad767679d9687e822a04c7a4"
# PARA Keys (Parachain)
export PARA_SEED="where reject camp tail clock plate library apple draw once float ranch"
export PARA_PUBLIC_KEY="0x4cdb404f66b7409a6e7fee2eab92aa738c8cbd37d1343b0e0818deb4637d3e0e"
# ASGN Keys (Assignment)
export ASGN_SEED="craft hill receive alarm inner use cereal assume boost castle enhance culture"
export ASGN_PUBLIC_KEY="0xf054e7834c042696fbbf56d17247924836a6957cc6ec8366455c9b459b51fa4d"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="fatal hazard federal cushion cousin spend weapon script boil vicious delay fire"
export AUDI_PUBLIC_KEY="0xd2c4ffc56fd8504f5fde789d3ba895f65c0c7200f68cfe789a4316e68277e72f"
# BEEF Keys (BEEFY)
export BEEF_SEED="kiss foil assist bind duty concert van fold reveal weird design rescue"
export BEEF_PUBLIC_KEY="0x023792b160a004c98d56afc29843ee9aa567a80129794373df9b3f4d883cfd4dfc"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-3"
export RPC_PORT=9946
export P2P_PORT=30335
export WS_PORT=9946
export PROMETHEUS_PORT=9617
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 4 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-4
# RPC Port: 9947
# P2P Port: 30336
# BABE Keys (Block Authorship)
export BABE_SEED="evoke second recipe turn salad warfare mix sense cry impact demise avocado"
export BABE_PUBLIC_KEY="0x9236bf5cde2e1ce44cd2eceece98b876750cb39a8887bcc1d7c0b72c186b4f6c"
# GRANDPA Keys (Finality)
export GRAN_SEED="sea resemble monitor fetch quit cotton amused settle limit venue frequent electric"
export GRAN_PUBLIC_KEY="0x4d7787f6d6b189b64286efdf524a5d73be1eaf4a4b1d245529090b698285a0d4"
# PARA Keys (Parachain)
export PARA_SEED="rubber decorate coyote grass solar butter melt ginger smile flush dash monitor"
export PARA_PUBLIC_KEY="0xb27fea579fdc321ebac8975717c17a7b4036bb06549c41ac803c888b9104a256"
# ASGN Keys (Assignment)
export ASGN_SEED="tomato glad flower miracle duty hundred filter gain clay butter twist chronic"
export ASGN_PUBLIC_KEY="0x9ef9bf97dfc3d22cd4e17a331165afbf0a562a9a86e776592c64ba87c4162d0a"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="group trial problem lesson angle grief agent harvest pattern identify approve security"
export AUDI_PUBLIC_KEY="0x6abffb32a990117c3d8c74f090b287d5888af97b61a3964a2c54cddc614e4d71"
# BEEF Keys (BEEFY)
export BEEF_SEED="ridge way rhythm renew mix city element obtain prepare glass exist hope"
export BEEF_PUBLIC_KEY="0x02ca2cac4bd7d21c1c3f7b256233827d8546471d83e1eeb37408767adc66bac7d0"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-4"
export RPC_PORT=9947
export P2P_PORT=30336
export WS_PORT=9947
export PROMETHEUS_PORT=9618
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 5 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-5
# RPC Port: 9948
# P2P Port: 30337
# BABE Keys (Block Authorship)
export BABE_SEED="clap screen soap once near guilt accuse hamster knife drink purity skull"
export BABE_PUBLIC_KEY="0x74270a49be316a233279af6480ac8de5479bc45426e884fbdb50c6247e62d44b"
# GRANDPA Keys (Finality)
export GRAN_SEED="innocent fix endless engine yellow smoke venture answer before dentist trend pulse"
export GRAN_PUBLIC_KEY="0x9ae1139d89f5ae5e9a56a7a7d1375c49b742315c25712128fad16c841da2dba9"
# PARA Keys (Parachain)
export PARA_SEED="peanut catch embody spy orbit design occur series cricket ski ketchup impose"
export PARA_PUBLIC_KEY="0xf49d1b0ebff5fbf31cba037085552fd78e4218a19045cdd5f2e1f73840156a75"
# ASGN Keys (Assignment)
export ASGN_SEED="orchard globe member blue install rude cement luxury grant cause exit expect"
export ASGN_PUBLIC_KEY="0xb8f786ac5db52f3713ca1ff58f8d708332f2c0556d55a62195a52d4ca1bb2e7e"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="pistol focus above decade weekend matter claw drift glad worry quarter slice"
export AUDI_PUBLIC_KEY="0x3e1c338ba320b747769d2d40ece3fc3da306b90096ab381bad1be6bc5a813d57"
# BEEF Keys (BEEFY)
export BEEF_SEED="mother model label zoo mouse detail cost pet umbrella rate proud unable"
export BEEF_PUBLIC_KEY="0x033cae08ede6b1c3597dfce1f38c5ceddc4b69d045de4b51f17e2e8fce1cda27ca"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-5"
export RPC_PORT=9948
export P2P_PORT=30337
export WS_PORT=9948
export PROMETHEUS_PORT=9619
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 6 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-6
# RPC Port: 9949
# P2P Port: 30338
# BABE Keys (Block Authorship)
export BABE_SEED="tired youth educate hover cross plastic gate giraffe gorilla rescue section idle"
export BABE_PUBLIC_KEY="0xf4fc5deb49aa9178f622e711a9d453d967507231a6e2d62d726ce7279316970a"
# GRANDPA Keys (Finality)
export GRAN_SEED="hedgehog isolate jump safe march fame year mosquito smooth lunch portion solution"
export GRAN_PUBLIC_KEY="0x7eb7cfb7ac00f11ed7f63697cdb5d0562bba6b90c1901fa00365db075bab05e9"
# PARA Keys (Parachain)
export PARA_SEED="industry thank parade tiger reunion usual kidney high beef divide jaguar smile"
export PARA_PUBLIC_KEY="0x5a3fa17b77d3afc3dd1e0b7bf1d2faf95ba14eb2ee370476e5f2f78a8175a957"
# ASGN Keys (Assignment)
export ASGN_SEED="cluster outdoor denial disorder donor rich senior glance display barrel theory pupil"
export ASGN_PUBLIC_KEY="0x4e232e6efb3be2c4f638fac57330f606fc54bbc3b8d490a5bb520c67c0d7f248"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="supreme warfare trust assault where model grain advice broccoli nothing key embody"
export AUDI_PUBLIC_KEY="0x244d0ea5c6b4a4f4e23912aab77498689e9f355edb63a82ebfc9b9bb08176f0d"
# BEEF Keys (BEEFY)
export BEEF_SEED="cloth lock grocery actor trend patch grace salad fun mass plate notice"
export BEEF_PUBLIC_KEY="0x0338f2ef200a5048b35fcfae936a2dd5dffdabc77eb61d707de35f9eba8b3d37e3"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-6"
export RPC_PORT=9949
export P2P_PORT=30338
export WS_PORT=9949
export PROMETHEUS_PORT=9620
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 7 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-7
# RPC Port: 9950
# P2P Port: 30339
# BABE Keys (Block Authorship)
export BABE_SEED="pave mixed faith vivid nice trust exercise public kind afford fury army"
export BABE_PUBLIC_KEY="0x6898b08fe0c6dfe79750598765efe06cbfaef01da9b110599d05a5b4824ddf38"
# GRANDPA Keys (Finality)
export GRAN_SEED="cliff entire pause adjust parent tissue enhance weasel east pink art meat"
export GRAN_PUBLIC_KEY="0x57f18c1620086209773c6d8243af3eae873a63cda0c64cc3bcb02ff3ee41a863"
# PARA Keys (Parachain)
export PARA_SEED="return diet teach excess under warm veteran pride exotic talk exhaust mobile"
export PARA_PUBLIC_KEY="0x1e0ee1b33614379148cd69bb79fb2d21c98a8837bab912e96b72e5a2bbb46d01"
# ASGN Keys (Assignment)
export ASGN_SEED="gown differ atom rebuild observe museum word nest upset large boring exact"
export ASGN_PUBLIC_KEY="0x48f66d8b963b576da719b2350a0242c624b720439ed764c206107647d8a6d872"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="artwork town pyramid stumble sugar neither clutch void soon wine slab slide"
export AUDI_PUBLIC_KEY="0xe462edbb26c14d1772570ce751ace21b271b0f0f472fc434c84f708b9bb42309"
# BEEF Keys (BEEFY)
export BEEF_SEED="curious abstract home session famous canvas spin forest wing appear warm install"
export BEEF_PUBLIC_KEY="0x03e783496d6ff583a60ec44ef9fe7ea375c9e31841a1f7fe48a8eaec0093826d78"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-7"
export RPC_PORT=9950
export P2P_PORT=30339
export WS_PORT=9950
export PROMETHEUS_PORT=9621
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# ========================================
# Validator 8 - Real Beta Testnet Keys
# ========================================
# Validator Name: Validator-beta-8
# RPC Port: 9951
# P2P Port: 30340
# BABE Keys (Block Authorship)
export BABE_SEED="clinic father over industry blame coast trophy walnut panel giant barely aunt"
export BABE_PUBLIC_KEY="0x520e1de89062667c8980666fd8cc83914d43ce5dd69fa4db2bec7a23bec16e61"
# GRANDPA Keys (Finality)
export GRAN_SEED="invite mule belt fix risk piece grant benefit type park best aisle"
export GRAN_PUBLIC_KEY="0x7bab34ff06d0e24da37e861bc9683381934e390febe05cec2060b5d4b9c8d746"
# PARA Keys (Parachain)
export PARA_SEED="close render flip cable sail drop job drum kiss brief corn wild"
export PARA_PUBLIC_KEY="0x4e169330a7089ffc0be8f85edb9b5c35556bee1a0111f14dc7ee00cd43478232"
# ASGN Keys (Assignment)
export ASGN_SEED="pipe crack swing minimum supply divide tenant solution foil prevent depend wedding"
export ASGN_PUBLIC_KEY="0xdc8556675a56246d3227c4544e58a602df65b154e09086c0b2b0aa879dfab249"
# AUDI Keys (Authority Discovery)
export AUDI_SEED="faint tunnel east jeans raise bundle grief unaware gospel solar dish number"
export AUDI_PUBLIC_KEY="0x1ec224f7441c0f95d817ccbf0cce3d1cdbd0ffb0f8169654672570dbd6e66608"
# BEEF Keys (BEEFY)
export BEEF_SEED="live impact struggle furnace sentence sail true spin waste museum symbol able"
export BEEF_PUBLIC_KEY="0x030bd33780a8a632630c3dd75624c4e6d1ff3fdfa58d88ddebe087e237cc0cd11d"
# Validator Configuration
export VALIDATOR_NAME="Validator-beta-8"
export RPC_PORT=9951
export P2P_PORT=30340
export WS_PORT=9951
export PROMETHEUS_PORT=9622