Optimize downconversion from protocol version 2.3 to 2.2 when relaying

This commit is contained in:
Bart
2026-07-21 09:43:08 -04:00
parent 388982885b
commit 2e3d5deb92

View File

@@ -1719,8 +1719,16 @@ PeerImp::onMessage(std::shared_ptr<protocol::TMLedgerData> const& m)
for (int i = 0; i < m->nodes_size(); ++i)
{
auto* ledgerNode = m->mutable_nodes(i);
if (ledgerNode->reference_case() != ledgerNode->REFERENCE_NOT_SET)
if (ledgerNode->has_id())
{
// We can directly copy the `id` field, because it uses the wire format as
// the legacy `nodeid` field.
ledgerNode->set_nodeid(ledgerNode->id());
ledgerNode->clear_id();
}
else if (ledgerNode->has_depth())
{
// We need to regenerate the node ID from the node data and depth.
auto treeNode = getTreeNode(ledgerNode->nodedata());
if (!treeNode)
{
@@ -1742,7 +1750,6 @@ PeerImp::onMessage(std::shared_ptr<protocol::TMLedgerData> const& m)
}
ledgerNode->set_nodeid(nodeID->getRawString());
ledgerNode->clear_id();
ledgerNode->clear_depth();
}
}