-
Notifications
You must be signed in to change notification settings - Fork 78
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
Interactive verifier #379
Interactive verifier #379
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool 🔥
I didn't review at a high resolution, will share this feedback first then circle back
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Almost there. I do think it would be beneficial to create a TranscriptRanges
type which I think covers most of the functionality that you're trying to add in the substring/transcript
module.
23cedd3
to
0df63b7
Compare
1608645
to
955ec80
Compare
should be able to rebase on dev now |
it is already. |
`SessionData` for interactive verifier flow
`ServerInfo` is generated by `SessionData` and is the non-notarization version of `SessionProof`
0a300d7
to
7d4a727
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple small things, otherwise lgtm
* Added necessary state and state transitions * Move Prover future into its own module * Put phase-specific prover code into its own modules * Make `ProverFuture` public again * Added `Into` from `Closed` to `Verify` for `Prover` state transition * Added first part of finalize method for `Prover<Verify>` * Rename `SessionData` to `NotarizedSessionData` and introduce `SessionData` for interactive verifier flow * Added first sketches for HttpProver and Prover with Verifier state * Introduced wrapper `ServerInfo` `ServerInfo` is generated by `SessionData` and is the non-notarization version of `SessionProof` * Crate `ServerInfo` from `SessionData` in Prover<Verify> flow * Introduced another module for direct substring proofs. * WIP: Added dirty first version of prover flow... * Move `RangeCollector` and restore substring module * Tidy up tlsn-core and finish first version of prover flow for dealing with a verifier * Refactored verifier * Added `Verify` state for `Verifier` * WIP: Added first draft for verify flow... * Added more parts of verifier flow * Adapt tests to new api changes * Add some logging and improve code here and there * Added `ProofBuilder` trait and started implementing it for `SubstringsProofBuilder` * WIP: Tinkering with lifetimes... * Resolved lifetime issues * Refactor module `proof` to support another implementor of `SubstringProofBuilder` * WIP: Adding `LabelProofBuilder`... * Streamlined api * Improved decoding flow * Include lengths in `LabelProof` * Improved structure of `LabelProof` and finished `verify` * Added integration test for verify flow * Add tests for `LabelProof` * Improve test for `LabelProof::verify` * Make tlsn compile without `tlsn-formats` * Restore `tlsn-formats` from `dev` and temporarily remove from workspace * Add first batch of feedback * Add further feedback * Separated decoding from finalization * Add warning comment to `Verifier::receive` * Remove unnecessary traits * Adapt test * Repair notarize integration test * Add `decode` call to prover for verify integration test * Simplified `LabelProof` and renamed to `TranscriptProof` * Add range check to `reconstruct` * Roll back changes to `tlsn-prover/src/http` * Rename `Verify` to `Prove` * Added more feedback * Various code improvements * Remove `SessionData` * Restore naming of `TlsProof` and `SessionData` * Improve error handling * Adapt prove-verify flow to new API * Finalize VM first * Fix prover closing connection too early * Add correct server certificate and assert correct redactions * Fix imports after rebase * Fix api test in `tlsn-core` * Add feedback * Fix linting in integration test Co-authored-by: th4s <th4s@metavoid.xyz>
* Added necessary state and state transitions * Move Prover future into its own module * Put phase-specific prover code into its own modules * Make `ProverFuture` public again * Added `Into` from `Closed` to `Verify` for `Prover` state transition * Added first part of finalize method for `Prover<Verify>` * Rename `SessionData` to `NotarizedSessionData` and introduce `SessionData` for interactive verifier flow * Added first sketches for HttpProver and Prover with Verifier state * Introduced wrapper `ServerInfo` `ServerInfo` is generated by `SessionData` and is the non-notarization version of `SessionProof` * Crate `ServerInfo` from `SessionData` in Prover<Verify> flow * Introduced another module for direct substring proofs. * WIP: Added dirty first version of prover flow... * Move `RangeCollector` and restore substring module * Tidy up tlsn-core and finish first version of prover flow for dealing with a verifier * Refactored verifier * Added `Verify` state for `Verifier` * WIP: Added first draft for verify flow... * Added more parts of verifier flow * Adapt tests to new api changes * Add some logging and improve code here and there * Added `ProofBuilder` trait and started implementing it for `SubstringsProofBuilder` * WIP: Tinkering with lifetimes... * Resolved lifetime issues * Refactor module `proof` to support another implementor of `SubstringProofBuilder` * WIP: Adding `LabelProofBuilder`... * Streamlined api * Improved decoding flow * Include lengths in `LabelProof` * Improved structure of `LabelProof` and finished `verify` * Added integration test for verify flow * Add tests for `LabelProof` * Improve test for `LabelProof::verify` * Make tlsn compile without `tlsn-formats` * Restore `tlsn-formats` from `dev` and temporarily remove from workspace * Add first batch of feedback * Add further feedback * Separated decoding from finalization * Add warning comment to `Verifier::receive` * Remove unnecessary traits * Adapt test * Repair notarize integration test * Add `decode` call to prover for verify integration test * Simplified `LabelProof` and renamed to `TranscriptProof` * Add range check to `reconstruct` * Roll back changes to `tlsn-prover/src/http` * Rename `Verify` to `Prove` * Added more feedback * Various code improvements * Remove `SessionData` * Restore naming of `TlsProof` and `SessionData` * Improve error handling * Adapt prove-verify flow to new API * Finalize VM first * Fix prover closing connection too early * Add correct server certificate and assert correct redactions * Fix imports after rebase * Fix api test in `tlsn-core` * Add feedback * Fix linting in integration test
* Added necessary state and state transitions * Move Prover future into its own module * Put phase-specific prover code into its own modules * Make `ProverFuture` public again * Added `Into` from `Closed` to `Verify` for `Prover` state transition * Added first part of finalize method for `Prover<Verify>` * Rename `SessionData` to `NotarizedSessionData` and introduce `SessionData` for interactive verifier flow * Added first sketches for HttpProver and Prover with Verifier state * Introduced wrapper `ServerInfo` `ServerInfo` is generated by `SessionData` and is the non-notarization version of `SessionProof` * Crate `ServerInfo` from `SessionData` in Prover<Verify> flow * Introduced another module for direct substring proofs. * WIP: Added dirty first version of prover flow... * Move `RangeCollector` and restore substring module * Tidy up tlsn-core and finish first version of prover flow for dealing with a verifier * Refactored verifier * Added `Verify` state for `Verifier` * WIP: Added first draft for verify flow... * Added more parts of verifier flow * Adapt tests to new api changes * Add some logging and improve code here and there * Added `ProofBuilder` trait and started implementing it for `SubstringsProofBuilder` * WIP: Tinkering with lifetimes... * Resolved lifetime issues * Refactor module `proof` to support another implementor of `SubstringProofBuilder` * WIP: Adding `LabelProofBuilder`... * Streamlined api * Improved decoding flow * Include lengths in `LabelProof` * Improved structure of `LabelProof` and finished `verify` * Added integration test for verify flow * Add tests for `LabelProof` * Improve test for `LabelProof::verify` * Make tlsn compile without `tlsn-formats` * Restore `tlsn-formats` from `dev` and temporarily remove from workspace * Add first batch of feedback * Add further feedback * Separated decoding from finalization * Add warning comment to `Verifier::receive` * Remove unnecessary traits * Adapt test * Repair notarize integration test * Add `decode` call to prover for verify integration test * Simplified `LabelProof` and renamed to `TranscriptProof` * Add range check to `reconstruct` * Roll back changes to `tlsn-prover/src/http` * Rename `Verify` to `Prove` * Added more feedback * Various code improvements * Remove `SessionData` * Restore naming of `TlsProof` and `SessionData` * Improve error handling * Adapt prove-verify flow to new API * Finalize VM first * Fix prover closing connection too early * Add correct server certificate and assert correct redactions * Fix imports after rebase * Fix api test in `tlsn-core` * Add feedback * Fix linting in integration test
* Added necessary state and state transitions * Move Prover future into its own module * Put phase-specific prover code into its own modules * Make `ProverFuture` public again * Added `Into` from `Closed` to `Verify` for `Prover` state transition * Added first part of finalize method for `Prover<Verify>` * Rename `SessionData` to `NotarizedSessionData` and introduce `SessionData` for interactive verifier flow * Added first sketches for HttpProver and Prover with Verifier state * Introduced wrapper `ServerInfo` `ServerInfo` is generated by `SessionData` and is the non-notarization version of `SessionProof` * Crate `ServerInfo` from `SessionData` in Prover<Verify> flow * Introduced another module for direct substring proofs. * WIP: Added dirty first version of prover flow... * Move `RangeCollector` and restore substring module * Tidy up tlsn-core and finish first version of prover flow for dealing with a verifier * Refactored verifier * Added `Verify` state for `Verifier` * WIP: Added first draft for verify flow... * Added more parts of verifier flow * Adapt tests to new api changes * Add some logging and improve code here and there * Added `ProofBuilder` trait and started implementing it for `SubstringsProofBuilder` * WIP: Tinkering with lifetimes... * Resolved lifetime issues * Refactor module `proof` to support another implementor of `SubstringProofBuilder` * WIP: Adding `LabelProofBuilder`... * Streamlined api * Improved decoding flow * Include lengths in `LabelProof` * Improved structure of `LabelProof` and finished `verify` * Added integration test for verify flow * Add tests for `LabelProof` * Improve test for `LabelProof::verify` * Make tlsn compile without `tlsn-formats` * Restore `tlsn-formats` from `dev` and temporarily remove from workspace * Add first batch of feedback * Add further feedback * Separated decoding from finalization * Add warning comment to `Verifier::receive` * Remove unnecessary traits * Adapt test * Repair notarize integration test * Add `decode` call to prover for verify integration test * Simplified `LabelProof` and renamed to `TranscriptProof` * Add range check to `reconstruct` * Roll back changes to `tlsn-prover/src/http` * Rename `Verify` to `Prove` * Added more feedback * Various code improvements * Remove `SessionData` * Restore naming of `TlsProof` and `SessionData` * Improve error handling * Adapt prove-verify flow to new API * Finalize VM first * Fix prover closing connection too early * Add correct server certificate and assert correct redactions * Fix imports after rebase * Fix api test in `tlsn-core` * Add feedback * Fix linting in integration test Co-authored-by: th4s <th4s@metavoid.xyz>
This PR implements functionality for an interactive verifier, who works without using commitments.
tlsn-prover
andtlsn-verifier
I still need to add some tests and currently debugging an error, but opened it for early feedback.