8000 GitHub - vporton/icp-package-manager: Package manager for ICP blockchain
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

vporton/icp-package-manager

Repository files navigation

ICP Package Manager

This is a preliminary release.

ICP Package Manager is an analogue of Linux package managers, but for ICP. It allows to install the code of provided packages (in the future they will be provided by DAOs akin Linux distros) into a user's "own" subnet, giving the user sovereignity over his software and greater execution speed thanks to interoperating software installed in the same subnet.

For more information on this project see here and here.

See TODO.md about yet unimplemented features.

Read here about this codebase.

Howto guides to running it

I strongly recommend to use patched DFX for compiling this faster.

If you didn't run it yet, run dfx extension install nns.

make deploy-work for deploying the UI.

make deploy-test && npm test for automatic tests.

To build a particular canister and its dependencies, issue make build@CANISTER; to deploy a canister and its dependencies, make deploy@CANISTER; to deploy without dependencies, make deploy-self@CANISTER. To generate interface, make generate@CANISTER.

To get started, you might want to explore the project directory structure and the default configuration file. Working with this project in your development environment will not affect any production deployment or identity tokens.

To learn more before you start working with ICP Package Manager, see the following documentation available online:

If you want to start working on your project right away, you might want to try the following commands:

cd icp-package-manager/
dfx help
dfx canister --help

Note on frontend environment variables

If you are hosting frontend code somewhere without using DFX, you may need to make one of the following adjustments to ensure your project does not fetch the root key in production:

  • setDFX_NETWORK to ic if you are using Webpack
  • use your own preferred method to replace process.env.DFX_NETWORK in the autogenerated declarations
    • Setting canisters -> {asset_canister_id} -> declarations -> env_override to a string in dfx.json will replace process.env.DFX_NETWORK with the string in the autogenerated declarations
  • Write your own createActor constructor
0