-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Embedded JS-IPFS in Brave (experiment) #716
Comments
> Part of an effort to run embedded js-ipfs in Brave 🦁 ipfs/ipfs-companion#716 > Fixes #1918 This PR will add support for `/ipns/` paths at HTTP Gateway. Smoke test: [/ipns/tr.wikipedia-on-ipfs.org](http://127.0.0.1:9090/ipns/tr.wikipedia-on-ipfs.org/wiki/Anasayfa.html) (IPNS+DNSLink+HAMT-sharded website) This PR depends on the following merged PRs: - Gateway Improvements from #1989 (after merging #1989 I will rebase this PR, which will remove first two commits) - PeerID eg. `/ipns/<PeerId-as-multihash-b58>` - requires #2002 to land first - `/ipns/<libp2p-key-in-cidv1>` - requires multiformats/js-multicodec#45 - DNSLink eg. `/ipns/<fqdn>/path/file` like `/ipns/docs.ipfs.io/assets/logo.svg` - requires #2002 to land first - HAMT shard support eg. `/ipns/tr.wikipedia-on-ipfs.org/wiki/Anasayfa.html` (`wiki` is a sharded directory) - requires ipfs/js-ipfs-http-response#22 and ipfs-inactive/js-ipfs-mfs#48 to land first - Tests for `/ipns/` License: MIT Signed-off-by: Marcin Rataj <lidel@lidel.org>
### Summary This PR fixes filtering, improves interop with go-ipfs and adds missing tests for `pin ls` ### Details Old version returned indirect pin when `pin ls -t direct <path>` was executed. This PR also tweaks error handling to match behavior from go-ipfs/js-ipfs-http-client and pass improved interop tests added in ipfs-inactive/interface-js-ipfs-core#375 I've added some inline comments, hope it helps in review. ### Related - Improved `pin ls` interop tests: ipfs-inactive/interface-js-ipfs-core#375 (this PR is not blocked by interop tests, old ones were less strict) - We need this fix for embedded js-ipfs in Brave 🦁 ipfs/ipfs-companion#716 License: MIT Signed-off-by: Marcin Rataj <lidel@lidel.org>
What are the implications and strategy to deal with Google's announcement that Chrome Apps and its APIs (including https://blog.chromium.org/2020/01/moving-forward-from-chrome-apps.html |
Hi @lidel @warren-bank , any place(github repository) for trying the progress(source code)? Thanks! |
@warren-bank Google's decision end support for "Chrome Apps" in 2022 does not mean immediate removal of Embedded js-ipfs + @voidao sources are in this repo: code responsible for initializing embedded js-ipfs in Brave is contained within |
Closing this, as we already deprecated this experiment in recent release. Brave 1.19 shipped with native support for IPFS which leverages go-ipfs instead: |
High Level Goals
Kanban Board
How to opt-in
Stable release of IPFS Companion can be enabled via Brave Settings (
chrome://settings/extensions
):By default, it works like regular ipfs-companion and
External
node is used by default, assuming user has go-ipfs or IPFS Desktop installed and running.Brave users can opt-in and try
Embedded + chrome.sockets
(see /docs/node-types for more details)TODO
🎨 UX
embedded:chromesockets
)ipfs://
andipns://
🔌 chrome.sockets
chrome.sockets
(Support chrome.sockets.* APIs #664)chrome.sockets
should enable additional powers at runtimesockets
section🌐 Embedded HTTP Gateway
last-modified
(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)if-none-match
and304 Not Modified
(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)?filename
andContent-Disposition
(Gateway Improvements: Streaming, Conditional and Range Requests js-ipfs#1989)/ipns/docs.ipfs.io/
) are not supported by js-ipfs/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/
do not work with js-ipfs...
in directory listing points at current directory instead of its parent/ipns/tr.wikipedia-on-ipfs.org/wiki/Venüs.html
)🕸️ Local Discovery and UDP/TCP Transports
chrome.sockets.tcp
andchrome.sockets.tcpServer
)chrome.system.network.getNetworkInterfaces
?chrome.sockets.udp
⚡ Performance
ipfs.io/api/v0/dns
: we need to add cache to this, or support DoH (Support DNS over HTTPS helia-ipns#53) or implementchrome.sockets.udp*
APIThe text was updated successfully, but these errors were encountered: