Document maintained by xen_artist
Download the package for your OS. Extract and run.
xxxxxxxxxx# Downloadhttps://github.com/FairCrypto/sol-xen/releases/latest/download/sol-xen-windows-x86_64.zip
# ExtractUnzip the sol-xen-windows-x86_64.zip file
# Run the miner.\sol-xen-windows-x86_64\sol-xen-multiminer.exe --help
xxxxxxxxxx# Downloadwget https://github.com/faircrypto/sol-xen/releases/latest/download/sol-xen-macos-universal.tar.gz
# Extracttar xf sol-xen-macos-universal.tar.gz
# Run the miner./sol-xen-macos-universal/sol-xen-multiminer --help
xxxxxxxxxx# Downloadwget https://github.com/faircrypto/sol-xen/releases/latest/download/sol-xen-linux-x86_64.tar.gz
# Extracttar xf sol-xen-linux-x86_64.tar.gz
# Run the miner./sol-xen-linux-x86_64/sol-xen-multiminer --help
xxxxxxxxxx# Downloadwget https://github.com/faircrypto/sol-xen/releases/latest/download/sol-xen-linux-arm64.tar.gz
# Extracttar xf sol-xen-linux-arm64.tar.gz
# Run the miner./sol-xen-linux-arm64/sol-xen-multiminer --help
Open your favorite Terminal application
Install the Solana release v1.18.12 on your machine by running:
xxxxxxxxxxsh -c "$(curl -sSfL https://release.solana.com/v1.18.12/install)"
The following output indicates a successful update:
xxxxxxxxxxdownloading v1.18.12 installerConfiguration: /home/solana/.config/solana/install/config.ymlActive release directory: /home/solana/.local/share/solana/install/active_release* Release version: v1.18.12* Release URL: https://github.com/solana-labs/solana/releases/download/v1.18.12/solana-release-x86_64-unknown-linux-gnu.tar.bz2Update successful
Depending on your system, the end of the installer messaging may prompt you to
xxxxxxxxxxPlease update your PATH environment variable to include the solana programs:
If you get the above message, copy and paste the recommended command below it to update PATH
You can do this by adding the following line to your $HOME/.profile or /etc/profile (for a system-wide installation):
xxxxxxxxxxexport PATH="/home/ubuntu/.local/share/solana/install/active_release/bin:$PATH"
Note: Changes made to a profile file may not apply until the next time you log into your computer. To apply the changes immediately, just run the shell commands directly or execute them from the profile using a command such as source $HOME/.profile.
Confirm you have the desired version of solana installed by running:
xxxxxxxxxxsolana --version
After a successful install, solana-install update may be used to easily update the Solana software to a newer version at any time.
Please use WSL (Windows Subsystem for Linux) on Windows 10 & 11 to execute all the Linux based instructions provided.
Using command solana-keygen to generate a new wallet (Note: please add --derivation-path and --no-passphrase as the parameter).
xxxxxxxxxxsolana-keygen new --derivation-path --no-passphrase -o ~/.config/solana/id0.json
Then it will generate a 12-word seed (aka. mnemonic, or recovery) phrase (eg. leaf jealous olympic later mistake slim oven depth under near very frown), save it at a SAFE place..
xxxxxxxxxxWrote new keypair to id0.json================================================================================pubkey: 4tf7QSWxYFzmvicRimtJwCtuWfnPq43ZQxjkooCKKUJf================================================================================Save this seed phrase and your BIP39 passphrase to recover your new keypair:leaf jealous olympic later mistake slim oven depth under near very frown================================================================================
Use the same command to generate id1.json, id2.json, and id3.json
xxxxxxxxxxsolana-keygen new --derivation-path --no-passphrase -o ~/.config/solana/id1.json
xxxxxxxxxxsolana-keygen new --derivation-path --no-passphrase -o ~/.config/solana/id2.json
xxxxxxxxxxsolana-keygen new --derivation-path --no-passphrase -o ~/.config/solana/id3.json
If you plan to run the sol-xen mining program on the Xolana development network:
Config
xxxxxxxxxxsolana config set -u http://69.10.34.226:8899
Check Public Address of mining wallets
xxxxxxxxxxsolana address -k ~/.config/solana/id0.json # shown <PUBKEY_OF_ID0>solana address -k ~/.config/solana/id1.json # shown <PUBKEY_OF_ID1>solana address -k ~/.config/solana/id2.json # shown <PUBKEY_OF_ID2>solana address -k ~/.config/solana/id3.json # shown <PUBKEY_OF_ID3>
Do airdrop
xxxxxxxxxxsolana airdrop 100 <PUBKEY_OF_ID0>
xxxxxxxxxxsolana airdrop 100 <PUBKEY_OF_ID1>
xxxxxxxxxxsolana airdrop 100 <PUBKEY_OF_ID2>
xxxxxxxxxxsolana airdrop 100 <PUBKEY_OF_ID3>
Check balance
xxxxxxxxxxsolana balance <PUBKEY_OF_ID0>solana balance <PUBKEY_OF_ID1>solana balance <PUBKEY_OF_ID2>solana balance <PUBKEY_OF_ID3>
If you plan to run the sol-xen mining program on the Solana mainnet-beta network:
Config
xxxxxxxxxxsolana config set -u https://api.mainnet-beta.solana.com
Check Public Address of mining wallets
xxxxxxxxxxsolana address -k ~/.config/solana/id0.json # shown <PUBKEY_OF_ID0>solana address -k ~/.config/solana/id1.json # shown <PUBKEY_OF_ID1>solana address -k ~/.config/solana/id2.json # shown <PUBKEY_OF_ID2>solana address -k ~/.config/solana/id3.json # shown <PUBKEY_OF_ID3>
Please fund SOL to the mining wallets, such as <PUBKEY_OF_ID0>, <PUBKEY_OF_ID1>, <PUBKEY_OF_ID2>, <PUBKEY_OF_ID3>.
Check balance
xxxxxxxxxxsolana balance <PUBKEY_OF_ID0>solana balance <PUBKEY_OF_ID1>solana balance <PUBKEY_OF_ID2>solana balance <PUBKEY_OF_ID3>
Just choose one way to run the mining client, Rust or Nodejs.
No need to install both of them.
Install build-essential:
xxxxxxxxxxsudo apt updatesudo apt install build-essentialInstall rust and cargo:
xxxxxxxxxxcurl https://sh.rustup.rs -sSf | shsource $HOME/.cargo/envUsing the latest stable rust version by running:
xxxxxxxxxxrustup update
Install build-essential:
xxxxxxxxxxsudo apt updatesudo apt install build-essentialInstall nvm
xxxxxxxxxxcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
or
xxxxxxxxxxwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to ~/.nvm, and attempts to add the source lines from the snippet below to the correct profile file (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).
xxxxxxxxxxexport NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
To verify that nvm has been installed, do:
xxxxxxxxxxcommand -v nvm
which should output nvm if the installation was successful. Please note that which nvm will not work, since nvm is a sourced shell function, not an executable binary.
Note: On Linux, after running the install script, if you get nvm: command not found or see no feedback from your terminal after you type command -v nvm, simply close your current terminal, open a new terminal, and try verifying again.
Install nodejs v22.2.0
xxxxxxxxxxnvm install 22.2.0
Check nodejs version
xxxxxxxxxxnode -v
Output as following:
xxxxxxxxxxv22.2.0
xxxxxxxxxxgit clone https://github.com/FairCrypto/sol-xen.gitcd sol-xengit checkout epsilongit pull
xxxxxxxxxxgit clone https://github.com/FairCrypto/sol-xen.gitcd sol-xengit checkout mastergit pull
Add/Edit .env
xxxxxxxxxxnano .env
or
xxxxxxxxxxvim .env
Config it as following:
xxxxxxxxxxUSER_WALLET_PATH=/home/ubuntu/.config/solana/ANCHOR_PROVIDER_URL=http://69.10.34.226:8899PROGRAM_ID_MINTER=8HTvrqZT1JP279DMLT5SfNfGHxUeznem4Bh7zy92sWWxDEBUG=*
Config it as following:
** make sure you have the right user wallet path (where you keypairs are) **
xxxxxxxxxxUSER_WALLET_PATH=/home/ubuntu/.config/solana/ANCHOR_PROVIDER_URL=https://api.mainnet-beta.solana.com # or any other mainnet-beta rpc
Install dependencies first
xxxxxxxxxxnpm install
Please remember to replace the
Run mint command without auto mint
xxxxxxxxxx# adjust the fee or delay if necessarynode ./client/multiminer.js mine --address <ETH ADDRESS> --fee 1 --delay 1 --units 1150000
Run mint command with auto mint enabled (Auto mint every N [default: 1000] slots )
xxxxxxxxxx# adjust the fee or delay if necessarynode ./client/multiminer.js mine --address <ETH ADDRESS> --fee 1 --delay 1 --units 1150000 --autoMint 1000
Please remember to replace the
Open a new terminal or session. Miner 0:
xxxxxxxxxx# adjust the fee or delay if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mine --kind 0 --fee 1 --delay 1 --units 1150000 --runs 65535
Open a new terminal or session. Miner 1:
xxxxxxxxxx# adjust the fee or delay if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mine --kind 1 --fee 1 --delay 1 --units 1150000 --runs 65535
Open a new terminal or session. Miner 2:
xxxxxxxxxx# adjust the fee or delay if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mine --kind 2 --fee 1 --delay 1 --units 1150000 --runs 65535
Open a new terminal or session. Miner 3:
xxxxxxxxxx# adjust the fee or delay if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mine --kind 3 --fee 1 --delay 1 --units 1150000 --runs 65535
Miner 0:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id0.json# adjust the fee if necessarynode client/minter.js mint --kind 0 --fee 1
Miner 1:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id1.json# adjust the fee if necessarynode client/minter.js mint --kind 1 --fee 1
Miner 2:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id2.json# adjust the fee if necessarynode client/minter.js mint --kind 2 --fee 1
Miner 3:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id3.json# adjust the fee if necessarynode client/minter.js mint --kind 3 --fee 1
Please remember to replace the example
Miner 0:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id0.json# adjust the fee if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mint --kind 0 --fee 1
Miner 1:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id1.json# adjust the fee if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mint --kind 1 --fee 1
Miner 2:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id2.json# adjust the fee if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mint --kind 2 --fee 1
Miner 3:
xxxxxxxxxx# change the path if necessaryexport USER_WALLET=/home/ubuntu/.config/solana/id3.json# adjust the fee if necessarycargo run --package sol-xen-client -- --address <ETH ADDRESS> --command mint --kind 3 --fee 1
Miner 0:
xxxxxxxxxxsolana config set --keypair ~/.config/solana/id0.jsonspl-token accounts
Miner 1:
xxxxxxxxxxsolana config set --keypair ~/.config/solana/id1.jsonspl-token accounts
Miner 2:
xxxxxxxxxxsolana config set --keypair ~/.config/solana/id2.jsonspl-token accounts
Miner 3:
xxxxxxxxxxsolana config set --keypair ~/.config/solana/id3.jsonspl-token accounts