rippled
Public Types | Public Member Functions | Static Public Member Functions | List of all members
ripple::NetworkOPs Class Referenceabstract

Provides server functionality for clients. More...

Inheritance diagram for ripple::NetworkOPs:
Inheritance graph
[legend]
Collaboration diagram for ripple::NetworkOPs:
Collaboration graph
[legend]

Public Types

enum  FailHard : unsigned char { FailHard::no, FailHard::yes }
 
using clock_type = beast::abstract_clock< std::chrono::steady_clock >
 

Public Member Functions

 ~NetworkOPs () override=default
 
virtual void stop ()=0
 
virtual OperatingMode getOperatingMode () const =0
 
virtual std::string strOperatingMode (OperatingMode const mode, bool const admin=false) const =0
 
virtual std::string strOperatingMode (bool const admin=false) const =0
 
virtual void submitTransaction (std::shared_ptr< STTx const > const &)=0
 
virtual void processTransaction (std::shared_ptr< Transaction > &transaction, bool bUnlimited, bool bLocal, FailHard failType)=0
 Process transactions as they arrive from the network or which are submitted by clients. More...
 
virtual Json::Value getOwnerInfo (std::shared_ptr< ReadView const > lpLedger, AccountID const &account)=0
 
virtual void getBookPage (std::shared_ptr< ReadView const > &lpLedger, Book const &book, AccountID const &uTakerID, bool const bProof, unsigned int iLimit, Json::Value const &jvMarker, Json::Value &jvResult)=0
 
virtual bool processTrustedProposal (RCLCxPeerPos peerPos)=0
 
virtual bool recvValidation (std::shared_ptr< STValidation > const &val, std::string const &source)=0
 
virtual void mapComplete (std::shared_ptr< SHAMap > const &map, bool fromAcquire)=0
 
virtual bool beginConsensus (uint256 const &netLCL)=0
 
virtual void endConsensus ()=0
 
virtual void setStandAlone ()=0
 
virtual void setStateTimer ()=0
 
virtual void setNeedNetworkLedger ()=0
 
virtual void clearNeedNetworkLedger ()=0
 
virtual bool isNeedNetworkLedger ()=0
 
virtual bool isFull ()=0
 
virtual void setMode (OperatingMode om)=0
 
virtual bool isBlocked ()=0
 
virtual bool isAmendmentBlocked ()=0
 
virtual void setAmendmentBlocked ()=0
 
virtual bool isAmendmentWarned ()=0
 
virtual void setAmendmentWarned ()=0
 
virtual void clearAmendmentWarned ()=0
 
virtual bool isUNLBlocked ()=0
 
virtual void setUNLBlocked ()=0
 
virtual void clearUNLBlocked ()=0
 
virtual void consensusViewChange ()=0
 
virtual Json::Value getConsensusInfo ()=0
 
virtual Json::Value getServerInfo (bool human, bool admin, bool counters)=0
 
virtual void clearLedgerFetch ()=0
 
virtual Json::Value getLedgerFetchInfo ()=0
 
virtual std::uint32_t acceptLedger (std::optional< std::chrono::milliseconds > consensusDelay=std::nullopt)=0
 Accepts the current transaction tree, return the new ledger's sequence. More...
 
virtual void reportFeeChange ()=0
 
virtual void updateLocalTx (ReadView const &newValidLedger)=0
 
virtual std::size_t getLocalTxCount ()=0
 
virtual void pubLedger (std::shared_ptr< ReadView const > const &lpAccepted)=0
 
virtual void pubProposedTransaction (std::shared_ptr< ReadView const > const &ledger, std::shared_ptr< STTx const > const &transaction, TER result)=0
 
virtual void pubValidation (std::shared_ptr< STValidation > const &val)=0
 
virtual void forwardValidation (Json::Value const &jvObj)=0
 
virtual void forwardManifest (Json::Value const &jvObj)=0
 
virtual void forwardProposedTransaction (Json::Value const &jvObj)=0
 
virtual void forwardProposedAccountTransaction (Json::Value const &jvObj)=0
 
virtual void stateAccounting (Json::Value &obj)=0
 
virtual void subAccount (ref ispListener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
 
virtual void unsubAccount (ref isplistener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
 
virtual void unsubAccountInternal (std::uint64_t uListener, hash_set< AccountID > const &vnaAccountIDs, bool realTime)=0
 
virtual error_code_i subAccountHistory (ref ispListener, AccountID const &account)=0
 subscribe an account's new transactions and retrieve the account's historical transactions More...
 
virtual void unsubAccountHistory (ref ispListener, AccountID const &account, bool historyOnly)=0
 unsubscribe an account's transactions More...
 
virtual void unsubAccountHistoryInternal (std::uint64_t uListener, AccountID const &account, bool historyOnly)=0
 
virtual bool subLedger (ref ispListener, Json::Value &jvResult)=0
 
virtual bool unsubLedger (std::uint64_t uListener)=0
 
virtual bool subBookChanges (ref ispListener)=0
 
virtual bool unsubBookChanges (std::uint64_t uListener)=0
 
virtual bool subManifests (ref ispListener)=0
 
virtual bool unsubManifests (std::uint64_t uListener)=0
 
virtual void pubManifest (Manifest const &)=0
 
virtual bool subServer (ref ispListener, Json::Value &jvResult, bool admin)=0
 
virtual bool unsubServer (std::uint64_t uListener)=0
 
virtual bool subBook (ref ispListener, Book const &)=0
 
virtual bool unsubBook (std::uint64_t uListener, Book const &)=0
 
virtual bool subTransactions (ref ispListener)=0
 
virtual bool unsubTransactions (std::uint64_t uListener)=0
 
virtual bool subRTTransactions (ref ispListener)=0
 
virtual bool unsubRTTransactions (std::uint64_t uListener)=0
 
virtual bool subValidations (ref ispListener)=0
 
virtual bool unsubValidations (std::uint64_t uListener)=0
 
virtual bool subPeerStatus (ref ispListener)=0
 
virtual bool unsubPeerStatus (std::uint64_t uListener)=0
 
virtual void pubPeerStatus (std::function< Json::Value(void)> const &)=0
 
virtual bool subConsensus (ref ispListener)=0
 
virtual bool unsubConsensus (std::uint64_t uListener)=0
 
virtual pointer findRpcSub (std::string const &strUrl)=0
 
virtual pointer addRpcSub (std::string const &strUrl, ref rspEntry)=0
 
virtual bool tryRemoveRpcSub (std::string const &strUrl)=0
 

Static Public Member Functions

static FailHard doFailHard (bool noMeansDont)
 

Detailed Description

Provides server functionality for clients.

Clients include backend applications, local commands, and connected clients. This class acts as a proxy, fulfilling the command with local data if possible, or asking the network and returning the results if needed.

A backend application or local client can trust a local instance of rippled / NetworkOPs. However, client software connecting to non-local instances of rippled will need to be hardened to protect against hostile or unreliable servers.

Definition at line 86 of file NetworkOPs.h.

Member Typedef Documentation

◆ clock_type

Definition at line 89 of file NetworkOPs.h.

Member Enumeration Documentation

◆ FailHard

enum ripple::NetworkOPs::FailHard : unsigned char
strong
Enumerator
no 
yes 

Definition at line 91 of file NetworkOPs.h.

Constructor & Destructor Documentation

◆ ~NetworkOPs()

ripple::NetworkOPs::~NetworkOPs ( )
overridedefault

Member Function Documentation

◆ doFailHard()

static FailHard ripple::NetworkOPs::doFailHard ( bool  noMeansDont)
static

Definition at line 93 of file NetworkOPs.h.

◆ stop()

virtual void ripple::NetworkOPs::stop ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getOperatingMode()

virtual OperatingMode ripple::NetworkOPs::getOperatingMode ( ) const
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ strOperatingMode() [1/2]

virtual std::string ripple::NetworkOPs::strOperatingMode ( OperatingMode const  mode,
bool const  admin = false 
) const
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ strOperatingMode() [2/2]

virtual std::string ripple::NetworkOPs::strOperatingMode ( bool const  admin = false) const
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ submitTransaction()

virtual void ripple::NetworkOPs::submitTransaction ( std::shared_ptr< STTx const > const &  )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ processTransaction()

virtual void ripple::NetworkOPs::processTransaction ( std::shared_ptr< Transaction > &  transaction,
bool  bUnlimited,
bool  bLocal,
FailHard  failType 
)
pure virtual

Process transactions as they arrive from the network or which are submitted by clients.

Process local transactions synchronously

Parameters
transactionTransaction object
bUnlimitedWhether a privileged client connection submitted it.
bLocalClient submission.
failTypefail_hard setting from transaction submission.

Implemented in ripple::NetworkOPsImp.

◆ getOwnerInfo()

virtual Json::Value ripple::NetworkOPs::getOwnerInfo ( std::shared_ptr< ReadView const >  lpLedger,
AccountID const &  account 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getBookPage()

virtual void ripple::NetworkOPs::getBookPage ( std::shared_ptr< ReadView const > &  lpLedger,
Book const &  book,
AccountID const &  uTakerID,
bool const  bProof,
unsigned int  iLimit,
Json::Value const &  jvMarker,
Json::Value jvResult 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ processTrustedProposal()

virtual bool ripple::NetworkOPs::processTrustedProposal ( RCLCxPeerPos  peerPos)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ recvValidation()

virtual bool ripple::NetworkOPs::recvValidation ( std::shared_ptr< STValidation > const &  val,
std::string const &  source 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ mapComplete()

virtual void ripple::NetworkOPs::mapComplete ( std::shared_ptr< SHAMap > const &  map,
bool  fromAcquire 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ beginConsensus()

virtual bool ripple::NetworkOPs::beginConsensus ( uint256 const &  netLCL)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ endConsensus()

virtual void ripple::NetworkOPs::endConsensus ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setStandAlone()

virtual void ripple::NetworkOPs::setStandAlone ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setStateTimer()

virtual void ripple::NetworkOPs::setStateTimer ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setNeedNetworkLedger()

virtual void ripple::NetworkOPs::setNeedNetworkLedger ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ clearNeedNetworkLedger()

virtual void ripple::NetworkOPs::clearNeedNetworkLedger ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isNeedNetworkLedger()

virtual bool ripple::NetworkOPs::isNeedNetworkLedger ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isFull()

virtual bool ripple::NetworkOPs::isFull ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setMode()

virtual void ripple::NetworkOPs::setMode ( OperatingMode  om)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isBlocked()

virtual bool ripple::NetworkOPs::isBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isAmendmentBlocked()

virtual bool ripple::NetworkOPs::isAmendmentBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setAmendmentBlocked()

virtual void ripple::NetworkOPs::setAmendmentBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isAmendmentWarned()

virtual bool ripple::NetworkOPs::isAmendmentWarned ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setAmendmentWarned()

virtual void ripple::NetworkOPs::setAmendmentWarned ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ clearAmendmentWarned()

virtual void ripple::NetworkOPs::clearAmendmentWarned ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ isUNLBlocked()

virtual bool ripple::NetworkOPs::isUNLBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ setUNLBlocked()

virtual void ripple::NetworkOPs::setUNLBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ clearUNLBlocked()

virtual void ripple::NetworkOPs::clearUNLBlocked ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ consensusViewChange()

virtual void ripple::NetworkOPs::consensusViewChange ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getConsensusInfo()

virtual Json::Value ripple::NetworkOPs::getConsensusInfo ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getServerInfo()

virtual Json::Value ripple::NetworkOPs::getServerInfo ( bool  human,
bool  admin,
bool  counters 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ clearLedgerFetch()

virtual void ripple::NetworkOPs::clearLedgerFetch ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getLedgerFetchInfo()

virtual Json::Value ripple::NetworkOPs::getLedgerFetchInfo ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ acceptLedger()

virtual std::uint32_t ripple::NetworkOPs::acceptLedger ( std::optional< std::chrono::milliseconds consensusDelay = std::nullopt)
pure virtual

Accepts the current transaction tree, return the new ledger's sequence.

This API is only used via RPC with the server in STANDALONE mode and performs a virtual consensus round, with all the transactions we are proposing being accepted.

Implemented in ripple::NetworkOPsImp.

◆ reportFeeChange()

virtual void ripple::NetworkOPs::reportFeeChange ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ updateLocalTx()

virtual void ripple::NetworkOPs::updateLocalTx ( ReadView const &  newValidLedger)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ getLocalTxCount()

virtual std::size_t ripple::NetworkOPs::getLocalTxCount ( )
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ pubLedger()

virtual void ripple::NetworkOPs::pubLedger ( std::shared_ptr< ReadView const > const &  lpAccepted)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ pubProposedTransaction()

virtual void ripple::NetworkOPs::pubProposedTransaction ( std::shared_ptr< ReadView const > const &  ledger,
std::shared_ptr< STTx const > const &  transaction,
TER  result 
)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ pubValidation()

virtual void ripple::NetworkOPs::pubValidation ( std::shared_ptr< STValidation > const &  val)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ forwardValidation()

virtual void ripple::NetworkOPs::forwardValidation ( Json::Value const &  jvObj)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ forwardManifest()

virtual void ripple::NetworkOPs::forwardManifest ( Json::Value const &  jvObj)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ forwardProposedTransaction()

virtual void ripple::NetworkOPs::forwardProposedTransaction ( Json::Value const &  jvObj)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ forwardProposedAccountTransaction()

virtual void ripple::NetworkOPs::forwardProposedAccountTransaction ( Json::Value const &  jvObj)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ stateAccounting()

virtual void ripple::NetworkOPs::stateAccounting ( Json::Value obj)
pure virtual

Implemented in ripple::NetworkOPsImp.

◆ subAccount()

virtual void ripple::InfoSub::Source::subAccount ( ref  ispListener,
hash_set< AccountID > const &  vnaAccountIDs,
bool  realTime 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubAccount()

virtual void ripple::InfoSub::Source::unsubAccount ( ref  isplistener,
hash_set< AccountID > const &  vnaAccountIDs,
bool  realTime 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubAccountInternal()

virtual void ripple::InfoSub::Source::unsubAccountInternal ( std::uint64_t  uListener,
hash_set< AccountID > const &  vnaAccountIDs,
bool  realTime 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subAccountHistory()

virtual error_code_i ripple::InfoSub::Source::subAccountHistory ( ref  ispListener,
AccountID const &  account 
)
pure virtualinherited

subscribe an account's new transactions and retrieve the account's historical transactions

Returns
rpcSUCCESS if successful, otherwise an error code

Implemented in ripple::NetworkOPsImp.

◆ unsubAccountHistory()

virtual void ripple::InfoSub::Source::unsubAccountHistory ( ref  ispListener,
AccountID const &  account,
bool  historyOnly 
)
pure virtualinherited

unsubscribe an account's transactions

Parameters
historyOnlyif true, only stop historical transactions
Note
once a client receives enough historical transactions, it should unsubscribe with historyOnly == true to stop receiving more historical transactions. It will continue to receive new transactions.

Implemented in ripple::NetworkOPsImp.

◆ unsubAccountHistoryInternal()

virtual void ripple::InfoSub::Source::unsubAccountHistoryInternal ( std::uint64_t  uListener,
AccountID const &  account,
bool  historyOnly 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subLedger()

virtual bool ripple::InfoSub::Source::subLedger ( ref  ispListener,
Json::Value jvResult 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubLedger()

virtual bool ripple::InfoSub::Source::unsubLedger ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subBookChanges()

virtual bool ripple::InfoSub::Source::subBookChanges ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubBookChanges()

virtual bool ripple::InfoSub::Source::unsubBookChanges ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subManifests()

virtual bool ripple::InfoSub::Source::subManifests ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubManifests()

virtual bool ripple::InfoSub::Source::unsubManifests ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ pubManifest()

virtual void ripple::InfoSub::Source::pubManifest ( Manifest const &  )
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subServer()

virtual bool ripple::InfoSub::Source::subServer ( ref  ispListener,
Json::Value jvResult,
bool  admin 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubServer()

virtual bool ripple::InfoSub::Source::unsubServer ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subBook()

virtual bool ripple::InfoSub::Source::subBook ( ref  ispListener,
Book const &   
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubBook()

virtual bool ripple::InfoSub::Source::unsubBook ( std::uint64_t  uListener,
Book const &   
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subTransactions()

virtual bool ripple::InfoSub::Source::subTransactions ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubTransactions()

virtual bool ripple::InfoSub::Source::unsubTransactions ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subRTTransactions()

virtual bool ripple::InfoSub::Source::subRTTransactions ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubRTTransactions()

virtual bool ripple::InfoSub::Source::unsubRTTransactions ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subValidations()

virtual bool ripple::InfoSub::Source::subValidations ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubValidations()

virtual bool ripple::InfoSub::Source::unsubValidations ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subPeerStatus()

virtual bool ripple::InfoSub::Source::subPeerStatus ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubPeerStatus()

virtual bool ripple::InfoSub::Source::unsubPeerStatus ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ pubPeerStatus()

virtual void ripple::InfoSub::Source::pubPeerStatus ( std::function< Json::Value(void)> const &  )
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ subConsensus()

virtual bool ripple::InfoSub::Source::subConsensus ( ref  ispListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ unsubConsensus()

virtual bool ripple::InfoSub::Source::unsubConsensus ( std::uint64_t  uListener)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ findRpcSub()

virtual pointer ripple::InfoSub::Source::findRpcSub ( std::string const &  strUrl)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ addRpcSub()

virtual pointer ripple::InfoSub::Source::addRpcSub ( std::string const &  strUrl,
ref  rspEntry 
)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.

◆ tryRemoveRpcSub()

virtual bool ripple::InfoSub::Source::tryRemoveRpcSub ( std::string const &  strUrl)
pure virtualinherited

Implemented in ripple::NetworkOPsImp.