Decentralized storage via IPFS


#1

This is a subject I find very interesting and wanted to discuss. It’s a pretty radical suggestion, but just as amazing and worth considering in my opinion. I’m planning to poke several game engines about the proposal, but High Fidelity (alongside other virtual worlds) would be the first to benefit from it.

I would like to start with some background on what this is all about: I’ve been following the development of the decentralized internet initiative closely for the past few years. This namely includes the IPFS protocol. For those who are not familiar with it: IPFS (Inter Planetary File System) is a file storage system which allows files to be stored in a global decentralized network. Every user who accesses a file also stores and seeds parts of it to other viewers for a limited time (similarly to torrents). Files in IPFS are immutable, meaning that once they’re uploaded they cannot be edited nor deleted and are represented by a hash which guarantees their originality. There exist multiple implementations and the library is very flexible… a browser node can even be embedded directly onto a website using JavaScript alone. The goal is to revolutionize the web by allowing entire websites and more to become free from the requirement of a central server… meaning fewer or no storage costs, guaranteed uptime, faster network speeds, and increased safety from censorship.

To offer a simple example, let’s compare Youtube to BitTube. The first is a centralized video platform owned by Google, whereas the second is a new video platform which uses IPFS for storage. When you watch a video on Youtube, the video file is downloaded from the Google server closest to your location. When you watch a video on BitTube, some of it might be downloaded from the computer of your next door neighbor, some from an user in a nearby city, and some from another viewer on the other side of the planet… all concurrently so the download speeds add up. While Google has to spend money on drive space and bandwidth, the platform can go down if it experiences server issues, and they can also delete videos they don’t like from their site… BitTube has its videos seeded by viewers who watching them, is guaranteed to be available as long as you’re connected to the internet, and uploads can never be truly deleted once posted (only filtered at HTML / protocol level). It’s easy to see why the decentralized web will likely be the biggest revolution in the history of the internet.

How this relates to High Fidelity: I’ve been intrigued by the idea of using IPFS in a similar way for game engines. This interest is particularly for ones that have dynamic worlds intended for multiplier environments, though the benefits are not limited to sandbox games. Decentralized storage can be used to store assets / mods / updates (models, textures, video, sounds, code) in a form that’s not only more reliable and network efficient, but basically allows serverless multiplayer games to exist: Clients communicate the data they have directly with one another, there would no longer be a central server that everyone needs to join which processes what each player is doing… everything from saving changes in the world to computing the physics would be done by connected clients. This will of course require extra security measures to avoid cheaters and trolls doing whatever they want, but I’m surely not the only one who finds the idea most appealing.

Like Second Life, HiFi allows users to upload and use assets in realtime. IPFS would be a fantastic way of storing those assets in a global network, rather than burdening server admins with focused asset storage which can become unavailable if their server goes down; Every viewer connecting to a world will also seed the assets they load for other viewers to download, which is both a fair efficient and reliable means of distribution. Most importantly however, people could opt to store worlds into the cloud entirely: A server would not even be needed for people to connect with each other, every client could communicate to other clients directly! The prospect of completely serverless online worlds is phenomenal, and something which to my knowledge has never been attempted since it’s a huge paradigm shift.

High Fidelity is a young project with a vision toward the future. As such I’m hoping this idea can find grounds here. I do believe that IPFS and other protocols like it are the internet of the future, as the old server - client model is slowly failing us on multiple levels… HiFi has the chance to include this revolution early among its many modern ideas. What is your opinion?


#2

I guess you haven’t been around when we worked it into the blender plugin…

For now the blender plugin supports directly uploading
avatars to the ipfs using the HiFi hosted -ipfs node.

Aka it’s been in the works:

HiFi Blender Plugin

By default the node it selects is the high fidelity hosted ipfs node that is gatekeepers by the Hifi-IPFS bridge.

You can also host your own. Hifi-IPFS Node source, and make the blender Plugin point to that instead.

And rough community maker meeting video on use from a month or so back.:


#3

This is such amazing news. Thanks for clarifying! It will be most interesting to read up on that later.

Indeed I’ve taken a break; I haven’t been able to both compile and run High Fidelity on Linux for some two years now, the interface would always crash on startup. Also my video card has a weird driver bug that causes most 3D engines to freeze the system and crash the computer. If both of those things are fixed I would love to get back into it more often.


#4

I think this is brilliant! HiFi would definitely benefit from this! IMHO.


#5

Got around to watching the video. As usual for High Fidelity, the system is designed most efficiently and ingeniously. Beautiful work once more!

I’d only like to make sure of one thing: Is an authentication token with your username only necessary for using IPFS in the Blender addon, or is it also needed in-world? IPFS is one of those things that’s supposed to work out-of-the-box, and I believe HiFi is designed to allow useage without an account on highfidelity.com (IIRC logging in is optional). I thus hope you don’t need a special token to use the interface.

Other than that I’m curious how much is stored on IPFS. Avatars are one thing which is great! Are static models, images, sounds, videos, text files, etc. stored there too? In fact, can you store an entire sim with all its properties in IPFS so that no other form of storage is needed? Everything is perfect if so :grinning: