// Package blocks contains block processing libraries according to // the Ethereum beacon chain spec. package blocks import ( "github.com/prysmaticlabs/prysm/config/params" "github.com/prysmaticlabs/prysm/encoding/bytesutil" ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1" ) // NewGenesisBlock returns the canonical, genesis block for the beacon chain protocol. func NewGenesisBlock(stateRoot []byte) *ethpb.SignedBeaconBlock { zeroHash := params.BeaconConfig().ZeroHash[:] block := ðpb.SignedBeaconBlock{ Block: ðpb.BeaconBlock{ ParentRoot: zeroHash, StateRoot: bytesutil.PadTo(stateRoot, 32), Body: ðpb.BeaconBlockBody{ RandaoReveal: make([]byte, params.BeaconConfig().BLSSignatureLength), Eth1Data: ðpb.Eth1Data{ DepositRoot: make([]byte, 32), BlockHash: make([]byte, 32), }, Graffiti: make([]byte, 32), }, }, Signature: params.BeaconConfig().EmptySignature[:], } return block }