feat(chain)!: make IndexedTxGraph::apply_block_relevant more efficient
Previously, `apply_block_relevant` used `batch_insert_relevant` which allows inserting non-topologically-ordered transactions. However, transactions from blocks are always ordered, so we can avoid looping through block transactions twice (as done in `batch_insert_relevant`). Additionally, `apply_block_relevant` now takes in a reference to a `Block` instead of consuming the `Block`. This makes sense as typically very few of the transactions in the block are inserted.
This commit is contained in:
@@ -2385,7 +2385,7 @@ impl<D> Wallet<D> {
|
||||
/// with `prev_blockhash` and `height-1` as the `connected_to` parameter.
|
||||
///
|
||||
/// [`apply_block_connected_to`]: Self::apply_block_connected_to
|
||||
pub fn apply_block(&mut self, block: Block, height: u32) -> Result<(), CannotConnectError>
|
||||
pub fn apply_block(&mut self, block: &Block, height: u32) -> Result<(), CannotConnectError>
|
||||
where
|
||||
D: PersistBackend<ChangeSet>,
|
||||
{
|
||||
@@ -2416,7 +2416,7 @@ impl<D> Wallet<D> {
|
||||
/// internal [`TxGraph`].
|
||||
pub fn apply_block_connected_to(
|
||||
&mut self,
|
||||
block: Block,
|
||||
block: &Block,
|
||||
height: u32,
|
||||
connected_to: BlockId,
|
||||
) -> Result<(), ApplyHeaderError>
|
||||
|
||||
Reference in New Issue
Block a user