Proposal of Personal Canister Framework on IC: EGO

Summary

EGO allows end users to create their own Personal Computer (EGO) on the IC network. End users will have full control over personal canisters, including running, upgrading code and data in them. This empowers end users by giving them the proactive ability to interact with a wider range of daily use cases than EOA accounts.

Status

Beta version

Notice: Beta features may not always be stable or fully functional, and currently lack documentation. Users should be aware that they may experience issues or bugs while using them.

What you can do to help

   npx create-ego-app cool_dapp
  • propose ideas on EGO, DApps, etc,.

Introduction

For now, end users can only passively use the functionality that DApps provide and interoperability between them is limited. But with EGO, End users will create smart contract wallets on their personal canisters and install diverse DApps and interfaces, which allow them to expand the functionality and potential use cases of their canisters. For example, transferring native BTC and ETH on the IC. This is in contrast to EOA wallets, which only allow users to make transactions with DApps and have limited control over their assets.

On the other hand, canisters are a key component of the IC network, and are designed to be fully functional, upgradeable, scalable, and deterministic units of computation. Canisters are considered the “first-class citizens” of the IC network. In this sense, if end users can have their own canisters, they should have the equivalent rights and capabilities to other programmatic canisters, and the user’s abilities can be expanded by the number and variety of canisters that they are able to control.

By building interfaces and DApps together, both end users and developers can benefit from the resulting collaboration and value creation. This may involve end users providing feedback and ideas for new features, while developers use their technical skills to implement those ideas and build new interfaces and DApps. The goal of this collaboration is to create a more diverse set of functionalities for personal canisters, which can be used by end users to expand the potential use cases of their canisters.

Design

In EGO, there are several different roles that individuals or entities can play:

  1. Developers: These are the individuals or teams responsible for creating and uploading canisters (WASM code) and frontend applications to EGO. After auditing by auditors, applications are permitted release to the store and ready for end users to install. Developers may choose to charge a fee for installing their canisters or offer them for free.

  2. Manager/Auditors: These individuals or groups are responsible for setting roles, auditing wasm code, and overseeing network updates and governance. They play a critical role in ensuring the security and integrity of the EGO platform.

  3. End users: These are the individuals who install and use EGO’s decentralized apps (DApps) through their wallet. Users should create a canister wallet with cycles and have the ability to install and use any canisters that are available on EGO. And users can decide whether to upgrade the DApp versions on their own canisters.

EGO acts as an infrastructure for managing canisters on the platform. It includes several components that work together to facilitate the creation, deployment, and management of canisters. These components include:

  • EGO Core: Such as ego_developer, ego_ledger, ego_tenant, ego_file. This module is responsible for monitoring canisters and managing their lifecycle, including deployment and upgrading.

  • ego_store: This is a repository of canisters that are available for users to install and use.

  • ego_ops: This component is responsible for handling operational tasks, such as monitoring the health of the platform and ensuring that it is running smoothly.

  • API Gateway: This component is responsible for handling API requests and forwarding them to the appropriate canister for processing.

Beta Features

  • Upgrade canisters to the latest version.

  • Back up and restore smart contract data.

  • Link canisters together and have canisters communicate with each other.

  • Interacting with decentralized marketplaces that are owned by the user.

Specifications

Controller Provider

It works with users to install and set up the wallet controllers, and also offers support and maintenance services to ensure that the controllers are functioning properly.

Wallet Controller

It is designed as the controller for holding DApp canisters and responsible for managing DApp canisters.

ego_file

Storing and managing wasm files on the EGO platform.

ego_developer

Offer methods for developers to register, create and release DApps to the EGO platform.

ego_tenant

Responsible for creating the canister, installing and upgrading wasm code, tracking and topping up canister cycles for users.

ego_store

Core hub responsible for communicating with the Wallet Controller and other modules.

ego_ledger

Push pending orders to the ledger, and upon confirmation of receipt of payment by the ledger, notify ego_store.

ego_ops

Responsible for managing canisters within EGO.

Store Lib

ego_types:

Defines basic types of each module, such as userApp, canister, WASM, versions, status.

ego_macros

It is a reusable code block that contains common functionality and can be injected into other applications.

ego_lib:

ego_lib library, which contains classes used for remotely calling methods within EGO.

Create your first Personal Computer on IC now, enjoy!

Whats coming?

AstroX ME is using EGO to create Personal Canister Wallet for users.
Join beta test waitlist: https://astrox.me/#/apply

27 Likes

Interesting idea, although I don’t think I fully understand it.

What does it mean to install a dapp on your EGO?

It means that you can deploy your own DApp Store and let users to install DApp codes from the Store.

2 Likes

This is a great idea, but I don’t know why the users need EGO?
What problem does EGO solve?