Web 3 開發(fā)人員缺口很大,相對來說,目前只有一少部分開發(fā)人員成為該領(lǐng)域的專家。因此,如果一位成熟的 Web 2 工程師,想要進(jìn)入 Web 3 行業(yè),應(yīng)該從哪里開始呢?要了解哪些基本概念、學(xué)習(xí)哪些工具和技術(shù)?
本文將探討 Web 3,包括它的重要性以及與 Web 2 的區(qū)別。然后再來看看,有志于 Web 3 開發(fā)人員應(yīng)該熟悉的技術(shù)棧。
在深入研究 Web 3 應(yīng)用程序中使用的技術(shù)之前,讓我們首先了解 Web 3 是什么,以及它為什么重要。
Web 3 的五個(gè)關(guān)鍵特性是去中心化、區(qū)塊鏈、安全性、可擴(kuò)展性和隱私。在 Web 3 的去中心化世界中,區(qū)塊鏈技術(shù)和其他協(xié)議從根本上改變了數(shù)據(jù)的存儲、分發(fā)和訪問方式,同時(shí)提供了一個(gè)本地事務(wù)層。當(dāng)下流行的 Web3 應(yīng)用案例是去中心化金融(DeFi 和加密貨幣)、在稱為“DAO”的去中心化治理模式中投票、以及作為所有權(quán)證明的不可偽造代幣(NFT)。
Web 3 背后的許多動機(jī),都是基于用戶、公司和政府之間的信任受到侵蝕??瓷先ズ孟裼悬c(diǎn)憤世嫉俗,但確是如此。
在去中心化金融里,用戶將資金存儲在自己的私人錢包中,交易時(shí)無需與中心化機(jī)構(gòu)互動或依賴國家的法定貨幣。
建立在區(qū)塊鏈上的投票應(yīng)用程序,所有投票數(shù)據(jù)都是透明的,且任何人驗(yàn)證起來都很簡便,因此不必再擔(dān)心選舉中發(fā)生徇私舞弊。這就是讓 Web 3 “無需信人”的原因:該技術(shù)是透明的,并且通過密碼學(xué)得到保護(hù),因此不再是只能盲目信任某些機(jī)構(gòu)。
NFT 可用于證明任何數(shù)字資產(chǎn)(如音樂或藝術(shù))的所有權(quán),讓你可以更直接地支持創(chuàng)作者。
所有這些例子,其核心都牽涉到不再需要依賴中央機(jī)構(gòu)或中介機(jī)構(gòu)。
需要注意的是,Web 3 并不是要取代 Web 2,就像 Web 2 沒有取代 Web 1 一樣。對于 Web 1 中出現(xiàn)的靜態(tài)網(wǎng)站,在 Web 上仍然占有重要地位。即使 Web 3 越來越受歡迎和使用,Web 2 應(yīng)用程序也將有一席之地。
我們現(xiàn)在大致了解了什么是 Web 3,以及為什么去中心化的概念很重要。那么 Web3 應(yīng)用程序?qū)嶋H上是什么樣子的呢?
嗯……它們看起來很像 Web 2 應(yīng)用程序!去中心化的應(yīng)用程序,也稱為“dapps”(或“dApps”),由一個(gè)前端 UI 組成,其與部署在區(qū)塊鏈上的“智能合約”(一個(gè)小代碼程序)交互。在交易或?qū)?shù)據(jù)寫入?yún)^(qū)塊鏈時(shí),前端還可以與用戶的錢包交互。與 Web 2 應(yīng)用程序的主要區(qū)別在于,智能合約和區(qū)塊鏈取代了由單個(gè)人或公司擁有和維護(hù)的經(jīng)典的服務(wù)器和數(shù)據(jù)庫。
去中心化應(yīng)用架構(gòu)
那么,如何真正構(gòu)建一個(gè)去中心化的應(yīng)用程序(dapp)?好消息是,可以從已有的編程技能和經(jīng)驗(yàn)開始!我們已經(jīng)知道 dapp 有一個(gè)前端,這意味著需要了解 HTML、CSS 和 JavaScript。可能還會使用 Angular、React 或 Vue 等框架或庫,除非你喜歡用原生 JavaScript。這對于已經(jīng)精通這些技術(shù)的前端開發(fā)人員來說是個(gè)好消息。
現(xiàn)在,讓我們看看需要專門為 Web3 學(xué)習(xí)哪些語言、工具和框架:
Solidity 是一種編程語言,用于編寫在以太坊區(qū)塊鏈上運(yùn)行的智能合約。它看起來像是 C++、Python 和 JavaScript 的混合體。如果你現(xiàn)在已經(jīng)學(xué)習(xí)了幾種編程語言,那么你每次去學(xué)一門新語言都會變得更容易。由于大多數(shù)智能合約都涉及某種貨幣兌換,因此遵循適當(dāng)?shù)臉?biāo)準(zhǔn)和在安全方面的最佳實(shí)踐至關(guān)重要。
Solidity 項(xiàng)目地址:https://soliditylang.org/
Truffle 是一個(gè)框架,可以用來編寫、測試和部署智能合約。其網(wǎng)站將其描述為“使用以太坊虛擬機(jī) (EVM) 的區(qū)塊鏈開發(fā)環(huán)境、測試框架和資產(chǎn)管道”。就像 React 幫助你構(gòu)建 JavaScript 應(yīng)用程序一樣,Truffle 幫助你構(gòu)建智能合約。使用 Truffle 并不是絕對必要的,但是這個(gè)框架將極大地幫助你,因?yàn)樗橄罅艘恍╅_發(fā)復(fù)雜性。對于 VS Code 用戶,Truffle for VS Code 擴(kuò)展會讓開發(fā)周期更加容易。
Truffle 項(xiàng)目地址:https://trufflesuite.com/docs/truffle/
Ganache 是用于本地開發(fā)和測試智能合約的個(gè)人區(qū)塊鏈。開發(fā)人員只需要通過幾個(gè)簡單的命令,就可以創(chuàng)建以太坊區(qū)塊鏈的本地實(shí)例。Ganache 允許你在本地開發(fā) Web 3 應(yīng)用,就像在本地或測試環(huán)境而非生產(chǎn)環(huán)境中開發(fā) Web 2 應(yīng)用程序一樣。
Ganache 項(xiàng)目地址:https://trufflesuite.com/docs/ganache/
Web3.js 是一個(gè)用于與以太坊交互的 JavaScript 庫。你將在前端應(yīng)用程序中使用 web3.js 來執(zhí)行諸如連接到用戶的錢包、授予對智能合約的訪問權(quán)限以及調(diào)用智能合約上的函數(shù)等操作。智能合約可以通過命令行或 UI 訪問,因此 web3.js 可以幫助你從 UI 使用智能合約。
Web3.js 項(xiàng)目地址:https://web3js.readthedocs.io/en/v1.8.0/
MetaMask 是一個(gè) Web 3 錢包,你可以使用它的瀏覽器擴(kuò)展程序或移動應(yīng)用程序。我們之前提到過錢包,但還沒有真正描述過錢包是什么。錢包為你的數(shù)字資產(chǎn)提供接口。你使用只有你自己知道的私鑰保護(hù)錢包里的內(nèi)容。MetaMask 為用戶提供了一種安全的方式,連接到基于區(qū)塊鏈的應(yīng)用程序,并與它們的錢包交互。對于開發(fā)人員來說,需要錢包來部署智能合約并與之交互。通常,私鑰必須寫在代碼中才能交互,但 Truffle Dashboard 能夠?qū)?MetaMask 錢包連接到項(xiàng)目而無需暴露密鑰。
MetaMask 項(xiàng)目地址:https://metamask.io/
Infura 是連接以太坊和其他區(qū)塊鏈以及去中心化存儲網(wǎng)絡(luò)(如 IPFS)的基礎(chǔ)設(shè)施提供商。無需過多介紹,與區(qū)塊鏈的任何交互都需要通過 JSON-RPC 或 WebSockets 訪問節(jié)點(diǎn)。Infura 提供了基礎(chǔ)設(shè)施,因此你不必找機(jī)器來啟動自己的節(jié)點(diǎn)。如果你實(shí)在想運(yùn)行自己的節(jié)點(diǎn),Infura 也可以作為備用。Infura 還提供了一個(gè)開發(fā)套件和工具包,包括監(jiān)控、指標(biāo)、日志記錄、事務(wù)管理和其他用于構(gòu)建 dapp 的功能。這是對我們已談?wù)撨^的其他一些技術(shù)的進(jìn)一步抽象,可以使 Web3 開發(fā)更加容易。
Infura 項(xiàng)目地址:https://infura.io/zh
Web 3 是支持下一代軟件的下一代互聯(lián)網(wǎng)。區(qū)塊鏈?zhǔn)歉该鞯募夹g(shù),不但消費(fèi)者在采用,主要機(jī)構(gòu)也在采用,這讓區(qū)塊鏈成為了主流。
了解 Web 3 技術(shù)以及構(gòu)建方法,將為你打入市場提供優(yōu)勢。
對于已經(jīng)擁有強(qiáng)大的 Web 2 基礎(chǔ),又有志于 Web3 的開發(fā)人員,我希望現(xiàn)在你對自己充滿信心,因?yàn)槟阋颜莆盏闹R就是良好的開端!花一些時(shí)間學(xué)學(xué)上面的技術(shù),你可能會比你想象的更快做好準(zhǔn)備,以迎接 Web3 的到來。