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

feat: Goblin Translator (final part) #3022

Closed
wants to merge 47 commits into from

Conversation

Rumata888
Copy link
Contributor

@Rumata888 Rumata888 commented Oct 25, 2023

This should be the final part of unoptimized Goblin Translator, but there are 2 issues right now that don't allow this to go in:

  1. Compilation of sumcheck relations is broken for some reason. Univariates of different sizes are being added together. It would be great if @codygunton compiled it, because I have no idea why the gen_perm_sort_relation suddenly started using univariates of different sizes (it worked before adding composer files)
  2. Zeromorph prove_with_concatenations and verify_with_concatenations methods have not been updated to use concatenations (because I ran into issue 1). The part 10 PR explored how to add concatenations to Zeromorph in tests but hasn't created final functions to easily call. @ledwards2225 could probably add those, but it is simpler to ping me if 1 is solved.

Checklist:

Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

  • If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
  • I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
  • Every change is related to the PR description.
  • I have linked this pull request to relevant issues (if any exist).

@Rumata888 Rumata888 changed the title Is/goblin_translator_composer_prover_verifier feat: Goblin Translator (final part) Oct 25, 2023
@AztecBot
Copy link
Collaborator

AztecBot commented Oct 25, 2023

Benchmark results

No metrics with a significant change found.

Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Values are compared against data from master at commit d707d4e3 and shown if the difference exceeds 1%.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 128 txs
l1_rollup_calldata_size_in_bytes 45,444 179,588 716,132
l1_rollup_calldata_gas 222,912 867,884 3,449,504
l1_rollup_execution_gas 841,999 3,594,992 22,204,873
l2_block_processing_time_in_ms 1,980 7,617 29,720 (-1%)
note_successful_decrypting_time_in_ms 293 (-1%) 875 (-1%) 3,159 (-2%)
note_trial_decrypting_time_in_ms 97.0 (-3%) 84.0 (-13%) 134
l2_block_building_time_in_ms 13,151 (-1%) 52,580 209,282 (-1%)
l2_block_rollup_simulation_time_in_ms 11,819 (-1%) 47,251 188,206
l2_block_public_tx_process_time_in_ms 1,293 (-1%) 5,191 (-1%) 20,588 (-2%)

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 21,275 (-2%) 42,042 (-1%)
note_history_successful_decrypting_time_in_ms 1,995 (-2%) 3,988 (+1%)
note_history_trial_decrypting_time_in_ms 143 (+19%) 143
node_database_size_in_bytes 1,627,848 1,096,079
pxe_database_size_in_bytes 29,748 59,307

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 772 61,697 18,905
private-kernel-ordering 123 24,297 8,153
base-rollup 1,770 656,311 814
root-rollup 77.5 4,072 1,097
private-kernel-inner 788 81,568 18,905
public-kernel-private-input 41.3 (-1%) 41,519 18,841
public-kernel-non-first-iteration 26.2 (-1%) 41,497 18,841
merge-rollup 0.928 2,592 873

Miscellaneous

Transaction sizes based on how many contracts are deployed in the tx.

Metric 0 deployed contracts 1 deployed contracts
tx_size_in_bytes 8,787 27,547

Base automatically changed from is/goblin_translator_decomposition_and_nonnative_relation_correctness to master October 25, 2023 18:26
@codygunton codygunton force-pushed the cg/instantiate-translator-relations branch from 24c428f to a5aa3b4 Compare November 7, 2023 04:53
@codygunton codygunton force-pushed the is/goblin_translator_composer_prover_verifier branch from cb66fea to b1885ac Compare November 7, 2023 08:04
@codygunton codygunton changed the base branch from cg/instantiate-translator-relations to master November 7, 2023 08:10
@codygunton codygunton force-pushed the is/goblin_translator_composer_prover_verifier branch from 8dd245d to 27b0b0e Compare November 14, 2023 12:38
@codygunton codygunton mentioned this pull request Nov 20, 2023
4 tasks
@codygunton
Copy link
Contributor

replaced by #3332 and earlier PRs

@codygunton codygunton closed this Nov 21, 2023
codygunton added a commit that referenced this pull request Nov 22, 2023
The last PR that splits out and completes work from
#3022

We add composer, prover and verifier classes for the Goblin Translator
VM. We also further flesh out the full Goblin composer tests. Modulo
some missing challenge generation, we have our first Goblin proofs
(i.e., something worth measuring)!

Spawned issues
AztecProtocol/barretenberg#783
AztecProtocol/barretenberg#784
AztecProtocol/barretenberg#785
AztecProtocol/barretenberg#786
AztecProtocol/barretenberg#787
AztecBot pushed a commit to AztecProtocol/barretenberg that referenced this pull request Nov 23, 2023
The last PR that splits out and completes work from
AztecProtocol/aztec-packages#3022

We add composer, prover and verifier classes for the Goblin Translator
VM. We also further flesh out the full Goblin composer tests. Modulo
some missing challenge generation, we have our first Goblin proofs
(i.e., something worth measuring)!

Spawned issues
#783
#784
#785
#786
#787
@ludamad ludamad deleted the is/goblin_translator_composer_prover_verifier branch August 22, 2024 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants