 Hello, I want to introduce a little project that was released today called Go Fixger Plate. It's in the IPLD org on GitHub. It's a tool that came out of some work we were doing on retrievals, trying to get test fixtures for UNIX FS pathing and just DAG pathing in general for cars and downloads, all that sort of stuff. We needed fixtures, but we also needed assurance that we were making sure we got the right blocks that we wanted out of a DAG for all the different forms of queries we were making. So I'm going to quickly show you how this works as a CLI. You can download the binary called Fixger Plate from GitHub or you can go install it. So I've got a CID here that I'm going to fetch with Lassie and fetch that off wherever it's coming from. And I know this CID points to a DAG that is a single file that takes up many blocks. So I'm going to now use Fixger Plate to explain that car for me and see what's in it, why it needed to have so many blocks. So here I can see my single file is sharded across many leaf blocks and you can see which bytes take up which blocks. So this explains why that one CID resulted in all these blocks. It can do more interesting things like I'll get the Wikipedia CID. So Lassie, fetch, Wikipedia, I'm going to fetch the cat page from Wikipedia. So that contains a bunch of blocks too. So why did one page need so many blocks? Fixger Plate explain that file and I'm going to also say ignore missing because there's a lot of missing blocks here because it's not all of Wikipedia. So now I can see that this one file cat was sharded across two different blocks and it was part of a sharded directory. The wiki directory is really large so it gets sharded at multiple levels and this shows you how it navigates through that. So the CID I requested relates to the page that I got through all of these steps and this is how we make a trustless car and this explains how we navigate through the DAG to get the blocks we want. Now we can do more interesting things with Fixger Plate. We can generate some synthetic DAGs for use in testing and it's got a little DSL on the command line. I'm going to generate a directory that's got ten files that are approximately 1K each or that are 1K each and it's going to tell me what it's doing, give me a car, I can explain that car and it'll show me what it did, it made this directory for me. Now it can get much more interesting than that so I can say let's say one file with one MEG but I want to make a subdirectory that is sharded, this is where it gets really interesting and each that subdirectory is going to have approximately 20 files of approximately 10 bytes each. So let's explain that whole DAG, so this is the whole DAG that we made, this is the kind of thing you would see, maybe not with these names but this is a random DAG that I might use for testing purposes. Now how would I use it for testing? Well let's say I want to get this file here which is inside of the sharded directory so I'm going to explain that car getting a path into that file and it will show me which blocks would be needed for a trusses query from the root all the way down to that file and I can even do things like byte ranges so if I get this one MEG file and I want bytes, let's say this block, we'll get this block to the end so this is the kind of query you would do, I've now just got the certain byte range of that file but if I did this query, if I pass that query onto the IPFS trustless gateway, I would download a car and I should get back a car with these four blocks in it just for that, the entity bytes query there, we get that so this is useful for that kind of testing. So now this is useful for, in our retrieval tools for testing, we've got it built into some of that integration tests but I think it's actually a really good tool for understanding DAGs particularly as we start talking about trustless cars. You can use this to actually explain to you what on earth is inside the car and why you should trust it and that's it.