Mining protocol made compatible with MinerGate.com
Fixed incorrect nonce offset in job data.
This commit is contained in:
parent
9682a15400
commit
8d91aac912
2 changed files with 19 additions and 4 deletions
|
@ -2,7 +2,6 @@
|
||||||
// Distributed under the MIT/X11 software license, see the accompanying
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
|
||||||
#include "common/command_line.h"
|
#include "common/command_line.h"
|
||||||
#include "misc_log_ex.h"
|
#include "misc_log_ex.h"
|
||||||
#include "simpleminer.h"
|
#include "simpleminer.h"
|
||||||
|
@ -120,6 +119,7 @@ namespace mining
|
||||||
COMMAND_RPC_LOGIN::request req = AUTO_VAL_INIT(req);
|
COMMAND_RPC_LOGIN::request req = AUTO_VAL_INIT(req);
|
||||||
req.login = m_login;
|
req.login = m_login;
|
||||||
req.pass = m_pass;
|
req.pass = m_pass;
|
||||||
|
req.agent = "simpleminer/0.1";
|
||||||
COMMAND_RPC_LOGIN::response resp = AUTO_VAL_INIT(resp);
|
COMMAND_RPC_LOGIN::response resp = AUTO_VAL_INIT(resp);
|
||||||
if(!epee::net_utils::invoke_http_json_rpc<mining::COMMAND_RPC_LOGIN>("/", req, resp, m_http_client))
|
if(!epee::net_utils::invoke_http_json_rpc<mining::COMMAND_RPC_LOGIN>("/", req, resp, m_http_client))
|
||||||
{
|
{
|
||||||
|
@ -137,7 +137,12 @@ namespace mining
|
||||||
}
|
}
|
||||||
pool_session_id = resp.id;
|
pool_session_id = resp.id;
|
||||||
//78
|
//78
|
||||||
if(!text_job_details_to_native_job_details(resp.job, job))
|
if (resp.job.blob.empty() && resp.job.target.empty() && resp.job.job_id.empty())
|
||||||
|
{
|
||||||
|
LOG_PRINT_L0("Job didn't change");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if(!text_job_details_to_native_job_details(resp.job, job))
|
||||||
{
|
{
|
||||||
LOG_PRINT_L0("Failed to text_job_details_to_native_job_details(), disconnect and sleep....");
|
LOG_PRINT_L0("Failed to text_job_details_to_native_job_details(), disconnect and sleep....");
|
||||||
m_http_client.disconnect();
|
m_http_client.disconnect();
|
||||||
|
@ -161,7 +166,8 @@ namespace mining
|
||||||
COMMAND_RPC_SUBMITSHARE::response submit_response = AUTO_VAL_INIT(submit_response);
|
COMMAND_RPC_SUBMITSHARE::response submit_response = AUTO_VAL_INIT(submit_response);
|
||||||
submit_request.id = pool_session_id;
|
submit_request.id = pool_session_id;
|
||||||
submit_request.job_id = job.job_id;
|
submit_request.job_id = job.job_id;
|
||||||
submit_request.nonce = epee::string_tools::pod_to_hex((*((uint32_t*)&job.blob.data()[78])));
|
submit_request.nonce = epee::string_tools::pod_to_hex((*((uint32_t*)&job.blob.data()[39])));
|
||||||
|
submit_request.result = epee::string_tools::pod_to_hex(h);
|
||||||
LOG_PRINT_L0("Share found: nonce=" << submit_request.nonce << " for job=" << job.job_id << ", submitting...");
|
LOG_PRINT_L0("Share found: nonce=" << submit_request.nonce << " for job=" << job.job_id << ", submitting...");
|
||||||
if(!epee::net_utils::invoke_http_json_rpc<mining::COMMAND_RPC_SUBMITSHARE>("/", submit_request, submit_response, m_http_client))
|
if(!epee::net_utils::invoke_http_json_rpc<mining::COMMAND_RPC_SUBMITSHARE>("/", submit_request, submit_response, m_http_client))
|
||||||
{
|
{
|
||||||
|
@ -193,7 +199,12 @@ namespace mining
|
||||||
epee::misc_utils::sleep_no_w(1000);
|
epee::misc_utils::sleep_no_w(1000);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(!text_job_details_to_native_job_details(getjob_response, job))
|
if (getjob_response.blob.empty() && getjob_response.target.empty() && getjob_response.job_id.empty())
|
||||||
|
{
|
||||||
|
LOG_PRINT_L0("Job didn't change");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if(!text_job_details_to_native_job_details(getjob_response, job))
|
||||||
{
|
{
|
||||||
LOG_PRINT_L0("Failed to text_job_details_to_native_job_details(), disconnect and sleep....");
|
LOG_PRINT_L0("Failed to text_job_details_to_native_job_details(), disconnect and sleep....");
|
||||||
m_http_client.disconnect();
|
m_http_client.disconnect();
|
||||||
|
|
|
@ -36,10 +36,12 @@ namespace mining
|
||||||
{
|
{
|
||||||
std::string login;
|
std::string login;
|
||||||
std::string pass;
|
std::string pass;
|
||||||
|
std::string agent;
|
||||||
|
|
||||||
BEGIN_KV_SERIALIZE_MAP()
|
BEGIN_KV_SERIALIZE_MAP()
|
||||||
KV_SERIALIZE(login)
|
KV_SERIALIZE(login)
|
||||||
KV_SERIALIZE(pass)
|
KV_SERIALIZE(pass)
|
||||||
|
KV_SERIALIZE(agent)
|
||||||
END_KV_SERIALIZE_MAP()
|
END_KV_SERIALIZE_MAP()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -82,11 +84,13 @@ namespace mining
|
||||||
{
|
{
|
||||||
std::string id;
|
std::string id;
|
||||||
std::string nonce;
|
std::string nonce;
|
||||||
|
std::string result;
|
||||||
std::string job_id;
|
std::string job_id;
|
||||||
|
|
||||||
BEGIN_KV_SERIALIZE_MAP()
|
BEGIN_KV_SERIALIZE_MAP()
|
||||||
KV_SERIALIZE(id)
|
KV_SERIALIZE(id)
|
||||||
KV_SERIALIZE(nonce)
|
KV_SERIALIZE(nonce)
|
||||||
|
KV_SERIALIZE(result)
|
||||||
KV_SERIALIZE(job_id)
|
KV_SERIALIZE(job_id)
|
||||||
END_KV_SERIALIZE_MAP()
|
END_KV_SERIALIZE_MAP()
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue