The first copy of payload data is evals, which is what we use everywhere in ADVZ.
The second copy is hidden deep inside evals_proof. The call to lookup returns a MerkleProof, which contains a copy of the payload data as described in #658 .
One of these copies must be eliminated. If we do not remove it from MerkleProof as suggested in #658 then ADVZ should extract the data from there instead of storing an independent copy in Share struct. cc @mrain
This is bad because it doubles the communication size.
Shares are constructed here:
https://github.com/EspressoSystems/jellyfish/blob/92714a4cc509fac07b8e8fc321fc0271c5dbe6b6/vid/src/advz.rs#L923-L932
The first copy of payload data is
evals
, which is what we use everywhere in ADVZ.The second copy is hidden deep inside
evals_proof
. The call tolookup
returns aMerkleProof
, which contains a copy of the payload data as described in #658 .One of these copies must be eliminated. If we do not remove it from
MerkleProof
as suggested in #658 then ADVZ should extract the data from there instead of storing an independent copy inShare
struct. cc @mrain