Использование Crypto Miner - Stratum Mining Protocol

Я новичок и пытаюсь написать Crypto Miner на Java ... Я использую протокол Stratum... ниже мой код Java ... Я не уверен, как получить уведомление Mining Job?

1) Я подключился к пулу с помощью - mining.subscribe 2) и запросил авторизацию майнинга - mining.authorize

тогда как я получу уведомление об уведомлении - может кто-нибудь, пожалуйста, помогите.

Протокол Stratum говорит: "Сервер начинает отправку уведомлений с помощью Mining Jobs. Сервер отправляет одно задание почти сразу после подписки. Небольшое примечание по инженерному обеспечению: есть веская причина, по которой первое задание не включается непосредственно в ответ по подписке - майнеру потребуется обработать один тип ответа в Два разных способа: сначала как ответ подписки, а затем как отдельное уведомление. Обработка заданий с крючками только для уведомлений JSON-RPC звучит для меня немного лучше."*

static boolean connect2Pool(String SERVER, int PORT)
{
    String message1 = "{\"id\":1,\"method\":\"mining.subscribe\",\"params\":[]}";
    String authorizemessage = "{\"params\": [\"" + USERNAME + "." + WORKER + "\", \"" + PASSWORD + "\"], \"id\": 2, \"method\": \"mining.authorize\"}";

    boolean result = false;
    DataInputStream is;
    DataOutputStream os;

    try
    {
        InetAddress address = InetAddress.getByName(SERVER);
        System.out.println("Atempting to connect to " + address.toString() + " on port " + PORT + ".");


        // connect 

        Socket socket = new Socket();
        socket.connect(new InetSocketAddress(SERVER, PORT));
        is = new DataInputStream(socket.getInputStream());
        os = new DataOutputStream(socket.getOutputStream());
        PrintWriter pw = new PrintWriter(os);
        pw.println(message1);                                       //connect
        pw.flush();

        //read response

        BufferedReader in = new BufferedReader(new InputStreamReader(is));
        JSONObject json = new JSONObject(in.readLine());

        if(!json.has("result")) {
            System.out.println("no reult");
            result=false;
        }else {
            System.out.println("json response: " + json.toString());
            result=true;
        }

        pw.println(authorizemessage);                               //authorize
        pw.flush();

        //read response

        in = new BufferedReader(new InputStreamReader(is));
        json = new JSONObject(in.readLine());

        if(!json.has("result")) {
            System.out.println("no reult");
            result=false;
        }else {
            System.out.println("json response: " + json.toString());
            result=true;
        }


        is.close();
        os.close();
        socket.close();


    } catch (IOException e) {
        System.out.println(e.getMessage());
        System.out.println("Not able to connect to pool");
        System.exit(-2);
    } catch (JSONException e) {
        System.out.println(e.getMessage());
        System.out.println("JSON not good.");
        System.exit(-2);
    }


    return result;

} //end of connect2Pool

0 ответов

Другие вопросы по тегам