mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-09-15 22:10:12 +00:00

* UTXO dump of block 0fca37ca667c2d550a6c4416dad9717e50927128c424fa4edbebc436ab13aeef * Activate HF immediately and change reward to 1000 * Change protocol version and datadir location * Delete comments * Fix zero hash to muhash zero hash in genesis utxo dump check * Don't omit genesis as direct parent * Fix tests * Change subsidy to 500 * Dont assume genesis multiset is empty * Fix BlockReward test * Fix TestValidateAndInsertImportedPruningPoint test * Fix pruning point genesis utxo set * Fix tests related to mainnet utxo set * Dont change the difficulty before you have a full window * Fix TestBlockWindow tests * Remove global utxo set variable, and persist mainnetnet utxo deserialization between runs * Fix last tests * Make peer banning opt-in * small fix for a test * Fix go lint * Fix Ori's review comments * Change DAA score of genesis to checkpoint DAA score and fix all tests * Fix the BlockLevel bits counting * Fix some tests and make them run a little faster * Change datadir name back to kaspa-mainnet and change db path from /data to /datadir * Last changes for the release and change the version to 0.11.5 Co-authored-by: Ori Newman <orinewman1@gmail.com> Co-authored-by: Ori Newman <> Co-authored-by: msutton <mikisiton2@gmail.com>
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package parentssanager
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/constants"
|
|
)
|
|
|
|
type parentsManager struct {
|
|
genesisHash *externalapi.DomainHash
|
|
}
|
|
|
|
// New instantiates a new ParentsManager
|
|
func New(genesisHash *externalapi.DomainHash) model.ParentsManager {
|
|
return &parentsManager{
|
|
genesisHash: genesisHash,
|
|
}
|
|
}
|
|
|
|
func (pm *parentsManager) ParentsAtLevel(blockHeader externalapi.BlockHeader, level int) externalapi.BlockLevelParents {
|
|
var parentsAtLevel externalapi.BlockLevelParents
|
|
if len(blockHeader.Parents()) > level {
|
|
parentsAtLevel = blockHeader.Parents()[level]
|
|
}
|
|
|
|
if len(parentsAtLevel) == 0 && len(blockHeader.DirectParents()) > 0 {
|
|
return externalapi.BlockLevelParents{pm.genesisHash}
|
|
}
|
|
|
|
return parentsAtLevel
|
|
}
|
|
|
|
func (pm *parentsManager) Parents(blockHeader externalapi.BlockHeader) []externalapi.BlockLevelParents {
|
|
numParents := constants.MaxBlockLevel + 1
|
|
parents := make([]externalapi.BlockLevelParents, numParents)
|
|
for i := 0; i < numParents; i++ {
|
|
parents[i] = pm.ParentsAtLevel(blockHeader, i)
|
|
}
|
|
|
|
return parents
|
|
}
|