diff --git a/src/avalanche/peermanager.cpp b/src/avalanche/peermanager.cpp --- a/src/avalanche/peermanager.cpp +++ b/src/avalanche/peermanager.cpp @@ -167,9 +167,10 @@ LOCK(cs_main); const CCoinsViewCache &coins = ::ChainstateActive().CoinsTip(); + const CBlockIndex *pindex = ::ChainActive().Tip(); for (const auto &p : peers) { ProofValidationState state; - if (!p.proof->verify(state, coins)) { + if (!p.proof->verify(state, coins, pindex)) { invalidPeers.push_back(p.peerid); } } @@ -206,9 +207,10 @@ // Reject invalid proof. LOCK(cs_main); const CCoinsViewCache &coins = ::ChainstateActive().CoinsTip(); + const CBlockIndex *pindex = ::ChainActive().Tip(); ProofValidationState state; - if (!proof->verify(state, coins)) { + if (!proof->verify(state, coins, pindex)) { return peers.end(); } } diff --git a/src/avalanche/proof.h b/src/avalanche/proof.h --- a/src/avalanche/proof.h +++ b/src/avalanche/proof.h @@ -17,6 +17,7 @@ #include #include +class CBlockIndex; class CCoinsView; /** @@ -112,7 +113,8 @@ uint32_t getScore() const; bool verify(ProofValidationState &state) const; - bool verify(ProofValidationState &state, const CCoinsView &view) const; + bool verify(ProofValidationState &state, const CCoinsView &view, + const CBlockIndex *pindex) const; }; } // namespace avalanche diff --git a/src/avalanche/proof.cpp b/src/avalanche/proof.cpp --- a/src/avalanche/proof.cpp +++ b/src/avalanche/proof.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include #include