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, RPC::SubmitSync sync, bool bLocal, FailHard failType)=0
 Process a transaction. More...
 
virtual bool transactionBatch (bool drain)=0
 Apply transactions in batches. 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 setBatchApplyTimer ()=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 90 of file NetworkOPs.h.

Member Typedef Documentation

◆ clock_type

Definition at line 93 of file NetworkOPs.h.

Member Enumeration Documentation

◆ FailHard

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

Definition at line 95 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 97 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,
RPC::SubmitSync  sync,
bool  bLocal,
FailHard  failType 
)
pure virtual

Process a transaction.

The transaction has been submitted either from the peer network or from a client. For client submissions, there are 3 distinct behaviors: 1) sync (default): process transactions in a batch immediately, and return only once the transaction has been processed. 2) async: Put transaction into the batch for the next processing interval and return immediately. 3) wait: Put transaction into the batch for the next processing interval and return only after it is processed.

Parameters
transactionTransaction object.
bUnlimitedWhether a privileged client connection submitted it.
syncClient submission synchronous behavior type requested.
bLocalWhether submitted by client (local) or peer.
failTypeWhether to fail hard or not.

Implemented in ripple::NetworkOPsImp.

◆ transactionBatch()

virtual bool ripple::NetworkOPs::transactionBatch ( bool  drain)
pure virtual

Apply transactions in batches.

Only a single batch unless drain is set. This is to optimize performance because there is significant overhead in applying each batch, whereas processing an individual transaction is fast.

Setting the drain parameter is relevant for some transaction processing unit tests that expect all submitted transactions to be processed synchronously.

Parameters
drainWhether to process batches until none remain.
Returns
Whether any transactions were processed.

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.

◆ setBatchApplyTimer()

virtual void ripple::NetworkOPs::setBatchApplyTimer ( )
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.