diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index c87d16ee3a..7a0892b523 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -8,6 +8,7 @@ #include "Application.h" #include "Log.h" #include "SHAMapSync.h" +#include "HashPrefixes.h" #define LA_DEBUG #define LEDGER_ACQUIRE_TIMEOUT 2 @@ -300,7 +301,12 @@ bool LedgerAcquire::takeBase(const std::string& data, Peer::pointer peer) return false; } mHaveBase = true; - theApp->getHashedObjectStore().store(LEDGER, mLedger->getLedgerSeq(), strCopy(data), mHash); + + Serializer s(data.size() + 4); + s.add32(sHP_Ledger); + s.addRaw(data); + theApp->getHashedObjectStore().store(LEDGER, mLedger->getLedgerSeq(), s.peekData(), mHash); + progress(); if (!mLedger->getTransHash()) mHaveTransactions = true; if (!mLedger->getAccountHash()) mHaveState = true; diff --git a/src/SHAMapSync.cpp b/src/SHAMapSync.cpp index 6ebc64344b..b9a29210c3 100644 --- a/src/SHAMapSync.cpp +++ b/src/SHAMapSync.cpp @@ -234,7 +234,11 @@ bool SHAMap::addKnownNode(const SHAMapNode& node, const std::vectorgotNode(node, hash, rawNode, newNode->isLeaf()); + { + Serializer s; + newNode->addRaw(s, STN_ARF_PREFIXED); + filter->gotNode(node, hash, s.peekData(), newNode->isLeaf()); + } mTNByID[*newNode] = newNode; if (!newNode->isLeaf())