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

meta issue: towards 300 tps #133

Open
lispc opened this issue Mar 24, 2021 · 4 comments
Open

meta issue: towards 300 tps #133

lispc opened this issue Mar 24, 2021 · 4 comments
Assignees

Comments

@lispc
Copy link
Member

lispc commented Mar 24, 2021

Our recent goal is to run a 300tps rollup test on testnet ( for 1 hour? ), including matching engine, witness generation, proving, contract verification.

here I list some must-to-do for this goal:

  1. design bitwise tx encoding mechanism to save space and gas
  2. sha the inputs and make all other circuit input private. Only the hash in public input.
  3. rewrite global state manager in rust.
  4. implement parallel merkle tree update
  5. we may even need to use poseidon ( seems faster than rescue for offline cpu calculation?)

Better to do:

  1. Reuse order tree slot
  2. Encode big int, signficand + exponent

Depedency of other repo:

  1. prover cluster
  2. matchengine can generate rollup event

For all things above, we can support 'SpotTrade' first. Implement 'Withdraw/DepositToNew' etc later.

@lispc
Copy link
Member Author

lispc commented Mar 24, 2021

it may cost thousands of dollars EC2 cost (even for a very big proving cluster, for 1 hour) . Not too much.

@lispc lispc pinned this issue Mar 24, 2021
@0xmountaintop 0xmountaintop self-assigned this Mar 24, 2021
@0xmountaintop
Copy link
Member

At the moment, seems implementing "prover_cluster" and "rewrite global state manager in rust" is the most urgent.

@lispc
Copy link
Member Author

lispc commented Mar 24, 2021

We may write a series of article, like

  1. Towards 300tps zk-rollup part 1: Parallel Merkle Tree
  2. Towards 300tps zk-rollup part 2: Transaction Data Encoding
  3. Towards 300tps zk-rollup part 3: Build a proving cluster
  4. Towards 300tps zk-rollup part 3: High performance order matching engine

etc

@0xmountaintop
Copy link
Member

w

Our recent goal is to run a 300tps rollup test on testnet ( for 1 hour? ), including matching engine, witness generation, proving, contract verification.

here I list some must-to-do for this goal:

  1. design bitwise tx encoding mechanism to save space and gas
  2. sha the inputs and make all other circuit input private. Only the hash in public input.
  3. rewrite global state manager in rust.
  4. implement parallel merkle tree update
  5. we may even need to use poseidon ( seems faster than rescue for offline cpu calculation?)

Better to do:

  1. Reuse order tree slot
  2. Encode big int, signficand + exponent

Depedency of other repo:

  1. prover cluster
  2. matchengine can generate rollup event

For all things above, we can support 'SpotTrade' first. Implement 'Withdraw/DepositToNew' etc later.

We may wanna further remove ethAddr in circuits.

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

No branches or pull requests

2 participants