New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Walrus & Walrus Sites Quick Start Guide - ETHGlobal San Francisco 2024

ETHGlobalThu, Oct 9, 2025, 12:00 AM

Join us for a workshop where you'll learn all about "Walrus & Walrus Sites Quick Start Guide". This workshops anticipates ETHGlobal San Francisco, a 3-day hackathon happening from October 18 to 20, 2024, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! ----------------- Follow us: https://x.com/ethglobal Check us out: https://ethglobal.com/ Email us at: hello@ethglobal.com

Transcript

hello everyone and welcome to the warus workshop my name is z and I work closely with the warus engineering team today I'm going to show you how to get started on warus the Next Generation decentralized blob storage system and here's our mascot Georgie the warus as you can see it looks like a blop here's today's agenda we'll talk about how warus Works an example of a simple interaction uh and another example of interacting with the warus CLI and some more advanced topics after that I will pass the stage over to my friend and cooworker Daniel levet and he will talk to you more about a more sophisticated use case built using water storage water sites so what is warus exactly uh to put it into simple terms it is essentially a decentralized Byzantine fall tolerant storage solution it uses sui as orchestration layer and has deep interaction with sui object system and sui move however you're not required to know sui or sui move in order to use and interact with warus it War supports both smart contract based operations via Su move and http apis via any programming languages of your choice being a decentralized storage system it can also theoretically be used as a data availability layer solution that supports certificate of availability and proof of inconsistency as a developer you have two options to interact with warus the first is via a publisher or an aggregator a publisher allows you to write your file to the system and an aggregator allows you to read your file from warus you could interact with them via an HTTP interface or a browser and they they essentially act as an IND Direction layer for you you can imagine having account with them and they will charge you a small fee for writing and reading blobs through them so they provide a streamlined web to user experience at a small cost and if they really want to provide you a fast read experience uh they would use a cache or CDN for your blobs the second way is to interact directly with the warus client uh we'll talk that a little bit more uh once we go through an example on how to use uh the publisher or an aggregator as we discussed earlier interacting via a publisher or an aggregator is all about convenience uh here in the terminal I have set my aggregator and my publisher address here uh these are uh the testet address and uh they are essentially free to use uh you can imagine that in the main scenario they will not be uh completely free but interacting with them is extremely easy so here I'm just putting a curl command here by um storing a string called some string and you can see I got a response back and the warus network has said this uh particular string has already been certified and it gave us back a blob ID and some transaction digest uh so we didn't have to you know create any kind of blockchain private uh private public Keys here at all instead we uh just called the publisher via a HTTP interface and it gave us a response and um and we can take a look at this uh transaction Digest I'm going to copy this after pasting this transaction digest in our uh Explorer here in in testet you can see that uh what is exactly going on in this particular uh Wars transaction and at the end we have an event being emitted saying uh The Blob has been certified by the entire warus network you can also create a file and upload this file to Wars Network as well so I'm going to just do that so here I'm calling the same exact endpoint uh with different um query parameters but it essentially sets the time for this file to expire on the network execute this command and there we go uh we have created a new file on the warus network and it has also been certified and you can find the AP I spec for the publisher here at publisher ddev netwars dospace slv1 API so pretty easy similar things can be done for the aggregator but you can use the this curl command here what you need to do is to replace the blob ID with The Blob ID that you want to retrieve so we're going to Target our old file here I'm going to rename this to a new file take a look at the content from the file here there it is it's the same thing as what we have saved earlier so as you can see using the publisher and aggregator it's very very easy to interact with uh the orus network here and you can pretty much implement this thing in any programming language of your choice as long as they can uh make an HTTP call and you can find the API spec for the aggregator here in the link below we have now covered the easiest way to interact with warus as you can see there's no need to install anything at all give it a go you might like it you can learn more about the warus HTTP API by visiting the link shown here however for some applications you might want to skip the aggregators and Publishers and interact directly with warus I got you covered introducing warus CLI War C is basically the client software that interacts directly with the storage NOS which actually stores The Blob you either reads or writes and this to War's contract which handles the payment and governance aspect of the storage Network the process to set this up is a bit more complicated because the client needs to be able to talk to the wars contract deployed on sui we would need to install the sui binary the warus binary and configure the warus system object you can find the detailed instructions by going to the link shown here feel free to pause the video and come back once you've installed everything now now that you have installed everything let's first by checking to see if we can connect to the wars Network there it is we got some basic information about the war system itself next we can use the or C to store and retrieve some blobs or files we can store the same file again using War store command so the file is stored here we can now check to see if we can download this file again we can first check the blob status by using the status command as you can see it is certified let's retrieve this file again and to do that we will use Wars read followed by The Blob ID and here I'm using the- o argument to save it to a file there it is the retrieval is successful and look at the content of the file it's the exact same thing as the original file keep in mind the warus network does not care about the file format you can upload anything you want I'm just using a text file as as an example but you can imagine uploading images uh videos uh funny gifts that you can uh find on the internet anything and everything we have now went over the process of using War C to store and retrieve blobs from warus Network work again once you finish the installation process it's fairly easy to use and that's the whole point of it is to be able to interact with a decentralized storage Network in a very fast and efficient way keep in mind that all wars client commands are also available in jsaw mode in this mode all the command line flags of the original C command can be specified in Json format the Json mode is more geared toward programmatic access to the CLI I have shown you the magic let's discuss how it works here are some terminologies we will be using slivers shards and storage nodes each blob is eraser encoded into many slivers and slivers are then assigned to a Shard and storage notes hold one or many shards within a storage Epoch first a user acquires a storage resource of appropriate size and duration on chain either by directly buying it on the war system system object or a secondary Market a user can split merge and transfer owned storage resources when users want to store a blob they first eraser code it and compute The Blob ID then they can perform the following steps themselves or use a publisher to perform steps on their behalf the user goes on chain and updates a storage resource to register the blob ID with the desired size and lifetime this then emits a blockchain event received by storage notes after the user gets confirmation they then continue the upload the user sends the blob metadata to All Storage nodes and each of the blob slivers to the storage nodes that currently manages the corresponding Shard a storage node managing A Shard receives a sliver and checks it against the blob ID it also checks that there is a blob resource with The Blob ID that is authorized to store a blob if that is correct the storage node then signs a statement that it holds the sliver for blob ID and metadata and returns it to the user the user puts together the signatures returned from Storage notes into an availability certificate and submits it to the Su blockchain when the certificate is certified on chain and availability event for the blob ID is emitted on sweet blockchain and all other storage nodes seek to download any missing shards for the blob ID this event emitted by sui is the point of availability for the blob ID after the point of availability and without user involvement uh storage nodes will sync and recover any missing metadata and slivers lastly I want to encourage every everyone who is interested to visit docs. wars. site uh there are some examples here that show you how to exactly track some of these events that we mentioned previously as shown here the dock side also has some concrete examples on how to use War CLI Json mode in your code as shown here that is everything from me today without further Ado I'm going to pass the stage to my coworker Daniel LoveIt and he's going to talk to you more about war sites hey everyone I'm Daniel one of the devil engineers at theu foundation and today I'm going to be demonstrating how to deploy a decentralized website onto Su using warus warus sites is an application that's built on top of walrus that allows anyone to create a decentralized website that's powered byui and walrus deploying a walrus site is as easy as using our site Builder tool CLI there's no need to manage any servers or create any complex configurations all you need to do is upload your source code to walrus and because walrus sites are powered byui every individual walrus site is owned by an address onui and therefore can be exchanged shared updated and anything else that you can do with objects onui um and for example in addition to this this means that you can use wall sites on top of other sweep Primitives such as the SNS name service we use SNS names to allow for more human readable domain names for these walrus sites um because walrus sites is built on top of walrus there no risk of your site ever being taken down or having um being wiped before I go into actually deploying a walr site I want to show you a use case that we currently see already onui today and the use case is nfts with their own personalized and ownable website so I'm going to navigate to this minting site of this app we have um so this is called the flat land collection I'm going to Mint I'm already connected I'm going to Mint a new nft okay so I'm going to ex take a look at this new nft on the Explorer really quick um so this is the image or GIF of our nft and we can see that this the SVG that generates this image is actually stored on chain so this this nft is 100% owned and is onchain and then we can see here that there's a link associated with this nft and let's go to this think okay so we can see here that this exactly matches uh the shape and color of our nft so and that this is because that this is a site that deployed onto walrus and is meant to exactly match the attributes of our nft and this is directly associated with this nft and always will be so how this works is during the minting uh the nft is Minted as well as the new walrus site is um deployed programmatically so then they can be associated with each other so I'd highly recommend um you check this video this app out um it's a really cool use case of walrus and I think it can uh it's just the beginning of what we'll see with walrus's composability okay um cool so now I'm going to actually go through and demonstrate how to deploy a walrus site and I'm going to be following this guide right here which I will provide the link to so you guys can all follow along on your own time and there's really three simple steps have to build a website that you want to deploy you upload it to walrus and this third step which is optional but recommended is get a SNS name to point to the walrus site so then you have a better human readable domain name okay so the first step is building a site and for this template or for this example I'm going to be using a template app that we have um so it's speeds up the process um so I'm going to go ahead and all this and I will select the react client dap option and we'll use the default name Okay cool so I'll navigate to this new site and we can see all the source files are here and I'm going to install the dependencies Okay cool so now you could run a local just to check that the website's um working as expected but I'm going to save that to the end for a surprise so I will now be running the next command which is um generating the static build of our site Okay cool so now we have this disc directory which contains uh the static h HTML file as well as some JavaScript and CSS assets so now that we have that uh we can start uploading it to walrus note that when you do this on your side you'll have to install the clis that are required I already have those installed so I can go ahead and start deploying so we need to include um a config file which contains information about the uh walrus package that is deployed onto s okay so this is the path to the config file and then we can hit publish and then we want to type in the directory that we want to publish okay publish so right now each of those files in the disc directory are being uploaded individually to walrus okay awesome so we can see that the these were the operations performed during our publishing and now we get this object ID and this is the object ID of the walrus site object that's onui and we also have the live URL of this site so this site is now completely uploaded to walrus you can view this site um and you can be done at this step but we want to we want our users to have a better URL to navigate to so I'm actually going to copy this object ID and navigate to our testet uh name service okay um so I'll call this uh eth San Francisco we'll see if that's available yeah okay so now we'll navigate to our our eth San Francisco name we will link it and I'll paste in the address of our walrus site okay so now instead of going to that nonhuman readable domain name all we have to do is go to eth San francisco. wales. site awesome and this is the starter template that we have deployed um and just like any other site you can connect your wallet and uh just as a tester you can see like these are all the objects that this signed in account has so yeah so this is a fully deployed site onto walus it can never be taken down and uh will exist on the site as long as uh it is PID for okay so that is the demo um so if you're interested in learning more about walrus and maybe learning more about how the walrus sites uh application actually works behind the scenes uh I would check out the developer docs they have all the information you need there to learn more and get started and we also just ended our first ever walrus hackathon uh the Voting is over but I'm linking the community voting page so that you can view all of the projects that were built for this hackathon thank you

Automatic transcript — names and jargon may be misspelled.