区块链:使用 Solidity 的实用 dApps 开发
Blockchain: Practical dApps Development using Solidity
使用以太坊、Solidity 和智能合约通过 Web3、React 和 IPFS 构建 dApss
你会学到什么
-
以太坊区块链技术
-
Solidity 编程语言
-
dApp 的开发工具
-
为 ERC20、ERC721、ERC1155 和托管服务编写智能合约
-
智能合约安全问题及解决方案
-
编写前端 Web3 应用程序以与智能合约和 IPFS 交互
要求
-
基本的编程知识会有帮助。
描述
本课程专为区块链技术和 Solidity 编程的新手而设计。您将学习并使用Solidity编写智能合约并将其部署在以太坊上作为去中心化应用程序 – dApps。
DApp是编写程序的新趋势,能够基于规则、逻辑和事件来执行合约;并根据这些条件通过转移以太币付款自动执行。
DApp不需要像银行或机构这样的中介机构,因为它能够验证、授权和结算交易并将它们记录在不可变的区块链上。它本质上是一个“信任机器”,其中交易在区块链上是公开的、可验证的和永久的。
区块链是自互联网发明以来最有前途的未来技术。
您将在本课程中学到什么:
- 以太坊区块链技术
- Solidity编程语言
- dApp的开发工具
- 为ERC20、ERC721、ERC1155 和托管服务编写智能合约
- 智能合约安全问题及解决方案
- 编写前端Web3应用程序以与智能合约和IPFS交互
我们在本课程中学习的区块链技术实际上是受到比特币系统创新和成功实施的启发。
比特币是由中本聪在他/她题为“比特币:一种点对点电子现金系统”的论文中发明的。(2009)比特币既是数字货币又是直接的点对点支付系统。(即没有银行或参与转让的政府)
有趣的是,白皮书中并没有提到“区块链”这个词。后来开发人员和社区发现,这种比特币运行在一项新技术(我们称之为区块链)上,该技术解决了许多早期电子现金提案失败的“双重支出”问题。
中本聪提出并实现的比特币区块链,本质上融合了当时已知的以下技术:
- 密码哈希函数,
- 工作量证明共识协议,
- 去中心化网络架构
这些想法和创新非常巧妙。随着矿工参与系统,每个区块都经过检查和验证,矿工通过首先解决密码难题来竞争获得添加新区块的权利。
第一个解决难题的矿工将向同行广播,“工作量证明”由其他矿工展示和验证。解决难题的矿工有权添加新区块,获得以太奖励,以及过程继续。
因此,恶意攻击者对比特币网络的每一次尝试(即本质上是试图重写交易日志)都需要与整个验证器网络竞争。事实证明,要欺骗或破坏比特币网络是非常困难的。
随着这种创新区块链技术的成功,开发商和公司开始评估我们是否可以使用区块链来分散货币以外的其他资产。
财产所有权、证明、投票系统、供应链系统、艺术品、健康记录等资产变得可行,因为每项资产都需要记录系统(即公共分布式账本系统)
可信 DLS 的想法是,交易由对等节点通过加密哈希密钥保护和无单点故障的去中心化网络架构不断验证 – 对于新的去中心化应用程序 (dApp) 来说是一个有吸引力的提议。
然而,正如 Vitalik Buterin 所发现的,比特币区块链具有固有的局限性,无法用于其他更复杂的应用程序。比特币系统不是“图灵完备”机器。(即,您可以在比特币区块链上编写简单的脚本,但仅限于比特币的传输,无法实现更复杂的应用程序)
2013/2014 年,Vitalik 提出并实现了以太坊——一个具有智能合约功能的去中心化开源区块链系统。
该提议是构建一个 EVM(以太坊虚拟机)——一个图灵完备的机器——将在网络上的每个节点/客户端计算机上运行。智能合约只是用 Solidity 编写的程序——一种针对 EVM 进行部署和执行的编程语言。
借助以太坊区块链系统,开发者可以设计、编译智能合约,并部署在以太坊网络上。这是一个相当了不起的创新。以太坊区块链因此成为一个全球性的、开放的、超级计算机——智能合约程序可以在其中部署和执行,用于各种分散的应用程序。
我们将学习用于智能合约开发的 Solidity 编程语言,并在课程中详细检查语言、示例和应用程序。
简而言之,以太坊是一个可编程的区块链。运行智能合约的平台(除了发送/接收本地加密货币以太币的能力)
我们将在课程中学习一系列用于编写智能合约、编译、部署和测试的开发工具。
在一系列实践课程中,我们将 ERC20、ERC721 和 ERC1155 作为工业标准合约的示例,并使用这些标准编写我们自己的代币。
由于以太坊区块链具有原生加密货币 (ETH Ether),因此货币的转移和兑换与 Solidity 编程代码集成在一起。因此,可以根据已验证的事件和合同规则自动执行协议,以直接相互发送货币(即以太币)——从而消除中介(即银行、保险公司,(即注意智能合约)用户可以在 EOA(外部拥有账户)旁边持有以太币价值。
智能合约的可能性和用例是无穷无尽的,我们的想象力有限。
由于可以通过智能合约自动执行金融交易的可能性 – 它打开了恶意黑客利用智能合约中的错误或漏洞的风险。历史表明,数以百万计的智能合约/账户持有人被盗的网络犯罪事件。
因此,每个智能合约开发人员都必须具备良好的智能合约安全基础,并知道如何编写代码来保护所有者和合约本身。我们将在上一节中看看智能合约的经典攻击以及如何克服它。
学习本课程对您的好处:
- 获得区块链技术和 dApps 开发的知识和技能
- 为区块链技术中的许多高需求工作机会做好准备
- 启动您使用区块链和 dApps 启动启动项目的机会
本课程与其他区块链课程有何不同:
- 本课程的设计充分考虑了初学者的需求,并简化了复杂的主题
- 在深入编码之前,我们首先介绍区块链和相关主题的基本概念
- 我们避免混淆和使用过时工具的课程
- 通过编码学习是深入技术的关键
来吧,今天加入我们!
此致,
Abel Choy,软件工程师/计算机科学讲座
本课程适合谁:
- 任何想学习 dApps 开发和区块链技术的人
评论(0)