ERC721以太坊通證(token)實(shí)戰(zhàn)教程

本課程以一個(gè)數(shù)字藝術(shù)品創(chuàng)作與分享DApp的實(shí)戰(zhàn)開發(fā)為主線,深入講解以太坊非同質(zhì)化通證的概念、標(biāo)準(zhǔn)與開發(fā)方案。課程內(nèi)容即包含ERC-721標(biāo)準(zhǔn)的自主實(shí)現(xiàn),也講解如何基于經(jīng)過(guò)良好安全審計(jì)的OpenZeppelin合約代碼庫(kù)進(jìn)行二次開發(fā),實(shí)戰(zhàn)項(xiàng)目采用Truffle開發(fā)框架,使用IPFS保存通證元數(shù)據(jù),同時(shí)實(shí)現(xiàn)了通證以及去中心化的通證交易所。課程內(nèi)容深入淺出,是開發(fā)者學(xué)習(xí)以太坊ERC721通證應(yīng)用開發(fā)的最佳選擇。

這里是學(xué)習(xí)地址:《ERC721以太坊通證實(shí)戰(zhàn)》

簡(jiǎn)介

在這個(gè)課程里,我們將通過(guò)深入一個(gè)類似于加密貓(CryptoKitties)的 去中心化數(shù)字藝術(shù)品創(chuàng)作與分享應(yīng)用的開發(fā)過(guò)程,學(xué)習(xí)非同質(zhì)化通證(NFT:Non-Fungible Token)的基本概念、應(yīng)用場(chǎng)景與開發(fā)實(shí)施方案:

image

和加密貓一樣,我們的課程應(yīng)用中的每個(gè)數(shù)字資產(chǎn)都是獨(dú)一無(wú)二的,事實(shí)上, 它們就是使用不同參數(shù)生成的形狀各異的隨機(jī)圖(Random Graphp),可以認(rèn)為每個(gè)隨機(jī)圖的唯一性賦予它收藏的價(jià)值,因此我們可以將其視為一種藝術(shù)品。在這個(gè)課程中,我們將學(xué)習(xí)如何生成隨機(jī)圖藝術(shù)品并將這一數(shù)字資產(chǎn)通證化。

每個(gè)人都可以有自己的方法將數(shù)字資產(chǎn)通證化,不過(guò)以太坊已經(jīng)有了針對(duì)非同質(zhì)化通證的標(biāo)準(zhǔn):ERC-721。在課程中,我們將完整地講解ERC-721標(biāo)準(zhǔn)的方方面面,不僅從頭實(shí)現(xiàn)一個(gè)ERC-721兼容的通證合約,同時(shí)也會(huì)講解如何利用經(jīng)過(guò)安全審計(jì)的OpenZeppelin合約代碼庫(kù)進(jìn)行二次開發(fā)。

一旦將資產(chǎn)通證化以后,就可以進(jìn)行交換。在課程中我們還將實(shí)現(xiàn)一個(gè)簡(jiǎn)單的通證交易所,每個(gè)人都可以在交易所購(gòu)買其他人的NFT通證,也可以掛單出售自己的通證:

image

項(xiàng)目技術(shù)棧

由于這是一個(gè)中級(jí)課程,因此需要你對(duì)區(qū)塊鏈/以太坊以及下面的技術(shù) 有一些基本的了解和認(rèn)識(shí),這樣會(huì)更有利于課程以及課程項(xiàng)目的完成:

image

項(xiàng)目應(yīng)用的開發(fā)主要包含兩部分:智能合約的開發(fā)以及前端UI的開發(fā)。

課程項(xiàng)目使用solidity(版本0.5)來(lái)開發(fā)以太坊智能合約,并對(duì)涉及到的solidity新特性進(jìn)行說(shuō)明。前端用戶界面的開發(fā)則使用標(biāo)準(zhǔn)的前端五件套:HTML、CSS、JavaScript、jQuery、Bootstrap,當(dāng)然,也需要 使用web3.js(版本1)來(lái)訪問(wèn)區(qū)塊鏈。

為了便于DApp項(xiàng)目的開發(fā)和管理,課程使用truffle(版本2)框架進(jìn)行開發(fā),truffle2預(yù)置的solidity編譯器支持solidity0.5。除了可以繼續(xù)采用ganache-cli作為開發(fā)節(jié)點(diǎn)以外,truffle 2還包含了一個(gè)嵌入 的以太坊開發(fā)節(jié)點(diǎn),這使得開發(fā)流程更加順暢。

truffle框架提供了許多模板用于項(xiàng)目的快速開發(fā),這些項(xiàng)目模板被稱為box。為了充分利用ES2015的新特性來(lái)使課程代碼更加容易閱讀,我們使用webpack模板。在truffle 2中的webpack模板是基于webpack 4實(shí)現(xiàn)。

最后,課程項(xiàng)目使用去中心化文件系統(tǒng)IPFS來(lái)保存通證的元信息。

課程內(nèi)容安排

本課程是一個(gè)中級(jí)課程,適合具備一定以太坊開發(fā)基礎(chǔ)的區(qū)塊鏈工程師,課程內(nèi)容安排如下:

第一章、課程簡(jiǎn)介

介紹課程要完成的項(xiàng)目,以及項(xiàng)目實(shí)現(xiàn)所使用的技術(shù)棧。

第二章、通證簡(jiǎn)明指南

學(xué)習(xí)通證的基本概念、分類、應(yīng)用場(chǎng)景與生成機(jī)制。

第三章、項(xiàng)目需求分析與設(shè)計(jì)

理解課程項(xiàng)目的總體需求,學(xué)習(xí)項(xiàng)目應(yīng)用的設(shè)計(jì)思路,包括模塊劃分、 界面原型與合約接口設(shè)計(jì)等。

第四章、生成隨機(jī)圖藝術(shù)品

了解隨機(jī)圖的基本概念與常用算法,掌握生成隨機(jī)圖的實(shí)現(xiàn)方法。

第五章、使用IPFS保存隨機(jī)圖藝術(shù)品

學(xué)習(xí)IPFS的基本概念、部署與使用方法,掌握將隨機(jī)圖上傳到IPFS網(wǎng)絡(luò)的實(shí)現(xiàn)方法。

第六章、理解ERC721規(guī)范

學(xué)習(xí)ERC721規(guī)范中涉及的各種接口,例如ERC721接口、ERC165接口等, 掌握各接口的關(guān)系與實(shí)現(xiàn)方法。

第七章、隨機(jī)圖通證合約實(shí)現(xiàn)

學(xué)習(xí)并掌握如何使用OpenZepplin合約開發(fā)庫(kù)實(shí)現(xiàn)隨機(jī)圖通證合約。

第八章、應(yīng)用前端實(shí)現(xiàn)

學(xué)習(xí)如何在前端頁(yè)面中調(diào)用合約方法,實(shí)現(xiàn)隨機(jī)圖通證生成頁(yè)面和瀏覽頁(yè)面。

第九章、實(shí)現(xiàn)簡(jiǎn)單的通證交易所

學(xué)習(xí)交易所的基本概念,實(shí)現(xiàn)通證交易所合約,前端頁(yè)面增加對(duì)交易所功能 的支持。

這里是學(xué)習(xí)地址:《ERC721以太坊通證實(shí)戰(zhàn)》

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

分享一些以太坊、EOS、比特幣等區(qū)塊鏈相關(guān)的交互式在線編程實(shí)戰(zhàn)教程:

  • java以太坊開發(fā)教程,主要是針對(duì)java和android程序員進(jìn)行區(qū)塊鏈以太坊開發(fā)的web3j詳解。
  • php以太坊,主要是介紹使用php進(jìn)行智能合約開發(fā)交互,進(jìn)行賬號(hào)創(chuàng)建、交易、轉(zhuǎn)賬、代幣開發(fā)以及過(guò)濾器和交易等內(nèi)容。
  • python以太坊,主要是針對(duì)python工程師使用web3.py進(jìn)行區(qū)塊鏈以太坊開發(fā)的詳解。
  • 以太坊入門教程,主要介紹智能合約與dapp應(yīng)用開發(fā),適合入門。
  • 以太坊開發(fā)進(jìn)階教程,主要是介紹使用node.js、mongodb、區(qū)塊鏈、ipfs實(shí)現(xiàn)去中心化電商DApp實(shí)戰(zhàn),適合進(jìn)階。
  • C#以太坊,主要講解如何使用C#開發(fā)基于.Net的以太坊應(yīng)用,包括賬戶管理、狀態(tài)與交易、智能合約開發(fā)與交互、過(guò)濾器和交易等。
  • EOS教程,本課程幫助你快速入門EOS區(qū)塊鏈去中心化應(yīng)用的開發(fā),內(nèi)容涵蓋EOS工具鏈、賬戶與錢包、發(fā)行代幣、智能合約開發(fā)與部署、使用代碼與智能合約交互等核心知識(shí)點(diǎn),最后綜合運(yùn)用各知識(shí)點(diǎn)完成一個(gè)便簽DApp的開發(fā)。
  • java比特幣開發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)、去中心化共識(shí)機(jī)制、密鑰與腳本、交易與UTXO等,同時(shí)也詳細(xì)講解如何在Java代碼中集成比特幣支持功能,例如創(chuàng)建地址、管理錢包、構(gòu)造裸交易等,是Java工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。
  • php比特幣開發(fā)教程,本課程面向初學(xué)者,內(nèi)容即涵蓋比特幣的核心概念,例如區(qū)塊鏈存儲(chǔ)、去中心化共識(shí)機(jī)制、密鑰與腳本、交易與UTXO等,同時(shí)也詳細(xì)講解如何在Php代碼中集成比特幣支持功能,例如創(chuàng)建地址、管理錢包、構(gòu)造裸交易等,是Php工程師不可多得的比特幣開發(fā)學(xué)習(xí)課程。
  • tendermint區(qū)塊鏈開發(fā)詳解,本課程適合希望使用tendermint進(jìn)行區(qū)塊鏈開發(fā)的工程師,課程內(nèi)容即包括tendermint應(yīng)用開發(fā)模型中的核心概念,例如ABCI接口、默克爾樹、多版本狀態(tài)庫(kù)等,也包括代幣發(fā)行等豐富的實(shí)操代碼,是go語(yǔ)言工程師快速入門區(qū)塊鏈開發(fā)的最佳選擇。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是meduim上一篇關(guān)于以太坊擴(kuò)容技術(shù)的高質(zhì)量文章,個(gè)人感覺說(shuō)的非常清晰,因此翻譯過(guò)來(lái)分享。 今年(2018)是...
    何不痛快閱讀 2,997評(píng)論 2 8
  • 【中文版】以太坊白皮書 翻譯:少平、 Seven當(dāng)中本聰在 2009 年 1 月啟動(dòng)比特幣區(qū)塊鏈時(shí),他同時(shí)向世界引...
    __Seven__閱讀 4,447評(píng)論 0 10
  • 我是活該,我是活該,我是活該,我是活該,原來(lái)比罵你打你更讓你心痛的是不理你。我一天沒吃東西了,可是為什么就是吃不...
    jryc閱讀 278評(píng)論 0 0
  • 最近在幫朋友買一套二手房,沒有找中介。不找中介一是為了省錢,二是因?yàn)橘u房的房東是我們租了六年房子的人,覺得大家既然...
    這里來(lái)了閱讀 169評(píng)論 0 0

友情鏈接更多精彩內(nèi)容