Go-ipfs: Mount only /ipfs/

Created on 11 Jan 2016  路  8Comments  路  Source: ipfs/go-ipfs

Mounting /ipns/ has negative consequences (one can't use ipfs name publish) so option to mount only /ipfs/ or /ipns in read only mode would be beneficial.

help wanted kinbug topifuse

All 8 comments

Can you describe what happens when you try to ipfs name publish while /ipns is mounted?

I'm unable to repro: I can still publish properly with /ipns mounted.

when you run a publish while you have ipns mounted, the updated value doesnt propogate to the fuse code.

Is the solution then to have a workaround (this issue) or would it make more sense to have the changes propagate to the mounted fuse FS? (I ask this with no notion of how non-trivial it is.)

having changes propogate to the fuse mount is non-trivial and not the solution we're going to go for
the thing we want for this issue is essentially ipfs mount --ipns=/ipns only mount /ipns, and ipfs mount --ipfs=/ipfs only mount /ipfs

We should also either disable ipfs name publish when /ipns is mounted with write privileges, or at very least warn.

Yeah, i totally thought that ipfs name publish was disabled while the mount was active... thats a bug

This also blocks ipfs mount while --routing=none is set.
I've added a bounty for this over on Bountysource: badge

For what it's worth I have an implementation that separates the mount options via their namespace and was looking to speak with someone about restrictions like these. I can imagine having a shared locking mechanism that allows the mount to be active without (permanently) preventing things like publishing, so long as the systems share the same path lock. (basically just have the mount hold a lock for a key if it's in use, and if not allow publish while blocking specific operations on the mount temporarily)

While this mechanism is in place, the stability of the actual (new) mount implementation is still in progress. This shows off some of the flexibility of it though
https://www.youtube.com/watch?v=IBRLt_ibct8
allowing to dynamically mount and unmount various APIs the node understands to various places on various operating systems using various backing apis (like fuse, winfsp, and 9p). Lots of variety...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

magik6k picture magik6k  路  3Comments

lidel picture lidel  路  3Comments

kallisti5 picture kallisti5  路  3Comments

daviddias picture daviddias  路  3Comments

whyrusleeping picture whyrusleeping  路  4Comments