rippled
Classes | Typedefs | Enumerations | Functions | Variables
ripple::Resource Namespace Reference

Classes

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

Typedefs

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

Enumerations

enum  Disposition { ok, warn, drop }
 The disposition of a consumer after applying a load charge. More...
 
enum  Kind { kindInbound, kindOutbound, kindUnlimited }
 Kind of consumer. More...
 
enum  { warningThreshold = 5000, dropThreshold = 15000, decayWindowSeconds = 32, minimumGossipBalance = 1000 }
 Tunable constants. 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)
 
const Charge feeInvalidRequest (100, "malformed request")
 
const Charge feeRequestNoReply (10, "unsatisfiable request")
 
const Charge feeInvalidSignature (1000, "invalid signature")
 
const Charge feeUnwantedData (150, "useless data")
 
const Charge feeBadData (200, "invalid data")
 
const Charge feeInvalidRPC (100, "malformed RPC")
 
const Charge feeReferenceRPC (20, "reference RPC")
 
const Charge feeExceptionRPC (100, "exceptioned RPC")
 
const Charge feeMediumBurdenRPC (400, "medium RPC")
 
const Charge feeHighBurdenRPC (3000, "heavy RPC")
 
const Charge feeLightPeer (1, "trivial peer request")
 
const Charge feeMediumBurdenPeer (250, "moderate peer request")
 
const Charge feeHighBurdenPeer (2000, "heavy peer request")
 
const Charge feeWarning (2000, "received warning")
 
const Charge feeDrop (3000, "dropped")
 
std::unique_ptr< Managermake_Manager (beast::insight::Collector::ptr const &collector, beast::Journal journal)
 
 BEAST_DEFINE_TESTSUITE (ResourceManager, resource, ripple)
 

Variables

constexpr std::chrono::seconds secondsUntilExpiration {300}
 
constexpr std::chrono::seconds gossipExpirationSeconds {30}
 

Typedef Documentation

◆ clock_type

Definition at line 33 of file Entry.h.

Enumeration Type Documentation

◆ Disposition

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 27 of file Disposition.h.

◆ Kind

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
kindInbound 
kindOutbound 
kindUnlimited 

Definition at line 34 of file Kind.h.

◆ anonymous enum

anonymous enum

Tunable constants.

Enumerator
warningThreshold 
dropThreshold 
decayWindowSeconds 
minimumGossipBalance 

Definition at line 29 of file resource/impl/Tuning.h.

Function Documentation

◆ operator<<() [1/3]

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

Definition at line 52 of file Charge.cpp.

◆ operator<<() [2/3]

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

Definition at line 143 of file Consumer.cpp.

◆ operator<<() [3/3]

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

Definition at line 105 of file Entry.h.

◆ feeInvalidRequest()

const Charge ripple::Resource::feeInvalidRequest ( 100  ,
"malformed request"   
)

◆ feeRequestNoReply()

const Charge ripple::Resource::feeRequestNoReply ( 10  ,
"unsatisfiable request"   
)

◆ feeInvalidSignature()

const Charge ripple::Resource::feeInvalidSignature ( 1000  ,
"invalid signature"   
)

◆ feeUnwantedData()

const Charge ripple::Resource::feeUnwantedData ( 150  ,
"useless data"   
)

◆ feeBadData()

const Charge ripple::Resource::feeBadData ( 200  ,
"invalid data"   
)

◆ feeInvalidRPC()

const Charge ripple::Resource::feeInvalidRPC ( 100  ,
"malformed RPC"   
)

◆ feeReferenceRPC()

const Charge ripple::Resource::feeReferenceRPC ( 20  ,
"reference RPC"   
)

◆ feeExceptionRPC()

const Charge ripple::Resource::feeExceptionRPC ( 100  ,
"exceptioned RPC"   
)

◆ feeMediumBurdenRPC()

const Charge ripple::Resource::feeMediumBurdenRPC ( 400  ,
"medium RPC"   
)

◆ feeHighBurdenRPC()

const Charge ripple::Resource::feeHighBurdenRPC ( 3000  ,
"heavy RPC"   
)

◆ feeLightPeer()

const Charge ripple::Resource::feeLightPeer ( ,
"trivial peer request"   
)

◆ feeMediumBurdenPeer()

const Charge ripple::Resource::feeMediumBurdenPeer ( 250  ,
"moderate peer request"   
)

◆ feeHighBurdenPeer()

const Charge ripple::Resource::feeHighBurdenPeer ( 2000  ,
"heavy peer request"   
)

◆ feeWarning()

const Charge ripple::Resource::feeWarning ( 2000  ,
"received warning"   
)

◆ feeDrop()

const Charge ripple::Resource::feeDrop ( 3000  ,
"dropped"   
)

◆ make_Manager()

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

Definition at line 175 of file ResourceManager.cpp.

◆ BEAST_DEFINE_TESTSUITE()

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

Variable Documentation

◆ feeInvalidRequest

const Charge ripple::Resource::feeInvalidRequest(100, "malformed request")

Schedule of fees charged for imposing load on the server.

◆ feeRequestNoReply

const Charge ripple::Resource::feeRequestNoReply(10, "unsatisfiable request")

◆ feeInvalidSignature

const Charge ripple::Resource::feeInvalidSignature(1000, "invalid signature")

◆ feeUnwantedData

const Charge ripple::Resource::feeUnwantedData(150, "useless data")

◆ feeBadData

const Charge ripple::Resource::feeBadData(200, "invalid data")

◆ feeInvalidRPC

const Charge ripple::Resource::feeInvalidRPC(100, "malformed RPC")

◆ feeReferenceRPC

const Charge ripple::Resource::feeReferenceRPC(20, "reference RPC")

◆ feeExceptionRPC

const Charge ripple::Resource::feeExceptionRPC(100, "exceptioned RPC")

◆ feeLightRPC

const Charge ripple::Resource::feeLightRPC

◆ feeLowBurdenRPC

const Charge ripple::Resource::feeLowBurdenRPC

◆ feeMediumBurdenRPC

const Charge ripple::Resource::feeMediumBurdenRPC(400, "medium RPC")

◆ feeHighBurdenRPC

const Charge ripple::Resource::feeHighBurdenRPC(3000, "heavy RPC")

◆ feePathFindUpdate

const Charge ripple::Resource::feePathFindUpdate

◆ feeLightPeer

const Charge ripple::Resource::feeLightPeer(1, "trivial peer request")

◆ feeLowBurdenPeer

const Charge ripple::Resource::feeLowBurdenPeer

◆ feeMediumBurdenPeer

const Charge ripple::Resource::feeMediumBurdenPeer(250, "moderate peer request")

◆ feeHighBurdenPeer

const Charge ripple::Resource::feeHighBurdenPeer(2000, "heavy peer request")

◆ feeNewTrustedNote

const Charge ripple::Resource::feeNewTrustedNote

◆ feeNewValidTx

const Charge ripple::Resource::feeNewValidTx

◆ feeSatisfiedRequest

const Charge ripple::Resource::feeSatisfiedRequest

◆ feeWarning

const Charge ripple::Resource::feeWarning(2000, "received warning")

◆ feeDrop

const Charge ripple::Resource::feeDrop(3000, "dropped")

◆ secondsUntilExpiration

constexpr std::chrono::seconds ripple::Resource::secondsUntilExpiration {300}
constexpr

Definition at line 48 of file resource/impl/Tuning.h.

◆ gossipExpirationSeconds

constexpr std::chrono::seconds ripple::Resource::gossipExpirationSeconds {30}
constexpr

Definition at line 51 of file resource/impl/Tuning.h.