Skip to content
Summary - AIBTC Mining Test (12 Hours Result)

Summary - AIBTC Mining Test (12 Hours Result)

Ran the public Python “miner” (optimized version) for ~12 hours on a VPS using a test wallet.

http://aibtc.work/

Result

{
  "code": 0,
  "data": {
    "claimable": 0,
    "start_settlement": 1773976679,
    "next_settlement": 1773976830
  }
}

No rewards. No changes over time.

Expectation vs Reality Expected hits (math): Hundreds Actual reward: Zero This is statistically unrealistic if the script were valid.

Conclusion

The script does not match the server’s validation logic. Possible reasons:

  1. Hidden difficulty (not just prefix)
  2. Server-side challenge / dynamic rules
  3. Only specific clients (e.g. OpenClaw) are accepted
  4. Centralized validation (no transparency)

Final Verdict

This is NOT real mining. Your CPU is working, but the server is not rewarding your results.

Recommendation

  • Stop running the script (waste of resources)
  • Do not use main wallet
  • Only proceed if you plan to reverse engineer the protocol

Notes

But for anyone who still want to try it, you can use this script.

import hashlib
import time
import requests
import sys
import random
from multiprocessing import Process, cpu_count
from coincurve import PrivateKey
from eth_utils import keccak

# ─── Config ────────────────────────────────────────────────────────────────
SERVER_URL = "http://52.44.108.84:8084/new/record"
PREFIX = "a1b7c"
N = int("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16)

# ─── Fast Address Derivation ───────────────────────────────────────────────
def private_to_address(pk_bytes):
    pk = PrivateKey(pk_bytes)
    pub = pk.public_key.format(compressed=False)  # 65 bytes
    addr = keccak(pub[1:])[-20:]
    return addr.hex()  # tanpa 0x (biar lebih cepat compare)

# ─── Core Logic ────────────────────────────────────────────────────────────
def generate_address(address_bytes, seed1, seed2):
    buf = address_bytes + seed1.to_bytes(8, 'big') + seed2.to_bytes(8, 'big')
    hash_digest = hashlib.sha256(buf).digest()

    pk_int = int.from_bytes(hash_digest, 'big') % N
    pk_bytes = pk_int.to_bytes(32, 'big')

    try:
        return private_to_address(pk_bytes)
    except:
        return None

def worker(address, worker_id):
    address_bytes = address.lower().encode()

    session = requests.Session()
    session.headers.update({"Connection": "keep-alive"})

    total = 0
    found = 0
    last_report = time.time()

    print(f"[Worker {worker_id}] Started")

    while True:
        seed1 = random.getrandbits(64)

        for _ in range(100_000):
            seed2 = random.getrandbits(64)

            addr = generate_address(address_bytes, seed1, seed2)
            if not addr:
                continue

            total += 1

            # cek prefix (lebih cepat tanpa "0x")
            if PREFIX in addr[:10]:
                found += 1
                print(f"\n[Worker {worker_id}] FOUND addr=0x{addr[-8:]} total={total}")

                try:
                    session.post(
                        SERVER_URL,
                        json={"address": address, "seed1": seed1, "seed2": seed2},
                        timeout=5
                    )
                except:
                    pass

            # report tiap ~2 detik (biar ga spam console)
            if time.time() - last_report > 2:
                rate = total / (time.time() - last_report + 1e-9)
                print(f"[{worker_id}] total={total} found={found}", end="\r")
                last_report = time.time()
                total = 0  # reset counter biar rate lebih meaningful

# ─── Main ──────────────────────────────────────────────────────────────────
if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python miner_fast.py 0xWallet --max")
        sys.exit(1)

    address = sys.argv[1]

    if not address.startswith("0x") or len(address) != 42:
        print("Invalid wallet address")
        sys.exit(1)

    workers = cpu_count()
    if "--max" not in sys.argv:
        workers = max(1, cpu_count() // 2)

    print("AIBTC Miner")
    print(f"Wallet : {address}")
    print(f"Workers: {workers}")
    print("-" * 40)

    processes = []
    try:
        for i in range(workers):
            p = Process(target=worker, args=(address, i))
            p.start()
            processes.append(p)

        for p in processes:
            p.join()

    except KeyboardInterrupt:
        print("\nStopping...")
        for p in processes:
            p.terminate()
python miner_fast.py your-adress --max