protocol: include first new block in chain entry response
This commit is contained in:
parent
ebdc617408
commit
543733d42c
|
@ -298,6 +298,7 @@ namespace cryptonote
|
|||
uint64_t cumulative_difficulty_top64;
|
||||
std::vector<crypto::hash> m_block_ids;
|
||||
std::vector<uint64_t> m_block_weights;
|
||||
cryptonote::blobdata first_block;
|
||||
|
||||
BEGIN_KV_SERIALIZE_MAP()
|
||||
KV_SERIALIZE(start_height)
|
||||
|
@ -309,6 +310,7 @@ namespace cryptonote
|
|||
KV_SERIALIZE_OPT(cumulative_difficulty_top64, (uint64_t)0)
|
||||
KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_ids)
|
||||
KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_weights)
|
||||
KV_SERIALIZE(first_block)
|
||||
END_KV_SERIALIZE_MAP()
|
||||
};
|
||||
typedef epee::misc_utils::struct_init<request_t> request;
|
||||
|
|
|
@ -1813,6 +1813,16 @@ skip:
|
|||
LOG_ERROR_CCONTEXT("Failed to handle NOTIFY_REQUEST_CHAIN.");
|
||||
return 1;
|
||||
}
|
||||
if (r.m_block_ids.size() >= 2)
|
||||
{
|
||||
cryptonote::block b;
|
||||
if (!m_core.get_block_by_hash(r.m_block_ids[1], b))
|
||||
{
|
||||
LOG_ERROR_CCONTEXT("Failed to handle NOTIFY_REQUEST_CHAIN: first block not found");
|
||||
return 1;
|
||||
}
|
||||
r.first_block = cryptonote::block_to_blob(b);
|
||||
}
|
||||
MLOG_P2P_MESSAGE("-->>NOTIFY_RESPONSE_CHAIN_ENTRY: m_start_height=" << r.start_height << ", m_total_height=" << r.total_height << ", m_block_ids.size()=" << r.m_block_ids.size());
|
||||
post_notify<NOTIFY_RESPONSE_CHAIN_ENTRY>(r, context);
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue