Web 3堆疊:解讀Web 2開發者需要做好哪些準備?

Web 3堆疊:解讀Web 2開發者需要做好哪些準備?

免責宣告:本文旨在傳遞更多市場資訊,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

小編:記得關注哦

儘管Web3的開發者生態系統在更大的網路開發者生態系統中只佔很小的比例,但它似乎在快速增長——因此,嘗試並確定Web3技術堆疊的組成部分很有意義。我們知道它包括用於去中心化的區塊鏈,以及作為身份形式的加密貨幣錢包。您可能還聽說過名稱華麗的分散式儲存解決方案,如星際檔案系統(IPFS)。但是開發者還需要學習什麼才能進入Web3的世界呢?另外,傳統的網路技術如JavaScript,如何適應Web3環境呢?

到目前為止,我所遇到的關於Web3堆疊的最佳定義是由Nader Dabit寫的,他是一家名為Edge & Node的Web3公司的開發者關係工程師。我第一次採訪Dabit是在2020年8月,當時他在亞馬遜網路服務公司擔任無伺服器專家。那時,他剛剛在O ‘Reilly Media出版了一本名為《全棧無伺服器:使用React、AWS和GraphQL的現代應用程式開發》的書。2021年4月,他將這些技能帶入了新生的Web3世界。他在Edge & Node的部分工作是幫助構建The Graph,“一個用於用GraphQL索引和查詢區塊鏈資料的Web3協議。”

我聯絡了Dabit,問他做Web3開發人員與他以前在web2。0公司工作有什麼不同。但首先,讓我們仔細看看他的Web3參考文章。他將Web3堆疊分類如下:

區塊鏈

區塊鏈開發環境

檔案儲存

P2P資料庫

API(索引和查詢)

身份

客戶端(框架和庫)

其他協議

正如他所指出的,這個堆疊與傳統的網路架構“在許多方面完全不同”——區塊鏈和基於加密貨幣的身份是兩個最明顯的區別。Dabit還提醒說,“Web3工具、技術和生態系統不如Web2成熟。”

“從網路基礎設施的角度來看,”Dabit告訴我,“主要的區別實際上是圍繞著我們所認為的‘後端’技術,但在Web3中,它們通常被稱為‘協議’。”

前端

讓我們先從簡單的部分開始。根據Dabit的說法,Web3的客戶端技術(框架和庫)本質上與Web 2。0相同。在前端應用中大量使用JavaScript,而且就目前Web 2。0的狀態而言,React是一個領先的JavaScript框架。Dabit指出:“絕大多數的Web3專案和例子都是由React構建的。”

Dabit向我解釋說:“除了實際的HTTP客戶端庫之外,前端技術並沒有太大區別。”因此,要透過HTTP協議與伺服器通訊,“你可以使用web3。js或ethers。js與rpc[遠端過程呼叫],或者使用graphql客戶端與The Graph對話,而不是使用fetch或axios。” Web3。js和Ethers。js都是JavaScript庫,使開發者能夠與以太坊區塊鏈互動。

“此外,身份以及我們處理身份的方式在前端也是不同的,”Dabit說。“要讀取資料,你不需要了解使用者的任何資訊,因為幾乎所有的資料都是公開的。但要寫入資料,通常需要連線到使用者的錢包。有幾種方法可以做到這一點。在桌面應用程式中,使用者通常會為他們的錢包新增一個瀏覽器擴充套件,它會自動為網路注入一個全域性視窗物件(例如Solana、Ethereum、Arweave)。或者在移動端,它將允許你在錢包應用程式中進行認證,並在簽署交易後重定向。”

如果你嘗試過購買加密貨幣或NFT,或嘗試過dapp(去中心化應用程式),那麼你很有可能已經使用過MetaMask——它有一個瀏覽器擴充套件,可用於Chrome、Firefox和基於Chrome的瀏覽器,如Brave。MetaMask由ConsenSys所有,該公司有理由稱自己為“領先的以太坊軟體公司”。

ConsenSys還在Web3中擁有領先的IDE(整合開發環境)之一。Truffle是一個“使用以太坊虛擬機器(EVM)的區塊鏈開發環境、測試框架和資產管道”。除此之外,它還提供了“智慧合同生命週期管理”和“自動化合同測試”。

前端

現在我們來看看Web3堆疊更復雜的方面。到目前為止,大多數開發人員都熟悉區塊鏈的概念——基本上,它是一個分散式的資料分類賬本。但有許多不同型別的區塊鏈。最重要的兩種是比特幣和以太坊(並非巧合的是,與這些區塊鏈相關的加密貨幣是兩個市場領導者)。但比特幣的可程式設計性就像計算器一樣——正如以太坊研究員Justin Drake在播客《Web3 Breakdowns》的一集中所說的那樣,以太坊是一個完全可程式設計的“圖靈完備”計算機。

以太坊的可程式設計特性導致了以區塊鏈為重點的網路開發堆疊的新模式——也就是“Web3”。以太坊的原則之一是,理論上你可以在它上面構建任何東西。用web 2。0的說法,它是一個網路平臺。以太坊是最大的Web3平臺,它也相容其他一些區塊鏈。因此,成為Web3開發人員的主要途徑就是學習如何使用以太坊。

你可能聽說過Solidity,一種用於以太坊區塊鏈的程式語言,有點類似於JavaScript。雖然這是事實,但Solidity僅用於為區塊鏈編寫“智慧合約”——將資料和資料的任何指令放在區塊鏈上。

“在區塊鏈世界中,學習Solidity和EVM(或以太坊虛擬機器)可能是作為區塊鏈開發人員入門的最佳選擇,”Dabit在他的文章中解釋道。“使用這個技能組合(和技術堆疊),你不僅可以為以太坊,還可以為其他以太坊二層、側鏈,甚至其他區塊鏈,如Avalanche、Fantom和Celo構建。”

然而,作為對Web 2。0世界的另一種認可,Rust也正在成為智慧合約開發人員的必備技能。Dabit 將 Solana、NEAR 和 Polkadot 列為具有“一流的 Rust 支援”的三個區塊鏈示例。

Dabit告訴我:“我認為Solidity和Rust是智慧合約開發中使用最多、需求量最大的語言。他補充說,由於經驗豐富的智慧合約程式設計師相對較少,他們可以輕鬆地獲得“每年數十萬美元左右的薪水,我甚至看到過一些經驗最豐富的程式設計師年薪在100萬美元左右。”

學習以太坊(和Rust)

Web3開發中最棘手的部分之一是資料的儲存和使用。雖然區塊鏈擅長成為不可變資料的“去信任”鏈,但它們在儲存和處理大量資料方面也非常低效——尤其是對於dapps。這就是 IPFS、Arweave 和 Filecoin 等檔案儲存協議的用武之地。

Arweave是一個開源專案,它將自己描述為“一個允許你永久、可持續地儲存資料的協議,只需要預付一筆費用。”它本質上是一個點對點(P2P)網路,但有自己的一套加密術語——它的採礦機制被稱為““隨機訪問的簡潔證明(SPoRAs)”,開發人員可以將應用程式部署到 “permaweb”(“一個建立在Arweave之上的永久的去中心化網路”)。

更復雜的是,dapp開發者可以選擇使用“鏈外”解決方案,即資料儲存在主區塊鏈之外的其他地方。兩種常見的形式是“側鏈”(二級區塊鏈)和所謂的“第二層”(L2)解決方案,如比特幣閃電網路和以太坊Plasma。更多關於如何在Web3中進行資料管理的資訊,請檢視資料API公司Fauna的Shashank Golla最近在The New Stack上發表的文章。

至於如何在區塊鏈上索引和查詢資料,這是一個相對較新的開發領域。但如上所述,Dabit正在開發一種解決方案——由GraphQL驅動的The Graph。除此之外,它還允許開發人員在應用程式中使用GraphQL直接從L1或L2鏈進行查詢。

學習以太坊(和Rust)

基於Dabit所描述的Web3堆疊,很明顯,傳統的網路程式設計技能——從JavaScript到Rust——將在Web3開發中為你提供良好的幫助。但你還必須學會如何使用智慧合約程式設計區塊鏈,並適應加密檔案儲存和鏈下解決方案的陌生世界。

從開發者的角度來看,Web3目前似乎處於過渡時期,試圖找到擺脫對Coinbase、OpenSea和Alchemy等中心化服務依賴的方法。但這樣做是所有複雜性的來源,因為真正的去中心化對於dapps來說是很難實現的。

我很好奇Web3堆疊在2022年以後會如何發展,因為它正在尋找方法來實現自己的去中心化宣傳。與此同時,如果你想了解更多,請檢視Nader Dabit的Web3開發者指南。去年10月,他在Next。js Conf上做了演講,他在其中解釋了堆疊(這就是這篇文章的專題圖片的來源)。