celestiaorg / celestiaorg/celestia-node

header: storage/disk usage optimizations

Open
#671 0 comments 1 reaction 0 assignees View on GitHub
area:header enhancement
Dominant language
Go
Stars
996
Forks
1.1k
Avg merge
1d 6h
Merged PRs (30d)
34

Description

- [ ] Store only one copy of the validator address/pub keys.
* Currently, we store the full validator set per each Header which is redundant as they are usually overlapping.
* For this to happen, we may introduce an additional Validator service/module with its own pkg and the Store interface.
* Also, this epic should ideally include changes in syncing of validator sets. Specifically, the delta of validators should be fetched and not the whole validator set, as it is right now.
- [ ] [Pruning of headers](https://github.com/celestiaorg/celestia-node/issues/272). Nodes do not trust headers beyond the unbonding period and can remove them. Still, we should provide an API for Nodes that can fetch headers from the DA network upon request.
- [ ] Cryptography aware serialization format. Currently, we use protobuf which prefixes all the serialized data with its length, including constant size hashes and signatures.
- [ ] BLS signatures aggregation would allow us to store 1 signature instead of N validator signature per Header. This is something out of the scope of celestia-node and heavily dependent on Core/Tendermint. Fortunately, the Tendermint team is going in the direction of implementing the BLS signatures as outlined in [the doc](https://github.com/tendermint/tendermint/blob/wb/rfc-bls-project/docs/rfc/rfc-018-bls-agg-exploration.md).
- [x] #482
This will decrease disk storage usage for each value written in badger, as it uses different serialization format since v3

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.