Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
198 stars 9 forks source link

Proposal about implementation of P2P sharing assets. #2879

Open Z2Up1UwcaYOyZq opened 2 years ago

Z2Up1UwcaYOyZq commented 2 years ago

What topic do you want to discuss?

Proposal about implementation of sharing assets with P2P (not about P2P voicechat or other things that need low latency)

Goal of discussion

To brainstorm ideas about P2P asset sharing, since there is none on github.

Discussion:

I'm open to your criticism and ideas

Base idea

My base proposal on how to deal with asset sharing is to use Bittorrent protocol by making magnet links for each individual thing, this way overlapping might happen and you are gonna save some bandwidth.

Current state: schemat2

Proposed state: schemat3

This way even if there are multiple servers with the same world/asset they can help each other distribute the traffic, or rely on other participants in the server, or even people who are not playing in that world but have fast internet and asset downloaded. This way host doesn't need to have good PC or internet, and network is still decentralised because everyone can distribute traffic if needed, just by leaving their computers overnight or by spining up a cheap seedbox.

Going a step further

Using Logix and bittorrent to save space and bandwidth by making a "library" of basic assets and then make players reuse them, by scaling/distorting/rotating/colorgrading. This library would be a list of magnet links and opt-in for users. The world download would be a file with logix scripts that build world[1], checking if there aren't files on your computer already. Also syncing avatars someone only changed colour in could be fast, or only downloading mesh when all PBRs are already on your computer.

[1] "a file with logix scripts that build worlds/avatars/props and everything else by either being packed with that data or just referening magnet links to those" could be the answer for #1803

uyjulian commented 2 years ago

Froox doesn't plan to use bittorrent protocol and instead develop yet another protocol. See message in discord.
https://ptb.discord.com/channels/402159838827905024/477711742001086505/788099106240724992

Own protocol would most likely allow better flow control so e.g. voice traffic can be prioritized.

Z2Up1UwcaYOyZq commented 2 years ago

Can you copy this message here?

shadowpanther commented 2 years ago

I could only add that there's a card on mesh networking on the roadmap, the plan to replace SNS by GNS (which eliminates the requirement of running Steam) and the plan to decentralize the asset storage by utilizing IPFS (I guess the relevant issue would be #1754 in this case) or similar networks.

The linked message is this one:

image