 Okay, so this will be just a quick, really quick meeting. We are going to show a couple of tiny things. First of all, how do we organize the testnet? What kind of milestones we are going to have? How to know when the testnet will be updated. And then as a second part, you will try to show how to compile a Go Atrium client working with the Iwasm testnet and syncing it with the testnet. So I will turn on screen sharing. Let me know if it works. Yes, I can see your screen. Alright, so Iwasm.atatrium.org is the main landing page for the testnet. It has a really beautiful logo and a couple of different links on the bottom. So the guide itself goes to our testnet repository which explains how to connect to the testnet. It will also explain how to deploy contracts, etc. And that's what we are going to have a look at later today. The Explorer itself of course goes to the Blockchain Explorer which is able to show a lot of different things. The studio is just a tiny tool to deploy contracts. And the other two should be self-explanatory. Just to have a quick look at the Explorer. There is nothing really surprising about the Explorer. It is just a regular Explorer. The only interesting part here could be this contract, the central contract, which is a system contract and it is doing validation and metering on deployed contracts. Okay, let's see this single contract here. I believe this should be a WebAssembly contract which has been deployed recently. And one can see the actual, so that above should be the WebAssembly bytecode. But the WebAssembly bytecode can also be represented as a text format, which is called the worst format. And this is, you know, what the bytecode contains. And it's also possible to see the storage entries for a given contract. Okay, I don't want to go too deep into the Explorer myself. Maybe Hugo wants to show us around later. So the way we organize the testnet itself is through a GitHub project board, which can be found on GitHub, just going to the Uazen project and then clicking on the project tab. And here you can see three different milestones we have in progress. The first one on the bottom is the one for today. And we plan to make another update to the testnet in like three weeks time and then a month from there. On this single, the current today's milestone, here are some items which we haven't fully completed yet, but on the right there are all the items which we did complete. Now the goal with this project listing is that we have a fixed date for the release. And we are narrowing down the scope as we get closer to the release prioritizing issues, which are more important and removing the one switch would be just nice to have. Okay, are there any questions so far or should we just move on onto installing a client? Alex, just to clarify, so when there's a release on the 10th of December, we'll start with a new chain, a new genesis so everything will be wiped? Yes, that's correct. So the plan at least for now is to restart the testnet of each milestone having like hard forks would be an extra unnecessary complexity we don't really need right now. And it should also help us to, you know, should we have, you know, should someone find some issues in the testnet, we would just get rid of those issues and deploy the fixes. Okay, then let's just quickly look into how a client can be installed and what actually I can go back to the main page and click on the guide on the main page, which brings us to the main readme which is under heavy improvements, undergoing heavy improvements right now, but there's already a part right here ending in note to the testnet, which explains step by step how somebody can connect a fresh node. Now here are the basic prerequisites which are needed. Important dimension is the version of Go and the version of CMake, otherwise the regular C++ compiler is also required, but nothing really fancy. And here are the actual steps. I think I would just change the screen sharing to the terminal and we'll just copy these items one by one to the terminal. But basically first we need to build our own version of Go Ethereum, which can be found at this location and with every single milestone, we are having a different tag. So it's easy to distinguish which version of the testnet somebody tries to build a client for and connect to. So the first step is building this Go Ethereum client, which has some specific features made by us. Hopefully those features going to be merged back into the official Go Ethereum soon enough and then this stuff will be obsolete, maybe with the next milestone, but it's not fully up to us. The second step is to build Hera, which is a E-wasm VM. And this is a C++ piece of code, that's why we need a C++ compiler. And the next step is downloading the genesis and setting up the local configuration for Go Ethereum. And then lastly is the step for connecting to the actual testnet. Okay, I'm going to change the screen sharing to the terminal. Is the terminal visible? Yes. So you should see E-wasm-workstation2. Is that prompt? Okay, let's just create a directory here for the testnet. So of course this machine has, this is Linux machine. But it also works on macOS without any issues. This machine has all the prerequisites installed. Now while I'm going through this, I think it would be a good time too because this is going to take like three, four minutes in total. It's probably going to be a good time. If you guys have any questions, please ask them now. So access this milestone one will be updated, right? On the 10th of December. Yes, we are going to have milestone two. The instructions likely going to be the same except using this milestone one, they're going to be milestone two. Okay, let's copy the build binary to here. And so we have Go Ethereum build. Oh, sorry. Did I? Yeah. Yeah, so we have Go Ethereum build. Now we can build the Herra. Alex, why aren't you downloading the binary release of Herra? All right, I could do that. Yeah, because I've been doing this mostly on Mac and we don't have a release for the Mac. Oh, okay. We have a release for Linux. So I could do that now. But I think it takes like two minutes with on this computer to build. Yeah. And so what's that same? Ewasm test that the milestone one is going to be the release tag for, we're both Herra for Gath. So that way when, when we do an update to milestone two, then you just change that. So you can use that consistent. Get tag across all the repos. Yeah, I suppose that's the power of Go. It took like 30 seconds to build compared to C++. Maybe once wagon is ready, we can just tell people to use wagon will be the default instructions. What do you think? It would be 10% of the time to install a node. Yeah. And wagon, by the way, is the goal implementation of a WebAssembly interpreter. And Guillaume has been working on using, hooking up the Gath cost wagon to the test net. So I see we also have Harley on the call. Do you have any, any questions? Oh, hey, Alex. No, I'm just, I was hanging out Jason asked me to be on the call to see what you guys are up to. If you're up to compiling stuff here. Yeah, I see that. I hadn't heard of wagon. So I'll check that out. It's pretty cool. Hey, Alex, one more thing. Sorry for interrupting. So inside the Go Ethereum folder, we will do the Git clone of Hera, right? After they make it. Yeah, I moved out to a different directory. So just to scroll back up. I mean, my system is a bit slower than yours. So that's why. Okay. Yeah, so it's up there. So we downloaded Go Ethereum. We built it. And I just made a copy of the. There are just made a copy of the build file. And placed it into the test net directory. And there we are compiling Kara. Almost finished. Yeah, this seemed actually to be faster on Mac. Yeah, maybe to expand on wagon a bit wagon is a go implementation of WebAssembly. It's an interpreter. And we have Guillaume in the team, who's also a member of the Go Ethereum team. And he also works on Visper, but he also works on, on E wasm. And he's integrating wagon into Go Ethereum. And adding the tiny piece of code to, to support E wasm in Go Ethereum using wagon. And it actually is working. But we had a couple of, we had a couple of changes in the interfaces, which wagon had no chance yet to, to be updated to. But I think for the next milestone, it definitely will be fully working. And this process will be much quicker. Okay. Now we have her build. Let's make a copy of that. Is it here? Yeah. Okay, so now in our testing directory, we have the Go Ethereum binary and we have her. So the next step is to download the Genesis, which is also listed in the read me. And now we can initialize all the data for Go Ethereum. I missed it. Okay. So let's see the big command of actually pulling all this together. So all of this is actually listed in the read me. I'm just typing it up. It seems easier than copying. So this part here is like the, the only special part, which is needed. In case of using wagon, the lip here part won't be there, but the other parameters will be there at least initially. But apart from this single dash dash VM that you wasn't parameter, everything else is the same. Just like you would use Go Ethereum. Let's just enable RPC, but we won't enable mining. Oh, actually I forgot one tiny thing because we haven't updated the read me yet to deal with that. So now we actually just run into like limitation of on in Go Ethereum have the peer to peer networking works. If we just specify the boot node, which is the, the mining node, we have on the test net. And we don't specify no discover. Then the client works, but it will try to connect to any other random Ethereum node. And there's a lot of extra peer to peer traffic, you know, connecting, trying to connect to all the nodes on the regular network. But due to the network ID being different, it's just a useless connection. But if the specify no discover, then even despite specifying a boot node, it won't really connect to the boot nodes. So one way around this is some actually not executing this one. One way around this is adding a static nodes file, which have to be placed into this initialized directory within the geth directory. And that has to be named static dash nodes that Jason. And it is an array of. It's a, it's a Jason file and it's an array of the E node. Like identifiers. So this E node came from the read me. And we will also include aesthetic nodes, Jason filing to the read me so one can just copy and paste it. And now if I copy the command I had over there, then everything should work magically. I think it worked. So if you keep keep waiting here a bit then all the incoming blocks should also show up. Yep, I think it did work. So I mean that, that's, that's it from me. I'm not sure if anybody has any questions now. All right, then I don't think you have anything more to show at least right now. But we plan to have the next community call. Just right after the release of milestone two. And so we will communicate the date much earlier than we did for this one. And probably there will be a bit more interaction regarding how to deploy contracts and how to, how to deploy EVM contracts that had to deploy E was in contracts and had to interact between them. So that is the plan for the next milestone. And for the next community call. Okay, then I think we can, if there are no questions, we can conclude this meeting. And hopefully it's going to be up on YouTube. So you people can, can have a look at how to, how to deploy the client. Thank you all for joining. Okay. Yeah, Hugo, please go ahead. Yeah. Well, I don't know if you want to, or you want me to show how to deploy like a simple contract. That's net. And if you're ready to do that, and you want to show it then, please, of course, I'm going to stop my sharing. And you can take it over. Alex, I have just asked you one question on the chat. I don't know whether this question is good for or not. I mean, this is supposed to get uploaded on YouTube. That's why I just, I mean, I'm not sure I fully understand the question. Um, but yeah, I mean, you can, you can ask any kind of question on this call. It's really up to you. Yeah. So what are the community projects? I mean, you're expecting to build something around you awesome. So there is a project called as a explorer was an explorer. I mean, for the web assembly. It for you awesome. I have seen that. Yeah. You guys have built. But that's, I mean, just like a bare bone. So for the web assembly, they have implemented for C plus plus rest. And yeah, C plus plus and rest also. So, uh, is there something that can be built around this? Uh, you awesome. Similarly, just like awesome. You're looking at the link. I think this is the earlier version of what is, uh, now called the web assembly studio. Yeah. And yeah, um, yeah, the web assembly studio is, is the new version of this. Um, and we were looking into integrating it into our pipeline. And one way to integrate it is, um, having an actual language in it, which has some of the extensions to natively support the awesome. And the only one which works easily with the web assembly studio is assembly script. Um, so we have a project in place to, um, extend assembly script with the wasn't support. And by that, I mean that there would be built in a helpers to, to create contracts and it would generate all the ABI and all the, all the other things needed to be a contract. And there would be no manual work required. Um, so hopefully that's, that's going to be released. Um, you know, sometime in the near future. Um, if, if anybody's interested to, to work on that, that is a type script slash JavaScript project. And we definitely would welcome people to, to help it on that. So it will be mostly like an, a fiddle just like JS fiddle, where you are going to write the smart contract in one language. And you will get the, he was a contract on the other side. Right. Yeah. And it, um, I mean, it's only for assembly script. So one could write assembly script. Um, using the assembly studio compile it as a contract and then, uh, deploy from the, uh, from the same interface. Okay. That is the end goal. Okay. Okay. Thanks. Thank you. That was a good question. Um, Hugo, if you want to go to them, please go ahead. Sure. Can you see my screen? I can. Okay. Good. Um, well, as Alex said, um, in the main it wasn't website, we have this, um, access to this tool, which is called it wasn't studio. And this tool allows to deploy contracts to the it wasn't test nets. Um, so in order to do that, we have, we need to have, uh, metamask installed the metamask extension. And also we need to configure metamask to connect to the, the it wasn't this net. Uh, we can do that. And going to settings. And here in new RPC URL, we have to specify. You was some. And a five for five as support. So we save this configuration. And now we are connected to the, to the it wasn't, doesn't it? Um, sometimes when you connect to a new to a new network in metamask, you can see in the history, you can see other, um, transactions. So I recommend to go in and reset the account. So you don't have any problems with, with the nonce. So you can do that again in settings. You can reset your account. So one, once you have connected to the, to the test net metamask, you will need some, some it wasn't it in order to submit transactions. So to do that, we have also in the main, um, it was some web page. We have access to the faucet. And here, uh, the faucet, the texture, your metamask address, and you can request one eater from the faucet. So I'm going to request one eater here. And now we have access to the faucet. One eater here. And now we can see that we have a transaction, which is sending us one eater. We also can take a look here in the explorer for pending transactions. Right now it says there is no pending transaction. So we may have this transaction here. Yeah. We have, uh, the faucet, the faucet is sending us one eater, which we requested. If I go to metamask again, I can see that now I have one. It wasn't meter. So now I'm able to, to use it wasn't studio. And it wasn't studio. It wasn't studio. You can send transactions to an address. If you specify here an address for a contract, you can call that contract. And you can send some data here or some value. But if you leave this address empty, what the studio is going to do is going to deploy the was told you writing here or you copy in here. So right now we're going to deploy a very simple contract, which is this was told. We don't specify any address here. So we want to deploy the contract. We said any value here. So this is a very simple contract. It only is reading the, the current block number. And it starts the block number in the key 88 or the storage. And then it uses a storage load to read the same value from this key. And then it is stored, stored the same value in these new key 99. So I'm going to deploy this contract. When I submit the transaction, it opened Metamask. So here I just have to confirm the transaction. And you, and if a studio shows the transaction number. So if I go again to pending transactions, there's an opening transaction. So maybe this also already processed. So here we have the transaction Metamask confirm. We have the transaction. So if we go to the transaction, we can see that this transaction is deploying a new contract. And here we have the contract address. We can go to this new contract address. We can check the code. Here we have the WebAssembly bytecode for the contract. And this bytecode is, from this bytecode, the explorer is actually getting the WASC code. But the difference here between this WASC code and the WASC code we initially deployed is that the Sentinel contract is adding these new statements. For example, it has the use gas. And for each one of these branches, it is actually charging some gas. So right now we have nothing in the storage. We can use it was in the studio to call this contract. If we set here the contract address and so we can send some value. And this will call the contract. And this code will be executed. So let's submit the transaction, confirm. It gets the transaction received. Here is a subpanning transaction. Now it is processed. You can see it here in the recent transactions. And if we go again to this contract, we see that there is a new recent transaction calling the contract. So this code gets executed. And now we have the storage changed. Now for these two keys, we have the block number in which the transaction was processed. So yeah, that will be all by my side. Just wanted to show you how to deploy this simple contract and how to use these USM studio tool to do it. And also to clarify how to configure a metamask because sometimes it's one of the common issues. For example, this denounce issue. So yeah, that's it for me. Thanks, Hugo. I wanted to point out on that contract's storage action, I think the endianness might be wrong or the value there of the block number. Yeah, that's a very large block number instead of at the end of the 256 bit value. We'll sort that out later. Thank you, Hugo. I think it was really great. So do we have any questions or should we conclude? Nothing from Isaac. All right then. Thank you everyone for joining today. And let's have another call in a month from now. Thanks. Thanks, everyone. Thank you. Bye-bye. Thank you. Bye.