Merge pull request #136 from filecoin-project/fix/best-tip-init
ensure best tipset is set during genesis init
This commit is contained in:
commit
608885f87d
@ -151,18 +151,12 @@ func (cs *ChainStore) SubscribeHeadChanges(f func(rev, app []*types.TipSet) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cs *ChainStore) SetGenesis(b *types.BlockHeader) error {
|
func (cs *ChainStore) SetGenesis(b *types.BlockHeader) error {
|
||||||
gents, err := types.NewTipSet([]*types.BlockHeader{b})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
fts := &FullTipSet{
|
fts := &FullTipSet{
|
||||||
Blocks: []*types.FullBlock{
|
Blocks: []*types.FullBlock{
|
||||||
{Header: b},
|
{Header: b},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cs.heaviest = gents
|
|
||||||
|
|
||||||
if err := cs.PutTipSet(fts); err != nil {
|
if err := cs.PutTipSet(fts); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -190,15 +184,20 @@ func (cs *ChainStore) MaybeTakeHeavierTipSet(ts *types.TipSet) error {
|
|||||||
// TODO: don't do this for initial sync. Now that we don't have a
|
// TODO: don't do this for initial sync. Now that we don't have a
|
||||||
// difference between 'bootstrap sync' and 'caught up' sync, we need
|
// difference between 'bootstrap sync' and 'caught up' sync, we need
|
||||||
// some other heuristic.
|
// some other heuristic.
|
||||||
revert, apply, err := cs.ReorgOps(cs.heaviest, ts)
|
if cs.heaviest != nil {
|
||||||
if err != nil {
|
revert, apply, err := cs.ReorgOps(cs.heaviest, ts)
|
||||||
return errors.Wrap(err, "computing reorg ops failed")
|
if err != nil {
|
||||||
}
|
return errors.Wrap(err, "computing reorg ops failed")
|
||||||
for _, hcf := range cs.headChangeNotifs {
|
|
||||||
if err := hcf(revert, apply); err != nil {
|
|
||||||
return errors.Wrap(err, "head change func errored (BAD)")
|
|
||||||
}
|
}
|
||||||
|
for _, hcf := range cs.headChangeNotifs {
|
||||||
|
if err := hcf(revert, apply); err != nil {
|
||||||
|
return errors.Wrap(err, "head change func errored (BAD)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.Warn("no heaviest tipset found, using %s", ts.Cids())
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Infof("New heaviest tipset! %s", ts.Cids())
|
log.Infof("New heaviest tipset! %s", ts.Cids())
|
||||||
cs.heaviest = ts
|
cs.heaviest = ts
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user