-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Baking right configuration into in-browser nodes #3042
Comments
We've hit similar problem space when integrating embedded js-ipfs in Brave (ipfs/ipfs-companion#716 – full config is exposed for now) and exposing API on
IMO a power user should be able to customize (add? replace?) custom bootstrap/preload/delegate nodes, but most of the users will not care. For regular user, perhaps we should discover local ipfs-desktop and prompt/add it automatically? |
js-ipfs is being deprecated in favor of Helia. You can #4336 and read the migration guide. Please feel to reopen with any comments by 2023-06-02. We will do a final pass on reopened issues afterward (see #4336). This issue is most likely resolved in Helia (see https://github.com/ipfs/helia/blob/c936ba63a75276e206d804cf0ef35c3f9bf67f10/packages/helia/src/utils/libp2p.browser.ts), please try it out! Assigning to @achingbrain to force a peek from you before we close this for good. |
Closing since Helia has it's own config and it's a lot less complicated than js-IPFS. |
Sharing nodes across browsing contexts / tabs (see #3022) implies sharing / consensus on configuration. That is also challenge facing native IPFS support in browsers. Also a thing that came up in the past with Textile Desktop / Radicle / IPFS Desktop
Can we choose best configuration for in-browser nodes ?
It appears to me that IPFS node should adapt to the environment it's running in and use best possible configuration given conditions as opposed to making choosing right configuration embedders concern. I understand in practice things are more complicated, so I think we should aim to:
I attempted to do preliminary analyses of current configuration options, took notes in hypothesis and compiled following table
repo
'ipfs'
repoAutoMigrate
true
init.empty
false
ipfs.clear()
to clear app datainit.bits
,init.privateKey
,init.pass
start
true
pass
silent
false
ipfs.setLogLevel(0)
or something that can be changed at runtime.relay.enabled
true
relay.hop
null
options.offline
false
options.preload
false
EXPERIMENTAL.ipnsPubsub
EXPERIMENTAL.sharding
false
ipfs.add
instead.config
null
ipld
libp2p
Addresses.Swarm
[]
Discovery.MDNS
Discovery.webRTCStar
false
Bootstrap
Pubsub
{Enabled:true}
Swarm
The text was updated successfully, but these errors were encountered: