Description
Summary of Bug
Client update transactions are too large and can be easily made smaller. The size of client update transactions is a risk to chains using ibc.
Notes from @ValarDragon
- each client update lists all the validators + all signatures with both carrying way too much data
- Simplest things would be:
- Delete:
- Signature/block_id_flag, infer "BLOCK_ID_COMMIT"
- Signature/Timestamp -> UnixNano timestamp
- Delete:
"Can't tell if this validator set hash is verified against root, if so nothing that reads as a trivial change then (because priority changes every block), you can make an ID system for val addrs at least, but ID system isn't a mini change"
Expected Behaviour
Client updates are significantly reduced in size, without the use of zero knowledge proofs.
Version
all
Steps to Reproduce
Contact Jacob Gadikian via slack to discuss how to reproduce the issues that can be caused by this approach.
implementation
I think that most of this could be done in the relayer. Versioning could let the relayer know which client update info to send, and there wouldn't be breaking changes.
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate contributors tagged/assigned