Package Manager for ICP

The package manager for ICP like software centers in desktop OSes or phones

  • 6,000 Raised
  • 376 Views
  • 3 Judges

Gallery

Description

Package manager for ICP

A user-facing and API-controlled software for installing packages (consisting of several WASM files) into a user's subnet.

We expect the same success as of Linux, because we effectively start to provide an OS for fully onchain apps.

Advantages:

  • User's sovereignity over his/her software (it can't be updated without user's consent).
  • Greater speed (user's apps are on the same subnet).
  • Easily manage software, just as in Linux or Android.
  • User can choose which package (e.g. a email client) provides a given function (e.g. email reading).
  • User can give apps permissions, just like as in Android.
  • Better apps interoperability as specified by the user becomes possible.

We support multiple repos (it is like as if you were able to install both RedHat and Ubuntu packages), multiple installations of a software package (of the same or different versions).

I plan ahead using CanDB to have nearly no limit of repository size without loss of performance.

We can grow as big as Linux!

We have mostly written specs and partly written software. There is yet much work ahead, but the foundation of a well-planned API has been laid.

We considered to blackhole the package manager canister to protect third persons from a user installing a fake package manager and using it to install malicious software in place of legitimate software packages. But it has been decided that this vulnerability is too subtle (do third-party users need protection against fake soft in the user's subnet?) to be dealt with at this stage. It is however considered to blackhole the package manager canister in some future, to protect third-party users.

For more information about our API see this file (in LibreOffice format). It may be outdated compared to the actual source.

It supports repair (finishing installation or removal, per user choice) of partially installed packages.

Packages dependencies inference is planned to be done in the frontend rather than in the backend. Consider analogy: backend is dpkg, frontend is apt.

That my software works can be demonstrated by an automated test (see the README.md file). To be sure that you use a working version switch to stable Git branch. The presentation in the .pdf file is newer than in the video.

See screenshots a.png and b.png for a mockup of the interface (can also be launched with npm start command).

Presented by Victor Porton, the mathematician who discovered ordered semigroup actions, what makes him one of the best mathematicians in History.

Attachments