rippled
|
Track the list of "amendments". More...
Public Member Functions | |
AmendmentTableImpl (Application &app, std::chrono::seconds majorityTime, std::vector< FeatureInfo > const &supported, Section const &enabled, Section const &vetoed, beast::Journal journal) | |
uint256 | find (std::string const &name) const override |
bool | veto (uint256 const &amendment) override |
bool | unVeto (uint256 const &amendment) override |
bool | enable (uint256 const &amendment) override |
bool | isEnabled (uint256 const &amendment) const override |
bool | isSupported (uint256 const &amendment) const override |
bool | hasUnsupportedEnabled () const override |
returns true if one or more amendments on the network have been enabled that this server does not support More... | |
std::optional< NetClock::time_point > | firstUnsupportedExpected () const override |
Json::Value | getJson () const override |
Json::Value | getJson (uint256 const &) const override |
Returns a Json::objectValue. More... | |
bool | needValidatedLedger (LedgerIndex seq) const override |
Called to determine whether the amendment logic needs to process a new validated ledger. More... | |
void | doValidatedLedger (LedgerIndex seq, std::set< uint256 > const &enabled, majorityAmendments_t const &majority) override |
std::vector< uint256 > | doValidation (std::set< uint256 > const &enabledAmendments) const override |
std::vector< uint256 > | getDesired () const override |
std::map< uint256, std::uint32_t > | doVoting (Rules const &rules, NetClock::time_point closeTime, std::set< uint256 > const &enabledAmendments, majorityAmendments_t const &majorityAmendments, std::vector< std::shared_ptr< STValidation >> const &validations) override |
void | doValidatedLedger (std::shared_ptr< ReadView const > const &lastValidatedLedger) |
Called when a new fully-validated ledger is accepted. More... | |
void | doVoting (std::shared_ptr< ReadView const > const &lastClosedLedger, std::vector< std::shared_ptr< STValidation >> const &parentValidations, std::shared_ptr< SHAMap > const &initialPosition) |
Private Member Functions | |
AmendmentState & | add (uint256 const &amendment, std::lock_guard< std::mutex > const &lock) |
AmendmentState * | get (uint256 const &amendment, std::lock_guard< std::mutex > const &lock) |
AmendmentState const * | get (uint256 const &amendment, std::lock_guard< std::mutex > const &lock) const |
void | injectJson (Json::Value &v, uint256 const &amendment, AmendmentState const &state, std::lock_guard< std::mutex > const &lock) const |
void | persistVote (uint256 const &amendment, std::string const &name, AmendmentVote vote) const |
Private Attributes | |
std::mutex | mutex_ |
hash_map< uint256, AmendmentState > | amendmentMap_ |
std::uint32_t | lastUpdateSeq_ |
const std::chrono::seconds | majorityTime_ |
std::unique_ptr< AmendmentSet > | lastVote_ |
bool | unsupportedEnabled_ |
std::optional< NetClock::time_point > | firstUnsupportedExpected_ |
const beast::Journal | j_ |
DatabaseCon & | db_ |
Track the list of "amendments".
An "amendment" is an option that can affect transaction processing rules. Amendments are proposed and then adopted or rejected by the network. An Amendment is uniquely identified by its AmendmentID, a 256-bit key.
Definition at line 198 of file AmendmentTable.cpp.
ripple::AmendmentTableImpl::AmendmentTableImpl | ( | Application & | app, |
std::chrono::seconds | majorityTime, | ||
std::vector< FeatureInfo > const & | supported, | ||
Section const & | enabled, | ||
Section const & | vetoed, | ||
beast::Journal | journal | ||
) |
Definition at line 314 of file AmendmentTable.cpp.
|
private |
Definition at line 456 of file AmendmentTable.cpp.
|
private |
Definition at line 465 of file AmendmentTable.cpp.
|
private |
Definition at line 475 of file AmendmentTable.cpp.
|
private |
Definition at line 744 of file AmendmentTable.cpp.
|
private |
Definition at line 503 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 489 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 514 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 527 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 540 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 561 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 569 of file AmendmentTable.cpp.
|
overridevirtual |
returns true if one or more amendments on the network have been enabled that this server does not support
Implements ripple::AmendmentTable.
Definition at line 577 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 584 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 778 of file AmendmentTable.cpp.
|
overridevirtual |
Returns a Json::objectValue.
Implements ripple::AmendmentTable.
Definition at line 796 of file AmendmentTable.cpp.
|
overridevirtual |
Called to determine whether the amendment logic needs to process a new validated ledger.
(If it could have changed things.)
Implements ripple::AmendmentTable.
Definition at line 696 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 707 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 591 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 618 of file AmendmentTable.cpp.
|
overridevirtual |
Implements ripple::AmendmentTable.
Definition at line 625 of file AmendmentTable.cpp.
|
inherited |
Called when a new fully-validated ledger is accepted.
Definition at line 92 of file AmendmentTable.h.
|
inherited |
Definition at line 143 of file AmendmentTable.h.
|
mutableprivate |
Definition at line 201 of file AmendmentTable.cpp.
|
private |
Definition at line 203 of file AmendmentTable.cpp.
|
private |
Definition at line 204 of file AmendmentTable.cpp.
|
private |
Definition at line 207 of file AmendmentTable.cpp.
|
private |
Definition at line 211 of file AmendmentTable.cpp.
|
private |
Definition at line 214 of file AmendmentTable.cpp.
|
private |
Definition at line 219 of file AmendmentTable.cpp.
|
private |
Definition at line 221 of file AmendmentTable.cpp.
|
private |
Definition at line 224 of file AmendmentTable.cpp.