0

Trying to create a global private cluster from genesis and can't get a second or third vote-account prepared in order to have a second and third validator vote on the cluster. This is from the second validator. The vote account was created...seeded with the .027 sol rent-exempt amount at creation. I can't delegate SOL to this vote account because the root slot doesn't exist. Here is the output of the vote-account:

solana vote-account vote-keypair.json
Account Balance: 0.0270744 SOL
Validator Identity: +++
Vote Authority: {69: "+++"}
Withdraw Authority: +++
Credits: 0
Commission: 100%
Root Slot: ~
Recent Timestamp: 1970-01-01T00:00:00Z from slot 0

My Genesis script:

solana-genesis \
        --enable-warmup-epochs \
        --bootstrap-validator ~/bootstrap-validator-keypair.json ~/bootstrap-vote-keypair.json ~/bootstrap-stake-keypair.json \
        --bootstrap-validator-lamports 5000000000000 \
        --bootstrap-validator-stake-lamports 5000000000000 \
        --faucet-lamports 1000000000000000 \
        --faucet-pubkey ~/faucet-keypair.json \
        --ledger ~/ledger1-16-1/ \
        --cluster-type development \
        --hashes-per-tick 6000 \

Output from genesis:

Creation time: 2023-06-22T11:16:44+00:00
Cluster type: Development
Genesis hash: +++
Shred version: +++
Ticks per slot: 64
Hashes per tick: Some(6000)
Target tick duration: 6.25ms
Slots per epoch: 8192
Warmup epochs: enabled
Slots per year: 78892314.984
Inflation { initial: 0.08, terminal: 0.015, taper: 0.15, foundation: 0.05, foundation_term: 7.0, __unused: 0.0 }
Rent { lamports_per_byte_year: 3480, exemption_threshold: 2.0, burn_percent: 50 }
FeeRateGovernor { lamports_per_signature: 9500, target_lamports_per_signature: 10000, target_signatures_per_slot: 20000, min_lamports_per_signature: 5000, max_lamports_per_signature: 100000, burn_percent: 50 }
Capitalization: 501000000 SOL in 581 accounts
Native instruction processors: []
Rewards pool: {}

Bootstrap validator start script (id +++):

exec solana-validator \
        --full-rpc-api \
        --gossip-host +++\
        --gossip-port 8000 \
        --identity ~/bootstrap-validator-keypair.json \
        --ledger ~/ledger1-16-1/ \
        --rpc-faucet-address +++:9900 \
        --rpc-port 8899 \
        --vote-account bootstrap-vote-keypair.json \
        --snapshot-interval-slots 300 \
        --full-snapshot-interval-slots 3000 \
        --expected-shred-version 52460 \
        --expected-genesis-hash +++ \
        --no-wait-for-vote-to-start-leader \
        --rpc-bind-address +++ \
        --dynamic-port-range 8000-10000 \

Validator 1 start script:

exec solana-validator \
        --identity ~/validator-keypair.json \
        --ledger ~/ledger1-16-1 \
        --vote-account ~/vote-keypair.json \
        --snapshot-interval-slots 300 \
        --full-snapshot-interval-slots 3000 \
        --expected-shred-version 52460 \
        --expected-genesis-hash +++ \
        --dynamic-port-range 8000-10000 \
        --entrypoint +++:8000 \
        --check-vote-account http://+++:8899 \
        --full-rpc-api \
        --rpc-port 8899 \
        --rpc-bind-address +++ \
        --gossip-host +++ \
        --gossip-port 8000 \
        --known-validator +++ \

My 3 machines all show up in gossip, I can hit my faucet and gain SOL with airdrop on my cluster. I can transfer SOL and create the vote accounts. My RPC address is set as the bootstrap validator IP in solana config set. Both bootstrap and validator 1 are on static IP's on bare metal in remote data centers running v1.16.1 built from source. only the balance from the bootstrap validator ID goes down...the other two never try to vote. Validator 2 and 3 behave exactly the same. They follow the slots...they get snapshots when needed can use airdrop, transfer, create-vote-account...etc.

1 Answer 1

1

When delegating stake for your new nodes, you'll need to pass the --force flag to go around the root check. The error mainly protects people from delegating to a totally inactive vote account, but in your case, you have to force the delegation, otherwise your node will never vote!

Here's the call to delegate stake when setting up a test cluster, note the --force argument: https://github.com/solana-labs/solana/blob/e1576b5352168cd857772526d39f1fb1698d2839/net/remote/remote-node.sh#L461-L464

1
  • This was tho only thing it needed! Thanks for your help!!
    – T3chie
    Jul 3, 2023 at 13:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.