大家好,欢迎来到《基于 Nervos AppChain 的 DApp 开发》这门课程。我是 Peter 王广忠。

核心内容

先来说说课程的核心内容。

这是一个案例性课程,以动手带学习,目的就是要做一款 DApp ,也就是一个“去中心化的应用”。前端采用 React 框架进行开发,做了一个 Web App ,这方面的知识就是 Web 开发的基础知识,不是课程重点,但是之所以叫去中心化应用,就是因为 App 的后端不是单台服务器,而是一个去中心化的网络,是区块链。就像课程标题所说,我们基于的区块链是 Nervos AppChain 。会使用 Solidiy 语言去编写一个简单的有读写功能的智能合约,然后编译并部署到 Nervos AppChain ,最后会介绍如何在 React 代码中跟智能合约进行交互。

来看看课程案例最终达成的效果。最终用户看到的界面是一个 Web 应用,但是注意,这个 Web 应用的真正的运行环境不是浏览器,而是运行在 Nervos 官方的 DApp 钱包 Neuron 中。Neuron 本身有浏览器的功能,所以 Web 应用可以在里面运行,但是同时 Neuron 是个钱包,所以当 App 跟合约进行交互的时候,如果涉及到交易签名,Neuron 就会用私钥进行签名,最终实现把留言写到区块链上的功能。让后,到另外一个界面就可以看到以往列出的所有留言了。需要声明一下的是课程的案例是 Nervos 其他小伙伴写的,我的工作是把案例拆分,一步步的进行讲解。

所以说课程的核心内容就是来制作这样一个 DApp 。

适合观众

那么这个课程是不是适合你呢?学习课程之前应该具备怎样的基础呢?简单来说,课程适合的是懂代码,但是没有接触过区块链的开发者。

以前没有写过代码的人可能会觉得课程有点难懂。课程中,我还是默认你能看懂 JS 代码,如果 JS 没问题,那么 Solidity 代码其实也不用怎么学就能看懂。同时你还得会点命令行操作技巧,用过 Mac 或者 Linux 操作系统。同时对 Nodejs 脚本不感觉到陌生。

但是同时,对于区块链知识,课程不做要求。虽然如果你懂区块链,那么课程会更容易理解一些,但是我会努力让没有区块链知识的朋友也能跟上。课程最终的案例代码放到了 Github 上。我们可以看到仓库中分了很多文件夹。每个文件夹对应了一步操作,例如合约内容我单独放了一个文件中,部署合约的脚本我单独放了一个文件夹,DApp 的最简版和改进版都单独放到一个文件夹中。然后讲解也是一步步进行的,保证每节视频都够简单,不会发生概念混乱。同时在动手的视频中间,也穿插了一些必要的理论知识讲解的小节,辅助大家理解。

所以只要你有基本的编码能力,就可以学习本课程。

学习收获

最后来聊聊课程中都会涉及到哪些具体的知识点,学完了能有哪些具体的收获。

首先,Nervos 的 AppChain 作为一个智能合约平台,是兼容以太坊的。所以应该说课程中大部分知识都可以应用到 Nervos 之外的其他的智能合约平台之上,具有通用性。例如,理论方面,会让观众理解 DApp 的基本架构是什么,钱包运行的基本原理,智能合约的入门思路。动手方面,会演示如何用 Solidity 书写合约,用集成开发环境 remix 来编译合约,如何写 nodejs 脚本来部署合约。

另外一些知识是跟 Nervos AppChain 紧密相关的。例如 Neuron 钱包的基本工作原理,如何去 AppChain 上注册账户,申请测试网代币。如何让 DApp 调用钱包中的账户信息,以便完成交易签名,等等等等。

总结

Peter 给课程的定位是 DApp 开发的入门课程。可能对于已经是开发者的朋友来说,课程中涉及到的代码并不难,难点在于如何理解区块链上开发 DApp 的整个架构知识以及钱包,私钥,代币等等这些技术细节。所以课程中的讲授思路是以动手带动理论的学习,动手过程慢点推进,随时穿插上理论知识的讲解,课程的侧重也不是让大家开发出多强大的 DApp ,而是能在真实的案例中,轻松的掌握所需要的各个知识点。最后,希望各位喜欢这套课程,也喜欢 Peter 。