Block deletion, to be used for pruning

This commit is contained in:
Ignotus Peverell 2018-02-14 23:25:12 +00:00
parent 8bdf0be73e
commit b82fa0ea1d
No known key found for this signature in database
GPG key ID: 99CD25F39F8F8211
2 changed files with 10 additions and 0 deletions

View file

@ -123,6 +123,12 @@ impl ChainStore for ChainKVStore {
)?; )?;
batch.write() batch.write()
} }
/// Delete a full block. Does not delete any record associated with a block
/// header.
fn delete_block(&self, bh: &Hash) -> Result<(), Error> {
self.db.delete(&to_key(BLOCK_PREFIX, &mut bh.to_vec())[..])
}
fn is_on_current_chain(&self, header: &BlockHeader) -> Result<(), Error> { fn is_on_current_chain(&self, header: &BlockHeader) -> Result<(), Error> {
let header_at_height = self.get_header_by_height(header.height)?; let header_at_height = self.get_header_by_height(header.height)?;

View file

@ -228,6 +228,10 @@ pub trait ChainStore: Send + Sync {
/// Save the provided block in store /// Save the provided block in store
fn save_block(&self, b: &Block) -> Result<(), store::Error>; fn save_block(&self, b: &Block) -> Result<(), store::Error>;
/// Delete a full block. Does not delete any record associated with a block
/// header.
fn delete_block(&self, bh: &Hash) -> Result<(), store::Error>;
/// Save the provided block header in store /// Save the provided block header in store
fn save_block_header(&self, bh: &BlockHeader) -> Result<(), store::Error>; fn save_block_header(&self, bh: &BlockHeader) -> Result<(), store::Error>;