prysm-pulse/beacon-chain/db/kv/schema.go
Raul Jordan 3ca4d6fd91
Add Deposit Contract Methods to DB Refactor (#3264)
* new interface methods

* support proposer slashings

* add in the new buckets

* all crud for propoer slashings

* attester slashings complete

* all slashings crud done

* right comment

* deposit contract tests pass

* delete out of scope methods

* conform old beacon DB

* comment

* deprecations

* pass lint

* Update deposit_contract.go
2019-08-21 16:11:50 -05:00

31 lines
1.4 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")
depositContractAddressKey = []byte("deposit-contract")
)