mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-06 22:26:47 +00:00
Add missing call to broadcastTransactionsAfterBlockAdded (#1639)
* Add missing call to broadcastTransactionsAfterBlockAdded. * Fix a comment. * Fix a comment some more. Co-authored-by: Ori Newman <orinewman1@gmail.com>
This commit is contained in:
parent
af10b59181
commit
2854d91688
@ -37,12 +37,14 @@ func (f *FlowContext) OnNewBlock(block *externalapi.DomainBlock,
|
|||||||
newBlockInsertionResults = append(newBlockInsertionResults, unorphaningResult.blockInsertionResult)
|
newBlockInsertionResults = append(newBlockInsertionResults, unorphaningResult.blockInsertionResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
allAcceptedTransactions := make([]*externalapi.DomainTransaction, 0)
|
||||||
for i, newBlock := range newBlocks {
|
for i, newBlock := range newBlocks {
|
||||||
log.Debugf("OnNewBlock: passing block %s transactions to mining manager", hash)
|
log.Debugf("OnNewBlock: passing block %s transactions to mining manager", hash)
|
||||||
_, err = f.Domain().MiningManager().HandleNewBlockTransactions(newBlock.Transactions)
|
acceptedTransactions, err := f.Domain().MiningManager().HandleNewBlockTransactions(newBlock.Transactions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
allAcceptedTransactions = append(allAcceptedTransactions, acceptedTransactions...)
|
||||||
|
|
||||||
if f.onBlockAddedToDAGHandler != nil {
|
if f.onBlockAddedToDAGHandler != nil {
|
||||||
log.Debugf("OnNewBlock: calling f.onBlockAddedToDAGHandler for block %s", hash)
|
log.Debugf("OnNewBlock: calling f.onBlockAddedToDAGHandler for block %s", hash)
|
||||||
@ -54,7 +56,7 @@ func (f *FlowContext) OnNewBlock(block *externalapi.DomainBlock,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return f.broadcastTransactionsAfterBlockAdded(newBlocks, allAcceptedTransactions)
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnPruningPointUTXOSetOverride calls the handler function whenever the UTXO set
|
// OnPruningPointUTXOSetOverride calls the handler function whenever the UTXO set
|
||||||
@ -67,9 +69,9 @@ func (f *FlowContext) OnPruningPointUTXOSetOverride() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *FlowContext) broadcastTransactionsAfterBlockAdded(
|
func (f *FlowContext) broadcastTransactionsAfterBlockAdded(
|
||||||
block *externalapi.DomainBlock, transactionsAcceptedToMempool []*externalapi.DomainTransaction) error {
|
addedBlocks []*externalapi.DomainBlock, transactionsAcceptedToMempool []*externalapi.DomainTransaction) error {
|
||||||
|
|
||||||
f.updateTransactionsToRebroadcast(block)
|
f.updateTransactionsToRebroadcast(addedBlocks)
|
||||||
|
|
||||||
// Don't relay transactions when in IBD.
|
// Don't relay transactions when in IBD.
|
||||||
if f.IsIBDRunning() {
|
if f.IsIBDRunning() {
|
||||||
|
@ -25,14 +25,17 @@ func (f *FlowContext) AddTransaction(tx *externalapi.DomainTransaction) error {
|
|||||||
return f.Broadcast(inv)
|
return f.Broadcast(inv)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FlowContext) updateTransactionsToRebroadcast(block *externalapi.DomainBlock) {
|
func (f *FlowContext) updateTransactionsToRebroadcast(addedBlocks []*externalapi.DomainBlock) {
|
||||||
f.transactionsToRebroadcastLock.Lock()
|
f.transactionsToRebroadcastLock.Lock()
|
||||||
defer f.transactionsToRebroadcastLock.Unlock()
|
defer f.transactionsToRebroadcastLock.Unlock()
|
||||||
// Note: if the block is red, its transactions won't be rebroadcasted
|
|
||||||
// anymore, although they are not included in the UTXO set.
|
for _, block := range addedBlocks {
|
||||||
// This is probably ok, since red blocks are quite rare.
|
// Note: if a transaction is included in the DAG but not accepted,
|
||||||
for _, tx := range block.Transactions {
|
// it won't be rebroadcast anymore, although it is not included in
|
||||||
delete(f.transactionsToRebroadcast, *consensushashing.TransactionID(tx))
|
// the UTXO set
|
||||||
|
for _, tx := range block.Transactions {
|
||||||
|
delete(f.transactionsToRebroadcast, *consensushashing.TransactionID(tx))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user