Announcing IPFS Companion MV3 RC-Beta

Hello All

tl;dr; New IPFS-Companion MV3 RC-Beta Implementation is available for testing here.

IPFS-Companion browser extension is one of the key tools that enhances the IPFS experience in the browser. We are thrilled to introduce the beta version of IPFS-Companion built on MV3 (Manifest V3), which brings exciting improvements and changes the way you interact with this powerful tool.

MV3, or Manifest V3, is the latest iteration of the manifest file format used by browser extensions. MV3 introduces several key changes compared to the previous MV2, such as the adoption of a service worker model for background scripts, increased permissions granularity, a few new APIs like declarativeNetRequest and deprecation in the behaviour of a few APIs like webRequest and their blocking nature on intercepted requests.

How MV3 Changes the Interaction with IPFS-Companion

  • Improved Performance and Responsiveness:

    With the new declarativeNetRequest API companion no longer blocks requests in the request lifecycle. Rather it merely observes the request and if it is serviceable by the configured node, creates a redirection rule in the browser to transform the request dynamically. This non-blocking nature, makes the requests a lot faster.

  • Better Resource Utilization:

    The new ServiceWorker model for background scripts ensures optimal utilization of browser resources, unlike background pages, ServiceWorker goes to sleep when not in use and wakes up when needed.

  • Compatibility with the Latest Browser Versions:

    As browser technologies evolve, it’s crucial for extensions to adapt. IPFS-Companion built on MV3 ensures compatibility with the latest versions of popular browsers, such as Google Chrome, Brave and Firefox. This compatibility ensures that you can enjoy the benefits of IPFS-Companion without limitations.

  • Enhanced Metrics
    Helps us gain deeper insights into IPFS prevalence, empowering us to optimize and tailor future developments more effectively.

A few gotchas

  • Uninstall Stable IPFS-Companion/Use Duplicated Browser Profile:

    Before testing this out make sure to uninstall the stable IPFS-Companion, so that there are no conflicts. Or you can setup a duplicated browser profile that can help you recover faster in case there’s a problematic update.

  • Configs:

    The existing companion configs don’t automatically migrate as the storage model has changed. If you’re using a custom config you might have to redo those.

  • Firefox:

    The beta is not available for firefox, but it can be made available based on community needs. The changes above do not completely apply to Firefox as there exists support for webRequest blocking and we will continue to use that.

Installation

The new MV3 implementation available as an RC-Beta for chrome and brave that can be installed here: IPFS Companion (Beta @ 5873528) - Chrome Web Store

Reporting Issues

Please report bugs or feedback here: github issue

Conclusion

The original issue (#666) regarding MV3 is more than four years old. A tremendous amount of discussion, planning and effort has gone into making this possible. The beta version of IPFS-Companion built on MV3 marks an exciting milestone in the evolution of this essential IPFS tool. With improved performance and compatibility with the latest standards, it promises to improve your interaction experience within the IPFS network.

Stay tuned as we work towards refining this beta version and incorporating valuable feedback from the community. The current progress regarding this is being tracked in issue #1152 and the work is being published in rc/3.0-mv3 branch. The future of IPFS-Companion on MV3 holds tremendous potential for empowering individuals to participate in a decentralized and secure web ecosystem.

Download the beta version today and embark on an exciting journey exploring the possibilities offered by IPFS and IPFS-Companion. Together, let’s shape the future of web decentralization!

Thanks!

Edit:

  • June 3, 2023: Beta RC-MV3 v3.0.0.1100, which includes fixes for bugs reported so far went live. The link remains the same, the updates should be pushed automatically.
  • August 1, 2023: Beta RC-MV3 v3.0.0.1114, final dogfooding call: Announcing IPFS Companion MV3 RC-Beta - #7 by whizzzkid
  • Spetember 23, 2023: IPFS-Companion MV3 is live in production.
5 Likes

Thanks for posting @whizzzkid . A couple of thoughts:

  1. Do we believe the “average 600x faster” statement? I know we’re referencing a video there. Is there more of a writeup for that? I think the the key thing we need to know is when does the timer start and when does it end. I have no doubt that this is faster, but I don’t have a sense of how much faster it is in terms of a metric that a user would notice (e.g., “number of ms save for time to first byte”).

  2. In addition to “Uninstall Stable IPFS-Companion”, maybe also suggest a user use an alternative duplicated browser profile for a time so that they can easily revert if necessary?

1 Like

I assume the release will be compatible with FireFox even though the beta is not planned to be, yet?

  1. Their testing seems to imply that, we don’t have any metrics to validate this. I believe that comes from not blocking the request and letting browser redirect the request.

  2. That is true, however doesn’t look like I can edit the post any more.

That is correct, the only reason we don’t have a beta distribution for firefox is that we don’t have the marketplace listing setup, along with relevant configs in kubo. Firefox is also not enforcing non-blocking webrequest, so the expectations are that the impact should be minimal.

@whizzzkid : you should have the ability to edit your post now.

Concerning the speedup improvement, I don’t think we should quote something unless we understand it more. I think we would need to understand when the timer is started and stopped for the measurement to project how that actually may impact Companion users.

Anyways, for now maybe say “This non-blocking nature makes the requests faster.” ?

1 Like

:mega: Dogfooding Announcement: IPFS-Companion Manifest v3 Changes

I am excited to share a significant milestone – the completion of IPFS-Companion Manifest v3 changes! :tada: We have a beta that needs volunteers to dogfood this transition.

:clapper: Help Needed - How to Dogfood:

  1. If you’re already a Companion user, disable the IPFS-Companion instance in your browser as it can interfere with the beta version. Make sure you note down the custom settings (if any) in your setup.
  2. Download the beta version of IPFS-Companion v3.0.0.1114 for your Chromium- based browser (Chrome, Brave, Edge).
  3. While dogfooding, keep a keen eye out for any unexpected behavior, bugs, or performance issues.
  4. Swiftly report feedback by creating an issue here, so we can triage the issues promptly.
  5. There is an optional workflow-exercise available here. You can go through the steps there to simulate user behavior.

Why Dogfood Manifest v3?

Dogfooding, which means using our own product, is a powerful way to identify and address potential issues before releasing to our entire user base. We hope this can ensure a seamless transition for our beloved users.

Dogfooding Timeline:

The dogfooding phase will commence starting today, August 1, 2023 and last for approximately two weeks till August 14, 2023. We will then proceed with the official release after gathering and addressing any necessary feedback.

Our Paw-some Team!

We have an amazing team of enthusiastic and talented individuals here, and we know your dedication will play a vital role in making this dogfooding experience a success.

Woof Your Feedback!

Your feedback is truly invaluable to the success of this dogfooding exercise. Please share any observations, thoughts, or suggestions throughout the testing period. Your contributions will directly impact the final release of Manifest v3.

Let’s keep up the outstanding work and lead the way in delivering an exceptional experience for all our users!

Thank you for being part of this and an IPFS-Companion user. :dog2:

Best regards,

@whizzzkid (Nishant Arora)

Maintainer - IPFS-Companion

1 Like