 and we're live. Cool. Welcome. So this is a video for new developers to the Ethereum.js VM projects. The purpose of this video is to show you how to set up your dev environment, where to find requirements for what to work on next and how to run the tests. My name is Dan. I'm a contributor to the Ethereum.js project and this is Casey. Casey, would you like to introduce yourself? Yeah, I'm Casey. I'm a volunteer helping out with the Ethereum.js lately and trying to get more contributors involved. Sweet. So you're cloning down stuff right now and we can do an NPM install, but while you're at it, would you like to tell us a bit about EIPs and how a new developer can find EIPs to work on? Sure, the EIPs repository is over here at Ethereum slash EIPs and the finalized specifications that Ethereum.js VM needs updating are all listed down here. So the one we're going to work on right now is 150. Cool. But it's a little confusing because sometimes EIPs are in issues. This was the original one and we're trying to get them consolidated so that the correct final specification is just in a file. So you don't have to wade through the comments and the evolution of each specification. Perfect. So the issues board is for seeing any context and evolution like discussion between core devs and to find the final spec for what you want to implement in our projects, you're going to use these markdown files in the EIPs folder. Yeah, that's right. Great. Let's talk a bit about the homestead tests. Okay. So currently the homestead tests are in a pull request right here and with these pull requests merge, this one and delegate call which did I already merge with that one? Let me see. Are you up to date? We pass all of the homestead tests. So now that we have the branch, we just do npm install to install all the dependencies. Yep. And when we run what commands do you use to run the tests? Should we use the package JSON? Yeah. Just run npm run test blockchain. Great. And the test suite that we're using is in ethereum slash tests and specifically we're running the blockchain tests and the general blockchain tests, general state tests. Yep. And the tests in ethereum that tests are cross client in that they are run in all of the ethereum clients. So we're- That's right. This whole test suite is a cross client consensus test suite. Okay, cool. So once those node modules are in, we're gonna run the tests and we'll expect to have the changes that you merged in which means we'll get some test failures. Well, we're going to run the tests for heap 150. So. Got it. As soon as this is done, I'll show you how to change the fork configuration. Okay. So now we can change the fork configuration from homestead which what this does is it looks at the test name, each test name and matches with the end. So it will only run the test that ended homestead and we're gonna update that to heap 150 so that we're going to be running the 150 tests. Yep. Okay, so now we've done that. Now we can run the tests and we should expect to see some failures because we're running a homestead compatible implementation on the heap 150 test cases. Yep. So had we run the original homestead tests then we would have gotten 100% of the test passing. That's right. This is right here with all the homestead tests running and you can see each test case is homestead. Right. And so they all pass and in our case we're getting a failure because we're running on a heap 150. And the reason why we need to show you these outputs as they're saved and not really wait for them all to run is because the test suite, the consensus test suite does take a couple of hours to run. So we're just showing you how to get the tests running and what expected outputs are before we move on to more dev environment setup. So we have one failure. Now let's do this. The easiest bit of heap 150 and just change the constants, change the gas costs for a few outputs. So balance is now 400 EXT code copy, S load to 205,000 and then we rerun the tests and we should hope to see some of the test case which we're failing now passing and we do. Yup. And that would be the full output. Yeah, let's do one of the changes. 300 failures. Yup. So without the change in app code guess we have about 1500 failures. Once we do the simple change of changing cause the outputs we're down to 300 failures. And when we finish with these last two changes should be down to, well, down to zero failures. Perfect, cool. So yeah, that about wraps it up for this video. We've gone over how to run tests in the Ethereum.js VM project and how to find requirements for the EIPs you need to implement. In a future video or if you hit us up on Gitter we can explain how to set up the rest of your dev environment and how to do debugging and running traces on both the Ethereum.js project and the Pi Ethereum. And the Pi Ethereum implementation. Yup. Anything else you'd like to share? Yeah, just, we need help. And so, yeah, hope to see some contributors join us. Great. Thanks, Casey. Thanks, Daniel. See you.