github.com/prysmaticlabs/prysm@v1.4.4/validator/db/kv/genesis.go (about) 1 package kv 2 3 import ( 4 "context" 5 "fmt" 6 7 bolt "go.etcd.io/bbolt" 8 ) 9 10 // SaveGenesisValidatorsRoot saves the genesis validator root to db. 11 func (s *Store) SaveGenesisValidatorsRoot(ctx context.Context, genValRoot []byte) error { 12 err := s.db.Update(func(tx *bolt.Tx) error { 13 bkt := tx.Bucket(genesisInfoBucket) 14 enc := bkt.Get(genesisValidatorsRootKey) 15 if len(enc) != 0 { 16 return fmt.Errorf("cannot overwite existing genesis validators root: %#x", enc) 17 } 18 return bkt.Put(genesisValidatorsRootKey, genValRoot) 19 }) 20 return err 21 } 22 23 // GenesisValidatorsRoot retrieves the genesis validator root from db. 24 func (s *Store) GenesisValidatorsRoot(ctx context.Context) ([]byte, error) { 25 var genValRoot []byte 26 err := s.db.View(func(tx *bolt.Tx) error { 27 bkt := tx.Bucket(genesisInfoBucket) 28 enc := bkt.Get(genesisValidatorsRootKey) 29 if len(enc) == 0 { 30 return nil 31 } 32 genValRoot = enc 33 return nil 34 }) 35 return genValRoot, err 36 }