web3离不开几个概念,智能合约、区块链、前端交互
1、智能合约可以直接与区块链中的区块进行交互;
2、前端通过web3.js/ethers.js等npm库可以和智能合约进行交互;
说的直白点,web3与web2对于前端来说,只是对接的对象发生了变化,从后端API接口改为了智能合约。这就需要我们去了解智能合约Solidity。
1、web3的一些基本概念
Provider | Provider(提供者)是一个用于连接以太坊网络的抽象类,提供了只读形式来访问区块链网络和获取链上状态。 | |
Signer | Signer(签名器)通常是以某种方式直接或间接访问私钥,可以签名消息和在已授权网络中管理你账户中的以太币来进行交易。 | |
Contract | Contract(合约)是一个运行在以太坊网络上表示现实中特定合约的抽象,应用可以像使用JavaScript对象一样使用它。 |
2、概念上的区分
Web2和Web3是两个不同的概念,它们在技术和应用层面都有所不同。
Web2是指第二代互联网,即现代互联网的基础架构和应用。Web2的特点是基于中心化的架构,用户需要依赖中心化的服务提供商来访问和管理网络资源。Web2主要应用于信息传输、社交网络、电子商务、在线娱乐等领域。
Web3是指第三代互联网,也被称为去中心化互联网。Web3的特点是基于去中心化的架构,它通过分布式的技术和加密货币的支持来实现去中心化的应用。Web3的目标是创造一个更加自由、安全、开放和透明的互联网,它可以应用于数字身份、去中心化金融、去中心化应用等领域。
对于前端开发者来说,Web2和Web3的区别主要表现在技术和应用层面。Web2应用的开发主要依赖于传统的Web技术,如HTML、CSS、JavaScript等。而Web3应用的开发需要掌握更多的区块链技术、去中心化技术以及智能合约编程等方面的知识。同时,Web3应用的开发也需要更加注重用户隐私和安全等方面的考虑。
总之,Web2和Web3都是互联网的发展阶段,它们的应用场景和技术特点有很大的不同。对于前端开发者来说,需要根据应用需求和技术背景选择合适的开发方式和技术栈。
3、对于前端的区别
web2中我们使用API与后端进行交互,增删改查数据,web3中我们同样需要和数据进行交互。
web3中我们需要使用Ethers/web3等库通过ABI与只能合约进行交互,在和区块链交互的过程中,我们需要付出一定的gas费用,gas是一个消耗品,用与交互的消费。
备注:gas费用 =交易需要的gas数量 *gas的单价(根据网络是一个动态的数字)
总之,对于前端来说,不要恐惧,只是换了个交互对象而已,了解web的基本概念,能看明白合约的ABI接口即可。
4、开发一个Dapp,前端需要准备哪些东西呢?
开发一个 Dapp (去中心化应用) 需要考虑多个方面,包括前端、后端、智能合约等。下面是针对前端开发者的一些需要准备的东西:
Web3.js:Web3.js 是一个 JavaScript 库,它提供了与以太坊区块链交互的 API。在开发 Dapp 时,你需要使用 Web3.js 来与智能合约进行交互,例如调用合约中的函数、读取合约中的变量等操作。
MetaMask:MetaMask 是一个浏览器插件,它提供了一个简单的方式来连接以太坊区块链,并与智能合约进行交互。在开发 Dapp 时,你需要安装 MetaMask 插件,并使用它来连接以太坊网络。
Solidity:Solidity 是一种智能合约编程语言,它用于编写以太坊智能合约。在开发 Dapp 时,你需要了解 Solidity,并编写智能合约,以实现业务逻辑。
Remix:Remix 是一个基于浏览器的 Solidity IDE,它提供了一个用于编写、测试和部署智能合约的集成开发环境。在开发 Dapp 时,你可以使用 Remix 来编写和测试智能合约。
Truffle:Truffle 是一个用于构建以太坊 Dapp 的开发框架,它包括了智能合约编译器、测试框架、部署工具等。在开发 Dapp 时,你可以使用 Truffle 来编译、测试和部署智能合约。
IPFS:IPFS 是一个分布式的文件存储和传输协议,它可以用于存储 Dapp 的静态资源,例如 HTML、CSS、JavaScript 文件等。在开发 Dapp 时,你可以使用 IPFS 来存储和传输静态资源,以提高应用的可靠性和可访问性。
React、Vue、Angular 等前端框架:在开发 Dapp 的前端界面时,你可以使用 React、Vue、Angular 等前端框架来快速构建界面,实现复杂业务逻辑。
总之,要开发一个 Dapp,前端开发者需要掌握 Web3.js、MetaMask、Solidity、Remix、Truffle、IPFS 等技术,并且需要使用前端框架来实现复杂业务逻辑。同时,Dapp 的开发还需要与后端、智能合约等方面进行协同,才能实现一个完整的 Dapp。