Fixed a few more init beacon node bugs (#3297)

This commit is contained in:
terence tsao
2019-08-23 22:02:34 -06:00
committed by GitHub
parent 5294caf5e8
commit a31057de83
4 changed files with 22 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ go_library(
deps = [
"//beacon-chain/blockchain/forkchoice:go_default_library",
"//beacon-chain/cache/depositcache:go_default_library",
"//beacon-chain/core/blocks:go_default_library",
"//beacon-chain/core/helpers:go_default_library",
"//beacon-chain/core/state:go_default_library",
"//beacon-chain/core/validators:go_default_library",

View File

@@ -39,7 +39,7 @@ func (c *ChainService) ReceiveBlock(ctx context.Context, block *ethpb.BeaconBloc
return errors.Wrap(err, "could not broadcast block")
}
log.WithFields(logrus.Fields{
"attDataRoot": hex.EncodeToString(root[:]),
"blockRoot": hex.EncodeToString(root[:]),
}).Info("Broadcasting block")
if err := c.ReceiveBlockNoPubsub(ctx, block); err != nil {

View File

@@ -13,8 +13,10 @@ import (
"time"
"github.com/pkg/errors"
"github.com/prysmaticlabs/go-ssz"
"github.com/prysmaticlabs/prysm/beacon-chain/blockchain/forkchoice"
"github.com/prysmaticlabs/prysm/beacon-chain/cache/depositcache"
"github.com/prysmaticlabs/prysm/beacon-chain/core/blocks"
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
"github.com/prysmaticlabs/prysm/beacon-chain/core/state"
"github.com/prysmaticlabs/prysm/beacon-chain/core/validators"
@@ -146,6 +148,11 @@ func (c *ChainService) initializeBeaconChain(
if err != nil {
return errors.Wrap(err, "could not initialize genesis state")
}
stateRoot, err := ssz.HashTreeRoot(genesisState)
if err != nil {
return errors.Wrap(err, "could not tree hash genesis state")
}
genesisBlk := blocks.NewGenesisBlock(stateRoot[:])
if err := c.saveGenesisValidators(ctx, genesisState); err != nil {
return errors.Wrap(err, "could not save genesis validators")
@@ -155,6 +162,9 @@ func (c *ChainService) initializeBeaconChain(
return errors.Wrap(err, "could not start genesis store for fork choice")
}
c.headBlock = genesisBlk
c.headState = genesisState
c.canonicalRoots[genesisState.Slot] = c.FinalizedCheckpt().Root
c.canonicalRoots[genesisState.Slot] = c.FinalizedCheckpt().Root
return nil

View File

@@ -314,4 +314,14 @@ func TestChainService_initializeBeaconChain(t *testing.T) {
t.Errorf("Validator %s missing from db", hex.EncodeToString(v.PublicKey))
}
}
if bc.HeadState() == nil {
t.Error("Head state can't be nil after initialize beacon chain")
}
if bc.HeadBlock() == nil {
t.Error("Head state can't be nil after initialize beacon chain")
}
if bc.CanonicalRoot(0) == nil {
t.Error("Canonical root for slot 0 can't be nil after initialize beacon chain")
}
}