A collection of hacks and workarounds for Juno and its outer ecosystem.
This hack aims to transform an existing canister on the IC mainnet into a Juno satellite that can be administered by a developer and their mission control.
- Collect following principals on Juno's console:
a. Your mission control ID available in https://console.juno.build/mission-control/
b. Your developer ID in https://console.juno.build/settings
-
Collect your terminal Juno CLI controller ID running
juno whoami
. -
Ensure that your local dfx principal currently in use is a controller of your existing canister.
Following command must succeed:
dfx canister status <your-canister-id> --network ic
- Add your two Juno's principals to the list of controllers of your existing canister.
dfx canister update-settings <your-canister-id> --add-controller <mission-control-id> --network ic
dfx canister update-settings <your-canister-id> --add-controller <developer-id> --network ic
dfx canister update-settings <your-canister-id> --add-controller <cli-id> --network ic
-
Edit [canister-to-satellite.sh] to set your Juno's principals and targeted canister ID.
-
Run the script [canister-to-satellite.sh] to transform the canister into a Satellite.
- At this point you might want to deploy your dapp to your new Satellite.
- In your dapp project, manually edit the
satelliteId
injuno.json
. - Build your dapp if required.
- Deploy running
juno deploy
.
- Finally, we need to attach your new satellite to your mission control. That way, it shall appear in Juno's console.
npm ci
npm run attach-satellite -- --mission_control_id=<mission-control-id> --satellite_id=<your-canister-id> --name=<a-name-for-your-satellite>