mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Migrate thread safety to RCLConsensus (RIPD-1389):
Moves thread safety from generic Consensus to RCLConsensus and switch generic Consensus to adaptor design.
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
#include <ripple/app/misc/SHAMapStore.h>
|
||||
#include <ripple/app/misc/TxQ.h>
|
||||
#include <ripple/app/misc/ValidatorSite.h>
|
||||
#include <ripple/app/misc/ValidatorKeys.h>
|
||||
#include <ripple/app/paths/PathRequests.h>
|
||||
#include <ripple/app/tx/apply.h>
|
||||
#include <ripple/basics/ResolverAsio.h>
|
||||
@@ -305,6 +306,7 @@ public:
|
||||
std::unique_ptr <CollectorManager> m_collectorManager;
|
||||
CachedSLEs cachedSLEs_;
|
||||
std::pair<PublicKey, SecretKey> nodeIdentity_;
|
||||
ValidatorKeys const validatorKeys_;
|
||||
|
||||
std::unique_ptr <Resource::Manager> m_resourceManager;
|
||||
|
||||
@@ -394,8 +396,8 @@ public:
|
||||
|
||||
, m_collectorManager (CollectorManager::New (
|
||||
config_->section (SECTION_INSIGHT), logs_->journal("Collector")))
|
||||
|
||||
, cachedSLEs_ (std::chrono::minutes(1), stopwatch())
|
||||
, validatorKeys_(*config_, m_journal)
|
||||
|
||||
, m_resourceManager (Resource::make_Manager (
|
||||
m_collectorManager->collector(), logs_->journal("Resource")))
|
||||
@@ -445,7 +447,7 @@ public:
|
||||
|
||||
, m_networkOPs (make_NetworkOPs (*this, stopwatch(),
|
||||
config_->standalone(), config_->NETWORK_QUORUM, config_->START_VALID,
|
||||
*m_jobQueue, *m_ledgerMaster, *m_jobQueue,
|
||||
*m_jobQueue, *m_ledgerMaster, *m_jobQueue, validatorKeys_,
|
||||
logs_->journal("NetworkOPs")))
|
||||
|
||||
, cluster_ (std::make_unique<Cluster> (
|
||||
@@ -570,6 +572,13 @@ public:
|
||||
return nodeIdentity_;
|
||||
}
|
||||
|
||||
virtual
|
||||
PublicKey const &
|
||||
getValidationPublicKey() const override
|
||||
{
|
||||
return validatorKeys_.publicKey;
|
||||
}
|
||||
|
||||
NetworkOPs& getOPs () override
|
||||
{
|
||||
return *m_networkOPs;
|
||||
@@ -1086,38 +1095,11 @@ bool ApplicationImp::setup()
|
||||
}
|
||||
|
||||
{
|
||||
PublicKey valPublic;
|
||||
SecretKey valSecret;
|
||||
std::string manifest;
|
||||
if (config().exists (SECTION_VALIDATOR_TOKEN))
|
||||
{
|
||||
if (auto const token = ValidatorToken::make_ValidatorToken (
|
||||
config().section (SECTION_VALIDATOR_TOKEN).lines ()))
|
||||
{
|
||||
valSecret = token->validationSecret;
|
||||
valPublic = derivePublicKey (KeyType::secp256k1, valSecret);
|
||||
manifest = std::move(token->manifest);
|
||||
}
|
||||
else
|
||||
{
|
||||
JLOG(m_journal.fatal()) <<
|
||||
"Invalid entry in validator token configuration.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (config().exists (SECTION_VALIDATION_SEED))
|
||||
{
|
||||
auto const seed = parseBase58<Seed>(
|
||||
config().section (SECTION_VALIDATION_SEED).lines ().front());
|
||||
if (!seed)
|
||||
Throw<std::runtime_error> (
|
||||
"Invalid seed specified in [" SECTION_VALIDATION_SEED "]");
|
||||
valSecret = generateSecretKey (KeyType::secp256k1, *seed);
|
||||
valPublic = derivePublicKey (KeyType::secp256k1, valSecret);
|
||||
}
|
||||
if(validatorKeys_.configInvalid())
|
||||
return false;
|
||||
|
||||
if (!validatorManifests_->load (
|
||||
getWalletDB (), "ValidatorManifests", manifest,
|
||||
getWalletDB (), "ValidatorManifests", validatorKeys_.manifest,
|
||||
config().section (SECTION_VALIDATOR_KEY_REVOCATION).values ()))
|
||||
{
|
||||
JLOG(m_journal.fatal()) << "Invalid configured validator manifest.";
|
||||
@@ -1127,11 +1109,9 @@ bool ApplicationImp::setup()
|
||||
publisherManifests_->load (
|
||||
getWalletDB (), "PublisherManifests");
|
||||
|
||||
m_networkOPs->setValidationKeys (valSecret, valPublic);
|
||||
|
||||
// Setup trusted validators
|
||||
if (!validators_->load (
|
||||
valPublic,
|
||||
validatorKeys_.publicKey,
|
||||
config().section (SECTION_VALIDATORS).values (),
|
||||
config().section (SECTION_VALIDATOR_LIST_KEYS).values ()))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user