Closed wenxinnnnn closed 2 months ago
@wenxinnnnn could you please provide the funding breakdowns? i.e: work hours, $ hr/dev ?
Funding for this M1:
1 Software engineer lead resource: 1 120 $/h 40 h/week 2 week = $9600 1 Software engineer resource: 3 80 $/h 40 h/week 2 week = $6400
Total = $16000
Funding for this M2:
1 Software engineer lead resource: 1 120 $/h 40 h/week 1.5 week = $7200 1 Software engineer resource: 3 80 $/h 40 h/week 1.5 week = $4800
Total = $12000
capturing slack conversation
Hey @wenxinnnnn thanks for updating the team/price info. @raulk will review it.
Can you share any updates on the work so far? IIRC you started last week, right?
Mock Blockstore, completed Generate Account, mock_single_actor_blockstore, and then write slot data and opcodes, etc., and finally generate Blockstore to generate car files, which are then used to generate part of the corpus of JSON test vectors. https://github.com/froghub-io/builtin-actors/tree/tvx
Fetching data from Ethereum and generating a corpus of JSON test vectors is also in progress
@wenxinnnnn I think we are broadly aligned here, but there are some details that need to be adjusted.
If you agree on these, I'm happy to approve the submission.
We agree with these adjustment details, The tips are greatly appreciated.
@realChainLife this is approved from the FVM team. Can we formalise?
@wenxinnnnn - Hey, Dragan from the core FVM team here, I just wanted to check did you already started some work on this RFP? Would be great if we have something to try in January 2023?
I think the progress is very smooth, and we will see results soon.
@BlocksOnAChain we are aiming to get MVP by EOW.
@wenxinnnnn Can we sync again tonight? I wanna touch point on:
For Milestone 1:
For Milestone 2 Tvx tools consume test vectors Other than the test vector coverage above, we think it would be really useful if we can build:
For Milestone 1, repo Generate tvx test vectors from transactions on Ethereum, applicable to all Ethereum transactions, including “Constructor” and “applyTransaction”, but it requires the chain status of Ethereum nodes, so too old transactions are not easily exported. The top evm contract is of course good test case, but the contracts that depend on the evm context are also critical, such as timestamp, chainId, etc.
For Milestone 2, repo Testing with the test vector generated by Milestone 1 is underway.
MVP has been met. @raulk Can you help us review whether it meets your expectations? Some transactions can be perfectly replayed, but the actual gasLimit on Ethereum will generally fail. In addition, there are some strange problems, and the reason is still being found.
@wenxinnnnn that is great news! Yes, the gas limit on Ethereum is absolutely not translatable to Filecoin gas. See comment in the respective FIP: https://github.com/filecoin-project/FIPs/pull/569/files#diff-42db5d06aa41036fbab88aef4ad06e69fbfec97dba280a6227f27a1cffbd8f5dR808-R821
Testing with the test vector generated by Milestone 1 is underway.
how is this going?
Found another problem:Simply sending funds to the contract without input_data will not trigger bytecode execution, which is inconsistent with the behavior of evm.
@wenxinnnnn i think this is a known behaviour tho could you please create a ticket in ref-fvm repo with each of your discoveries so we can keep track of them? In the ticket, please include the original etherum tx id that triggered behaviour. thank you!
@wenxinnnnn IIUC this is the issue you're talking about https://github.com/filecoin-project/ref-fvm/issues/835. Feel free to contribute to the discussion, the decision hasn't been reached there yet.
More generally though, @wenxinnnnn do you have any report after running these test vectors already?
The M1 and M2 goals of the current Test Vector Tool have been completed.
By running some test vectors of transactions, we found the following problems:
But there are still some problems that have not been found:
Due to the lack of fevm tracing, it is still difficult to locate the problem. It may be necessary to consider implementing evm tracing similar to geth format for fevm?
This issue #1202 has been closed. Please reach out to grants@fil.org with any questions.
RFP Proposal:
Tool for applying test vectors from Ethereum on FEVM
Name of Project: Tool for applying test vectors from Ethereum on FEVM
Link to RFP: fvm-ethereum-test-vectors
RFP Category:
devtools-libraries
Proposer:
FroghubMan
Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: Yes
Project Description
FVM 2.1 which introduces support for Ethereum smart contracts in the Filecoin network (FEVM) will be the biggest network upgrade since mainnet launch. At the same time, it immensely widens the area of possible problems. That’s why it must be tested thoroughly. One of possibilities to test FEVM is to run already existing and proven smart contracts from Ethereum and compare the state it produces on Ethereum vs Filecoin.
We are seeking proposals from teams that can build such a testing tool. This tool is expected to be in the form of a CLI. It should be able to:
We want to run this tool a few times if needed and fix encountered errors every time. This tool can be written in either Go or Rust.
Development Roadmap
Milestone1:
Fetch and store thousands of transactions sent to constracts on Ethereum in the past. And through
EVM Tracing
, Intercept and store data for opcodes of the following types:With the help of ref-fvm and the opcode data of call, state and storage types, correctly simulate the data (address, balance, bytecode, slot data) of the account on the state tree. Write the opcode data of context and ext types to blockstore, for reading by related opcode functions in testing phase. Finally intercept blockstore writing and generate tvx test vector file.
Milestone2:
Documentation, Education, and Community
The code repository will contain detailed instructions for using the CLI tool
Milestone Summary
Total Budget Requested
$28000
Maintenance and Upgrade Plans
We are willing to maintain this test vector tool for a long time
Team
Contact Info
wenxin@froghub.io
Team Members
Team Website
https://www.froghub.io/
Relevant Experience
Please describe (in words) your team's relevant experience, and why you think would do a great job with this RFP. You can cite your team's prior experience in similar domains, doing similar dev work, individual team members' backgrounds, etc.
Team code repositories
https://github.com/froghub-io