Hey all I was reviewing systems and noticed mempool bytes have been practically full. Anything that we can do about this?
Regards,
COINZ
Hey all I was reviewing systems and noticed mempool bytes have been practically full. Anything that we can do about this?
Regards,
COINZ
Hi,
Check here what memepool is:
https://iohk.io/en/blog/posts/2021/11/10/optimizing-cardano/
Mempool size — currently, the size of the mempool is set to 128 KB, which is twice the size of the current block. The mempool works as the network buffer and may cause short delay when including transactions into a block. However, mempool size increase won’t improve network throughput – transaction queues will stay the same. The mempool allows for a fair adoption of new transactions that enter it randomly based on the producing node that is chosen by the lottery algorithm.
We can’t do anything about it in nutshell.
Well not at each node. But check https://freeloaderz.io for load balanced submissions. Any SPO can participate to help distribute the tx submission process. All major wallets support custom node option now.
As I understand, freeloaderz allows stake pool operators to give priority access to transactions from particular people. If pool operators charge for this priority access then this is “miner extractable value” MEV.
Your understanding is wrong. We do not give priority to particular people. The Load Balancer is a “round robin” selection of pools, everybody is treated exactly the same. If a pool is offline, then the load balancer skips and moves to the next available relay which improves reliability. We also provide the service for free.
Yes, load balancing freeloaderz transactions across the pools using freeloaderz. The “particular people” I referred to above getting priority are these freeloaderz users.
Every major wallet (ccvault, nami, flint) has implemented a custom node option so the end user can choose to bypass the default submission servers. The FreeLoaderz user is choosing to submit their transactions to relays in our coalition. The user could also choose to submit via a private Daedalus relay (and many do if they know how). Our service is just easier and more reliable. This is just submitting the transaction to a relay other than the wallet providers relay. The protocol manages the FIFO process of the transaction in the mempool once it has been submitted. The priority for slot leader selection and block producer selection to minting a block is AFTER the submission process.
@santonode I must admit, I haven’t looked into the code used by freeloaderz for transaction submission ordering.
Is the freeloaderz code all open-source?
The submitapi.sh script came standard as part of the 1.33 cardano node software. We just help pools configure it and safely use it in their relays. The load balancer is https://haproxy.org (industry standard) however we do have repos on github to register your url api for access by the community FreeLoaderz · GitHub
Maybe my skeptical mind has misjudged things.
What advantage does freeloaderz provide?
Mempool transactions are propagated between nodes already. Right? Does freeloaderz recruit a coalition of relay nodes and configure them to accept more transactions so that it can push more transactions to the rest of the network? If so then won’t this effectively inhibit the ability for others to get their transactions into mempools if they don’t use freeloaderz?
No. We are using the exact same standard transaction process that every Cardano application uses today the CLI command line interface. Wallet apps prep the transaction, sign and encrypt the transaction all we do is route it to pool relays for submission into their mempools. We are already routing 15k txs per day and not one complaint! https://usa.freeloaderz.io:8082/status
So freeloaderz users get better access to more of the networks mempools?
The load on the network is more balanced and not concentrated on a select number of relays. This provides a better user experience for all users of Cardano. Our testing showed 4x faster transaction times for FreeLoaderz users when the network is highly congested.
So people that try to submit transactions without using freeloaderz are at a disadvantage because the mempools have been filled with freeloaderz users transactions?
No, they are not. The problem with mempool is related to lite wallets, and not the chain. I.e., if the mempool of your wallet (like Yoroi or Nami) is full because of congestion (i.e. too many people submitting transactions with the respective wallet), then the mempool of that specific wallet backend cannot queue your transaction before submission. Now, some wallets offer offloading from their backend mempools to some other relays like freeloaderz.
As soon as the transaction is in some mempool it’s queued for submission and it does not matter on which node. Submitted transactions then eventually propagate to the elected block producer and becomes part of the block there.
If the chain is congested (i.e. blocks are 100% full) a mechanism called back pressure is happening. I.e. transactions waiting for submission in some mempool won’t be in the next block and have to wait for the second next and so on. This mechanism can cause mempools to be filled up, so that the wallet’s backend can no longer accept new transactions, because there’s no space to queue them.
This situation can be mitigated by relay nodes offering their mempools for submitting transactions. That’s exactly what the service provides.
So freeloaderz provides better access to load up more mempools so that its users can load their transactions in better in times of network congestion?
By comparison, wallets or users that don’t use freeloaderz will consequently find it more difficult to load transactions into mempools because they have been outcompeted by the freeloaderz in times of network congestion?
Precisely. lol
lol outcompeted? It is just better for the end user and the network. You think things cant be improved upon? I am done trying to convince you. The service is free and optional. Use it or not use it.
No that’s not the case. I guess I’ve to explain mempools in more detail. Think of one mempool on every node (Daedalus nodes included). One can submit a transaction into the mempool of a specific node (for Daedalus the local node, for lite wallets the backend node of the wallet, or to some specific relay node of a pool. All nodes immediately propagate transactions through the network to other nodes. Now, every node has a different set of transactions in their mempool. For every block a pre-determined block producer is responsible for producing the block. The transactions for that block are in the mempool of the block producer.
In other words (as long as all pools run on default configuration) the selection of transactions for a block depends on the propagation time from the node to which that transaction has been submitted to the block producer node for the given block. Since there is no race between block producers (like in PoW chains), every block is produced by a different and pre-determined block producer.
Since service providers have no advantage in regards of transaction propagation towards a given block producer, there is also no advantage for those transactions submitted by using their service.
That makes sense. By recruiting many stake pools to provide access to their mempools, freeloaderz users get direct access to all these mempools. Freeloaderz monitors the mempools of all the nodes in its coalition so that it can keep pushing transactions as space becomes available on any node.
Like a big bucket pushing transactions into many mempools to fill up the network capacity as efficiently as possible during times of congestion. For the freeloaderz users.
What I don’t understand is what precisely is the flaw in the Cardano network protocol that made freeloaderz necessary? IOG speaks so highly about their bespoke network protocol.
Is it primarily to gain more mempool access in order to push more dripdropz transactions?