 Hello everyone, I'm Xiaowei. I work at the Eastern Rim Foundation consensus RISC-RND team. So this is a lightning talk of the consensus PySpec. So you can find the code base with this URL or the QR code. And this is a CC0 open source Python project. Now we have like more than 100 contributors so far. And most of them are actually Eastern Rim Core Devs. Thank you for your contributions. OK, so this project has three main purposes. So first, this is the center of Eastern Core consensus space. And second, it is also an executable and verifiable Python program that you can use it to run the consensus logic with. And the third, it's also our test factor generators for the CL clients, the consensus layer clients, to test their implementations with. And so if there's new features that we are thinking about to apply it in the consensus side, like the BeaconChance side, so you might try to prototype it with the markdown files that I will introduce later. And we implement it in markdown files and we'll do the test. And the test vectors would be generated with the Python programs test case, like the PyTest if you have used Python before. And for clientings, they can download the test vectors to test their implementations. So if you understand this process, you can see that the spec is now important and unique component in the whole CLR&D process. And it also helps us to find some very basic bugs before clientings started to actually prototype and test it. Also it helps clientings to sync with the core specs more efficiently. The reason why we chose Python instead of other language was that because it's probably, I think Python is probably the most readable programming language for most developers. Like you can say, Python just should have code. OK, now let's see how to read it. I shouldn't stand here. So this is the specs folders. And here you can see some, the blue ones are the many hard folks that already be implied. And the yellow, green parts are the working progress features. Also inside one of the directory, you can find that the specs are actually written in the markdown files. The most important entry might be the beacon chain and that's also for choice or P2P interface in it. And we can define the constants and configurations just like you are writing markdown in the tables. So it looks like this. And we also define the classes, the SSZ containers. So these objects are for the consensus objects because we use it to do the serialization in the consensus object. Also this is the example of the state transition functions. We can just write down the Python functions in the code block of the markdown files. And also you can see there are some assertions. So if the input is, if the assertion throws exceptions, then we could say that, OK, the input is invalid because it doesn't pass the test. There are some more useful links for you to understand more about the spec itself. And also, so this is an L, I so-called L in the PySpec in the setup.py file. So it is the program that helps us to parse the markdown files and convert them into a Python program. So the readers, they don't have to read in the .py file. They can just read the markdown files, which are more readable. You know, example of, so if the phase zero is the base layer of all consensus specs. And out here, if you want to understand out here, you have to merge, extend the phase zero specs and the new features in the out here. And as well, the Bellatrix, they have to merge three of them. So I have one minute left to do how to use PySpec. And so installation is easy, just install from Py API or from source code with this command. OK, this is a very basic hello world example. And this is a simple tool. You can just write the hello world into the gravity of the beacon block. And in the first line, you can import the whole many Bellatrix specs as we need it to speak like that. You can use it as a playground and see the example code in PySpec to try to play with it. OK, this is how to write your first PySpec test case. OK, there are already some existing helper functions to help you to prepare the beacon block or to manipulate the beacon state with. And there are some assertions here. Those are for us to set our test scores of this test case. And the important part is here, like you can see there are some PySumYout comments. It is for us to output the test vectors. For example, this one, we output the pre-state. And the side become blocks. And the post state. So output file will be there. And this is a pure function for the client is to test with. OK, documents. If you want to see my document, you can see the URLs. And OK, so this is the most important page, actually. So how to contribute with PySpec? If you are interested in helping with consensus layer on the, I think PySpec is a really good start to learn and contribute with. And there are some different labels that you can participate in. And you can do it from just fixing a little typo or to submitting a bug report. And if it's got a set, I think the EF will be happy to give you the rewards. And we also have looking for some in-house resource for PySpec implementations. So if you are interested, feel free to reach out to me or if you want to participate or have any questions. Thank you. Thank you, Shou.