prysm-pulse/beacon-chain/db/kv/schema.go
terence tsao f0332e1131 Save genesis state in DB (#3359)
* Done

* Test

* Fixed test

* emit state initialized
2019-08-29 15:32:35 -07:00

32 lines
1.5 KiB
Go

package kv
// The schema will define how to store and retrieve data from the db.
// we can prefix or suffix certain values such as `block` with attributes
// for prefix-wide scans across the underlying BoltDB buckets when filtering data.
// For example, we might store attestations as shard + attestation_root -> attestation, making
// it easy to scan for keys that have a certain shard number as a prefix and return those
// corresponding attestations.
var (
attestationsBucket = []byte("attestations")
blocksBucket = []byte("blocks")
validatorsBucket = []byte("validators")
stateBucket = []byte("state")
proposerSlashingsBucket = []byte("proposer-slashings")
attesterSlashingsBucket = []byte("attester-slashings")
voluntaryExitsBucket = []byte("voluntary-exits")
chainMetadataBucket = []byte("chain-metadata")
// Key indices buckets.
blockParentRootIndicesBucket = []byte("block-parent-root-indices")
blockSlotIndicesBucket = []byte("block-slot-indices")
attestationParentRootIndicesBucket = []byte("attestation-parent-root-indices")
attestationShardIndicesBucket = []byte("attestation-shard-indices")
attestationStartEpochIndicesBucket = []byte("attestation-start-epoch-indices")
attestationEndEpochIndicesBucket = []byte("attestation-end-epoch-indices")
// Specific item keys.
headBlockRootKey = []byte("head-root")
genesisBlockRootKey = []byte("genesis-root")
depositContractAddressKey = []byte("deposit-contract")
)