celestiaorg / celestiaorg/celestia-core

Gossip txs based on priority

Open
#1,069 2 comments 1 reaction 0 assignees View on GitHub
gossiping ice-box mempool
Dominant language
Go
Stars
552
Forks
369
Avg merge
23h 9m
Merged PRs (30d)
57

Description

Currently, while mempools like CAT and v1 have the ability to reap prioritized transactions from the mempool, they add transactions to be gossiped to a queue in a FIFO way. When under high load, this could result in not being able to get a high priority transaction included as it would take too long to gossip.

The idea proposed by @musalbas was to insert the transactions in some flavor of a sorted queue. I say some flavor as there were a few different proposals to avoid the overhead of having to always maintain a separate perfectly sorted queue.

One of the suggested solutions was to utilize the existing sorted queue inside the v1 and CAT mempools. Here we would keep track of which transactions are gossiped already and iterate through the queue of sorted un-gossiped transactions periodically or after some trigger.

Another of the suggestions was to add some conditions that must be met before any form of sorting only occurred, for example large high priority transactions or some threshold of very high priority.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry point. Start by locating the CAT and v1 mempool implementations, their FIFO gossip queues, and their existing sorted transaction queues. Before coding, clarify which sorting strategy and trigger are accepted; done means the chosen design is implemented and high-priority transactions are gossiped promptly under load.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.