Dapp是什么?智能合约是什么?web3.0是什么?前端如何开发Dapp?在开发之前,我们需要先了解一些基础概念。(ps:本文只适用于小白观看,不敢在有经验的大佬面前耍大刀,有不妥之处欢迎指出)
WEB3.0
web1.0属于过去,解决用户浏览内容的问题;web2.0属于现在,解决用户创造内容的问题;web3.0属于未来,将解决用户信息安全和内容所有权的问题。web3.0被称为"一种可被用户拥有的互联网",是基于区块链的去中心化在线生态系统,其中用户掌握自己的数据所有权和使用权,并公平地参与到由此产生的利益分配里面,用户创造内容后不是成为大厂的内容和数据,而是自己拥有所有权,也就是说,用户是内容的创造者也是内容的拥有者。
区块链
相比于传统的网络,区块链拥有去中心化和高安全性的核心特点,是web3的底层架构。区块链是一种去中心化的分布式账本技术,它通过一系列数据块(block)以链式方式连接而成,记录了网络上的交易信息。每一个区块都包含了前一个区块的哈希(hash)值,从而保证连接的精准性。整个链条被保存在所有节点中,系统中的服务器为整个区块链系统提供存储空间和算力支持。区块链基于密码学的设计,在区块链中,人与人的交易活动被记录在一个不可篡改的公开账本中,从而使得交易活动可以在零信任、没有第三方干涉的条件下与陌生人展开可信的合作。
区块链有三种基本类型,分别是公链、联盟链以及私链。在公链下,任何人都可以加入网络及写入和访问数据,任何人在任何地理位置都可以参与共识;在联盟链下,只有授权公司和组织才能加入网络参与共识,写入及查询数据都可以通过授权控制;在私链下,使用范围控制在公司内部,可改善审计性,但不完全解决信任问题。
NFT
NFT,全称为非同质化代币(Non-Fungible Token),是一种基于区块链技术的数字资产,与传统的加密货币(如比特币和以太坊)不同,它们是可以互换和等价交换的。相反,NFT是独特且不可替代的,每一个都具有唯一性和独特的属性。通过NFT,数字艺术家可以证明其作品的真实性和稀缺性,收藏者可以拥有独一无二的数字收藏品,而游戏开发者可以为玩家提供独特的虚拟道具和游戏体验。
以太坊
以太坊(Ethereum)是一种基于区块链技术的开源平台,通过其专用加密货币以太币(Ether,简称"ETH")提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约,旨在提供智能合约功能和去中心化应用(DApps)的开发环境。它于2015年由Vitalik Buterin等人创建,并成为第二大加密货币(仅次于比特币)的底层网络。
智能合约
智能合约(smart contract)是满足特定条件下在区块链上执行代码的程序,其本质是一系列代码的合集,具有自动化、不可逆转性、代码公开透明性等特点。各方以数字签署合同的方式准许并维护其运行,用于自动完成某些特定的功能,如汇款、买卖虚拟NFT商品等。智能合约可以看作一台自动售货机,像一个执行某种功能的"程序黑盒"------用户扫码付钱,选择商品,然后拿走商品,完成购买。
DApp
DApp是指去中心化应用(Decentralized Application),是建立在区块链技术或类似的去中心化网络上的应用程序,通过智能合约等去中心化技术来实现功能和数据的管理。
MetaMask
MetaMask是一个浏览器插件,可作为MetaMask Chrome扩展或Firefox附加组件使用。它的核心是它作为以太坊钱包:通过安装它,您将可以访问一个独特的以太坊钱包地址,您可以使用它开始发送和接收以太币或ERC20通证。
但MetaMask不仅仅是以太坊钱包。作为浏览器扩展,它可以与您正在浏览的当前网页进行交互。它通过在您访问的每个网页中注入一个名为web3.js的JavaScript库来实现。注入后,web3将通过window.web3的JavaScript代码为你访问的每个网页提供一个对象。
在开发Dapp前,我们需要先安装MetaMask这个扩展,以便之后与合约进行交互。

点击账户名也可以进行创建钱包和导入钱包操作,傻瓜式操作就行,在这不多赘述,需要注意的是,创建钱包的时候千万要记得备份助记词,否则丢了就找不回来了!!!
Web3.js
Web3.js是一个库,它有很多函数,使用它可以在以太坊生态系统中通过HTTP或IPC与本地或者以太坊远程节点交互,如查看链上信息等。各种高级语言编写的程序可以使用web3 interface来与EVM交互,在此过程中使用是的JSON-RPC(一个无状态且轻量级的远程过程调用(RPC)传送协议,其传递内容透过 JSON 为主)。
我们使用web3.js来读取和写入以太坊区块链。
创建一个vue或者react项目,可以使用 npm 或 yarn 进行安装,我这运行npm install web3
安装Web3.js,在组件中引入import Web3 from 'web3'
;
OK,到这里,基本上开发Dapp的基础知识就准备的差不多了,我平时用vue更多,因此这个系列我会用vue进行编写。