本课程以一个数字艺术品创作与分享 DApp 的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。课程内容即包含 ERC-721 标准的自主实现,也讲解如何基于经过良好安全审计的 OpenZeppelin 合约代码库进行二次开发,实战项目采用 Truffle 开发框架,使用 IPFS 保存通证元数据,同时实现了通证以及去中心化的通证交易所。课程内容深入浅出,是开发者学习以太坊 ERC721 通证应用开发的最佳选择。
这里是学习地址:《ERC721 以太坊通证实战》
简介
在这个课程里,我们将通过深入一个类似于加密猫(CryptoKitties)的 去中心化数字艺术品创作与分享应用的开发过程,学习非同质化通证(NFT:Non-Fungible Token)的基本概念、应用场景与开发实施方案:
和加密猫一样,我们的课程应用中的每个数字资产都是独一无二的,事实上,它们就是使用不同参数生成的形状各异的随机图(Random Graphp),可以认为每个随机图的唯一性赋予它收藏的价值,因此我们可以将其视为一种艺术品。在这个课程中,我们将学习如何生成随机图艺术品并将这一数字资产通证化。
每个人都可以有自己的方法将数字资产通证化,不过以太坊已经有了针对非同质化通证的标准:ERC-721。在课程中,我们将完整地讲解 ERC-721 标准的方方面面,不仅从头实现一个 ERC-721 兼容的通证合约,同时也会讲解如何利用经过安全审计的 OpenZeppelin 合约代码库进行二次开发。
一旦将资产通证化以后,就可以进行交换。在课程中我们还将实现一个简单的通证交易所,每个人都可以在交易所购买其他人的 NFT 通证,也可以挂单出售自己的通证:
项目技术栈
由于这是一个中级课程,因此需要你对区块链 / 以太坊以及下面的技术 有一些基本的了解和认识,这样会更有利于课程以及课程项目的完成:
项目应用的开发主要包含两部分:智能合约的开发以及前端 UI 的开发。
课程项目使用 solidity(版本 0.5)来开发以太坊智能合约,并对涉及到的 solidity 新特性进行说明。前端用户界面的开发则使用标准的前端五件套:HTML、CSS、JavaScript、jQuery、Bootstrap,当然,也需要 使用 web3.js(版本 1)来访问区块链。
为了便于 DApp 项目的开发和管理,课程使用 truffle(版本 2)框架进行开发,truffle2 预置的 solidity 编译器支持 solidity0.5。除了可以继续采用 ganache-cli 作为开发节点以外,truffle 2 还包含了一个嵌入 的以太坊开发节点,这使得开发流程更加顺畅。
truffle 框架提供了许多模板用于项目的快速开发,这些项目模板被称为 box。为了充分利用 ES2015 的新特性来使课程代码更加容易阅读,我们使用 webpack 模板。在 truffle 2 中的 webpack 模板是基于 webpack 4 实现。
最后,课程项目使用去中心化文件系统 IPFS 来保存通证的元信息。
课程内容安排
本课程是一个中级课程,适合具备一定以太坊开发基础的区块链工程师,课程内容安排如下:
第一章、课程简介
介绍课程要完成的项目,以及项目实现所使用的技术栈。
第二章、通证简明指南
学习通证的基本概念、分类、应用场景与生成机制。
第三章、项目需求分析与设计
理解课程项目的总体需求,学习项目应用的设计思路,包括模块划分、界面原型与合约接口设计等。
第四章、生成随机图艺术品
了解随机图的基本概念与常用算法,掌握生成随机图的实现方法。
第五章、使用 IPFS 保存随机图艺术品
学习 IPFS 的基本概念、部署与使用方法,掌握将随机图上传到 IPFS 网络的实现方法。
第六章、理解 ERC721 规范
学习 ERC721 规范中涉及的各种接口,例如 ERC721 接口、ERC165 接口等,掌握各接口的关系与实现方法。
第七章、随机图通证合约实现
学习并掌握如何使用 OpenZepplin 合约开发库实现随机图通证合约。
第八章、应用前端实现
学习如何在前端页面中调用合约方法,实现随机图通证生成页面和浏览页面。
第九章、实现简单的通证交易所
学习交易所的基本概念,实现通证交易所合约,前端页面增加对交易所功能 的支持。
有关兴趣的同学欢迎到这里是学习:《ERC721 以太坊通证实战》