btcpuzzle logo

btcpuzzle.info'ya Nasıl Katılınır

Bitcoin Puzzle havuzuna nasıl katılacağınızı ve BTC puzzle çözümüne nasıl katkıda bulunacağınızı öğrenin. Yeni başlayanlar için adım adım rehber.

Bu içerik yalnızca İngilizce olarak mevcuttur.

What is btcpuzzle.info?

btcpuzzle.info is a solo pool created specifically for Bitcoin Puzzles (or challenges). It is open-source and trustworthy. It operates using Proof of Work (PoW) and is secure against malicious attacks. To join the pool, you need to use a client. This client is open-source, and anyone can develop their own client if they wish. In this guide, the process of joining the pool is explained using our official client.

What is a BTC Puzzle (challenge)?

A BTC Puzzle doesn’t fully reflect what its name suggests. It was created completely anonymously and contains rewards totaling over 1,000 BTC. To explain it simply, a puzzle is about finding the correct number within a specific range between two numbers. However, with today’s technology and the architecture of the Bitcoin blockchain, the difficulty increases as these ranges grow larger. That’s why a pool is needed.

btcpuzzle.info is a solo pool, meaning whoever finds the solution receives the reward. However, the scanned ranges are shared. A range that has already been scanned by one participant cannot be scanned again by another.

Related Resources

Below you can find important links related to this project. If you need further assistance, you can reach out via the support section below.

Website LinkName
Pool websitebtcpuzzle.infoBtc Puzzle logo
Supportt.me/bitcrackrandomiserBtc Puzzle logo
Github repogithub.com/btcpuzzle-
Docker imageshub.docker.com/u/ilkercndk-
Guide & Documentation
Start GuideHow to Join the Pool
CloudSearch GuideCloudSearch Documentation
API DocumentationAPI Documentation

Build it yourself

You can build the client and all the applications used yourself. %100 open-source client & apps.

Proof Of Work (PoW)

When requesting a range from the pool, three wallet addresses are also returned. The private key of these addresses is scanned simultaneously. To ensure that a range is scanned, the private key of three wallet addresses must be found. The private keys of the found addresses are hashed with SHA256. In this way, "Proof Key" is created. This is to make sure your program is working correctly. I also want to make sure you have a really healthy scan.

Example; pool returns 3E2ECB0 HEX range to scan. The pool randomly generates extra 6 private keys within the returned HEX range. 3E2ECB00000000000 and 3E2ECB0FFFFFFFFFF.

Marking is done with SHA256(PROOFKEY1+PROOFKEY2+PROOFKEY3+PROOFKEY4+PROOFKEY5+PROOFKEY6)

Note: The number of proof keys can be increased/decreased dynamically by the API. By standard the total number is 6.

How to join the pool?

Joining the pool is quite simple. At a minimum, you need to have an Nvidia graphics card. Alternatively, you can easily join using CloudSearch.

Step-by-Step Guide

  1. 1- Create an account on BTCPuzzle.info website and obtain your user token.
  2. 2- Download latest released Btcpuzzle.info client or build it yourself.
  3. Edit the pool.conf file according to you.
  4. 4- Run the application.

CloudSearch

If you're looking for the easiest way to join the pool, you're in the right place. Rent the graphics card you want at hourly rates and chase the reward. Go to CloudSearch by btcpuzzle.info.

  1. 1- Create an account on BTCPuzzle.info website and activate your CloudSearch account.
  2. 2- Top up balance (USD) using Polygon, Base, ETH and many other networks.
  3. 3- Create a template and rent the instance you want. That is all!

Btcpuzzle.info Client

This content explains the features of the btcpuzzle.info client. The supported features and how to use the client are described in detail. If you have any questions, you can get support from the Telegram group. The previous client used by btcpuzzle.info, "“btcpuzzle-client”", will no longer be used or developed.

Settings (pool.conf)

# Client Pool Configuration # https://btcpuzzle.info

# Required: Your user token from btcpuzzle.info
user_token=

# Worker name (leave empty for auto-generated)
worker_name=

# Target puzzle
target_puzzle=71

# GPU Settings
gpu_index=0

# Security
untrusted_computer=false
public_key=

# Telegram Notifications
telegram_share=false
telegram_token=
telegram_chat_id=

# API Share (Custom webhook)
api_share=false
api_share_url=

# Other Settings
custom_range=none

You can update the application settings via the pool.conf file or in app. You can create your settings file on btcpuzzle.info dashboard. Also, You can pass arguments to the application as in the example below.

btcpuzzle.exe -puzzle 71 -worker YourWorkerName001 -token YourUserTokenFromBtcpuzzle.info

./btcpuzzle -puzzle 71 -worker YourWorkerName001 -token YourUserTokenFromBtcpuzzle.info

[user_token]

You can create user token value by logging into your account at btcpuzzle.info. If you do not have an account, you can create a new account using your wallet address.

You can revoke the user token value at any time. However, when you do this, you must also enter the new value from the workers settings file.

Example user token value;

VDGcruTrDZ62EuJsE9IQUCiRIKRhZpXw6RPtcnk1jBxbROn1nxZixBMql8L2zxKwD9QXb1UZoWgrDf8IwciRDUHxHzwkNrDzNBpio2UdAx4rLYsjMnI887eqWGauszBl

[worker_name]

Enter the worker name. worker4124 or any workername

Only alphanumeric is accepted. Max 16 characters. Do not use special characters. If you do not enter a worker name, it will be created automatically.

[target_puzzle]

Select the puzzle you want to scan. 38 or 71 or current any puzzle You can use 38 for test pool. There are 32 possible ranges in the test pool. You can find the test pool data on the website. Test pool data is reset every 30 minutes.

[public_key]

Key Type: RSA PKCS#8 - 1024 Bit

This setting works together with untrusted_computer. If you provide a valid value for the Public Key, the untrusted_computer value will automatically be set to true. This setting creates a secure working environment, especially for instances running on remote servers.

If a key is found, it will be encrypted using the public key you provided. This means that even the owner of the instance cannot know the private key. The encrypted key will be sent to you via Telegram or Custom API Share. Only you can decrypt this key using your RSA Private Key.

As an example, you can follow this page to generate your own RSA key: https://emn178.github.io/online-tools/rsa/key-generator/

Generate an RSA key on this page and make sure to keep your Private Key सुरक्षित. You will use the Public Key in your instances. To ensure everything works correctly, first run test scenarios with puzzle 38. Then try to decrypt the найденный key using your Private Key.

This setting is recommended for advanced users and should not be used without proper understanding. Below is an example of a generated RSA Public Key.

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmj7S4rw7qEHvePQlcE2cRxNvq
+Nez6ltDxCUUwv8+InWFshfHX8B9Q0XrW/EUFJ/UcqDcGMEcGHM1XVmwAc6k5cSX
ZbmF6hcnXcBx8YuAUfJ3DUeRYE3uTYN5fiPnydPFoiuGgwE654bQnJyDMgT7JSbf
OPHabvA/NpiEvQnjOwIDAQAB
-----END PUBLIC KEY-----

You should send this value to the application in the following way: convert all line breaks into a single line using the "|" character and use it like that. Alternatively, you can also use the "@" character. This way, all instances running with this argument will encrypt any найденный key using this public key and send it to you. Remember, only you will be able to decrypt this data using your Private Key.

-pubkey "-----BEGIN PUBLIC KEY-----|MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmj7S4rw7qEHvePQlcE2cRxNvq|+Nez6ltDxCUUwv8+InWFshfHX8B9Q0XrW/EUFJ/UcqDcGMEcGHM1XVmwAc6k5cSX|ZbmF6hcnXcBx8YuAUfJ3DUeRYE3uTYN5fiPnydPFoiuGgwE654bQnJyDMgT7JSbf|OPHabvA/NpiEvQnjOwIDAQAB|-----END PUBLIC KEY-----""

When the client encrypts the key and sends it to you, you will receive an encrypted message similar to the one below in base64 format. You can decrypt this message using the Private Key of the RSA key you generated.As a reminder for users who may not be familiar: whichever public key you provide to the client or instance, make sure to keep its corresponding private key. This is because the encrypted message can only be decrypted with that private key, and it cannot be recovered otherwise.

mTCyRIE999ABAiTQ21oWvKDQMlezFVoz4cXKae4tHcg7z1LeQo0ud8/c6xtVymJrWeTXIYCCV1ZHAFkPTOYvsSoeOgL1uLWtsnE3lDWxR01Ht4LsP0W0YptNYf7g+Knd3SclRORuSqwsuglRHttzTyp+JvjITEFulKxi7yRW3gk=

[telegram_token]

Enter Telegram BOT access token. Example: 6331494066:ABEfv4cF3dbc3mA8qGLDlEp2uxzgYESIa_w

[telegram_chat_id]

Enter Telegram chat ID. Example: -1001945678901

[telegram_share]

If you enter the token and chat ID values mentioned above, it will automatically be set to "true", so there is no need to specify this value separately.

true: Share progress to Telegram.

false: If false, it does not send notification.

If your Telegram settings are correct, you will receive a notification that the worker has started working. Suggestion: If you are on an untrusted computer, make the settings via the console and proceed without saving. IMPORTANT: If the key is found and Telegram cannot transmit the key to you, it will make unlimited attempts.

[api_share_url]

empty or https://yourwebsite.com

Receive the all actions as a POST request to your own server. All values are requested as "header". Below you can see what data is coming.

IMPORTANT: If the key is found and an unsuccessful result is received from the API (body), it makes a unlimited attempts.

status // [workerStarted, workerExited, rangeScanned, reachedOfKeySpace, keyFound]
hex // Scanned HEX value
privatekey // Private key if that found
targetpuzzle // Which puzzle is being scanned
workername // Worker name [worker1039]

Example PHP script

<?php
  $headers = getallheaders();
  $status = $headers['Status'];
  $hex = $headers['Hex'];
  $workername = $headers['Workername'];
  $privatekey = $headers['Privatekey'];
  $targetpuzzle = $headers['Targetpuzzle'];

  if($status == "workerStarted"){
    shareTelegram($workername." started job!");
  }
  else if($status == "workerExited"){
    shareTelegram($workername." goes offline!");
  }
  else if($status == "rangeScanned"){
    shareTelegram($hex." scanned by ".$workername);
  }
  else if($status == "reachedOfKeySpace"){
    shareTelegram($workername." reached of keyspace!");
  }
  else if($status == "keyFound"){
    shareTelegram("Congratulations! ".$workername." found the key! Key is: ".$privatekey);
  }

  function shareTelegram($message){
    $apiToken = "{telegram_api_token}";
    $chatId= "{telegram_chat_id}";
    $data = [ 
      "chat_id" => $chatId, 
      "text" => $message
    ]; 
    $response = file_get_contents("http://api.telegram.org/bot$apiToken/sendMessage?" . http_build_query($data) ); 
  }

  echo 'true';
?>

You must return true as a result from the API. The returned value is checked only when the key is found and new requests are sent until it receives a 'true' response from the API (Unlimited attempts).

[api_share]

true or false

If you enter a valid URL for the API Share URL, this value will automatically be set to "true", so there is no need to change it manually.

[custom_range]

none: Scan all of ranges.

2D or 3BA or 3FF1: Enter the first [1-7] characters of the range you want to scan. Only one value.

You can use specify ranges like 3400000:38FFFFF. Incoming keys will be selected from this range. You must write the range in full length. Make sure you enter the correct range.

Note: You can specify only one setting for the custom range field.

Docker Images

You can easily create your own image with the Dockerfile Docker image in the repo. You can view the official Docker images created for btcpuzzle.info at this URL: https://hub.docker.com/r/ilkercndk/btcpuzzle/tags. Additionally, you can build your own Docker image using the "Dockerfile" available on GitHub.

How to use Docker images

ilkercndk/btcpuzzle:latest

Run command with your settings. Example:

$ docker run --gpus all -it ilkercndk/btcpuzzle:latest -e USERTOKEN=xxx -e WORKERNAME=workername ...

Default Settings

ENV PUZZLE=71
ENV USERTOKEN=""
ENV WORKERNAME=""
ENV APISHARE=""
ENV PUBKEY=""
ENV TELEGRAM_TOKEN=""
ENV TELEGRAM_CHATID=""
ENV CUSTOM_RANGE=""
ENV CLOUDSEARCH_MODE="false"

How to create/build/push Docker image?

1 - Build docker file.

$ docker build -t btcpuzzle .

2 - Tag the image (for push to hub). With your {username}/{image_name}:{tag}.

$ docker tag btcpuzzle ilkercndk/btcpuzzle:latest

Donate

This website, the client, and everything else were created with great passion and love by Ilker Cindik, a father living in Turkey (or Türkiye). Your donations help me stay committed to this project.

1eosEvvesKV6C2ka4RDNZhmepm1TLFBtw