Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[storage mining] Validator doesn't pick what storage proofs it will verify #2048

Open
sakridge opened this issue Dec 6, 2018 · 4 comments
Open

Comments

@sakridge
Copy link
Member

@sakridge sakridge commented Dec 6, 2018

Problem

A validator needs to pick some set of proofs to verify each storage epoch and then submit a ProofValidation transaction which enumerates which proofs are chosen and valid. A single validator probably does not have the capacity to verify the full set of storage proofs on chain in a given epoch, and it needs to reduce this set.

Proposed Solution

Implement what is described in the storage RFC about signing the storage PoH value and then sampling a set based on matching bytes in the signature and the storage proofs on chain.

@sakridge sakridge added this to the v0.12 Beacons milestone Dec 6, 2018
@sakridge sakridge self-assigned this Dec 6, 2018
@sakridge sakridge added this to To do in Storage Mining Dec 6, 2018
@garious garious changed the title [storage mining] Validator needs to pick what storage proofs it will verify [storage mining] Validator doesn't pick what storage proofs it will verify Feb 2, 2019
@sakridge sakridge assigned sagar-solana and unassigned sakridge Mar 13, 2019
@sagar-solana

This comment has been minimized.

Copy link
Contributor

@sagar-solana sagar-solana commented Mar 14, 2019

@sakridge, I'm trying to figure out what I need to do here. Just thinking out aloud, maybe you can help clarify.
Right now storage_stage stores the signatures and block segment of every SubmitMiningProof tx that it sees. It doesn't really perform any validation on this as far as I can tell.

Is this what this issue needs?

  1. sign the storage blockhash
  2. based on some math on the signature of each tx verify those txs (I don't fully understand how to verify aka can you help me understand what's inside a SubmitMiningProof and how a validator can confirm it's real)
  3. instead of storing all proofs, just store the ones it verified
  4. send over all the verified ones in a new ProofValidation tx after the entry crossing occurs
@sakridge

This comment has been minimized.

Copy link
Member Author

@sakridge sakridge commented Mar 15, 2019

The validation is this thing in process_entry_crossing where it calls chacha_cbc_encrypt_file_many_keys:

match chacha_cbc_encrypt_file_many_keys(

but it needs to submit the proof validation transaction still after doing this. There is a todo there.

@sakridge

This comment has been minimized.

Copy link
Member Author

@sakridge sakridge commented Mar 15, 2019

  1. Signing the storage blockhash is done by the replicator, that will then be the encryption key which is the SubmitMiningProof::signature field in that transaction.
  2. A hash value which is SubmitMiningProof::sha_state is the result of the replicator doing the storage mining, the validator should verify that hash value is correct. If so, then it will indicate as such in the ProofValidation transaction.
  3. Yea, it would need to save all the signatures for all the storage proofs it wants to validate and then at the storage epoch change start doing the validation and then submitting the ProofValidation transactions.
  4. Yes.
@sagar-solana

This comment has been minimized.

Copy link
Contributor

@sagar-solana sagar-solana commented Mar 15, 2019

Thanks for the explanation!

@sakridge sakridge moved this from To do to In progress in Storage Mining May 6, 2019
@mvines mvines added this to To do in Soft Launch - Archivers via automation Sep 3, 2019
@mvines mvines modified the milestones: Jaws v0.19.0, Sultans v0.21.0 Sep 3, 2019
@mvines mvines modified the milestones: Supertubes v0.22.0, v0.23.0 Nov 25, 2019
@mvines mvines modified the milestones: Tofino v0.23.0, The Future! Jan 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Storage Mining
  
In progress
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.