mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-01 08:25:51 +00:00
Better logging of untrusted validations. (To make sure there's no bug.)
This commit is contained in:
@@ -201,7 +201,7 @@ void LedgerConsensus::checkOurValidation()
|
|||||||
v->setTrusted();
|
v->setTrusted();
|
||||||
v->sign(signingHash, mValPrivate);
|
v->sign(signingHash, mValPrivate);
|
||||||
theApp->isNew(signingHash);
|
theApp->isNew(signingHash);
|
||||||
theApp->getValidations().addValidation(v);
|
theApp->getValidations().addValidation(v, "localMissing");
|
||||||
std::vector<unsigned char> validation = v->getSigned();
|
std::vector<unsigned char> validation = v->getSigned();
|
||||||
ripple::TMValidation val;
|
ripple::TMValidation val;
|
||||||
val.set_validation(&validation[0], validation.size());
|
val.set_validation(&validation[0], validation.size());
|
||||||
@@ -1182,7 +1182,7 @@ void LedgerConsensus::accept(SHAMap::ref set, LoadEvent::pointer)
|
|||||||
v->sign(signingHash, mValPrivate);
|
v->sign(signingHash, mValPrivate);
|
||||||
v->setTrusted();
|
v->setTrusted();
|
||||||
theApp->isNew(signingHash); // suppress it if we receive it
|
theApp->isNew(signingHash); // suppress it if we receive it
|
||||||
theApp->getValidations().addValidation(v);
|
theApp->getValidations().addValidation(v, "local");
|
||||||
theApp->getOPs().setLastValidation(v);
|
theApp->getOPs().setLastValidation(v);
|
||||||
std::vector<unsigned char> validation = v->getSigned();
|
std::vector<unsigned char> validation = v->getSigned();
|
||||||
ripple::TMValidation val;
|
ripple::TMValidation val;
|
||||||
|
|||||||
@@ -1164,10 +1164,10 @@ std::vector<RippleAddress>
|
|||||||
return accounts;
|
return accounts;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NetworkOPs::recvValidation(SerializedValidation::ref val)
|
bool NetworkOPs::recvValidation(SerializedValidation::ref val, const std::string& source)
|
||||||
{
|
{
|
||||||
cLog(lsDEBUG) << "recvValidation " << val->getLedgerHash();
|
cLog(lsDEBUG) << "recvValidation " << val->getLedgerHash() << " from " << source;
|
||||||
return theApp->getValidations().addValidation(val);
|
return theApp->getValidations().addValidation(val, source);
|
||||||
}
|
}
|
||||||
|
|
||||||
Json::Value NetworkOPs::getConsensusInfo()
|
Json::Value NetworkOPs::getConsensusInfo()
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ public:
|
|||||||
RippleAddress nodePublic, uint256 checkLedger, bool sigGood);
|
RippleAddress nodePublic, uint256 checkLedger, bool sigGood);
|
||||||
SMAddNode gotTXData(const boost::shared_ptr<Peer>& peer, const uint256& hash,
|
SMAddNode gotTXData(const boost::shared_ptr<Peer>& peer, const uint256& hash,
|
||||||
const std::list<SHAMapNode>& nodeIDs, const std::list< std::vector<unsigned char> >& nodeData);
|
const std::list<SHAMapNode>& nodeIDs, const std::list< std::vector<unsigned char> >& nodeData);
|
||||||
bool recvValidation(SerializedValidation::ref val);
|
bool recvValidation(SerializedValidation::ref val, const std::string& source);
|
||||||
void takePosition(int seq, SHAMap::ref position);
|
void takePosition(int seq, SHAMap::ref position);
|
||||||
SHAMap::pointer getTXMap(const uint256& hash);
|
SHAMap::pointer getTXMap(const uint256& hash);
|
||||||
bool hasTXSet(const boost::shared_ptr<Peer>& peer, const uint256& set, ripple::TxSetStatus status);
|
bool hasTXSet(const boost::shared_ptr<Peer>& peer, const uint256& set, ripple::TxSetStatus status);
|
||||||
|
|||||||
@@ -1056,8 +1056,16 @@ static void checkValidation(Job&, SerializedValidation::pointer val, uint256 sig
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string source;
|
||||||
|
Peer::pointer lp = peer.lock();
|
||||||
|
if (lp)
|
||||||
|
source = lp->getDisplayName();
|
||||||
|
else
|
||||||
|
source = "unknown";
|
||||||
|
|
||||||
std::set<uint64> peers;
|
std::set<uint64> peers;
|
||||||
if (theApp->getOPs().recvValidation(val) && theApp->getSuppression().swapSet(signingHash, peers, SF_RELAYED))
|
if (theApp->getOPs().recvValidation(val, source) &&
|
||||||
|
theApp->getSuppression().swapSet(signingHash, peers, SF_RELAYED))
|
||||||
{
|
{
|
||||||
PackedMessage::pointer message = boost::make_shared<PackedMessage>(*packet, ripple::mtVALIDATION);
|
PackedMessage::pointer message = boost::make_shared<PackedMessage>(*packet, ripple::mtVALIDATION);
|
||||||
theApp->getConnectionPool().relayMessageBut(peers, message);
|
theApp->getConnectionPool().relayMessageBut(peers, message);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ VSpointer ValidationCollection::findSet(const uint256& ledgerHash)
|
|||||||
return mValidations.fetch(ledgerHash);
|
return mValidations.fetch(ledgerHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ValidationCollection::addValidation(SerializedValidation::ref val)
|
bool ValidationCollection::addValidation(SerializedValidation::ref val, const std::string& source)
|
||||||
{
|
{
|
||||||
RippleAddress signer = val->getSignerPublic();
|
RippleAddress signer = val->getSignerPublic();
|
||||||
bool isCurrent = false;
|
bool isCurrent = false;
|
||||||
@@ -53,7 +53,7 @@ bool ValidationCollection::addValidation(SerializedValidation::ref val)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
cLog(lsDEBUG) << "Node " << signer.humanNodePublic() << " not in UNL st=" << val->getSignTime() <<
|
cLog(lsDEBUG) << "Node " << signer.humanNodePublic() << " not in UNL st=" << val->getSignTime() <<
|
||||||
", hash=" << val->getLedgerHash() << ", shash=" << val->getSigningHash();
|
", hash=" << val->getLedgerHash() << ", shash=" << val->getSigningHash() << " src=" << source;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint256 hash = val->getLedgerHash();
|
uint256 hash = val->getLedgerHash();
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public:
|
|||||||
ValidationCollection() : mValidations("Validations", 128, 600), mWriting(false)
|
ValidationCollection() : mValidations("Validations", 128, 600), mWriting(false)
|
||||||
{ mStaleValidations.reserve(512); }
|
{ mStaleValidations.reserve(512); }
|
||||||
|
|
||||||
bool addValidation(SerializedValidation::ref);
|
bool addValidation(SerializedValidation::ref, const std::string& source);
|
||||||
ValidationSet getValidations(const uint256& ledger);
|
ValidationSet getValidations(const uint256& ledger);
|
||||||
void getValidationCount(const uint256& ledger, bool currentOnly, int& trusted, int& untrusted);
|
void getValidationCount(const uint256& ledger, bool currentOnly, int& trusted, int& untrusted);
|
||||||
void getValidationTypes(const uint256& ledger, int& full, int& partial);
|
void getValidationTypes(const uint256& ledger, int& full, int& partial);
|
||||||
|
|||||||
Reference in New Issue
Block a user