Skip to content

Using ATProto for AppImage distribution #59

@MadSpindel

Description

@MadSpindel

I was looking into AppImage and really liked the concept of it. The issue I see is how to make it more user-friendly, especially around the discoverability and distribution of AppImages. I found AppImageHub.com but it’s not clear who is behind it or if the apps are even safe to download. For what it’s worth, all of the applications could be malware from the way I see it.

So I started to look into solutions for a trusted and decentralized way of distributing AppImages. First, I found a proposal of using Ethereum smart contracts and storing the applications on IPFS, but I have no experience with either of them so continued the search. Somehow I started to think about Bluesky and its goal of a decentralized (yet centralized?) Twitter. I started to read about the ATProto protocol that’s behind Bluesky and it started to click to me. Bluesky, or rather ATProto, could be used to distribute and discover AppImages!

The way ATProto works (how I understand it) is that each participant has a Decentralized Identifier (DID) and can publish whatever to their Personal Data Server (could be Bluesky or self-hosted) and then Bluesky (or other relays) could index the data and publish updates to what’s called a “Firehose” which is like a big bus/websocket of all events that apps can subscribe to.

I’ve not made any proof of concept yet, but I think the following will work. We need to define a schema (ATProto Lexicon) for an AppImage (and that’s what I would like to discuss here). Then, as an example, @steampowered.com could publish Steam as an AppImage on their Bluesky profile. AppImage package managers and app stores can listen for new appimage releases from the Bluesky websocket and update their feeds accordingly.

I’m thinking about creating a feed and package manager with only official DIDs (as in official DNS domain handles like steampowered.com etc.) but other package managers/stores might want to include everything to create uncensored feeds of AppImages. It will be competition and innovation on who can create the best feeds of AppImages, I hope.

We can also create schemas for CVEs, user comments and ratings etc, which will also be decentralized with ATProto. You can imagine using something like appimaged to listen for new AppImage releases and autoupdate in realtime, or blocking AppImage from running based on security research. Perhaps even curated firejail security profiles etc. Endless possibilities.

This is already too long but I would like to have some opinions/feedback about this. Something I also would like to discuss is if we can add DID or something to the AppImage specification to make it possible to perform a reverse lookup on a standalone file (to find the creator, CVEs, labeled as malware etc.).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions