This is the first suggestion by Péter, it replaces the proposed suffix diff format with:
type StemStateDiff struct {
Stem [StemSize]byte `json:"stem"`
SuffixDiffs SuffixStateDiffs `json:"suffixDiffs"`
Suffixes []byte `json:"suffixes"`
Current [][]byte `json:"current"`
New [][]byte `json:"new"`
}
The size improvement compared to the currently proposed method, is significant:
The comparison is a bit unfair, since the library doesn't support optionals and so the encoding for the default method is greatly inflated. But one could argue that if optionals can not be implemented, then this is the correct size of the witness.
This is the first suggestion by Péter, it replaces the proposed suffix diff format with:
The size improvement compared to the currently proposed method, is significant:
The comparison is a bit unfair, since the library doesn't support optionals and so the encoding for the default method is greatly inflated. But one could argue that if optionals can not be implemented, then this is the correct size of the witness.