sys-tuner
$ sudo ./solana-sys-tuner --user $(whoami)
swap
It might help to create swapfile. This needs to be run every boot
sudo fallocate -l 128G /swap
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
# double check swap
sudo swapon --show
rpc start commands
./solana-validator \
--account-index-exclude-key kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6 \
--account-index-exclude-key TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA \
--no-voting \
--identity ~/.config/solana/id.json \
--entrypoint entrypoint.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint2.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \
--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \
--trusted-validator ChorusmmK7i1AxXeiTtQgQZhQNiXYU84ULeaYF1EH15n \
--trusted-validator Certusm1sa411sMpV9FPqU5dXAYhmmhygvxJ23S6hJ24 \
--trusted-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \
--trusted-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \
--trusted-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \
--trusted-validator FUyx2W6wDt7u363QgQRWQYuytE5uJWZLGJpuVh3RDiCa \
--trusted-validator 6cgsK8ph5tNUCiKG5WXLMZFX1CoL4jzuVouTPBwPC8fk \
--limit-ledger-size \
--enable-cpi-and-log-storage \
--enable-rpc-transaction-history \
--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \
--bind-address 0.0.0.0 \
--rpc-port 8899 \
--rpc-pubsub-enable-block-subscription \
--accounts /tmp/ramdisk/accounts \
--ledger /tmp/ramdisk \
# --skip-poh-verify \
# --log - \
# --minimal-snapshot-download-speed 10000 \
# --accounts /solana/ledger/accounts \
# --ledger /solana/ledger \
HOST=127.0.0.1
RPC_URL=http://$HOST:8899
WS_URL=wss://$HOST:8900
GetSlot
returns current slot number of RPC server. Check against https://solanabeach.io/ as gut-check to see if it's relatively correct.
curl $RPC_URL -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getSlot", "params": [
{
"commitment": "processed"
}
]}
'
curl $RPC_URL -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getSlot"}
'
Compare processed + confirmed time
while true; do
processed_slot=$(curl -s $RPC_URL -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getSlot", "params": [
{
"commitment": "processed"
}
]}
' | jq '.result')
confirmed_slot=$(curl -s $RPC_URL -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getSlot", "params": [
{
"commitment": "confirmed"
}
]}
' | jq '.result')
echo "processed: $processed_slot"
echo "confirmed: $confirmed_slot"
echo ""
sleep 0.2;
done;
GetLeaderSchedule
curl $RPC_URL -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getLeaderSchedule"}
'
Websocket Subscriptions
Requires wscat (npm install -g wscat)
wscat --connect $WS_URL
Slot Updates
{"jsonrpc":"2.0", "id":1, "method":"slotSubscribe"}
Slot Updates (Unstable)
{"jsonrpc":"2.0", "id":1, "method":"slotsUpdatesSubscribe"}
Block Updates
{"jsonrpc": "2.0", "id": "1", "method": "blockSubscribe", "params": ["all", {"commitment": "confirmed"}]}