示例代码

看看下面的一些示例 dapp,看看在 IC 上构建的可能性。 所有示例和其他项目都可以在 Samples repo 中找到。 其他资源可以在 Awesome Dfinity repo(我们社区的一组精选开源项目和示例)或链接中找到:./hackathon-projects.html 【黑客马拉松项目】!

hello world 的 dapp 等价物,具有单独的后端和前端容器服务于网页。
MotokoRust • https:// 6lqbm-ryaaa-aaaai-qibsa-cai.ic0.app/[查看运行] • 技术文档

静态网站

本教程展示了如何快速设置静态网站结构、添加内容和基本样式以及部署到 IC。
技术文档视频指南

基本 DEX

要在 IC 上启用 DEFI 应用程序,容器需要与令牌容器和分类帐容器交互。 此示例 dapp 通过展示如何使交易所能够托管资金、在用户交易时更新内部余额簿以及在提取资金时将托管权交还给用户来说明这些交互。
MotokoRust • https:// gzz56-daaaa-aaaal-qai2a-cai.ic0.app/[查看运行] • 技术文档

NFT 铸造

这个 NFT 铸造 dapp 展示了创建用户生成的 NFT 并分享它是多么容易。 该 dapp 使用 DIP721 NFT 标准。
Rust技术文档

基本 DAO

去中心化治理是 IC 的亮点,并通过基本的 DAO 示例代码进行了说明。 它说明了如何初始化一组账户和相应的代币,账户所有者如何汇总提案以供其他账户所有者投票,以及如何在获得足够多的赞成票的情况下执行提案。
MotokoRust • link:dao{ outfilesuffix}[技术文档]

加密笔记

使用 Internet Identity 服务和端到端加密从多个设备创建/访问/修改机密笔记。示例代码依赖于 IC 的 web-servingstorage 功能,并突出了两个关键功能:(1) 客户端、端到端加密和 (2) 多用户和多设备支持。
MotokoRust参见运行技术文档

代币转移

此示例代码演示了 dapp 如何将代币转移给其最活跃的用户。
MotokoRust技术文档

在 Motoko 中探索更多示例

这是使用 Motoko 编写的其他代码示例的 repo 链接集合。 大多数也可以在 Motoko playground 中找到。 Playground 为试用纯 Motoko 示例提供了最简单的环境,无需下载和学习使用 SDK,但不支持带前端的 dapp。

基本

这是基本入门 Motoko 示例的集合,展示了 IC 和 Motoko 语言的基本概念。

  • Actor_reference 将 IC 管理容器显示为actor(参考)。

  • Counter 展示了一个基本的(稳定的)变量演示。

  • Echo 给出了一个基本的查询功能演示。

  • Factorial 展示了一个基本的阶乘演示。

  • Hello_cycles 说明了如何接收和传输周期以及检查余额。

  • Whoami 是一个简单的容器,用于报告调用者的 Principal。

中级

中间示例演示了如何在常见用例中使用一些基本概念。 这些示例展示了如何在 Motoko 中构建简单的后端功能。

  • Classes 显示了一个动态参与者(类)实例化。

  • Pub-sub 显示多个容器,以及发布者-订阅者容器间调用。

  • Quicksort 展示了如何在 Motoko 中通过快速排序对数组进行排序。

  • Simple-to-do 是一个类似 CRUD 的演示服务,没有前端; 另见:电话簿和超级英雄。

  • Calc 是计数器演示的更高级版本。

最小的前端

这两个示例展示了如何在 JavaScript 中创建简单的前端。 在之前的示例没有提供前端的情况下,这两个示例同时提供了前端和后端。

  • Random_maze 是一个随机迷宫生成,具有基于 IC 的随机性。

  • Cert_var 显示了一个简单的认证变量(单个 32 位数字),带有客户端证书验证。

全栈

这些示例演示了如何使用基于 React 和 TypeScript 的前端在 IC 上构建 dapp。

  • Life 演示了 Conway 的 Game of Life,运行在 Motoko 容器。 演示三个版本之间的升级和使用稳定变量的状态迁移。

  • Phone-book 是一个类似 CRUD 的演示服务。

  • Superheroes 是一个简单的 CRUD dapp。

  • Auth Client Demo 是一个简单的互联网身份认证。

  • IC-Avatar 是一个全栈 Motoko + React,具有更高级的身份验证、图像上传和乐观更新。

高级

由社区提供的大型样本,不一定是最新的:

构建 Dapps 的视频指南

这些来自 社区对话 系列的视频介绍了如何在 Rust 中构建 dapp,以及在 Rust 中构建 dapp 的最佳实践。

其他有用的视频系列可以在 使用 Kyle 编码 找到。