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