28

ERC721以太坊通证实战

 5 years ago
source link: http://blog.hubwiz.com/2019/02/22/ethereum-token-erc721/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。课程内容即包含ERC-721标准的自主实现,也讲解如何基于经过良好安全审计的OpenZeppelin合约代码库进行二次开发,实战项目采用Truffle开发框架,使用IPFS保存通证元数据,同时实现了通证以及去中心化的通证交易所。课程内容深入浅出,是开发者学习以太坊ERC721通证应用开发的最佳选择。

这里是学习地址: 《ERC721以太坊通证实战》

简介

在这个课程里,我们将通过深入一个类似于加密猫(CryptoKitties)的 去中心化数字艺术品创作与分享应用的开发过程,学习非同质化通证(NFT:Non-Fungible Token)的基本概念、应用场景与开发实施方案:

vEbU3m6.png!web

和加密猫一样,我们的课程应用中的每个数字资产都是独一无二的,事实上, 它们就是使用不同参数生成的形状各异的随机图(Random Graphp),可以认为每个随机图的唯一性赋予它收藏的价值,因此我们可以将其视为一种艺术品。在这个课程中,我们将学习如何生成随机图艺术品并将这一数字资产通证化。

每个人都可以有自己的方法将数字资产通证化,不过以太坊已经有了针对非同质化通证的标准:ERC-721。在课程中,我们将完整地讲解ERC-721标准的方方面面,不仅从头实现一个ERC-721兼容的通证合约,同时也会讲解如何利用经过安全审计的OpenZeppelin合约代码库进行二次开发。

一旦将资产通证化以后,就可以进行交换。在课程中我们还将实现一个简单的通证交易所,每个人都可以在交易所购买其他人的NFT通证,也可以挂单出售自己的通证:

VV7J7b7.png!web

项目技术栈

由于这是一个中级课程,因此需要你对区块链/以太坊以及下面的技术 有一些基本的了解和认识,这样会更有利于课程以及课程项目的完成:

J77zUfQ.png!web

项目应用的开发主要包含两部分:智能合约的开发以及前端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合约开发库实现随机图通证合约。

第八章、应用前端实现

学习如何在前端页面中调用合约方法,实现随机图通证生成页面和浏览页面。

第九章、实现简单的通证交易所

学习交易所的基本概念,实现通证交易所合约,前端页面增加对交易所功能 的支持。

======================================================================

分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • tendermint区块链开发详解 ,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK