neo-project / neo

NEO Smart Economy
MIT License
3.47k stars 1.03k forks source link

NeoFS harddisk Bridge #2934

Closed cschuchardt88 closed 11 months ago

cschuchardt88 commented 1 year ago

Summary or problem description A way to map and/or mount neofs to disk.

Do you have any solution you want to propose? I suggest that we build a bridge to mount neo-fs as a hard disk in the OS. Also be able to network mount neo-fs much like how nfs or smb works. Another way is to have something like how onedrive dropbox and googledrive works. I'm not talking about having a website. I am talking about the way the app works on the computer or smartphone. This way is more practical. We could expand the neo-vm to integrate neo-fs natively as a file system. Which could expand the vm into a micro os. The way it sits right now as a "scientific calculator" but with 1MB storage (i.e.)

I don't why you would need this last part, but you get the idea.

Neo Version

Where in the software does this update applies to?

roman-khimov commented 1 year ago

I suggest that we build a bridge to mount neo-fs as a hard disk in the OS.

There was a very limited initial FUSE prototype, but it didn't go far. The problem is that object semantics doesn't match FS semantics well. For small number of objects/nodes it may work good enough, but as the networks grows or you get more and more data in your container (or try implementing more of FUSE API) you'll have problems. At this stage I wouldn't recommend even trying to do that even though it's not that hard to build a simple prototype.

cschuchardt88 commented 1 year ago

@roman-khimov would you be able to share this prototype with me? I'm eager to see what problems you are facing. Also could a name service map be appropriate for mapping file hashes/address to names, mush like how NNS maps addresses to domains? Are you talking about ACL layer could be a problem?

roman-khimov commented 1 year ago

share this prototype

https://github.com/fyrchik/neofs-fuse

a name service map be appropriate for mapping file hashes/address to names

One of NeoFS strengths is that it doesn't use blockchain for per-object operations, waiting 15s to upload a file is not something users want to do. One of NeoFS weaknesses is that it doesn't have any centralized metadata for objects, resolving attributes (like FilePath) into OIDs requires a SEARCH to be performed on all container nodes.

Are you talking about ACL layer could be a problem?

A bit of that as well, what's the meaning of rwx bits for NeoFS? What's the meaning of bearer token for POSIX FS API?