購(gòu)物 網(wǎng)站建設(shè)的市場(chǎng)分析電商廣告網(wǎng)絡(luò)推廣
web3離不開(kāi)幾個(gè)概念,智能合約、區(qū)塊鏈、前端交互
??? 1、智能合約可以直接與區(qū)塊鏈中的區(qū)塊進(jìn)行交互;
??? 2、前端通過(guò)web3.js/ethers.js等npm庫(kù)可以和智能合約進(jìn)行交互;
說(shuō)的直白點(diǎn),web3與web2對(duì)于前端來(lái)說(shuō),只是對(duì)接的對(duì)象發(fā)生了變化,從后端API接口改為了智能合約。這就需要我們?nèi)チ私庵悄芎霞sSolidity。
1、web3的一些基本概念
Provider | Provider(提供者)是一個(gè)用于連接以太坊網(wǎng)絡(luò)的抽象類,提供了只讀形式來(lái)訪問(wèn)區(qū)塊鏈網(wǎng)絡(luò)和獲取鏈上狀態(tài)。 | |
Signer | Signer(簽名器)通常是以某種方式直接或間接訪問(wèn)私鑰,可以簽名消息和在已授權(quán)網(wǎng)絡(luò)中管理你賬戶中的以太幣來(lái)進(jìn)行交易。 | |
Contract | Contract(合約)是一個(gè)運(yùn)行在以太坊網(wǎng)絡(luò)上表示現(xiàn)實(shí)中特定合約的抽象,應(yīng)用可以像使用JavaScript對(duì)象一樣使用它。 |
2、概念上的區(qū)分
Web2和Web3是兩個(gè)不同的概念,它們?cè)诩夹g(shù)和應(yīng)用層面都有所不同。
Web2是指第二代互聯(lián)網(wǎng),即現(xiàn)代互聯(lián)網(wǎng)的基礎(chǔ)架構(gòu)和應(yīng)用。Web2的特點(diǎn)是基于中心化的架構(gòu),用戶需要依賴中心化的服務(wù)提供商來(lái)訪問(wèn)和管理網(wǎng)絡(luò)資源。Web2主要應(yīng)用于信息傳輸、社交網(wǎng)絡(luò)、電子商務(wù)、在線娛樂(lè)等領(lǐng)域。
Web3是指第三代互聯(lián)網(wǎng),也被稱為去中心化互聯(lián)網(wǎng)。Web3的特點(diǎn)是基于去中心化的架構(gòu),它通過(guò)分布式的技術(shù)和加密貨幣的支持來(lái)實(shí)現(xiàn)去中心化的應(yīng)用。Web3的目標(biāo)是創(chuàng)造一個(gè)更加自由、安全、開(kāi)放和透明的互聯(lián)網(wǎng),它可以應(yīng)用于數(shù)字身份、去中心化金融、去中心化應(yīng)用等領(lǐng)域。
對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō),Web2和Web3的區(qū)別主要表現(xiàn)在技術(shù)和應(yīng)用層面。Web2應(yīng)用的開(kāi)發(fā)主要依賴于傳統(tǒng)的Web技術(shù),如HTML、CSS、JavaScript等。而Web3應(yīng)用的開(kāi)發(fā)需要掌握更多的區(qū)塊鏈技術(shù)、去中心化技術(shù)以及智能合約編程等方面的知識(shí)。同時(shí),Web3應(yīng)用的開(kāi)發(fā)也需要更加注重用戶隱私和安全等方面的考慮。
總之,Web2和Web3都是互聯(lián)網(wǎng)的發(fā)展階段,它們的應(yīng)用場(chǎng)景和技術(shù)特點(diǎn)有很大的不同。對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō),需要根據(jù)應(yīng)用需求和技術(shù)背景選擇合適的開(kāi)發(fā)方式和技術(shù)棧。
3、對(duì)于前端的區(qū)別
web2中我們使用API與后端進(jìn)行交互,增刪改查數(shù)據(jù),web3中我們同樣需要和數(shù)據(jù)進(jìn)行交互。
web3中我們需要使用Ethers/web3等庫(kù)通過(guò)ABI與只能合約進(jìn)行交互,在和區(qū)塊鏈交互的過(guò)程中,我們需要付出一定的gas費(fèi)用,gas是一個(gè)消耗品,用與交互的消費(fèi)。
備注:gas費(fèi)用 =?交易需要的gas數(shù)量 *?gas的單價(jià)(根據(jù)網(wǎng)絡(luò)是一個(gè)動(dòng)態(tài)的數(shù)字)
總之,對(duì)于前端來(lái)說(shuō),不要恐懼,只是換了個(gè)交互對(duì)象而已,了解web的基本概念,能看明白合約的ABI接口即可。
4、開(kāi)發(fā)一個(gè)Dapp,前端需要準(zhǔn)備哪些東西呢?
開(kāi)發(fā)一個(gè) Dapp (去中心化應(yīng)用) 需要考慮多個(gè)方面,包括前端、后端、智能合約等。下面是針對(duì)前端開(kāi)發(fā)者的一些需要準(zhǔn)備的東西:
-
-
Web3.js:Web3.js 是一個(gè) JavaScript 庫(kù),它提供了與以太坊區(qū)塊鏈交互的 API。在開(kāi)發(fā) Dapp 時(shí),你需要使用 Web3.js 來(lái)與智能合約進(jìn)行交互,例如調(diào)用合約中的函數(shù)、讀取合約中的變量等操作。
-
MetaMask:MetaMask 是一個(gè)瀏覽器插件,它提供了一個(gè)簡(jiǎn)單的方式來(lái)連接以太坊區(qū)塊鏈,并與智能合約進(jìn)行交互。在開(kāi)發(fā) Dapp 時(shí),你需要安裝 MetaMask 插件,并使用它來(lái)連接以太坊網(wǎng)絡(luò)。
-
Solidity:Solidity 是一種智能合約編程語(yǔ)言,它用于編寫(xiě)以太坊智能合約。在開(kāi)發(fā) Dapp 時(shí),你需要了解 Solidity,并編寫(xiě)智能合約,以實(shí)現(xiàn)業(yè)務(wù)邏輯。
-
Remix:Remix 是一個(gè)基于瀏覽器的 Solidity IDE,它提供了一個(gè)用于編寫(xiě)、測(cè)試和部署智能合約的集成開(kāi)發(fā)環(huán)境。在開(kāi)發(fā) Dapp 時(shí),你可以使用 Remix 來(lái)編寫(xiě)和測(cè)試智能合約。
-
Truffle:Truffle 是一個(gè)用于構(gòu)建以太坊 Dapp 的開(kāi)發(fā)框架,它包括了智能合約編譯器、測(cè)試框架、部署工具等。在開(kāi)發(fā) Dapp 時(shí),你可以使用 Truffle 來(lái)編譯、測(cè)試和部署智能合約。
-
IPFS:IPFS 是一個(gè)分布式的文件存儲(chǔ)和傳輸協(xié)議,它可以用于存儲(chǔ) Dapp 的靜態(tài)資源,例如 HTML、CSS、JavaScript 文件等。在開(kāi)發(fā) Dapp 時(shí),你可以使用 IPFS 來(lái)存儲(chǔ)和傳輸靜態(tài)資源,以提高應(yīng)用的可靠性和可訪問(wèn)性。
-
React、Vue、Angular 等前端框架:在開(kāi)發(fā) Dapp 的前端界面時(shí),你可以使用 React、Vue、Angular 等前端框架來(lái)快速構(gòu)建界面,實(shí)現(xiàn)復(fù)雜業(yè)務(wù)邏輯。
-
總之,要開(kāi)發(fā)一個(gè) Dapp,前端開(kāi)發(fā)者需要掌握 Web3.js、MetaMask、Solidity、Remix、Truffle、IPFS 等技術(shù),并且需要使用前端框架來(lái)實(shí)現(xiàn)復(fù)雜業(yè)務(wù)邏輯。同時(shí),Dapp 的開(kāi)發(fā)還需要與后端、智能合約等方面進(jìn)行協(xié)同,才能實(shí)現(xiàn)一個(gè)完整的 Dapp。
?