Skip to content

ingl-DAO/permissionless-validators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project logo

Fractionalizing Validator Creation and Ownership


Creating your Fractionalized Validator Instance.

⛓️ Prerequisites.

We currently only recommend using ubuntu 20.04.

Install Solana CLI:

sh -c "$(curl -sSfL https://release.solana.com/v1.14.12/install)"

Installing Pip

sudo apt update
sudo apt upgrade
sudo apt install python3-pip

Installing Venv

sudo apt install python3-venv

Creating a virtual environment called isol

python3 -m venv isol

activate the virtual environment

source isol/bin/activate

Install Ingl CLI:

sudo pip install ingl

Install rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
sudo apt install build-essential

Install Cargo-x:

cargo install cargo-x

Installing Git:

sudo apt install git

Clone this repo:


git clone https://github.com/ingl-DAO/permissionless-validators

🎈Deploying your validator instance's program.

Set your terminals current working directory to the cloned repo's eldest folder:


cd permissionless-validators

Generate the validator instance's program keypair.


cargo-x nda
ingl config set -p deploy/keypair.json

Generate and set the deploying authority key


solana-keygen new -o ~/.config/solana/id.json


solana config set --keypair ~/.config/solana/id.json

Set the validator id


ingl config set -k ~/.config/solana/id.json

Switch to devnet


solana config set --url devnet

On DEVNET airdrop some deployment sol, ideally >12.

On mainnet, fund the keypair


solana airdrop 2

Repeat the command above until a balance of 12 sol or more

Compile and deploy the program (on devnet),


cargo-x bda

Initialize the program instance (ensure the signer is the upgrade authority of the program)


ingl init --keypair <path to upgrade_authority>

Fill in all the prompted fields.

Initialize the validator


ingl create_vote_account

Upload the image URIS


ingl upload_uris uris_path.json

Should in case any thing fails, then reset the URIS and Reupload


ingl reset_uris
ingl upload_uris uris_path.json


🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏🥳🎉👏

You Have Succesfully Created a Validator. Now let's run it.

Let's do some system tuning:


sudo $(command -v solana-sys-tuner) --user $(whoami) > sys-tuner.log 2>&1 &

Now lets find out what the created vote_account is:


ingl get_vote_pubkey

Now lets use the found vote_account and our validator_id(~.config\solana\id.json) to validate transactions

replace the 'vote_account' by the key gotten from the instruction above


solana-validator \
 --identity ~/.config/solana/id.json \
 --vote-account 'vote_account' \
 --known-validator dv4ACNkpYPcE3aKmYDqZm9G5EB3J4MRoeE7WNDRBVJB \
 --known-validator dv2eQHeP4RFrJZ6UeiZWoc3XTtmtZCUKxxCApCDcRNV \
 --only-known-rpc \
 --ledger ledger \
 --rpc-port 8899 \
 --dynamic-port-range 8000-8020 \
 --entrypoint entrypoint.devnet.solana.com:8001 \
 --entrypoint entrypoint2.devnet.solana.com:8001 \
 --entrypoint entrypoint3.devnet.solana.com:8001 \
 --entrypoint entrypoint4.devnet.solana.com:8001 \
 --entrypoint entrypoint5.devnet.solana.com:8001 \
 --expected-genesis-hash EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG \
 --wal-recovery-mode skip_any_corrupted_record \
 --limit-ledger-size\
 --log -

About

a program to manage an instance of a permissionless validator

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published