xrpld
Loading...
Searching...
No Matches
xrpl::Resource Namespace Reference

Classes

class  Charge
 A consumption charge. More...
class  Consumer
 An endpoint that consumes resources. More...
struct  Entry
struct  Import
 A set of imported consumer data from a gossip origin. More...
struct  Key
class  Logic
struct  Gossip
 Data format for exchanging consumption information across peers. More...
class  Manager
 Tracks load and resource consumption. More...
class  ManagerImp
class  ResourceManager_test

Typedefs

using clock_type = beast::AbstractClock<std::chrono::steady_clock>

Enumerations

enum class  Kind { Inbound , Outbound , Unlimited }
 Kind of consumer. More...
enum class  Disposition { Ok , Warn , Drop }
 The disposition of a consumer after applying a load charge. More...

Functions

std::ostreamoperator<< (std::ostream &os, Charge const &v)
std::ostreamoperator<< (std::ostream &os, Consumer const &v)
std::ostreamoperator<< (std::ostream &os, Entry const &v)
std::unique_ptr< ManagermakeManager (beast::insight::Collector::ptr const &collector, beast::Journal journal)
Charge const kFeeMalformedRequest (200, "malformed request")
Charge const kFeeRequestNoReply (10, "unsatisfiable request")
Charge const kFeeInvalidSignature (2000, "invalid signature")
Charge const kFeeUselessData (150, "useless data")
Charge const kFeeInvalidData (400, "invalid data")
Charge const kFeeMalformedRpc (100, "malformed RPC")
Charge const kFeeReferenceRpc (20, "reference RPC")
Charge const kFeeExceptionRpc (100, "exceptioned RPC")
Charge const kFeeMediumBurdenRpc (400, "medium RPC")
Charge const kFeeHeavyBurdenRpc (3000, "heavy RPC")
Charge const kFeeTrivialPeer (1, "trivial peer request")
Charge const kFeeModerateBurdenPeer (250, "moderate peer request")
Charge const kFeeHeavyBurdenPeer (2000, "heavy peer request")
Charge const kFeeWarning (4000, "received warning")
Charge const kFeeDrop (6000, "dropped")
 BEAST_DEFINE_TESTSUITE (ResourceManager, resource, xrpl)

Variables

static constexpr auto kWarningThreshold = 5000
 Tunable constants.
static constexpr auto kDropThreshold = 25000
static constexpr auto kDecayWindowSeconds = 32
static constexpr auto kMinimumGossipBalance = 1000
static constexpr std::chrono::seconds kSecondsUntilExpiration {300}
static constexpr std::chrono::seconds kGossipExpirationSeconds {30}
Charge const kFeeMalformedRequest
 Schedule of fees charged for imposing load on the server.
Charge const kFeeRequestNoReply
Charge const kFeeInvalidSignature
Charge const kFeeUselessData
Charge const kFeeInvalidData
Charge const kFeeMalformedRpc
Charge const kFeeReferenceRpc
Charge const kFeeExceptionRpc
Charge const kFeeMediumBurdenRpc
Charge const kFeeHeavyBurdenRpc
Charge const kFeeTrivialPeer
Charge const kFeeModerateBurdenPeer
Charge const kFeeHeavyBurdenPeer
Charge const kFeeWarning
Charge const kFeeDrop

Typedef Documentation

◆ clock_type

Enumeration Type Documentation

◆ Kind

enum class xrpl::Resource::Kind
strong

Kind of consumer.

kindInbound: Inbound connection. kindOutbound: Outbound connection. kindUnlimited: Inbound connection with no resource limits, but could be subjected to administrative restrictions, such as use of some RPC commands like "stop".

Enumerator
Inbound 
Outbound 
Unlimited 

Definition at line 13 of file Kind.h.

◆ Disposition

enum class xrpl::Resource::Disposition
strong

The disposition of a consumer after applying a load charge.

Enumerator
Ok 

No action required.

Consumer should be warned that consumption is high.

Warn 

Consumer should be disconnected for excess consumption.

Drop 

Definition at line 6 of file Disposition.h.

Function Documentation

◆ operator<<() [1/3]

std::ostream & xrpl::Resource::operator<< ( std::ostream & os,
Charge const & v )

Definition at line 35 of file Charge.cpp.

◆ operator<<() [2/3]

std::ostream & xrpl::Resource::operator<< ( std::ostream & os,
Consumer const & v )

Definition at line 138 of file Consumer.cpp.

◆ operator<<() [3/3]

std::ostream & xrpl::Resource::operator<< ( std::ostream & os,
Entry const & v )

Definition at line 82 of file Entry.h.

◆ makeManager()

std::unique_ptr< Manager > xrpl::Resource::makeManager ( beast::insight::Collector::ptr const & collector,
beast::Journal journal )

Definition at line 162 of file ResourceManager.cpp.

◆ kFeeMalformedRequest()

Charge const xrpl::Resource::kFeeMalformedRequest ( 200 ,
"malformed request"  )

◆ kFeeRequestNoReply()

Charge const xrpl::Resource::kFeeRequestNoReply ( 10 ,
"unsatisfiable request"  )

◆ kFeeInvalidSignature()

Charge const xrpl::Resource::kFeeInvalidSignature ( 2000 ,
"invalid signature"  )

◆ kFeeUselessData()

Charge const xrpl::Resource::kFeeUselessData ( 150 ,
"useless data"  )

◆ kFeeInvalidData()

Charge const xrpl::Resource::kFeeInvalidData ( 400 ,
"invalid data"  )

◆ kFeeMalformedRpc()

Charge const xrpl::Resource::kFeeMalformedRpc ( 100 ,
"malformed RPC"  )

◆ kFeeReferenceRpc()

Charge const xrpl::Resource::kFeeReferenceRpc ( 20 ,
"reference RPC"  )

◆ kFeeExceptionRpc()

Charge const xrpl::Resource::kFeeExceptionRpc ( 100 ,
"exceptioned RPC"  )

◆ kFeeMediumBurdenRpc()

Charge const xrpl::Resource::kFeeMediumBurdenRpc ( 400 ,
"medium RPC"  )

◆ kFeeHeavyBurdenRpc()

Charge const xrpl::Resource::kFeeHeavyBurdenRpc ( 3000 ,
"heavy RPC"  )

◆ kFeeTrivialPeer()

Charge const xrpl::Resource::kFeeTrivialPeer ( 1 ,
"trivial peer request"  )

◆ kFeeModerateBurdenPeer()

Charge const xrpl::Resource::kFeeModerateBurdenPeer ( 250 ,
"moderate peer request"  )

◆ kFeeHeavyBurdenPeer()

Charge const xrpl::Resource::kFeeHeavyBurdenPeer ( 2000 ,
"heavy peer request"  )

◆ kFeeWarning()

Charge const xrpl::Resource::kFeeWarning ( 4000 ,
"received warning"  )

◆ kFeeDrop()

Charge const xrpl::Resource::kFeeDrop ( 6000 ,
"dropped"  )

◆ BEAST_DEFINE_TESTSUITE()

xrpl::Resource::BEAST_DEFINE_TESTSUITE ( ResourceManager ,
resource ,
xrpl  )

Variable Documentation

◆ kWarningThreshold

auto xrpl::Resource::kWarningThreshold = 5000
staticconstexpr

Tunable constants.

Definition at line 10 of file include/xrpl/resource/detail/Tuning.h.

◆ kDropThreshold

auto xrpl::Resource::kDropThreshold = 25000
staticconstexpr

Definition at line 13 of file include/xrpl/resource/detail/Tuning.h.

◆ kDecayWindowSeconds

auto xrpl::Resource::kDecayWindowSeconds = 32
staticconstexpr

Definition at line 16 of file include/xrpl/resource/detail/Tuning.h.

◆ kMinimumGossipBalance

auto xrpl::Resource::kMinimumGossipBalance = 1000
staticconstexpr

Definition at line 19 of file include/xrpl/resource/detail/Tuning.h.

◆ kSecondsUntilExpiration

std::chrono::seconds xrpl::Resource::kSecondsUntilExpiration {300}
staticconstexpr

Definition at line 22 of file include/xrpl/resource/detail/Tuning.h.

◆ kGossipExpirationSeconds

std::chrono::seconds xrpl::Resource::kGossipExpirationSeconds {30}
staticconstexpr

Definition at line 25 of file include/xrpl/resource/detail/Tuning.h.

◆ kFeeMalformedRequest

Charge const xrpl::Resource::kFeeMalformedRequest(200, "malformed request")

Schedule of fees charged for imposing load on the server.

◆ kFeeRequestNoReply

Charge const xrpl::Resource::kFeeRequestNoReply(10, "unsatisfiable request")

◆ kFeeInvalidSignature

Charge const xrpl::Resource::kFeeInvalidSignature(2000, "invalid signature")

◆ kFeeUselessData

Charge const xrpl::Resource::kFeeUselessData(150, "useless data")

◆ kFeeInvalidData

Charge const xrpl::Resource::kFeeInvalidData(400, "invalid data")

◆ kFeeMalformedRpc

Charge const xrpl::Resource::kFeeMalformedRpc(100, "malformed RPC")

◆ kFeeReferenceRpc

Charge const xrpl::Resource::kFeeReferenceRpc(20, "reference RPC")

◆ kFeeExceptionRpc

Charge const xrpl::Resource::kFeeExceptionRpc(100, "exceptioned RPC")

◆ kFeeMediumBurdenRpc

Charge const xrpl::Resource::kFeeMediumBurdenRpc(400, "medium RPC")

◆ kFeeHeavyBurdenRpc

Charge const xrpl::Resource::kFeeHeavyBurdenRpc(3000, "heavy RPC")

◆ kFeeTrivialPeer

Charge const xrpl::Resource::kFeeTrivialPeer(1, "trivial peer request")

◆ kFeeModerateBurdenPeer

Charge const xrpl::Resource::kFeeModerateBurdenPeer(250, "moderate peer request")

◆ kFeeHeavyBurdenPeer

Charge const xrpl::Resource::kFeeHeavyBurdenPeer(2000, "heavy peer request")

◆ kFeeWarning

Charge const xrpl::Resource::kFeeWarning(4000, "received warning")

◆ kFeeDrop

Charge const xrpl::Resource::kFeeDrop(6000, "dropped")