A better upload experience, new gateway features, and more
Crazy that we're already three months into 2022! In Q1, the NFT.Storage team brought you delegated uploads using UCANs, a faster HTTP IPFS gateway for NFTs, easy uploads with NFTUp, and more. We also crossed 50M uploads as a service! But the momentum doesn't stop there - continue reading to learn about what's in store for Q2.
We are currently building Uploads V2, an improved backend for this process, along with improved session handling, which will allow faster, more reliable uploads of more and larger files from even more constrained clients like web browsers and mobile apps.
Throughout Q1, we laid the groundwork for an improved Uploads V2 flow, including work on a new, cloud-native implementation of IPFS called IPFS Elastic Provider (which natively "speaks" CAR file rather than in terms of pins), improvements to
js-unixfs to enable CAR file generation that isn't memory-constrained, and UCANs. We're excited to announce that in Q2, we are stitching together all these parts and replacing the current uploads flow - keeping it trustless but making it much more robust and reliable from the user's standpoint.
The rollout of these components will be piecemeal -- Elastic Provider will start to take over some of our existing cluster workloads, while we upgrade tools like NFTUp, the CLI, and our website to the latest client after the full upload session infrastructure is in place.
Uploads V2 clients will use UCAN to establish sessions grouping CARs. The UCAN service will eventually become pivotal to web3 workloads like mutability and access control. Much of the infrastructure groundwork being laid by the Uploads V2 team will be used in future features.
What does this mean in practice? More resilient uploads, even for larger files, that don't have to worry about the client-side envirnoment, no more opaque statuses being reported (like what does "Pinning" mean?), and more! More broadly, we think that Uploads v2 sets the foundations for all sorts of cool new, web3 native data flows while being highly usable and performant ("Web2.5" if you will).
Though native adoption of IPFS is increasing as more browsers like Brave and Opera as well as other tools embed IPFS nodes, the most common way for users to access data from the IPFS network today is via HTTP IPFS gateways. These gateways take HTTP requests containing the CID of data and grab that data from the IPFS network. The major gateways are peered with services like NFT.Storage to cut down on retrieval time (e.g., save time from searching the DHT).
However, many of these gateways are run as public services (like the
ipfs.io gateway), and as a result, might not always provide the performance that production applications are looking for. We built the NFT.Storage Gateway (i.e.,
nftstorage.link) to better optimize the retrieval experience for content stored on NFT.Storage. It's already made a big difference, with over 30M requests this last week and over 85% of these requests hitting the gateway's cache.
Like other gateways, we run the NFT.Storage gateway as a public service. However, as the NFT.Storage Gateway's usage continues to grow, we are looking to offer users premium features that can differentiate their NFTs or platforms with superior retrieval. For instance, we are implementing the ability for users to perma-cache content so they can guarantee that anyone can retrieve this content quickly. Anyone from a marketplace, looking to provide fast retrieval for all NFTs on certain chains, to individual artists who want their NFTs to always be performantly available might find this appealing. Another example is the ability to request resized images for use cases like NFT marketplace thumbnails.
These are features that many users have requested, and we're excited to launch this quarter! The cost for these premium features will be very reasonable since they lean into the advantages of IPFS: because everything is CID-based, costs scale super well from our end (e.g., we only have to pay to cache one copy of a given CID), which should provide a mutually beneficial relationship for both us and our users.
There are many other things on the horizon - NFTUp documentation and productization, mutability support in NFT.Storage, improved compatibility testing for incorporating NFT.Storage libraries into different frameworks, Niftysave (our effort to scrape all the chains to save all the off-chain NFT data) expanding beyond Ethereum, and more. We can't wait to continue sharing our progress with you all! As always, if you have any feedback for us, please hop into our channel on IPFS Discord or leave an issue on Github.