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
Add Gas Metering #1
Comments
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 3.662 ETH (1601.13 USD @ $437.23/ETH) attached to it.
|
@davidbanu thanks for applying! want to jump on a quick call and discuss architecture? |
@davidbanu Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days |
@johannbarbie, sorry for the silence...Had a hard weekend. I'm reading throughout the repository trying to come up with the best plan... |
Thanks for the update @davidbanu, please let us know if you have any questions 👍 |
I will submit a WIP PR soon for full transparency of the work I did until now. Any comments regarding my approach will be welcomed. |
hi @davidbanu , thanks. excited to look at that. here are the details: https://hackmd.io/Kn0hwBA7Tvm6mfacCH1rIw |
@johannbarbie, wow, sure! It will be my pleasure... |
@johannbarbie, so I've added myself into the Topics of Interest list. Can I talk a little bit about the gas metering job and my progress on Monday? Or this is just an internal kind of a list? |
yes yes, that would be great 😃 you can also join the discord link mentioned in the doc, and ask questions any time. |
@johannbarbie, cool. Thanks a lot! |
@johannbarbie, I need to solve an urgent matter and I will not be able to attend today discussion. I am deeply sorry. I will make the WIP PR, once I arrive at the office. Sorry for any inconvenience I've produced. |
@davidbanu any updates on this? :) |
@johannbarbie sorry for not saying anything. I've broke my leg and this changed my schedule by a lot. But I'm on it right now. A little bit concerned about the codesize of this thing once the gas metering is fully implemented. I want to make that WIP PR soon to exemplify what I'm referring to. But until then, I want to try just one more idea that I had last night. It might work better. |
@davidbanu Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work has been started. These users each claimed they can complete the work by 7 months, 2 weeks ago. 1) pinkiebell has been approved to start work. Happy to work on that. Learn more on the Gitcoin Issue Details page. |
@johannbarbie |
@pinkiebell thx for picking this up 🎉 |
@pinkiebell Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days |
@johannbarbie |
@pinkiebell great work. formally fulfilled. i'm just worried about covering more op-codes in unit tests. currently only one example. |
sorry, it takes longer than I expected. @pinkiebell I've started wrting some tests here: #5. I guess the idea is that we can use the same fixtures and same test to check for gas usage for each opcode as well. I hope to finish the whole test set by Tuesday. |
@troggy Looks good 👍 . |
@troggy |
stuck with storage state import/export for a some time already :/ I noticed you merged some of my changes 👍Will check it out this week. Do you plan to add anything else? I noticed todos in CALL, DELEGATECALL, STATICCALL handlers. Is there any way we can create a test for these? |
These TODO's can go and the check for enough gas should be moved after the stack operations and return early if we don't have enough gas. I will fix this later. We can test these three handlers by calling them with- and without enough gas remaining. |
@troggy |
@pinkiebell PR looks solid 👍I think you can submit work as done on Gitcoin |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work for 3.662 ETH (984.11 USD @ $268.74/ETH) has been submitted by: @johannbarbie please take a look at the submitted work:
|
@pinkiebell I have a message from @johannbarbie. He is on vacation for one more week and unfortunately forgot the private key at home. I guess he will be able to release the payment once he got back on Sept 1st. |
No problem 👍 |
⚡️ A tip worth 0.18310 ETH (53.51 USD @ $292.25/ETH) has been granted to @pinkiebell for this issue from @johannbarbie. ⚡️ Nice work @pinkiebell! Your tip has automatically been deposited in the ETH address we have on file.
|
Issue Status: 1. Open 2. Started 3. Submitted 4. Done The funding of 3.662 ETH (1070.21 USD @ $292.25/ETH) attached to this issue has been approved & issued to @pinkiebell.
|
@pinkiebell congratulations on completing the bounty! Well done! |
@pinkiebell Great work! |
@johannbarbie @troggy @jdkanani |
* add naive executeAndStop method * broken code, wip * broken code fixed * improve naming: EVMOverride → EVMCallContext * fix 'out of gas' for EthereumRuntime.new() * fix linting after rebase * add naive initAndExecute. Only stack and memory are initialized so far. * restore executeFlat method * add tests for stack-only opcodes * tightly packing bytes in flatten Result to spare some stack for local vars * extend initAndExecute to initialize accounts * allow to init EVM call with gasLimit * add test cases for context+stack opcodes * add gasLimit tests * export program counter as part of the state * add test cases for code+stack opcodes * test cases for data opcodes * fix: update program counter in EVM state to the last executed opcode position * add memory + stack test cases * fix GAS and CODESIZE tests we are testing just one opcode execution, so gasUsed in these test will always show only gas price for a single opcode disregarding the code size * add CALLDATACOPY and CODECOPY tests * Initial gas metering (#10) * Initial gas metering Fixes #1 Depends on #5 * gas metering: check gas earlier in the loop & fix/add additional tests * new ABI encoder is merged in web3 1.0.0-beta.36 (we don't use it though yet) * allow to init storage, add tests for SSTORE and SLOAD * init log data, tests for LOG0-4, fighting out of gas * add missing file * remove .vscode settings from git * Reduce gas consumption in EthereumRuntime (#11) Example gas consumption before = 6582400 and after = 6485785.
Add a gasLimit parameter when a program is executed.
Check https://github.com/ethereum/py-evm for reference.
Check the Architecture docs for more details.
The text was updated successfully, but these errors were encountered: