rpc: add option to skip coinbase info in get_blocks.bin

This commit is contained in:
moneromooo-monero 2018-04-15 21:58:09 +01:00
parent a2b557fe5c
commit 6795bd0d4e
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
3 changed files with 10 additions and 4 deletions

View file

@ -249,12 +249,15 @@ namespace cryptonote
res.status = "Invalid block"; res.status = "Invalid block";
return false; return false;
} }
if (!req.no_miner_tx)
{
bool r = m_core.get_tx_outputs_gindexs(get_transaction_hash(b.miner_tx), res.output_indices.back().indices.back().indices); bool r = m_core.get_tx_outputs_gindexs(get_transaction_hash(b.miner_tx), res.output_indices.back().indices.back().indices);
if (!r) if (!r)
{ {
res.status = "Failed"; res.status = "Failed";
return false; return false;
} }
}
size_t txidx = 0; size_t txidx = 0;
ntxes += bd.second.size(); ntxes += bd.second.size();
for (std::list<cryptonote::blobdata>::iterator i = bd.second.begin(); i != bd.second.end(); ++i) for (std::list<cryptonote::blobdata>::iterator i = bd.second.begin(); i != bd.second.end(); ++i)

View file

@ -83,10 +83,12 @@ namespace cryptonote
std::list<crypto::hash> block_ids; //*first 10 blocks id goes sequential, next goes in pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block */ std::list<crypto::hash> block_ids; //*first 10 blocks id goes sequential, next goes in pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block */
uint64_t start_height; uint64_t start_height;
bool prune; bool prune;
bool no_miner_tx;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids) KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids)
KV_SERIALIZE(start_height) KV_SERIALIZE(start_height)
KV_SERIALIZE(prune) KV_SERIALIZE(prune)
KV_SERIALIZE_OPT(no_miner_tx, false)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };

View file

@ -1684,6 +1684,7 @@ void wallet2::pull_blocks(uint64_t start_height, uint64_t &blocks_start_height,
} }
req.start_height = start_height; req.start_height = start_height;
req.no_miner_tx = m_refresh_type == RefreshNoCoinbase;
m_daemon_rpc_mutex.lock(); m_daemon_rpc_mutex.lock();
bool r = net_utils::invoke_http_bin("/getblocks.bin", req, res, m_http_client, rpc_timeout); bool r = net_utils::invoke_http_bin("/getblocks.bin", req, res, m_http_client, rpc_timeout);
m_daemon_rpc_mutex.unlock(); m_daemon_rpc_mutex.unlock();