Skip to content

Commit

Permalink
Merge pull request #3397 from dfinity/misc-fixes
Browse files Browse the repository at this point in the history
fix: Misc minor fixes/revisions
  • Loading branch information
jessiemongeon1 authored Aug 27, 2024
2 parents 7e6e4d0 + 7bcece0 commit e840587
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This quickstart guide will walkthrough how to deploy a simple Next.js app using

## Prerequisites

- Download and install [Node.js](https://nodejs.org/en/download).
- [x] Download and install [Node.js](https://nodejs.org/en/download).

## Creating a satellite

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,39 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

## Overview

Once a <GlossaryTooltip>canister</GlossaryTooltip> is deployed to the Internet Computer, the compute and storage it utilizes must be pre-paid. The process of burning ICP to obtain cycles and transferring them to a canister is referred to as "topping-up" a canister.
Once a <GlossaryTooltip>canister</GlossaryTooltip> is deployed to the Internet Computer, the compute and storage it utilizes must be pre-paid. The process of burning ICP to obtain cycles and transferring them to a canister is referred to as "topping up" a canister.

Cycles management services provide canister monitoring and automated cycles top-ups to ensure canister applications remain up and running and do not run out of cycles.
Cycles management services provide canister monitoring and automated cycles top ups to ensure canister applications remain up and running and do not run out of cycles.

Instead of manually topping up a canister via `dfx` or scripting a custom solution, cycles management services provide tested top-up automation and canister metric insights.
Instead of manually topping up a canister via `dfx` or scripting a custom solution, cycles management services provide tested top up automation and canister metric insights.

## Popular cycles management services
Popular cycles management services include:

* [CycleOps](https://cycleops.dev) - On-chain, proactive, no-code canister monitoring with historical trend graphs, top-up email notifications & downloadable transaction history.
* [TipJar](https://k25co-pqaaa-aaaab-aaakq-cai.ic0.app/) - Donate cycles to your favorite canisters on the Internet Computer and keep them alive and healthy!
* [Canistergeek](https://cusyh-iyaaa-aaaah-qcpba-cai.raw.icp0.io/) Top up your canisters, monitor cycles, memory, and logs, and get your monthly reports in one place.
* [CycleOps](https://cycleops.dev): On-chain, proactive, no-code canister monitoring with historical trend graphs, top up email notifications & downloadable transaction history.
* [TipJar](https://k25co-pqaaa-aaaab-aaakq-cai.ic0.app/): Donate cycles to your favorite canisters on the Internet Computer and keep them alive and healthy!
* [Canistergeek](https://cusyh-iyaaa-aaaah-qcpba-cai.raw.icp0.io/): Top up your canisters, monitor cycles, memory, and logs, and get your monthly reports in one place.

## Cycles management libraries

### Motoko

* [cycles-manager](https://github.com/CycleOperators/cycles-manager) - Provides a simplified, permissioned cycles management framework for multi-canister applications (sponsored by CycleOps).
* [canistergeek-ic-motoko](https://github.com/usergeek/canistergeek-ic-motoko) – Canistergeek-IC-Motoko is an open-source tool for Internet Computer to track your project canisters cycles and memory status and collect log messages.
* [canistergeek_ic_rust](https://github.com/usergeek/canistergeek_ic_rust) – canistergeek_ic_rust is an open-source tool for Internet Computer to track your project canisters cycles and memory status and collect log messages.
* [cycles-manager](https://github.com/CycleOperators/cycles-manager): Provides a simplified, permissioned cycles management framework for multi-canister applications (sponsored by CycleOps).
* [canistergeek-ic-motoko](https://github.com/usergeek/canistergeek-ic-motoko): An open source Motoko tool for Internet Computer to track your project canisters cycles and memory status and collect log messages.
* [canistergeek_ic_rust](https://github.com/usergeek/canistergeek_ic_rust): An open source Rust tool for Internet Computer to track your project canisters cycles and memory status and collect log messages.

## Creating custom autonomous top-up solutions
## Creating custom autonomous top up solutions

To create an autonomous canister that doesn't rely on a third-party service, you can create your own autonomous canister top-up solution. One option is to use a similar architecture implemented by [CycleOps](https://github.com/CycleOperators/cycles-manager/tree/main), where one canister acts as the cycles manager for the project and provides the API used to request more cycles when a canister within the project has its cycles balance dip below a preset threshold. Below is sample code for this architecture, where 'CyclesManager' is the management canister and 'Child' is another canister in the project that requests cycles from the 'CyclesManager'.
To create an autonomous canister that doesn't rely on a third-party service, you can create your own autonomous canister top up solution. One option is to use a similar architecture implemented by [CycleOps](https://github.com/CycleOperators/cycles-manager/tree/main), where one canister acts as the cycles manager for the project and provides the API used to request more cycles when a canister within the project has its cycles balance dip below a preset threshold. Below is sample code for this architecture, where 'CyclesManager' is the management canister and 'Child' is another canister in the project that requests cycles from the 'CyclesManager'.

:::caution

You will still need to top up the CyclesManager canister manually.

:::

Here is example code for the 'CyclesManager' canister:

```motoko title="CyclesManager.mo"
// Import packages
import { logand } "mo:base/Bool";
Expand Down Expand Up @@ -118,6 +120,8 @@ actor CyclesManager {
}
```

Here is example code for the 'Child' canister:

```motoko Child.mo
// Import the Mops package CyclesManager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Advanced", "Tutorial"]} />

<iframe width="560" height="315" src="https://www.youtube.com/embed/iDxTRDzHDoQ?si=_Nyz568zwZC2jkoE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## Overview

When blockchain networks need to be upgraded, traditionally they use a method known as a 'hard fork', which involves substantial work and manual coordination. In comparison, the Internet Computer upgrades itself weekly, which can be seen on the [ICP dashboard](https://dashboard.internetcomputer.org/releases).
Expand Down
2 changes: 1 addition & 1 deletion docs/tutorials/hackathon-prep-course/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";



- [1: What is the Internet Computer?](/docs/current/tutorials/hackathon-prep-course/what-is-icp).
- [1: What is the Internet Computer?](/docs/current/tutorials/hackathon-prep-course/what-is-icp)

- [2: Deploying your first fullstack dapp](/docs/current/tutorials/hackathon-prep-course/deploying-first-fullstack-dapp).

Expand Down

0 comments on commit e840587

Please sign in to comment.