Backend Upgrade Proposal to v0.2.2
Overview
This proposal upgrades the KinicDB backend to v0.2.2. The release introduces a new feature that enables cycle top-ups from the launcher canister to the memory canister. Users can top up cycles to their own memory canister if they subscribe to our monthly cycle top-up plan.
To authenticate a user principal from our Web2 subscription server, we use vetKeys (VETKD) to exchange an access token between the Chrome extension and our server. We chose this approach because verifying a principal’s signature on the Web2 side is not currently supported by official tools.
Authenticating the User Principal on the Web2 Server
Our protocol largely follows the approach described in Identity-based encryption (IBE).
- The user requests an access token.
- The Web2 server mints an access token for a specific principal.
- The Web2 server derives a user-specific public key.
- The Web2 server encrypts the access token with that public key.
- The user receives the encrypted access token and decrypts it using their derived private key.
- If the user does not yet have the derived private key, they can fetch it from our backend canister.
- The user calls the Web2 server APIs using the decrypted access token.
- The Web2 server validates the token and confirms it was correctly decrypted.
Changes
- Add
mint_cycles(update call). - Add
top_up_cycles(update call). - Add
get_remaining_cycles(query call). - Add
vetkd_derive_key(update call). - Add
vetkd_public_key(update call).
Proposal to Upgrade an SNS Controlled Canister
Target canister: xfug4-5qaaa-aaaak-afowa-cai
Wasm info
Embedded module with 1357460 bytes and SHA256 6c3e6a969f8ee821177efcb43525a6426f7e481d42786be74e3535fac0dd4834.
Mode: Upgrade
Argument info
Upgrade argument with 16 bytes and SHA256 4449444c016b01c88ddcea0b7f010000.