Clio develop
The XRP Ledger API server.
|
This namespace contains everything to do with the ETL and ETL sources. More...
Classes | |
class | CacheLoader |
Cache loading interface. More... | |
struct | CacheLoaderSettings |
Settings for the cache loader. More... | |
class | CorruptionDetector |
A helper to notify Clio operator about a corruption in the DB. More... | |
class | ETLService |
This class is responsible for continuously extracting data from a p2p node, and writing that data to the databases. More... | |
struct | ETLServiceTag |
A tag class to help identify ETLService in templated code. More... | |
struct | ETLState |
This class is responsible for fetching and storing the state of the ETL information, such as the network id. More... | |
struct | LedgerFetcherInterface |
An interface for LedgerFetcher. More... | |
class | LoadBalancer |
This class is used to manage connections to transaction processing processes. More... | |
struct | LoadBalancerTag |
A tag class to help identify LoadBalancer in templated code. More... | |
class | NetworkValidatedLedgers |
This datastructure is used to keep track of the sequence of the most recent ledger validated by the network. More... | |
class | NetworkValidatedLedgersInterface |
An interface for NetworkValidatedLedgers. More... | |
class | SourceBase |
Provides an implementation of a ETL source. More... | |
struct | SystemState |
Represents the state of the ETL subsystem. More... | |
class | ThreadSafeQueue |
Generic thread-safe queue with a max capacity. More... | |
Concepts | |
concept | SomeETLService |
concept | SomeLoadBalancer |
Typedefs | |
using | SourcePtr = std::unique_ptr<SourceBase> |
using | SourceFactory |
Functions | |
CacheLoaderSettings | makeCacheLoaderSettings (util::config::ClioConfigDefinition const &config) |
Create a CacheLoaderSettings object from a Config object. | |
std::vector< ripple::uint256 > | getMarkers (size_t numMarkers) |
Parititions the uint256 keyspace into numMarkers partitions, each of equal size. | |
std::optional< ETLState > | tag_invoke (boost::json::value_to_tag< std::optional< ETLState > >, boost::json::value const &jv) |
Parse a boost::json::value into a ETLState. | |
std::optional< MPTHolderData > | getMPTokenAuthorize (ripple::TxMeta const &txMeta) |
Get the MPToken created from a transaction. | |
std::optional< MPTHolderData > | getMPTHolderFromTx (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Pull MPT data from TX via ETLService. | |
std::optional< MPTHolderData > | getMPTHolderFromObj (std::string const &key, std::string const &blob) |
Pull MPT data from ledger object via loadInitialLedger. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNftokenModifyData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT URI change data from a NFToken Modify transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTokenMintData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT Token mint data from a transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTokenBurnData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT Token burn data from a transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTokenAcceptOfferData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT Token accept offer data from a transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTokenCancelOfferData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT Token cancel offer data from a transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTokenCreateOfferData (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Get the NFT Token create offer data from a transaction. | |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > | getNFTDataFromTx (ripple::TxMeta const &txMeta, ripple::STTx const &sttx) |
Pull NFT data from TX via ETLService. | |
std::vector< NFTsData > | getNFTDataFromObj (std::uint32_t seq, std::string const &key, std::string const &blob) |
Pull NFT data from ledger object via loadInitialLedger. | |
std::vector< NFTsData > | getUniqueNFTsDatas (std::vector< NFTsData > const &nfts) |
Get the unique NFTs data from a vector of NFTsData happening in the same ledger. For example, if a NFT has both accept offer and burn happening in the same ledger,we only keep the final state of the NFT. | |
SourcePtr | makeSource (util::config::ObjectView const &config, boost::asio::io_context &ioc, std::shared_ptr< BackendInterface > backend, std::shared_ptr< feed::SubscriptionManagerInterface > subscriptions, std::shared_ptr< NetworkValidatedLedgersInterface > validatedLedgers, std::chrono::steady_clock::duration forwardingTimeout, SourceBase::OnConnectHook onConnect, SourceBase::OnDisconnectHook onDisconnect, SourceBase::OnLedgerClosedHook onLedgerClosed) |
Create a source. | |
This namespace contains everything to do with the ETL and ETL sources.
using etl::SourceFactory |
std::vector< ripple::uint256 > etl::getMarkers | ( | size_t | numMarkers | ) |
Parititions the uint256 keyspace into numMarkers partitions, each of equal size.
numMarkers | Total markers to partition for |
std::optional< MPTHolderData > etl::getMPTHolderFromObj | ( | std::string const & | key, |
std::string const & | blob ) |
Pull MPT data from ledger object via loadInitialLedger.
key | The owner key |
blob | Object data as blob |
std::optional< MPTHolderData > etl::getMPTHolderFromTx | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Pull MPT data from TX via ETLService.
txMeta | Transaction metadata |
sttx | The transaction |
std::optional< MPTHolderData > etl::getMPTokenAuthorize | ( | ripple::TxMeta const & | txMeta | ) |
Get the MPToken created from a transaction.
txMeta | Transaction metadata |
std::vector< NFTsData > etl::getNFTDataFromObj | ( | std::uint32_t | seq, |
std::string const & | key, | ||
std::string const & | blob ) |
Pull NFT data from ledger object via loadInitialLedger.
seq | The ledger sequence to pull for |
key | The owner key |
blob | Object data as blob |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTDataFromTx | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Pull NFT data from TX via ETLService.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTokenAcceptOfferData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT Token accept offer data from a transaction.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTokenBurnData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT Token burn data from a transaction.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTokenCancelOfferData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT Token cancel offer data from a transaction.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTokenCreateOfferData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT Token create offer data from a transaction.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNFTokenMintData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT Token mint data from a transaction.
txMeta | Transaction metadata |
sttx | The transaction |
std::pair< std::vector< NFTTransactionsData >, std::optional< NFTsData > > etl::getNftokenModifyData | ( | ripple::TxMeta const & | txMeta, |
ripple::STTx const & | sttx ) |
Get the NFT URI change data from a NFToken Modify transaction.
txMeta | Transaction metadata |
sttx | The transaction |
Get the unique NFTs data from a vector of NFTsData happening in the same ledger. For example, if a NFT has both accept offer and burn happening in the same ledger,we only keep the final state of the NFT.
nfts | The NFTs data to filter, happening in the same ledger |
|
nodiscard |
Create a CacheLoaderSettings object from a Config object.
config | The configuration object |
SourcePtr etl::makeSource | ( | util::config::ObjectView const & | config, |
boost::asio::io_context & | ioc, | ||
std::shared_ptr< BackendInterface > | backend, | ||
std::shared_ptr< feed::SubscriptionManagerInterface > | subscriptions, | ||
std::shared_ptr< NetworkValidatedLedgersInterface > | validatedLedgers, | ||
std::chrono::steady_clock::duration | forwardingTimeout, | ||
SourceBase::OnConnectHook | onConnect, | ||
SourceBase::OnDisconnectHook | onDisconnect, | ||
SourceBase::OnLedgerClosedHook | onLedgerClosed ) |
Create a source.
config | The configuration to use |
ioc | The io_context to run on |
backend | BackendInterface implementation |
subscriptions | Subscription manager |
validatedLedgers | The network validated ledgers data structure |
forwardingTimeout | The timeout for forwarding to rippled |
onConnect | The hook to call on connect |
onDisconnect | The hook to call on disconnect |
onLedgerClosed | The hook to call on ledger closed. This is called when a ledger is closed and the source is set as forwarding. |