Skip to content

Commit

Permalink
Merge branch 'master' of github.com:usherlabs/portal
Browse files Browse the repository at this point in the history
* 'master' of github.com:usherlabs/portal:
  fix: WSL install instructions (dfinity#3870)
  fix: http_request_update  (dfinity#3868)
  fix: Link HTTPS outcalls to the https outcalls overview page (dfinity#3872)
  Update showcase.json (dfinity#3654)
  Remove overview headings (dfinity#3866)
  Add icptokens.net to showcase (dfinity#3751)
  add library to learn menu (dfinity#3867)
  add library page (dfinity#3864)
  Update ICRC ledger setup docs to point to the new GitHub releases (dfinity#3862)
  Update showcase.json
  fix: Cleanup docs (dfinity#3856)
  Dev weekly update December 4 2024 (dfinity#3855)
  lint: add link validation plugin (dfinity#3847)
  update discord link (dfinity#3857)
  update discord link (dfinity#3858)
  optimize images for showcase (dfinity#3853)
  • Loading branch information
rsoury committed Dec 10, 2024
2 parents 0dd2f72 + 1c58026 commit 96f6480
Show file tree
Hide file tree
Showing 565 changed files with 1,103 additions and 2,247 deletions.
6 changes: 3 additions & 3 deletions blog/features/vetkey-primer.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Considering that blockchains are very public places where transparency has been
Note that we care most about the secret ***key derivation*** here, as that is the most sensitive part which we want to protect from one central (potentially untrusted, unauthorized, or compromised) party, and hence the **KD** in VETKD. To deal with the centralization point, we need to move into the distributed setting. Assuming there is no one trusted party, we distribute trust amongst multiple parties, and require that some *threshold* of them collaborate on shares of the master secret key to derive decryption keys.

How do parties **get shares** of the master secret key? This is done by leveraging a distributed key generation (DKG) protocol, where a threshold of honest parties (or nodes) work together to obtain a set of master key shares. Assuming no collusion between nodes, at no point does any one node hold the full private key.
Click around to learn more about [threshold cryptography]( https://en.wikipedia.org/wiki/Threshold_cryptosystem), [DKG](https://en.wikipedia.org/wiki/Distributed_key_generation) and chapter 22 in the [Boneh-Shoup book](http://toc.cryptobook.us/).
Click around to learn more about [threshold cryptography]( https://en.wikipedia.org/wiki/Threshold_cryptosystem), [DKG](https://en.wikipedia.org/wiki/Distributed_key_generation) and chapter 22 in the [Boneh-Shoup book](https://toc.cryptobook.us/).

It’s clear from above that we don't want a centralised key derivation process and this is why we need the **T** for the KD process, but what about **V** and **E**? Perhaps this is best highlighted by a scenario.

Expand Down Expand Up @@ -100,7 +100,7 @@ At a first glance, we could guess that we will need a distributed key generation
Crucially, An observation buried in [BF01] gives us the answer. Moni Naor noted that an IBE scheme can be directly converted into a signature scheme. Considering the key derivation of Boneh-Franklin IBE specifically, the resulting signature scheme happens to be BLS.

### BLS signatures
Digital signatures are used everywhere in cryptography and in the blockchain world to attest to the authenticity of a message, transaction, or other pieces of information. As they are so prevalent, it’s really worth spending time getting to know them. You can get a high level view on wikipedia ([Digital Signatures](https://en.wikipedia.org/wiki/Digital_signature) and [BLS](https://en.wikipedia.org/wiki/BLS_digital_signature)), and dive into the [Boneh-Shoup book](http://toc.cryptobook.us/) when you want more formal details.
Digital signatures are used everywhere in cryptography and in the blockchain world to attest to the authenticity of a message, transaction, or other pieces of information. As they are so prevalent, it’s really worth spending time getting to know them. You can get a high level view on wikipedia ([Digital Signatures](https://en.wikipedia.org/wiki/Digital_signature) and [BLS](https://en.wikipedia.org/wiki/BLS_digital_signature)), and dive into the [Boneh-Shoup book](https://toc.cryptobook.us/) when you want more formal details.

BLS signatures are a particular type of digital signature introduced in by Dan Boneh, Ben Lynn, and Hovav Shacham in 2001.

Expand Down Expand Up @@ -132,7 +132,7 @@ This page contains a high level view and description of VETKD and its building b
It also shows one possible way of building VETKD, there are others, some with fancy features, that are described more in the paper. There are many use cases and motivations for building VETKD, these are discussed in [the video](https://youtu.be/baM6jHnmMq8) and can be written up if you like. There are also extensions that could be built depending on what is needed in the community. Finally, note that this page is hosted onchain.

## References
* [BS23](http://toc.cryptobook.us/) - The Boneh-Shoup Book.
* [BS23](https://toc.cryptobook.us/) - The Boneh-Shoup Book.
* [BF01](https://crypto.stanford.edu/~dabo/papers/bfibe.pdf) - The IBE paper.
* [BLS01](https://www.iacr.org/archive/asiacrypt2001/22480516.pdf) - The BLS paper.
* [DH76](https://ee.stanford.edu/~hellman/publications/24.pdf) - Diffie and Hellman's New Directions paper.
Expand Down
2 changes: 1 addition & 1 deletion blog/news-and-updates/2023-12-06-update.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Hello developers and welcome back to developer weekly! This week, we have some v

On Friday, December 1st, the NNS proposals to enable ckETH on ICP went live. We're excited to announce that all proposals were passed by the NNS, and ckETH is now live on the mainnet!

ckETH has been added to the ICP dashboard, which you can view [here](http://dashboard.internetcomputer.org/ethereum). You can learn how to interact with ckETH by reviewing the ckETH minter documentation [here](https://github.com/dfinity/ic/blob/master/rs/ethereum/cketh/minter/README.adoc).
ckETH has been added to the ICP dashboard, which you can view [here](https://dashboard.internetcomputer.org/ethereum). You can learn how to interact with ckETH by reviewing the ckETH minter documentation [here](https://github.com/dfinity/ic/blob/master/rs/ethereum/cketh/minter/README.adoc).

ckETH support is also live in the ICRC-1 wallet, which includes ckETH has a pre-defined token. The index canister has been integrated, allowing you to mint directly to your principal. The ICRC-1 wallet canister can be found [here](https://e4hv6-7yaaa-aaaao-a2ida-cai.icp0.io/)

Expand Down
2 changes: 1 addition & 1 deletion blog/news-and-updates/2024-08-14-update.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The digital assets section of the developer docs has gotten an overhaul! Before,

- [Token standards](/docs/current/developer-docs/defi/tokens/token-standards)

- [Asset flow](/docs/current/developer-docs/defi/tokens/asset_flow/)
- [Asset flow](/docs/current/developer-docs/defi/overview)

- [Ledger integration options](/docs/current/developer-docs/defi/tokens/advanced/direct_integration)

Expand Down
4 changes: 2 additions & 2 deletions blog/news-and-updates/2024-10-09-update.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Developer office hours are back in the ICP developer Discord server! Every Wedne

Be sure to drop in to the session and ask questions, share your project, or simply listen in on the discussion.

[Join the ICP developer Discord server](https://discord.gg/RMZNkGMp8N).
[Join the ICP developer Discord server](https://discord.internetcomputer.org).

## Community spotlight: KongSwap

Expand All @@ -50,4 +50,4 @@ You can [try KongSwap yourself](https://www.kongswap.io/?viewtab=swap&pool=ICP_c

That'll wrap up this week. Tune back in next week for more developer updates!

-DFINITY
-DFINITY
42 changes: 42 additions & 0 deletions blog/news-and-updates/2024-12-04-update.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Developer weekly update December 4, 2024
description: This week we have a new release of dfx, an important update about the Bitcoin integration, and an update from the community project Juno.
tags: [Devs]
image: /img/blog/dev-update-blog-dec-4.jpg
---

# Developer weekly update December 4, 2024

![December 4 2024](../../static/img/blog/dev-update-blog-dec-4.jpg)

Hello developers, and welcome to this week's developer weekly update! This week we have a new release of `dfx`, an important update about the Bitcoin integration, and an update from the community project Juno. Let's get started!

## dfx v0.24.3

The latest version of `dfx` is now promoted! This latest update includes new features such as:

- PocketIC now supports Bitcoin through the `--enable-bitcoin` and `--bitcoin-node` flags.

- The canisters for the ICP, ckBTC, and ckETH ledger canisters can now be pulled.

- The frontend canister now supports setting canister permissions in the init arguments.

- Output for `dfx start` and `dfx cycles` have been improved.

[Read the full release notes](https://github.com/dfinity/sdk/releases/tag/0.24.3).

## Bitcoin integration updates

The Bitcoin Testnet API is being migrated from Testnet v3 to Testnet v4. To support this work, the ckTestBTC minter has been stopped and the Bitcoin Testnet API has been disabled. Once the migration has finished, these features will be re-enabled.

You can stay up to date on the status via the [forum](https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147/743?u=cryptoschindler).

## Juno v0.0.39

A new version of Juno has been released! This latest version introduces backups to Juno through the new ICP canister snapshot feature. Backups are available through both the Juno API and the Juno CLI tool.

[Learn more in the Juno release notes](https://github.com/junobuild/juno/releases/tag/v0.0.39).

That'll wrap up this week. Tune back in next week for more developer updates!

-DFINITY
2 changes: 1 addition & 1 deletion blog/news-and-updates/team-spotlight-sdk.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Hey devs and welcome to this edition of ICP team spotlight! In this issue, we sa

**The SDK team is pretty involved with the dev community on the forum and Discord server, which I'm sure has lead to features derived as a result of community feedback. What are some of the improvements made as a direct result of developer feedback?**

*Lots! We built the [developer feedback board](http://dx.internetcomputer.org) a while back, and every two weeks, our internal focus group meets to go over the latest items and check-in on the progress we’ve made addressing others. One thing that's come as a result of the feedback received is the `dfx` version manager. Developers expressed that they want a way to switch `dfx` versions easily. We spent some time working out how best to accomplish that, and the `dfx` version manager was born. Another example is the Cycles Ledger - we heard feedback that the Cycles Wallet was a pain to use and developers wanted a better solution. We are continuously looking for ways to improve our tooling, so keep the feedback coming!*
*Lots! We built the [developer feedback board](https://dx.internetcomputer.org) a while back, and every two weeks, our internal focus group meets to go over the latest items and check-in on the progress we’ve made addressing others. One thing that's come as a result of the feedback received is the `dfx` version manager. Developers expressed that they want a way to switch `dfx` versions easily. We spent some time working out how best to accomplish that, and the `dfx` version manager was born. Another example is the Cycles Ledger - we heard feedback that the Cycles Wallet was a pain to use and developers wanted a better solution. We are continuously looking for ways to improve our tooling, so keep the feedback coming!*

**Where should developers look for the latest SDK updates?**

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/ai/ai-on-chain.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import '/src/components/CenterImages/center.scss';

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

## Overview


ICP's unique ability to run compute at scale allows AI and neural networks to run directly onchain within a canister smart contract.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/ai/inference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Intermediate", "Concept", "DeAI" ]} />

## Overview


Inference in the context of decentralized AI refers to using a trained model to draw conclusions about new data.
It's possible for canister smart contracts to run inference in a number of ways depending on the decentralization and performance requirements.
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/ai/machine-learning-sample.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import '/src/components/CenterImages/center.scss';
<MarkdownChipRow labels={["Advanced", "Tutorial", "Rust" ]} />


## Overview


Machine learning is a form of artificial intelligence (AI) that observes statistical algorithms and their data to learn patterns and generalizations. By analyzing these data patterns, machine learning algorithms can execute tasks by predicting the correct result with high accuracy.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/ai/samples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Intermediate", "Concept", "DeAI" ]} />

## Overview


ICP's unique ability to run compute at scale allows AI and neural networks to run directly onchain within a canister smart contract. Canisters can also interact with LLMs stored off-chain through HTTPS outcalls, or stored locally on a user's device.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/ai/training-models.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Intermediate", "Motoko", "Concept"]} />

## Overview


Training AI models on ICP provides developers with a decentralized infrastructure and simplifies the setup process. ICP’s built-in computation and storage capabilities remove the need for external hardware. With GPU support on the roadmap, ICP will soon further enhance its AI capabilities and allow developers to train complex models, including large-scale AI systems.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/access-control.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


To demonstrate access control using a Rust backend canister, you'll explore access control in the context of NFTs. NFTs (non-fungible tokens) are unique tokens with arbitrary
metadata, usually an image of some kind, to form the digital equivalent of trading cards.
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/candid.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


Candid is an **interface description language** with the primary purpose of describing the public interface of a service. A service is usually in the form of a program deployed as a canister. Candid is language-agnostic, meaning that it allows for the inter-operation between services and frontends written in different programming languages, including Rust.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/counter.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


In this guide, you are going to write a dapp that provides a few basic functions to increment a counter value. by calling functions on a deployed canister. By calling the function to increment a value multiple times, you can verify that the variable state, that is, the value of the variable between calls, persists.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/deploying.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

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

## Overview


In this guide, you'll learn the steps required to write, compile, deploy, and interact with a Rust backend canister.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/generating-candid.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


In versions of the Rusk CDK `v0.11.0` and higher, the Candid export workflow has been changed.
You can call the `ic_cdk::export_candid!()` macro to enable the Candid export behavior, then use the [candid-extractor](https://github.com/dfinity/cdk-rs/tree/main/src/candid-extractor) to extract the Candid from the canister's Wasm.
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/intercanister.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


Inter-canister calls can be used to update information between two or more canisters.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/message-inspect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


A canister can inspect an ingress message and either accept or decline the message through the canister's HTTPS interface. If the message is accepted, the canister will execute it.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/optimizing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview

Compiling Rust to Wasm often increases the file size significantly. `dfx` versions `0.14.0` and newer include the `wasm-opt` package that can be used to optimize cycle consumption and binary size.

## Prerequisites
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/project-organization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Beginner", "Rust" ]} />

## Overview


When a new Rust project is created with the command:

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

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

## Overview


Applications for ICP start as **projects**. You can create new projects for ICP using the IC SDK. This guide focuses on how to create, build, and deploy a Rust program by using the `dfx` parent command and its subcommands.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/rust-considerations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Beginner", "Rust" ]} />

## Overview


This guide describes information that developers should consider when writing Rust canisters, specifically regarding canister observability and global state.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/rust-limitations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


WebAssembly (Wasm) is a binary code format and does not provide network access, a filesystem, or other functionalities other than pure computation. Anything function that needs to communicate outside of the Wasm module must use an IC API. This guide details limitations imposed by Wasm on canisters written in Rust.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/searching-records.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

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

## Overview

In this guide, you are going to write a dapp that provides a few basic functions to add and retrieve simple profile records that consist of a name, description, and an array of keywords.

This program supports the following functions:
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/stable-structures.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


Stable structures are designed to use stable memory as the backing store, allowing them to grow to gigabytes in size without the need for `pre_upgrade`/`post_upgrade` hooks.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/timers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { GlossaryTooltip } from "/src/components/Tooltip/GlossaryTooltip";

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

## Overview

This guide demonstrates how to create a small dapp with a periodic task. The task is triggered automatically by the ICP network with a specified interval.

## Prerequisites
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/backend/rust/upgrading.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

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

## Overview


Unlike a canister reinstall that preserves the canister identifier but no state, a canister upgrade enables you to preserve the state of a deployed canister and change the code.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-docs/cost-estimations-and-examples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow";

<MarkdownChipRow labels={["Beginner", "Concept"]} />

## Overview


To get a rough estimate of how much your project may cost, below is a pricing calculator that can be used to estimate the cost of a dapp deployed on ICP. Costs are charged to a canister in cycles, which are fixed against the price of [XDR](/docs/current/references/glossary#xdr), where **1 trillion cycles equals 1 XDR**.
Cycles costs are calculated based on:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import '/src/components/CenterImages/center.scss';

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

## Overview

A know neuron has a name and optionally a short description.
A known neuron can be registered in the NNS governance via a proposal, officially storing its name and description
within the NNS. This information can be used by other neurons to find known neurons and [follow](/docs/current/developer-docs/daos/nns/concepts/neurons/neuron-following) them.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import '/src/components/CenterImages/center.scss';

<MarkdownChipRow labels={["Beginner", "Governance", "Concept"]} />

## Overview

Users may not have the time or knowledge to participate in all voting decisions.
Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions.
This concept, where a neuron follows the decisions of some other neurons, is called **following** in the NNS DAO.
Expand Down
Loading

0 comments on commit 96f6480

Please sign in to comment.