Skip to content

Instantly share code, notes, and snippets.

@AshwinSekar
AshwinSekar / check-bls-pubkey.sh
Created June 8, 2026 18:31
Check cluster to see what % of stake has set their BLS pubkey
#!/usr/bin/env bash
set -euo pipefail
SOLANA_BIN="${SOLANA_BIN:-$HOME/agave/bin/solana}"
RPC_URL="${RPC_URL:-l}"
shopt -s expand_aliases
alias solana="$SOLANA_BIN -u $RPC_URL"
@AshwinSekar
AshwinSekar / restart.md
Last active September 1, 2026 17:40
Restarting community cluster 9/1

The alpenglow migration on the community cluster failed due to a bug,

Given this, we would like to restart the cluster with AG inactive and try again.

Build the new agave validator from Ashwin's github which contains the fix:

// Agave
git clone -b v4.3.0-beta.4 https://github.com/AshwinSekar/solana.git agave
cd agave/
@AshwinSekar
AshwinSekar / gist:b26d2c30e39ba6a5e2cd9d0d7447f7ea
Last active June 1, 2026 23:45
Setting the BLS pubkey for existing or new validators

As part of alpenglow, all vote accounts must now specify a BLS Pubkey on their vote account. This is derived from your authorized voter keypair.

Remember to target the Alpenglow community cluster with these commands (specify -u http://64.130.37.11:8899)

NOTE about the VAT (validator admission ticket)

In alpenglow you no longer have to pay vote tx fees out of your identity account. Instead you will be charged 1.6 sol per epoch from your vote account.

If you do not have your BLS pubkey set, have 0 stake, or are missing the funds to pay the VAT, you will be unable to vote in the subsequent epoch,

e.g. at the start of epoch 5 your BLS pubkey & stake are checked and you are charged 1.6 sol for the privilege to vote and build blocks in epoch 6.

@AshwinSekar
AshwinSekar / ag-community-cluster.md
Last active September 4, 2026 19:29 — forked from tigarcia/ag-community-cluster.md
Alpenglow Community Cluster Setup Instructions 9/4

The Alpenglow community cluster is ready for validators to join! The cluster is currently waiting for super majority to start. Validators will likely join over the next few days.

If you are a part of the initial genesis set please follow these instructions. If you are not part of the genesis set, follow https://docs.anza.xyz/operations/setup-a-validator#create-a-vote-account to create a vote account once the cluster has been started.

Operators should do the following to join the cluster:

  1. IMPORTANT: Stop any existing validator process and delete the ledger directory from the previous cluster run

  2. Checkout the v4.3.0-beta.5 agave tag or v4.3.0-beta.6-jito jito tag from the Ashwin's github:

if migration_status.is_ready_to_enable() && bank_forks.read().unwrap().is_bank_frozen(migration_status.genesis_block()) {
let genesis_bank = bank_forks.read().unwrap().get(migration_status.genesis_slot());
// Reset poh to the genesis block. This has to be done first before we can clear banks to
// avoid any inflight issues with transaction recording.
Self::reset_poh_recorder(
my_pubkey,
blockstore,
genesis_bank,
poh_controller,
@AshwinSekar
AshwinSekar / check-tvc-votes.sh
Last active September 28, 2024 09:37
Check the current status of the TVC proposal on mainnet
#!/bin/bash
export LC_NUMERIC="en_US.UTF-8"
RPC_URL="https://api.mainnet-beta.solana.com"
MINT="tvcUX2gkQWsPYK2Uq7DeuX9ZJTFF9V3BGJ2isfLMgrg"
YES_ACCT="5ByopEuFqdd1AvXc6czKu6JQkCXdbWJwFMc4Bxe2dgYQ"
NO_ACCT="AhaUueUXYWEuksQdAJMjvjPGAbjnXhYdk2ZrBVtNA9YT"
ABSTAIN_ACCT="AYHPwv8WSNBKYStSQJ7NfgtWxMPz5WSw3MeDtc2Pww5r"
function fetch_vote_token_balance() {