wip
This commit is contained in:
245
bench/gBench.sh
Normal file
245
bench/gBench.sh
Normal file
@@ -0,0 +1,245 @@
|
||||
#!/bin/bash
|
||||
# GMiner algorithm test script - save as test_gminer.sh
|
||||
|
||||
# Default docker image (can be overridden with parameter)
|
||||
DOCKER_IMAGE=${1:-"amdopencl"}
|
||||
# amd-strix-halo-llama-rocm
|
||||
#amd-strix-halo-llama-vulkan-radv
|
||||
# amd-strix-halo-llama-vulkan-amdvlk
|
||||
|
||||
BTC_WALLET="bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j"
|
||||
|
||||
# Algorithm to coin mapping
|
||||
declare -A ALGO_COINS=(
|
||||
["ethash"]="ETH"
|
||||
["etchash"]="ETC"
|
||||
["autolykos2"]="ERG"
|
||||
["ergo"]="ERG"
|
||||
["equihash125_4"]="ZEL"
|
||||
["equihash144_5"]="ZEL"
|
||||
["equihash192_7"]="ZEL"
|
||||
["equihash210_9"]="ZEL"
|
||||
["beamhash"]="BEAM"
|
||||
["cuckaroo29"]="GRIN"
|
||||
["cuckatoo32"]="GRIN"
|
||||
["flux"]="FLUX"
|
||||
["octopus"]="CFX"
|
||||
)
|
||||
|
||||
# Function to fetch current cryptocurrency prices
|
||||
fetch_prices() {
|
||||
echo "Fetching current cryptocurrency prices..."
|
||||
|
||||
# Use CoinGecko API to get current prices
|
||||
local api_url="https://api.coingecko.com/api/v3/simple/price?ids=ethereum,ethereum-classic,ergo,zelcash,beam,grin,flux,conflux&vs_currencies=usd"
|
||||
|
||||
# Try to fetch prices with timeout and fallback
|
||||
local prices_json=$(timeout 10s curl -s "$api_url" 2>/dev/null)
|
||||
|
||||
if [[ -z "$prices_json" ]]; then
|
||||
echo "Warning: Could not fetch current prices, using fallback values"
|
||||
PRICES_ETH=3500.00
|
||||
PRICES_ETC=35.00
|
||||
PRICES_ERG=2.50
|
||||
PRICES_ZEL=0.15
|
||||
PRICES_BEAM=0.05
|
||||
PRICES_GRIN=0.05
|
||||
PRICES_FLUX=0.80
|
||||
PRICES_CFX=0.20
|
||||
return
|
||||
fi
|
||||
|
||||
# Parse JSON response and extract prices using jq if available, otherwise use grep
|
||||
if command -v jq &> /dev/null; then
|
||||
PRICES_ETH=$(echo "$prices_json" | jq -r '.ethereum.usd // "3500.00"')
|
||||
PRICES_ETC=$(echo "$prices_json" | jq -r '.ethereum-classic.usd // "35.00"')
|
||||
PRICES_ERG=$(echo "$prices_json" | jq -r '.ergo.usd // "2.50"')
|
||||
PRICES_ZEL=$(echo "$prices_json" | jq -r '.zelcash.usd // "0.15"')
|
||||
PRICES_BEAM=$(echo "$prices_json" | jq -r '.beam.usd // "0.05"')
|
||||
PRICES_GRIN=$(echo "$prices_json" | jq -r '.grin.usd // "0.05"')
|
||||
PRICES_FLUX=$(echo "$prices_json" | jq -r '.flux.usd // "0.80"')
|
||||
PRICES_CFX=$(echo "$prices_json" | jq -r '.conflux.usd // "0.20"')
|
||||
else
|
||||
# Fallback to grep parsing
|
||||
PRICES_ETH=$(echo "$prices_json" | grep -o '"ethereum":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "3500.00")
|
||||
PRICES_ETC=$(echo "$prices_json" | grep -o '"ethereum-classic":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "35.00")
|
||||
PRICES_ERG=$(echo "$prices_json" | grep -o '"ergo":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "2.50")
|
||||
PRICES_ZEL=$(echo "$prices_json" | grep -o '"zelcash":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "0.15")
|
||||
PRICES_BEAM=$(echo "$prices_json" | grep -o '"beam":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "0.05")
|
||||
PRICES_GRIN=$(echo "$prices_json" | grep -o '"grin":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "0.05")
|
||||
PRICES_FLUX=$(echo "$prices_json" | grep -o '"flux":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "0.80")
|
||||
PRICES_CFX=$(echo "$prices_json" | grep -o '"conflux":{"usd":[0-9]*\.[0-9]*' | grep -o '[0-9]*\.[0-9]*$' || echo "0.20")
|
||||
fi
|
||||
|
||||
echo "Current prices fetched successfully:"
|
||||
echo " ETH: $PRICES_ETH"
|
||||
echo " ETC: $PRICES_ETC"
|
||||
echo " ERG: $PRICES_ERG"
|
||||
echo " ZEL: $PRICES_ZEL"
|
||||
echo " BEAM: $PRICES_BEAM"
|
||||
echo " GRIN: $PRICES_GRIN"
|
||||
echo " FLUX: $PRICES_FLUX"
|
||||
echo " CFX: $PRICES_CFX"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# GMiner supported algorithms
|
||||
ALGOS=(
|
||||
"ethash"
|
||||
"etchash"
|
||||
"autolykos2"
|
||||
"equihash125_4"
|
||||
"equihash144_5"
|
||||
"equihash192_7"
|
||||
"equihash210_9"
|
||||
"beamhash"
|
||||
"cuckaroo29"
|
||||
"cuckatoo32"
|
||||
"flux"
|
||||
"octopus"
|
||||
"ergo"
|
||||
)
|
||||
|
||||
echo "=== GMiner Algorithm Tests ==="
|
||||
echo "Using BTC wallet: $BTC_WALLET"
|
||||
echo "Using Docker image: $DOCKER_IMAGE"
|
||||
echo "Testing each algorithm for 30 seconds..."
|
||||
echo "======================================="
|
||||
|
||||
# Fetch current prices at startup
|
||||
fetch_prices
|
||||
|
||||
# Function to calculate USD value
|
||||
calculate_usd_reward() {
|
||||
local algo=$1
|
||||
local hashrate=$2
|
||||
local coin=${ALGO_COINS[$algo]}
|
||||
|
||||
# Get price based on coin
|
||||
local price=0
|
||||
case $coin in
|
||||
"ETH") price=$PRICES_ETH ;;
|
||||
"ETC") price=$PRICES_ETC ;;
|
||||
"ERG") price=$PRICES_ERG ;;
|
||||
"ZEL") price=$PRICES_ZEL ;;
|
||||
"BEAM") price=$PRICES_BEAM ;;
|
||||
"GRIN") price=$PRICES_GRIN ;;
|
||||
"FLUX") price=$PRICES_FLUX ;;
|
||||
"CFX") price=$PRICES_CFX ;;
|
||||
*) echo "Unknown" && return ;;
|
||||
esac
|
||||
|
||||
if [[ -z "$price" || "$price" == "0" ]]; then
|
||||
echo "Unknown"
|
||||
return
|
||||
fi
|
||||
|
||||
# Rough calculation: hashrate * price * 0.000001 (simplified)
|
||||
local usd_value=$(echo "$hashrate * $price * 0.000001" | bc -l 2>/dev/null)
|
||||
printf "%.2f" $usd_value 2>/dev/null || echo "Unknown"
|
||||
}
|
||||
|
||||
# Function to extract hashrate from miner output
|
||||
extract_hashrate() {
|
||||
local output="$1"
|
||||
|
||||
# Look for common hashrate patterns in GMiner output
|
||||
local hashrate=$(echo "$output" | grep -oE "[0-9]+\.[0-9]+ [KMGT]?H/s" | tail -1 | grep -oE "[0-9]+\.[0-9]+" | tail -1)
|
||||
|
||||
# If no decimal found, look for integer hashrates
|
||||
if [[ -z "$hashrate" ]]; then
|
||||
hashrate=$(echo "$output" | grep -oE "[0-9]+ [KMGT]?H/s" | tail -1 | grep -oE "[0-9]+" | tail -1)
|
||||
fi
|
||||
|
||||
# If still no hashrate found, look for any number followed by H/s
|
||||
if [[ -z "$hashrate" ]]; then
|
||||
hashrate=$(echo "$output" | grep -oE "[0-9]+[\.]?[0-9]* H/s" | tail -1 | grep -oE "[0-9]+[\.]?[0-9]*" | tail -1)
|
||||
fi
|
||||
|
||||
# If still no hashrate, look for "Speed:" patterns
|
||||
if [[ -z "$hashrate" ]]; then
|
||||
hashrate=$(echo "$output" | grep -i "speed:" | tail -1 | grep -oE "[0-9]+[\.]?[0-9]*" | tail -1)
|
||||
fi
|
||||
|
||||
# If still no hashrate, look for any number followed by H/s (case insensitive)
|
||||
if [[ -z "$hashrate" ]]; then
|
||||
hashrate=$(echo "$output" | grep -ioE "[0-9]+[\.]?[0-9]* h/s" | tail -1 | grep -oE "[0-9]+[\.]?[0-9]*" | tail -1)
|
||||
fi
|
||||
|
||||
echo "$hashrate"
|
||||
}
|
||||
|
||||
for algo in "${ALGOS[@]}"; do
|
||||
echo ""
|
||||
echo "Testing: $algo"
|
||||
echo "------------------------"
|
||||
|
||||
case $algo in
|
||||
"ethash")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server eth.2miners.com:2020 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"etchash")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server etc.2miners.com:1010 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"autolykos2"|"ergo")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo autolykos2 --server ergo.2miners.com:8888 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"equihash125_4")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server zel.2miners.com:9090 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"equihash144_5")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server zel.2miners.com:9090 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"equihash192_7")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server zel.2miners.com:9090 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"equihash210_9")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server zel.2miners.com:9090 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"beamhash")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server beam.2miners.com:5252 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"cuckaroo29")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server grin.2miners.com:3030 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"cuckatoo32")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server grin.2miners.com:3030 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"flux")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server flux.2miners.com:2020 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
"octopus")
|
||||
output=$(sudo docker exec -it $DOCKER_IMAGE timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server cfx.2miners.com:3254 --user '$BTC_WALLET' --pass x" 2>&1)
|
||||
;;
|
||||
*)
|
||||
echo "No specific pool configured for $algo - skipping"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
exit_code=$?
|
||||
|
||||
# Extract hashrate and calculate USD value
|
||||
hashrate=$(extract_hashrate "$output")
|
||||
coin=${ALGO_COINS[$algo]}
|
||||
usd_value=$(calculate_usd_reward "$algo" "$hashrate")
|
||||
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
echo "SUCCESS: $algo - Hashrate: ${hashrate}H/s - Coin: $coin - Est. USD/day: $usd_value"
|
||||
elif [ $exit_code -eq 124 ]; then
|
||||
echo "TIMEOUT: $algo - Hashrate: ${hashrate}H/s - Coin: $coin - Est. USD/day: $usd_value (likely working)"
|
||||
else
|
||||
echo "FAILED: $algo - Error code: $exit_code"
|
||||
# Debug: show first few lines of output for failed attempts
|
||||
echo "Debug output (first 5 lines):"
|
||||
echo "$output" | head -5
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== GMiner Tests Complete ==="
|
||||
echo "Usage: $0 [docker_image_name]"
|
||||
echo "Default: amdopencl"
|
||||
echo "Example for RockM: $0 rockm"
|
||||
29
bench/lolBench.sh
Normal file
29
bench/lolBench.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# lolMiner benchmark script - save as bench_lolminer.sh
|
||||
|
||||
ALGOS=("ETHASH" "ETCHASH" "AUTOLYKOS2" "BEAM-III" "EQUIHASH144_5" "EQUIHASH192_7" "EQUIHASH210_9" "FLUX" "NEXA" "PROGPOW" "PROGPOWZ" "PROGPOW_VERIBLOCK" "PROGPOW_VEIL" "TON")
|
||||
|
||||
echo "=== lolMiner Algorithm Benchmark ==="
|
||||
echo "Testing each algorithm for 15 seconds..."
|
||||
echo "====================================="
|
||||
|
||||
for algo in "${ALGOS[@]}"; do
|
||||
echo ""
|
||||
echo "Testing: $algo"
|
||||
echo "------------------------"
|
||||
|
||||
sudo docker exec -it amdopencl timeout 20s bash -c "mnt/dl/lol.1.97/lolMiner --algo $algo --benchmark --benchepochs 1 --benchwarmup 5" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ $algo: WORKS"
|
||||
elif [ $? -eq 124 ]; then
|
||||
echo "⏱️ $algo: TIMEOUT (likely working)"
|
||||
else
|
||||
echo "❌ $algo: FAILED"
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Benchmark Complete ==="
|
||||
54
bench/zergBench.sh
Normal file
54
bench/zergBench.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Test top Zergpool algorithms - save as test_zergpool.sh
|
||||
|
||||
BTC_WALLET="bc1qjn4m6rmrveuxhk02a5qhe4r6kdcsvvt3vhdn9j"
|
||||
|
||||
echo "=== Testing Top Zergpool Algorithms ==="
|
||||
echo "Wallet: $BTC_WALLET"
|
||||
echo "======================================"
|
||||
|
||||
# Top algorithms by profitability
|
||||
declare -A algos=(
|
||||
["rinhash"]="rinhash.mine.zergpool.com:7148 c=RIN"
|
||||
["kawpow"]="kawpow.mine.zergpool.com:3638 c=BTC"
|
||||
["evrprogpow"]="evrprogpow.mine.zergpool.com:3002 c=BTC"
|
||||
["equihash125_4"]="equihash.mine.zergpool.com:2142 c=BTC"
|
||||
["karlsenhashv2"]="karlsenhashv2.mine.zergpool.com:3200 c=BTC"
|
||||
)
|
||||
|
||||
for algo in "${!algos[@]}"; do
|
||||
echo ""
|
||||
echo "Testing: $algo"
|
||||
echo "------------------------"
|
||||
|
||||
# Parse config
|
||||
read -r server pass <<< "${algos[$algo]}"
|
||||
|
||||
echo "Server: $server"
|
||||
echo "Testing for 30 seconds..."
|
||||
|
||||
sudo docker exec -it amdopencl timeout 35s bash -c "/mnt/dl/gminer/miner --algo $algo --server $server --user '$BTC_WALLET' --pass '$pass'"
|
||||
|
||||
result=$?
|
||||
if [ $result -eq 0 ]; then
|
||||
echo "✅ $algo: SUCCESS"
|
||||
elif [ $result -eq 124 ]; then
|
||||
echo "⏱️ $algo: TIMEOUT (likely working)"
|
||||
else
|
||||
echo "❌ $algo: FAILED - trying alternative miner..."
|
||||
|
||||
# Try lolMiner for failed algorithms
|
||||
sudo docker exec -it amdopencl timeout 35s bash -c "/mnt/dl/lolMiner_v1.88_Lin64/lolMiner --algo ${algo^^} --pool $server --user '$BTC_WALLET' --pass '$pass'" 2>/dev/null
|
||||
|
||||
if [ $? -eq 124 ]; then
|
||||
echo "⏱️ $algo: WORKS with lolMiner"
|
||||
else
|
||||
echo "❌ $algo: Not supported"
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Zergpool Testing Complete ==="
|
||||
Reference in New Issue
Block a user