TON launched on hashpool

TON mining stratum protocol has been online:

Support Miner:

  1. lolMiner
  2. Gminer(2.81+)

mining server:

stratum+tcp://ton.stratum.hashpool.site:9055 

SSL mining server:

stratum+ssl://ton.stratum.hashpool.site:19055   

lolMiner mining configuration:

lolMiner -a TON –pool stratum+tcp://ton.stratum.hashpool.site:9055 –user EQCO63C70cQlJmplvtZ7oWPosuYZdvnCO27xu-gSMOu9WRKA.worker1 –ton-mode 6

Run the following command for SSL:

lolMiner -a TON –pool stratum+ssl://ton.stratum.hashpool.site:9055 –user EQCO63C70cQlJmplvtZ7oWPosuYZdvnCO27xu-gSMOu9WRKA.worker1 –ton-mode 6

Gminer mining configuration:

miner.exe –algo ton –server ton.stratum.hashpool.site:9055 –user EQCO63C70cQlJmplvtZ7oWPosuYZdvnCO27xu-gSMOu9WRKA 

Run the following command for SSL:

miner.exe –algo ton –server ton.stratum.hashpool.site:19055 –user EQCO63C70cQlJmplvtZ7oWPosuYZdvnCO27xu-gSMOu9WRKA –ssl 1

If –user uses the exchange address and a comment is required for the exchange address,  –user is in the following format:

address:comment 

For example:  EQBfAN7LfaUYgXZNw5Wc7GBgkEX2yhuJ5ka95J1JJwXXf4a8:880593

If you use FPGA mining, you can use the above compatible protocols, or you can use hashPool FPGA mining protocol.

hashpool FPGA mining protocol

mining server:

stratum+tcp://ton.stratum.hashpool.site:9044 

SSL mining server:

stratum+ssl://ton.stratum.hashpool.site:19044   

mining.subscribe

  • params: [“agent”, null]
  • result: [null, “nonce prefix”, “nonce2 size”]
request:
{
 "id": 1,
 "method": "mining.subscribe",
 "params": ["tonminer-v1.0.0", null]
}

response:
{
 "id": 1,
 "result": [null, "3e29d542", 28],
 "error": null
}

nonce1 is first part of the rdata1 (in hex).

rdata1 is 32 bytes long. The miner will pick nonce2 such that len(nonce2) = 32 – len(nonce1) = 32 – 4 = 28 bytes.

mining.authorize

  • params: [“username”, “password”]
  • result: true
{
 "id": 2,
 "method": "mining.authorize",
 "params": ["EQA3hKVrpll-jVAtA1KjfpaMJ7YGg44M6DQuBdBX9G5xWxOA", "x"]
} 

{"id":2,"result":true,"error":null}

If username uses the exchange address and a comment is required for the exchange address, username is in the following format:

address:comment 

Example: EQBfAN7LfaUYgXZNw5Wc7GBgkEX2yhuJ5ka95J1JJwXXf4a8:880593

mining.set_target

  • params: [“32bytes target in hex”]
{
 "id": null,
 "method": "mining.set_target",
 "params": ["0000020000000000000000000000000000000000000000000000000000000000"]
}

mining.notify

  • params: [“jobId”, “prefix”, “GIVER_SEED”, “EXPIRED”, “WALLET_ADDRESS”, cleanJob]
{
 "id": null,
 "method": "mining.notify",
 "params": ["17282f3f", “00f24d696e6500”, "955eaaaa2715ed593675efed082af5c2", "61f69880", "ebf5cca491c4760c1b4d9306e6aed35b17d773ab60650ed58974a84b2d0fb82c", true]
}

mining.submit

  • params: [ “username”, “jobId”, “EXPIRED”, “nonce2” ]
  • result: true / false
{
 "id": 102,
 "method": "mining.submit",
 "params": ["EQA3hKVrpll-jVAtA1KjfpaMJ7YGg44M6DQuBdBX9G5xWxOA", "17282f3f", "61f69880", "eaf71970c0eaf71970c0eaf71970c0eaf71970c0eaf71970c0eaf719"]
}

{"id":102,"result":true,"error":null}    // accepted share response
{"id":102,"result":false,"error":[21,"low difficulty",null]}  // rejected share response

nonce2 is the second part of rdata1.
rdata1 = nonce1 + nonce2
rdata2 = rdata1

reference:https://github.com/newton-blockchain/ton/blob/master/crypto/util/Miner.cpp

In this example:

rdata1 = rdata2 = nonce1 + nonce2 = 3e29d542eaf71970c0eaf71970c0eaf71970c0eaf71970c0eaf71970c0eaf719
prefix = 00f24d696e6500

headerHash = prefix + expired + WALLET_ADDRESS + rdata1 + GIVER_SEED + rdata2

powHash = sha256(headerHash)

Was this article helpful?