From 8b58fbd3c48d91d266a5dd3871e9d9b6b99cdb51 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 3 May 2012 12:40:40 -0700 Subject: [PATCH] Half of the trusted path code. --- src/SHAMapSync.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/SHAMapSync.cpp b/src/SHAMapSync.cpp index 3cd0a8013..e243e5e0b 100644 --- a/src/SHAMapSync.cpp +++ b/src/SHAMapSync.cpp @@ -348,6 +348,26 @@ static bool confuseMap(SHAMap &map, int count) return true; } +std::list > SHAMap::getTrustedPath(const uint256& index) +{ + boost::recursive_mutex::scoped_lock sl(mLock); + std::stack stack = SHAMap::getStack(index, false); + + if (stack.empty() || !stack.top()->isLeaf()) + throw std::runtime_error("requested leaf not present"); + + std::list< std::vector > path; + Serializer s; + while (!stack.empty()) + { + stack.top()->addRaw(s); + path.push_back(s.getData()); + s.erase(); + stack.pop(); + } + return path; +} + bool SHAMap::syncTest() { unsigned int seed;