-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vec Broadcaster #3448
base: main
Are you sure you want to change the base?
Vec Broadcaster #3448
Conversation
Implementation of `BroacasterInterface` that does not broadcast transactions immediately, but stores them internally to broadcast later with a call to `release_transactions`.
/// is ready. | ||
pub struct VecBroadcaster { | ||
channel_id: ChannelId, | ||
transactions: Mutex<Vec<Transaction>>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As we'll still want to broadcast the individual packages, this might need to be a Vec<Vec<Transaction>>
} | ||
|
||
/// Used to actually broadcast stored transactions to the network. | ||
#[instrument(skip_all, fields(channel = %self.channel_id))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure we require the instrument
statment here?
|
||
impl BroadcasterInterface for VecBroadcaster { | ||
fn broadcast_transactions(&self, txs: &[&Transaction]) { | ||
let mut tx_storage = self.transactions.lock(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let mut tx_storage = self.transactions.lock(); | |
let mut tx_storage = self.transactions.lock().unwrap(); |
fn broadcast_transactions(&self, txs: &[&Transaction]) { | ||
let mut tx_storage = self.transactions.lock(); | ||
for tx in txs { | ||
tx_storage.push((*tx).to_owned()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we might want to see if we can dedup the packages before pushing, i.e., possibly only keep the latest version of a transaction, for example if we'd bump over and over again.
Implementation of
BroacasterInterface
that does not broadcast transactions immediately, but stores them internally to broadcast later with a call torelease_transactions
.