diff --git a/.forestry/front_matter/templates/blog-post.yml b/.forestry/front_matter/templates/blog-post.yml index 09b25daf..a8804e89 100644 --- a/.forestry/front_matter/templates/blog-post.yml +++ b/.forestry/front_matter/templates/blog-post.yml @@ -154,6 +154,7 @@ pages: - src/_blog/2021-05-31-distributed-wikipedia-mirror-update.md - src/_blog/2022-12-07-testground-in-2022.md - src/_blog/2023-01-10-announcing-pin-tweet-to-ipfs.md +- src/_blog/2023-01-26-announcing-durin.md - src/_blog/3s-studio-bringing-unreal-engine-to-ipfs.md - src/_blog/a-brave-new-wallet-the-future-of-the-browser-wallet.md - src/_blog/a-guide-to-ipfs-connectivity-in-web-browsers.md diff --git a/src/_blog/2023-01-26-announcing-durin.md b/src/_blog/2023-01-26-announcing-durin.md new file mode 100644 index 00000000..a341fdc5 --- /dev/null +++ b/src/_blog/2023-01-26-announcing-durin.md @@ -0,0 +1,67 @@ +--- +tags: +- Durin +title: "Announcing Durin" +description: "Durin is a native mobile application for iOS and Android that lets you read and share content on the IPFS network" +date: 2023-01-26 +permalink: "/announcing-durin/" +translationKey: '' +header_image: /announcing-durin-ipfs/header.png +author: David Justice +--- + +Today we are excited to announce a new way to read and share with IPFS on your mobile device - Durin, a native mobile application for iOS and Android. + +## Background + +To date, it's been difficult to access, upload and share IPFS content using a mobile device. This is for a number of reasons, one of which is that [Kubo](https://github.com/ipfs/kubo), the initial implementation of the protocol was simply not built with mobile in mind. We wanted to provide a quick and easy way for users to access basic IPFS features on mobile and set up a testing ground for future explorations. + +## Accessing IPFS Content + +The transport-agnostic nature of IPFS content addresses means there are many ways to find and retrieve content on the IPFS public network. On a mobile device, the best balance of decentralization and device performance is to align with the network model of the device OS - transient connectivity. + +We do this in Durin by connecting to multiple HTTP gateways to the IPFS network. On app launch, Durin pings a list of public gateways, and determines which route is the most reliable and fastest way to access the network. This approach is functional but not optimal. We're working on specifications for multi-gateway connectivity patterns which balance a number of factors - such as verifiability guarantees, reader privacy, and not overloading gateways. + +![Gateway list](../assets/announcing-durin-ipfs/gateway-durin.png) + +IPFS addresses are not natively supported in most web browsers or any mobile operating systems today. Durin registers as an `ipfs` scheme handler so that addresses are handled when encountered in applications and on the web. + +For example, when browsing on iOS Safari ([sorry Chrome users](https://bugs.chromium.org/p/chromium/issues/detail?id=178097&q=protocol%20handler%20mobile&can=2)) `ipfs://` protocol links will be redirected to Durin, where the app will translate and redirect the user to the fastest public gateway, making the content available on mobile. + +![redirect functionality on mobile safari](../assets/announcing-durin-ipfs/durin-redirect.gif) + +## Sharing to IPFS from Mobile + +Mobile devices are transiently connected and low-powered, so they do not make good servers. For sharing files and data to IPFS, Durin uses a [pinning service](https://docs.ipfs.tech/concepts/persistence/#persistence-permanence-and-pinning) to do this on behalf of the user. + +We currently rely on [web3.storage](https://web3.storage/) for file uploads. `web3.storage` is a service that makes decentralized file storage accessible by hosting data on IPFS for the user, the way a web host does for HTTP today. + +Durin also saves a local history of uploads already shared. + +![uploaded files list](../assets/announcing-durin-ipfs/filelist-durin.png) + +:warning: (screenshot) TODO :warning: + +Using a single remote service is a usable first step, but doesn't provide long term user control of the data published. We're looking at tighter integration with local OS data storage, local sharing between devices when possible, and pluggable remote service support. + +## Install Durin + +Durin is available now for mobile phones in the iOS app store and Google Play store. + +
+ + Get Durin in App Store + + + Get Durin in Google Play Store + + +## The Future + +Durin is an experiment in learning how to expose and integrate IPFS features into mobile operating systems in ways which align optimally with those environments. We'd love to hear your ideas and feedback, and have you participate! + +* [ipfs-shipyard/durin on Github](https://github.com/ipfs-shipyard/durin) +* [HackMd project document](https://hackmd.io/XtxGZoxqQ46X1GO7srrhMQ) +* [Feedback link](https://github.com/ipfs-shipyard/durin/issues) + +Join the #browsers-and-platforms channel which is bridged across the [Filecoin Slack](https://filecoin.io/slack/), [IPFS Discord](https://discord.gg/vZTcrFePpt) and [Element/Matrix](https://matrix.to/#/#browsers-and-standards:ipfs.io). \ No newline at end of file diff --git a/src/assets/announcing-durin-ipfs/durin-redirect.gif b/src/assets/announcing-durin-ipfs/durin-redirect.gif new file mode 100644 index 00000000..716449e5 Binary files /dev/null and b/src/assets/announcing-durin-ipfs/durin-redirect.gif differ diff --git a/src/assets/announcing-durin-ipfs/filelist-durin.png b/src/assets/announcing-durin-ipfs/filelist-durin.png new file mode 100644 index 00000000..e11301ab Binary files /dev/null and b/src/assets/announcing-durin-ipfs/filelist-durin.png differ diff --git a/src/assets/announcing-durin-ipfs/gateway-durin.png b/src/assets/announcing-durin-ipfs/gateway-durin.png new file mode 100644 index 00000000..07a53389 Binary files /dev/null and b/src/assets/announcing-durin-ipfs/gateway-durin.png differ diff --git a/src/assets/announcing-durin-ipfs/header.png b/src/assets/announcing-durin-ipfs/header.png new file mode 100644 index 00000000..abf7f588 Binary files /dev/null and b/src/assets/announcing-durin-ipfs/header.png differ