🫡 How it works
The primary innovation of Ore is to offer non-exclusive mining rewards. This means one miner finding a valid solution does not prevent another miner from finding one as well. Rather than setting up every miner in a winner-take-all competition against one another, Ore gives each miner a personalized computational challenge. As long as a miner provides a valid solution to their own individual challenge, the protocol guarantees they will earn a piece of the supply. Since no miner can be censored from the network and valid solutions are non-exclusive, starvation is avoided.
⛏ Supply
Ore is designed to protect holders from runaway supply inflation. Regardless of how many miners are active in the world, supply growth is strictly bounded to a rate of 0 ≤ R ≤ 2 ORE/min
. In other words, linear. The mining reward rate – amount paid out to miners per valid solution – is dynamically adjusted every 60 seconds to maintain an average supply growth of 1 ORE/min
. This level was chosen for its straightforward simplicity, scale agnosticism, and for striking a balance between the extremes of exponential inflation on one hand and stagnant deflation on the other.
*This guide assumes you're using a Unix-like operating system (e.g., Linux, macOS) with a terminal.
Git: Ensure Git is installed. You can check by running git --version
in your terminal. If it's not installed, follow this guide to install Git.
Rust and Cargo: Ensure Rust and Cargo are installed. You can check by running rustc --version
and cargo --version
. If they're not installed, follow this guide to install Rust and Cargo.
Open your terminal.
Clone the Repository: Open your terminal or command prompt and run the following command:
git clone <https://github.com/HardhatChad/ore.git>
Install dependencies: Make sure you have Rust installed.
curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh
Clone the Repository: Open your terminal and run:
git clone <https://github.com/HardhatChad/drillx.git>
Clone the repository: Open your terminal and run:
git clone <https://github.com/HardhatChad/ore-cli.git> cd ore-cli
Build the project: In the project directory, run:
cargo build --release
Navigate to the ore
directory:
cd ore
Pull the latest changes from the Git repository:
git pull
Switch to the hardhat/v2
branch:
git checkout hardhat/v2
Navigate to the ore-cli
directory:
cd ../ore-cli
Pull the latest changes from the Git repository:
git pull
Switch to the hardhat/v2
branch:
git checkout hardhat/v2
Navigate to the drillx
directory:
cd ../drillx
Pull the latest changes from the Git repository:
git pull
Navigate back to the ore-cli
directory:
cd ../ore-cli
Build the project in release mode using Cargo:
cargo build --release
Acquire devnet SOL
solana config set --url d solana airdrop 1
Run the ore
executable with the specified parameters:
./target/release/ore --rpc <https://api.devnet.solana.com/> --keypair ~/.config/solana/id.json mine --buffer-time 2 --threads 4
Ensure you have the necessary permissions to read the keypair file at ~/.config/solana/id.json
.
If any command fails, check the output for error messages and ensure all prerequisites are correctly installed and configured.
You might need to install additional dependencies for the project. Check the project's documentation or README
file for more details.
Feel free to ask if you have any questions or run into any issues!