Author

Topic: Pool mining software (Read 2437 times)

newbie
Activity: 9
Merit: 0
October 30, 2016, 02:33:50 PM
#5
i find solution, answer not need any more

Question is closed
newbie
Activity: 6
Merit: 0
October 26, 2016, 08:44:45 AM
#4
I am trying to do the same using Java. Does your code work now ?

Thank you
newbie
Activity: 9
Merit: 0
October 01, 2016, 09:56:55 AM
#3
hero member
Activity: 525
Merit: 531
September 29, 2016, 05:09:29 AM
#2
My tips:

Code:
String mr =  sha256(sha256(cb);
@Merkle2

and

Code:
String header = version + prevhash + reverse8(merkle) + ntime +
            nbits + nonce2;
@testControll

(header.length sould be 80 here!)
newbie
Activity: 9
Merit: 0
September 29, 2016, 03:06:16 AM
#1


i write part of miner for check correct work

private String generateCoinbase(String en2){
    StringBuilder coinbase = new StringBuilder();
    coinbase.append(coinb1);
    coinbase.append(Extranonce1);
    coinbase.append(en2);
    coinbase.append(coinb2);
    return coinbase.toString();
}

public String Merkle2(String cb) {
    String mr = cb;
    for(int i = 0; i < merkle_branch.length; ++i)
        mr = sha256(sha256(mr + merkle_branch));
    return mr;
}

public String reverse(String string) {
    int n = string.length() / 2;
    StringBuilder sb = new StringBuilder();
    for(int i = (n - 1) * 2; n >= 0; n-=2)
        sb.append(string.substring(i, i + 1));
    return sb.toString();
}

public String reverse8(String string) {
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < string.length(); i+=8){
        int end = Math.min(i + 7, string.length() - 1);
        sb.append(reverse(string.substring(i, end)));
    }
    return sb.toString();
}

public String testControll(String nonce2, String en2) {
    String coinbase = sha256(sha256(generateCoinbase(en2)));
    String merkle = Merkle2(coinbase);
    String header = version + prevhash + reverse8(merkle) + ntime +
            nbits + nonce2 + "0000008000000000000000000000000000000000000000000000000000000000000000000000000 00000000080020000";
    String hash = sha256(sha256(header));
    return hash;
}

algorithm i get from here https://slushpool.com/help/#!/manual/stratum-protocol

i run this with next parameters (that i get from existing miner)

    {"id": 0, "method": "mining.subscribe", "params": ["cgminer/3.7.2"]}

    {"id":0,"result":[[["mining.set_difficulty","b4b6693b72a50c7116db18d6497cac52"],["mining.notify","ae6812eb4cd7735a302a8a9dd95cf71f"]],"f53d0211",4],"error":null} {"id": 1, "method": "mining.authorize", "params": ["up101084139.cgminertest", "pass"]}

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

    {"id":null,"params":[4],"method":"mining.set_difficulty"}

    {"id":null,"params":["-4fb1d548","db48fff805d2f2be98c101b2103afcd3fc0d2f2803bf92a30000000000000000","01000000010000000000000000000000000000000000000000000000000000000000000000fffff fff410353950604f8b0e75708","2e522cfabe6d6d3555ed13d9e4c9317fc507a9080eeef9cb14b591b0cc1636caff691168d3f2470 4000000000000000000000001e5129d4a000000001976a91480ad90d403581fa3bf46086a91b2d9 d4125db6c188ac00000000",["7c60191525d8563e379a4049e44d77be2fecdb348eaf844c86d434a0cad8d75c","ae757ce8f99307303fd31b81b1672674523e84cebab7d4f5fc76c97c46fe6f87","6ab95b94b7970237331551e2f22097432863ee31916d9c80fa2251739d6eb20d","332eec53c5f131c6abe85d64f928151d072cae47f8477d417185b84ec2904a56","3c2f9fdbcca3f01cc8ca2f8eee445271617f10889c39d5644399865fe6dc8a1d","b06350717cd3e844ed5d605a4d7a5f25bf859beeb2bf1aab4e2bf7fa45ee5954","7a1f44163fe18591b2c50b1499b8f09f519e9cd18d1fda14be0e87a029cda741"],"20000000","18048ed4","57e7b0f8",true],"method":"mining.notify"}

    {"params": ["up101084139.cgminertest", "-4fb1d548", "01000000", "57e7b0f8", "2536d114"], "id": 2, "method": "mining.submit"}

and get result of header block hash: 60be74f0d211b35bc2d23b39cb3bc79667291b439639dc20f63616a35d89b14b but it must be low than target and is not

    what i do wrong?
    where is my fail?
    how do it right?
Jump to: