This guide covers installation and setup of the RustChain miner on Linux and macOS systems.
curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install-miner.sh | bashThe installer will:
- Auto-detect your platform (OS and architecture)
- Create an isolated Python virtualenv at
~/.rustchain/venv - Install required dependencies (requests) in the virtualenv
- Download the appropriate miner for your hardware
- Prompt for your wallet name (or auto-generate one)
- Ask if you want to set up auto-start on boot
- Display wallet balance check commands
curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install-miner.sh | bash -s -- --wallet my-miner-walletThis skips the interactive wallet prompt and uses the specified wallet name.
- ✅ Ubuntu 20.04, 22.04, 24.04
- ✅ Debian 11, 12
- ✅ Fedora 38, 39, 40
- ✅ RHEL 8, 9
- ✅ Other systemd-based distributions
Architectures:
- x86_64 (Intel/AMD 64-bit)
- ppc64le (PowerPC 64-bit Little-Endian)
- ppc (PowerPC 32-bit)
- ✅ macOS 12 (Monterey) and later
- ✅ macOS 11 (Big Sur) with limitations
Architectures:
- arm64 (Apple Silicon M1/M2/M3)
- x86_64 (Intel Mac)
- powerpc (PowerPC G3/G4/G5)
- ✅ IBM POWER8 systems
- ✅ PowerPC G4/G5 Macs
- ✅ Vintage x86 CPUs (Pentium 4, Core 2 Duo, etc.)
- Python 3.6+ (or Python 2.5+ for vintage PowerPC systems)
- curl or wget
- 50 MB disk space
- Internet connection
- systemd (for auto-start feature)
- python3-venv or virtualenv package
- Command Line Tools (installed automatically if needed)
- launchd (built into macOS)
After installation, you'll have the following structure at ~/.rustchain/:
~/.rustchain/
├── venv/ # Isolated Python virtualenv
│ ├── bin/
│ │ ├── python # Virtualenv Python interpreter
│ │ └── pip # Virtualenv pip
│ └── lib/ # Installed packages (requests, etc.)
├── rustchain_miner.py # Main miner script
├── fingerprint_checks.py # Hardware attestation module
├── start.sh # Convenience start script
└── miner.log # Miner logs (if auto-start enabled)
The installer creates a user service at:
~/.config/systemd/user/rustchain-miner.service
Service Management Commands:
# Check miner status
systemctl --user status rustchain-miner
# Start mining
systemctl --user start rustchain-miner
# Stop mining
systemctl --user stop rustchain-miner
# Restart mining
systemctl --user restart rustchain-miner
# Disable auto-start
systemctl --user disable rustchain-miner
# Enable auto-start
systemctl --user enable rustchain-miner
# View logs
journalctl --user -u rustchain-miner -fThe installer creates a launch agent at:
~/Library/LaunchAgents/com.rustchain.miner.plist
Service Management Commands:
# Check if miner is running
launchctl list | grep rustchain
# Start mining
launchctl start com.rustchain.miner
# Stop mining
launchctl stop com.rustchain.miner
# Disable auto-start
launchctl unload ~/Library/LaunchAgents/com.rustchain.miner.plist
# Enable auto-start
launchctl load ~/Library/LaunchAgents/com.rustchain.miner.plist
# View logs
tail -f ~/.rustchain/miner.log# Note: Using -k flag because node may use self-signed SSL certificate
curl -sk "https://50.28.86.131/wallet/balance?miner_id=YOUR_WALLET_NAME"Example output:
{
"miner_id": "my-miner-wallet",
"amount_rtc": 12.456,
"amount_i64": 12456000
}curl -sk https://50.28.86.131/api/minerscurl -sk https://50.28.86.131/healthcurl -sk https://50.28.86.131/epochIf you chose not to set up auto-start, you can run the miner manually:
cd ~/.rustchain && ./start.shcd ~/.rustchain
./venv/bin/python rustchain_miner.py --wallet YOUR_WALLET_NAMErustchain-mineNote: The convenience command is only available if /usr/local/bin was writable during installation.
curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install-miner.sh | bash -s -- --uninstallThis will:
- Stop and remove the systemd/launchd service
- Remove the entire
~/.rustchaindirectory (including virtualenv) - Remove the convenience symlink (if it exists)
- Clean up all configuration files
If the automated uninstall doesn't work, you can manually remove:
Linux:
# Stop and disable service
systemctl --user stop rustchain-miner
systemctl --user disable rustchain-miner
rm ~/.config/systemd/user/rustchain-miner.service
systemctl --user daemon-reload
# Remove files
rm -rf ~/.rustchain
rm -f /usr/local/bin/rustchain-minemacOS:
# Stop and remove service
launchctl unload ~/Library/LaunchAgents/com.rustchain.miner.plist
rm ~/Library/LaunchAgents/com.rustchain.miner.plist
# Remove files
rm -rf ~/.rustchain
rm -f /usr/local/bin/rustchain-mineError: Could not create virtual environment
Solution:
# Ubuntu/Debian
sudo apt-get install python3-venv
# Fedora/RHEL
sudo dnf install python3-virtualenv
# macOS
pip3 install --user virtualenvError: ln: /usr/local/bin/rustchain-mine: Permission denied
This is normal. The installer will continue without the convenience command. You can still use the start script:
~/.rustchain/start.shCheck the logs:
journalctl --user -u rustchain-miner -n 50Common issues:
- Network not available at boot: The service will retry automatically
- Python path incorrect: Reinstall the miner
- Wallet name with special characters: Use alphanumeric characters only
Check if it's loaded:
launchctl list | grep rustchainReload manually:
launchctl load ~/Library/LaunchAgents/com.rustchain.miner.plistCheck the logs:
cat ~/.rustchain/miner.logError: Could not connect to node
Check:
- Internet connection is working
- Node is accessible:
curl -sk https://50.28.86.131/health - Firewall isn't blocking HTTPS (port 443)
Check:
- Miner is actually running:
systemctl --user status rustchain-minerorlaunchctl list | grep rustchain - Wallet balance:
curl -sk "https://50.28.86.131/wallet/balance?miner_id=YOUR_WALLET_NAME" - Miner logs for errors:
journalctl --user -u rustchain-miner -fortail -f ~/.rustchain/miner.log - Hardware attestation passes: Look for "fingerprint validation" messages in logs
To run multiple miners on different hardware:
- Install on each machine separately
- Use different wallet names for each miner
- Each miner will be independently tracked by the network
To update to the latest version:
# Uninstall old version
curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install-miner.sh | bash -s -- --uninstall
# Install new version
curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install-miner.sh | bash -s -- --wallet YOUR_WALLET_NAME- Documentation: https://github.com/Scottcjn/Rustchain
- Issues: https://github.com/Scottcjn/Rustchain/issues
- Explorer: http://50.28.86.131/explorer
- Bounties: https://github.com/Scottcjn/rustchain-bounties
- The installer uses HTTPS to download files from GitHub
- Python dependencies are installed in an isolated virtualenv (no system pollution)
- The miner runs as your user (not root)
- Services are user-level (systemd --user, ~/Library/LaunchAgents)
- All logs are stored in your home directory
- SSL Certificate: The RustChain node (50.28.86.131) may use a self-signed SSL certificate. The
-kflag in curl commands bypasses certificate verification. This is a known limitation of the current infrastructure. In production, you should verify the node's identity through other means (community consensus, explorer verification, etc.).
To view the certificate SHA-256 fingerprint:
openssl s_client -connect 50.28.86.131:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -nooutIf you want to avoid using -k, you can save the certificate locally and pin it:
# Save the cert once (overwrite if it changes)
openssl s_client -connect 50.28.86.131:443 < /dev/null 2>/dev/null | openssl x509 > ~/.rustchain/rustchain-cert.pem
# Then use it instead of -k
curl --cacert ~/.rustchain/rustchain-cert.pem "https://50.28.86.131/wallet/balance?miner_id=YOUR_WALLET_NAME"Found a bug or want to improve the installer? Submit a PR to: https://github.com/Scottcjn/Rustchain
RustChain is licensed under the MIT License. See LICENSE file for details.