自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Web3 堆棧開發(fā)人員指南

區(qū)塊鏈 開發(fā) 新聞
作為開發(fā)人員和構建人員,我們在理解去中心化時,通常會提起碎片化的技術堆棧概念。

在Alchemy,我們將Web3定義為基于區(qū)塊鏈技術的去中心化的互聯(lián)網(wǎng)生態(tài)系統(tǒng)。

首先,作為開發(fā)人員和構建人員,我們在理解去中心化時,通常會提起碎片化的技術堆棧概念。雖然Web3仍然處于新生階段并在迅速發(fā)展,但我們發(fā)現(xiàn)它的基礎構件已經(jīng)開始成形。

為了更好地理解Web3和去中心化互聯(lián)網(wǎng)的內部工作原理,讓我們直接進入Web3開發(fā)堆棧。

Web3堆棧概述

在較高的層次上,構建任何Web3應用程序都需要深入理解區(qū)塊鏈網(wǎng)絡、Web3基礎設施和Web3開發(fā)環(huán)境。

Web3網(wǎng)絡層

Web3技術堆棧的基礎是區(qū)塊鏈網(wǎng)絡層。Web2應用程序依賴于中心化數(shù)據(jù)庫,而Web3應用程序構建在區(qū)塊鏈架構之上,以實現(xiàn)無需信任和無需許可的訪問。

網(wǎng)絡層:基礎區(qū)塊鏈架構

在選擇構建去中心化應用程序(dApp)的區(qū)塊鏈網(wǎng)絡時,開發(fā)人員有兩個主要選擇:兼容EVM的區(qū)塊鏈和不兼容EVM的區(qū)塊鏈。

EVM 區(qū)塊鏈

以太坊一直是Web3開發(fā)的主要框架,其虛擬環(huán)境(即其以太坊虛擬機或EVM)存儲帳戶和余額等關鍵信息。以太坊的虛擬機還存儲了一個機器狀態(tài),它能夠根據(jù)EVM制定的一組預定義規(guī)則,隨著每個新區(qū)塊的變化而變化。對于開發(fā)人員來說,最重要的是,EVM為智能合約的存儲和執(zhí)行提供了一個框架,允許開發(fā)人員對鏈上邏輯進行編程。

隨著以太坊區(qū)塊鏈和EVM的興起,許多旨在解決以太坊可擴展性限制或昂貴交易成本的不同網(wǎng)絡都選擇開發(fā)與EVM完全兼容的框架。這意味著與 EVM 兼容的鏈都共享相同的軟件層——即 Solidity——運行智能合約。

與EVM兼容的區(qū)塊鏈允許開發(fā)人員利用專門為EVM鏈構建的所有相同的工具、文檔和社區(qū),以此節(jié)省時間和金錢。

EVM 區(qū)塊鏈示例

  • 以太坊- 原始 EVM 智能合約平臺
  • Polygon- 以太坊側鏈
  • Arbitrum- 使用 Optimistic rollups和多輪欺詐證明的L2區(qū)塊鏈
  • Optimism- 使用 Optimistic rollups 和單輪欺詐證明的L2區(qū)塊鏈
  • Hermez- 由 Polygon 管理的 ZK-rollups以太坊L2網(wǎng)絡
  • ZKSync- 使用 SNARK 的 ZK-rollups以太坊L2網(wǎng)絡
  • Starknet- 使用 STARK 的 ZK-rollups以太坊L2網(wǎng)絡
  • Avalanche- 與 EVM 兼容的L1
  • Cronos- 與EVM 兼容的L1

3個最佳的Web3開發(fā)環(huán)境

在選擇構建 dApp 的區(qū)塊鏈網(wǎng)絡時,Web3開發(fā)人員應該考慮可用的開發(fā)人員工具的深度和廣度。幸運的是,EVM兼容鏈受益于多年的以太坊開發(fā),在開發(fā)環(huán)境方面有許多久經(jīng)考驗的選擇。

Hardhat

Hardhat是一個javascript軟件開發(fā)環(huán)境,允許開發(fā)人員編譯、測試、部署和調試以太坊軟件,Hardhat可以通過靈活的插件進行擴充,使開發(fā)人員能夠輕松自定義本地區(qū)塊鏈開發(fā)環(huán)境,并附帶一套強大的故障排除和調試文檔集。

Truffle

一個由三種不同的,基于javascript的開發(fā)工具組成的套件——Truffle、Ganache和Drizzle——Truffle幫助構建者編譯、測試和部署EVM代碼,同時也為前端dApp開發(fā)提供工具。

  • Truffle——主要的開發(fā)環(huán)境、測試框架和部署管道
  • Ganache——允許開發(fā)人員快速創(chuàng)建本地區(qū)塊鏈
  • Drizzle——各種前端庫,用來連接前端組件和智能合約

Brownie

作為基于python框架的,用于EVM開發(fā)的替代品,Brownie提供了一套完整的Web3開發(fā)工具,主要基于Web3 .py包構建,用于編譯、測試和部署dApp。

非 EVM 區(qū)塊鏈

最近,開發(fā)人員開始在區(qū)塊鏈上構建更多不遵循以太坊框架的dapp,因此不兼容EVM。

非EVM網(wǎng)絡工程師認為,EVM鏈太受以太坊框架的限制,而選擇通過設計新的結構進行創(chuàng)新。一般來說,非EVM區(qū)塊鏈從一開始就具有數(shù)據(jù)和交易可擴展性,并允許較高的TPS。

非 EVM 區(qū)塊鏈的示例

  • Flow- L1,使用 Cadence,F(xiàn)low 的原生的面向資源的編程語言
  • NEAR- L1,其智能合約使用 Rust 或 Assemblyscript 
  • Solana- 使用 Rust C、C++ 的L1智能合約
  • Terra- 將 Rust 用于智能合約的L1

非 EVM 區(qū)塊鏈開發(fā)環(huán)境

雖然對于非EVM鏈有一些開發(fā)環(huán)境還不太成熟,但一些網(wǎng)絡已經(jīng)開始為各自的鏈提供開發(fā)工具。

Flow讓開發(fā)者能夠使用原生的Visual Studio Code Extension測試Cadence智能合約的漏洞。

另一個非EVM開發(fā)環(huán)境的例子是Anchor,它允許構建和測試 Solana 合約,具有與 Solidity 和 Truffle 類似的感覺??偟膩碚f,Anchor 的環(huán)境降低了 Rust 和 Solana 開發(fā)的障礙。

我應該使用什么區(qū)塊鏈網(wǎng)絡?

由于單個區(qū)塊鏈通常具有獨特的架構和共識機制,它們不可避免地會針對特定的用例進行更好的優(yōu)化。因此,我們堅定地相信一個多鏈Web3的未來。

考慮到可互操作工具的日益多樣化,EVM框架是一個極其豐富的環(huán)境。此外,EVM兼容性為用戶和開發(fā)人員提供了一個更流暢的過程,可以通過跨鏈dApp移動流動性,并提供了熟悉的用戶和開發(fā)人員體驗。對于早期的開發(fā)人員和新協(xié)議,我們相信圍繞EVM兼容的區(qū)塊鏈進行開發(fā),利用現(xiàn)有的工具、基礎設施和開發(fā)人員文檔,是一個令人信服的條件。

話雖如此,我們也認識到非EVM區(qū)塊鏈對于更有經(jīng)驗的開發(fā)人員的利基功能,他們不斷增長的社區(qū)基礎,以及對早期開發(fā)人員工具支持的增加。

區(qū)塊鏈交互層

在選擇了區(qū)塊鏈網(wǎng)絡之后,Web3堆棧中的下一步是區(qū)塊鏈交互層。這一層允許開發(fā)人員和用戶向區(qū)塊鏈讀取和寫入數(shù)據(jù)。

區(qū)塊鏈交互層:用于向區(qū)塊鏈網(wǎng)絡讀取/寫入數(shù)據(jù)的開發(fā)人員構建塊。

如果我們不熟悉區(qū)塊鏈是如何工作的,這里有一個快速的回顧。

  • 區(qū)塊鏈由數(shù)據(jù)區(qū)塊組成。
  • 區(qū)塊存儲在分布式節(jié)點上。
  • 區(qū)塊鏈中的每個節(jié)點都充當一個“迷你服務器”,它允許操作者讀寫數(shù)據(jù)區(qū)塊。
  • 添加到區(qū)塊鏈的任何區(qū)塊都必須在網(wǎng)絡上的所有節(jié)點之間傳播,以實現(xiàn)同步。

在考慮Web3框架中的數(shù)據(jù)訪問層時,鏈上存儲是標準,因為它本質上是不可變的,并允許任何公眾個人查看/驗證它。

與區(qū)塊瀏覽器一樣,數(shù)據(jù)提供者是區(qū)塊鏈交互層的關鍵部分。對于初學者來說,它們提供了一個進入較低網(wǎng)絡層的窗口,并作為一個在線資源,用于檢索有關交易、地址余額、gas 費用等的實時和歷史數(shù)據(jù)。區(qū)塊瀏覽器通常用于查找支付的關鍵細節(jié)、確定不同交易的狀態(tài)或簡單地了解區(qū)塊鏈使用的總體趨勢。數(shù)據(jù)提供者為公眾提供了閱讀和解釋區(qū)塊鏈的能力。

Web3基礎設施挑戰(zhàn)

但是,如果沒有適當?shù)幕A設施需求,訪問和與區(qū)塊鏈數(shù)據(jù)交互可能會非常困難。

由于直接在鏈上寫入數(shù)據(jù)不具有成本效益,Web3開發(fā)人員使用EVM鏈的內置日志功能,這樣智能合約就可以通過solidity事件以一種可搜索、成本效益高的方式在鏈上“打印”信息。雖然日志記錄可以降低存儲成本,并且是對區(qū)塊鏈進行讀寫的最流行方式,但它需要一個強大的區(qū)塊鏈交互層,以確保開發(fā)人員能夠在事件發(fā)出時捕獲它們。

運行節(jié)點 與 使用節(jié)點服務提供者

從歷史上看,使用區(qū)塊鏈交互層需要運行一個自托管、自維護的節(jié)點。這是一個昂貴且耗時的過程,僅運行一個以太坊節(jié)點的平均成本為8.6萬美元/年。開發(fā)人員沒有構建協(xié)議和dapp,而是發(fā)現(xiàn)自己將工程資源花費在管理節(jié)點的bug、回歸、磁盤問題、CPU流量峰值等方面。

運行我們自己的節(jié)點的成本導致了Alchemy的創(chuàng)建。在其核心,Alchemy公開了一套API,供開發(fā)人員在無需管理節(jié)點的情況下與區(qū)塊鏈進行交互。

作為一個多鏈Web3的堅定支持者,Alchemy 的 API 套件在單一熟悉的 API 框架內提供跨L1(包括以太坊網(wǎng)絡)、L2(包括 Arbitrum 和 Optimism)、側鏈(包括 Polygon)和非 EVM 兼容的 L1(如 Flow)的多鏈支持。

最終,Alchemy允許區(qū)塊鏈開發(fā)人員對整個Web3網(wǎng)絡層進行可靠和可擴展的訪問,從而使他們能夠專注于構建Web3堆棧。

Web3表示層

表示層:更高級別的軟件抽象和前端庫

在許多方面,Web3表示層緊密地反映了Web2開發(fā)的許多方面。

為了創(chuàng)建和開發(fā)前端組件,許多開發(fā)人員轉向歷經(jīng)過檢驗的React.js庫。有了大量的開發(fā)人員和Web3社區(qū)的追隨者,它已經(jīng)成為事實上的Web3前端的標準。

Web2和Web3前端棧的一個不同之處是用于與區(qū)塊鏈數(shù)據(jù)交互的特定庫。

當與數(shù)據(jù)訪問層交互時,Web3的dApp 傾向于使用Ether.js 或 Web3.js,而不是更典型的 HTTP 請求庫,如 Axios 和 Fetch。特別是,Ethers.js 和 Web3.js 都自然支持對托管在區(qū)塊鏈交互層上的區(qū)塊鏈節(jié)點的遠程過程調用 (RPC),從而能夠更無縫地集成到開發(fā)人員的Web3技術堆棧中,并在區(qū)塊鏈讀寫數(shù)據(jù)。

如何在 Ether.js 和 Web3.js 之間進行選擇

在決定是選擇Ether.js 還是 Web3.js時,有幾點需要考慮。

Ether.js 是一個更輕量級的、對開發(fā)人員友好的庫,具有強大的文檔。雖然許多早期開發(fā)人員和資深開發(fā)人員都是通過Ether.js 開發(fā)dApp的,但它由少數(shù)人維護,限制了庫的開發(fā)。

Web3.js擁有最多的分叉/提交,也是被使用最多次的以太坊javascript庫。雖然它也被廣泛使用,但它缺乏ether文檔的廣度和深度,可能不是早期Web3開發(fā)人員的最佳選擇。

Web3.js的另一個替代品是Alchemy Web3,它是一個帶有附加API方法、升級的websocket支持和自動重試功能的分支,允許開發(fā)者更輕松地采用。

去中心化的存儲

雖然區(qū)塊鏈為去中心化狀態(tài)管理、智能合約存儲/執(zhí)行和交易價值提供了一個媒介,但更高級別的應用程序需要額外的組件。對于圖像、視頻和gif等前端內容,區(qū)塊鏈存儲非常昂貴,效率也非常低。去中心化存儲填補了這一空白。

一種解決方案是IPFS (Interplanetary File System),這是一個由節(jié)點組成的分布式網(wǎng)絡,每個人在其中存儲和共享文件、網(wǎng)站、應用程序和數(shù)據(jù)。隨著NFT的興起,IPFS的使用激增,經(jīng)常作為NFT媒體資產(chǎn)的底層存儲介質。

另一個流行的去中心化存儲解決方案是Arweave,它旨在激勵個人永久存儲數(shù)據(jù)。通過Arweave網(wǎng)絡,礦工提供存儲空間以換取代幣,協(xié)議本身確保存儲的數(shù)據(jù)在所有節(jié)點上保持正確和一致。

Web3應用層

在Web3的背景下,應用層涵蓋了DeFi、NFT、身份與認證、數(shù)據(jù)與分析以及許多其他令人興奮的dApp類別??傊?,這些去中心化的Web3應用包括一些最大的Web3公司,如OpenSea、Uniswap和Aave。

作為開發(fā)人員,這通常是最有趣的構建層。可以混合和匹配不同的去中心化應用程序,將強大的原語組合成新的、復雜的產(chǎn)品。

應用層主要允許公共消費者(其中許多人可能不完全理解Web3開發(fā)的復雜性)輕松地與直觀的前端交互。最終,用戶友好型前端讓公眾能夠在日常生活中利用去中心化的互聯(lián)網(wǎng)。

總結

隨著Web3從目前的狀態(tài)發(fā)展到成熟,肯定會有范式的轉變,新的Web3基礎設施工具,以及很多需要學習的東西。

Source:https://www.web3.university/article/web3-stack

責任編輯:張燕妮 來源: 去中心化金融社區(qū)
相關推薦

2023-02-26 01:47:13

2020-07-24 08:12:03

開發(fā)工具Salesforce

2013-06-14 08:47:45

2009-08-27 12:00:40

ibmdwJava

2025-02-08 11:02:57

2021-10-27 10:43:24

開發(fā)技能代碼

2022-04-20 10:56:06

JavaJVM參數(shù)

2023-02-06 18:27:00

開發(fā)人員語言

2012-07-20 10:46:44

Web

2015-09-21 09:34:57

2015-10-13 10:00:04

Web開發(fā)人員網(wǎng)站

2020-06-16 07:46:01

Web開發(fā)工具

2018-11-26 09:55:07

MySQL誤刪數(shù)據(jù)數(shù)據(jù)庫

2020-05-11 09:54:33

JavaScript開發(fā)技術

2022-06-06 10:30:23

容器鏡像

2009-10-19 09:15:05

移動Web開發(fā)

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業(yè)開發(fā)人員提供商

2015-06-04 14:41:37

WebPython框架

2010-09-16 08:58:21

Rails 3Yehuda Katz
點贊
收藏

51CTO技術棧公眾號