Foundation Mission (RFP) – Remote Static Call Proof of Concept
To take on this project, submit a proposal to this thread by xxx. Read more about Missions here.
- S4 Intent: Progress Towards Technical Decentralization
- Proposal Tier: Ember
- Baseline grant amount: 15k OP
- Accepting one or multiple proposals: Multiple
- OP Labs or Optimism Foundation Sponsor: Mark (@tynes)
- Submit by: July 18, 2023 at 19:00 GMT
- Selection by: July 28, 2023 at 19:00 GMT
How will this Foundation Mission (RFP) help accomplish the above Intent?
A decentralized future is one where there are many L2 rollup chains. In order to support many L2 chains without introducing too much fragmentation it is critical that there is shared state between them. This RFP introduces a new REMOTESTATICCALL primitive which allows L2 nodes to query L1 state statically using the existing STATICCALL RPC. This greatly improves the flexibility of querying the shared state between chains.
This can be used for novel use-cases such as:
- Cross-chain wallet management — see Vitalik’s recent post
- Oracle update reading — read oracle values on L1
- EVM-based indexers — when combined with custom attributes in the derivation function, this enables more generalized L1 state inspection for provable EVM-based indexers.
Tons of use cases become possible!
What is required to execute this Foundation Mission (RFP)?
Success criteria:
- A fork of Optimism where the local devnet includes all of the changes required for the REMOTESTATICCALL functionality.
- A test suite which can be run against the local devnet which deploys contracts that use the REMOTESTATICCALL functionality and show it is working.
- This includes:
- Simple gas metering of the REMOTESTATICCALL
- Bonus: Analysis or recommendations for what the gas metering should be if deployed to production
Recommended solution:
- Implement a precompile in op-geth which makes a STATICCALL RPC request to the L1 Geth. The gas is proportional to the gas allocated to the CALL of the precompile. The STATICCALL made to L1 Geth uses the latest L1 blockhash stored in the L2 L1Block predeploy.
- Archive node of L1 Geth so the STATICCALL can be made on historical blocks.
- Bonus: Avoid needing an archive node.
How should the Foundation measure progress towards this Mission (RFP)?
Progress can be measured based upon the completion of the following milestones:
- Specification: A specification for how the REMOTESTATICCALL would be implemented. This includes the interface to the precompile and its gas consumption.
- Geth PoC: A single commit to op-geth which adds the functionality and unit tests.
- Executable devnet demo: An easy to run test suite against the standard Optimism devnet which demonstrates the functionality.
How should badgeholders measure impact upon completion of this Mission (RFP)?
- Number of developers who understand this new primitive
- Fewer lines of code is better
- More documentation is better
- Number of developers who want this new primitive
- Number of developers building on top of this new primitive
Application instructions
To apply for this RFP, please complete the form in the expandable section below and leave your response as a comment on this issue thread. Submissions will be open until July 18, at which time the Foundation will review all submissions and select individual/team(s) to complete the work defined here.
Submission form
Copy the entire application below and leave a comment on this issue with your answers completed. A representative from the Optimism Foundation may reach out using the contact info provided to request more information as necessary.
Foundation Mission (RFP) Application
Please verify that you meet the qualifications for submitting at the above Tier
- Alliance Lead: Please specify the best point of contact for your team
- Contact info:
- L2 recipient address:
- Please list the members of your Alliance and link to any previous work:
Read more about Alliances here
What makes your Alliance best-suited to execute this Mission?
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.)
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant
- I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual
- I confirm that I have read and understand the grant policies
- I understand that I will be expected to following the public grant reporting requirements outlined here
-- end of application --