2022十大智能合約开發工具
去年,我研究了一些頂級的智能合約开發者框架[2],今年,我們將擴展到更多。
我們將研究十類工具,然後看看每個類別中最適合智能合約/區塊鏈/solidity/vyper/rust/web3开發者的工具(我們現在有太多 “區塊鏈开發者”的術語)。
我已經在某種程度上使用了這個列表中的每個工具,所以您可以放心,我不是簡單地復制粘貼某個工具列表。先對那些不了解我的人來介紹一下我自己,我生活在智能合約的世界裏,並與行業中一些最優秀的人一起工作,作為Chainlink[3]項目的开發者倡導者,我自己的區塊鏈基礎設施公司[4]的首席執行官,以及web3的愛好者。這將為您提供世界上一些最好的开發人員所使用的東西。然而,這個列表並不是所有內容 的列表,所以如果我錯過了您的工具,很抱歉!這只是我認為每個开發者都需要注意的問題。所以,讓我們开始吧!
本文包括一下內容:
智能合約指南
智能合約要點
部署和測試框架
錢包
區塊資源管理器(瀏覽器)
Layer 1節點服務
前端工具
幫助和支持
安全分析
監測和維護
另外,我們制作了一個關於這個主題的視頻,如果你更喜歡看視頻的話可以出去看一下:
1. 智能合約語言
編程語言是任何智能合約开發者最基本的部分,也是如何編寫智能合約的關鍵!我們可以從以下幾種語言中選擇一種,然後开始开發。
Solidity
如果你是智能合約新手,你應該從 solidity[5] 开始。如果你一直在做智能合約,你可能已經了解solidity。不可否認Solidity是最主要的、最常用的智能合約开發語言。Solidity適用於大多數智能合約平臺,如Ethereum、Avalanche、Moonbeam、Polygon、BSC,等等。這是由於大多數區塊鏈都採用了以太坊虛擬機(EVM)[6],而solidity就是為其而生的。在目前排名前十的Defi項目[7]中,有九個使用solidity作為他們的主要編程語言。
我預測未來會有90%的智能合約價值是用solidity完成的。Solidity語言的維護積極,並且有大量的支持。
你也可以把yul/assembly[8]限定為另一種語言,但它是和solidity一起使用的,所以我不把它算作自己的語言。
Vyper
Vyper[9]是另一種與EVM兼容的語言,它主要被前10個Defi項目[10]中的一個使用(其他一些項目將其作為輔助),即Curve.fi[11]。Vyper是一種基於python的語言,我很喜歡使用。它的應用不如它的EVM兄弟solidity多;但是,如果你喜歡python,你可能想嘗試一下這種語言,而不是solidity。
Rust
Rust[12]是區塊上的新生兒,它與不能應用在EVM的區塊鏈,如Ethereum、Polygon、Binance Smart Chain等等。然而Rust可以部署到Solana[13]、Terra[14]等鏈上,或者在Polkadot[15]構建區塊鏈應用。Rust是一種性能良好的通用語言,甚至在智能合約之外使用;因此,許多公鏈選擇它做完开發語言。其邏輯是,“哦,好吧,一些开發人員已經掌握了Rust,所以我們不妨讓开發者能在盡量多的地方使用Rust。”
如果你想進入這些新興的區塊鏈,Rust是一個靠譜的選擇。如果讓我猜,我會說Rust涵蓋了目前世界上鎖定在智能合約中的大約5%的價值……但這完全是猜測。
智能合約語言總結
必須知道的 :Solidity
Python愛好者:Vyper
Terra, Solana, Polkadot:Rust等
智能合約必備工具
這一部分我們討論智能合約中使用到的工具。你不必在這些工具中做出唯一的選擇。如果你愿意,你可以使用所有這些工具!我不確定如何對這些進行分類,但我認為 “essentials ”是一個合適的描述,因為……嗯,它們是必備的。
Chainlink
Chainlink是區塊鏈預言機[16],它是一個讓智能合約成為混合智能合約[17]的工具,它包括一些鏈外組件,並與現實世界連接。智能合約很好,但它們有一個巨大的問題,就是沒有以任何方式與外部世界相連。要使用一些鏈外組件(如數據或鏈下計算)來保持智能合約去中心化,就必須讓鏈外數據和計算去中心化,而這正是Chainlink網絡和工具的作用。絕大多數頂級智能合約平臺都是混合型智能合約,並將預言機作為其基礎設施的關鍵組成部分。只要看看DeFipulse[18]的前10個項目,就知道哪些是混合型的。
Asterik的解釋:Uniswap有一個預言機產品。Yearn和Instadapp是聚合器,與使用預言機的協議合作/是混合型的。Sushiswap使用預言機進行槓杆交易。可以看到,至少有50%的項目將預言機作為基礎設施的重要部分,另外30%(總計80%)以某種方式使用預言機。通過預言機可以獲得資產定價[19]信息、隨機數[20]、事件驅動的自動化執行[21],等等。
對於任何進入這個領域的智能合約开發者來說,Chainlink是一個必不可少的功能,不管是什么語言或區塊鏈[22]。
此外,在2020年和2021年,我們看到了無數的閃電貸攻擊[23]、預言機操縱攻擊等黑客行為[24],在Defi領域造成了近數十億 美元的損失。最令人痛心的是,其中一半以上是可以通過使用像Chainlink這樣可靠的預言機來預防的。請一定不要讓你或你的朋友在2022年使用中心化或不安全的預言機。
請使用像Chainlink這樣的安全預言機解決方案。我們不能讓 “哎呀,使用中心化預言機,讓我的用戶損失了1億美元 ”的情形在2022年繼續上演。因此,請熟悉Chainlink,制作強大的、健壯的應用程序,並保護自己免受預言機攻擊。
Openzeppelin
Openzeppelin[25]鞏固了自己作為 “solidity標准庫 ”的地位。任何時候,任何开發者(包括我自己)都在尋找一種快速的方法來部署NFT/ERC721[26]、ERC20[27]、可升級合約[28]、DAO/治理[29],或者任何在這個領域的开發者想做的項目,十有八九,你會想去找一個Openzeppelin包。
Openzeppelin是一套已經寫好的智能合約,所以你不需要重新發明輪子。我在項目中使用他們已經審計過的可擴展智能合約,為我節省了無數的時間。我無法強調Openzeppelin是多么的重要。我想在我大約80%的教程中,我都在以某種方式使用Openzeppelin。
智能合約要點總結
必須知道的 :Chainlink和Openzeppelin
你可以(而且可能應該)同時使用這兩個東西。以我對這些技術的了解,怎么強調都不過分。
3. 部署和測試框架
去年,我的回顧文章是專門針對這個類別的[30],所以今年,我一定要給你說說我認為這些框架在今天的地位的差異。智能合約框架是任何开發者工作中的重要部分。它們幫助你高效地測試和部署智能合約。掌握其中至少一個是成功的關鍵一步。
為了能更直觀的了解,看看我根據defpulse編制的圖表,顯示了一些頂級的defi項目所使用的开發框架。
Defipulse的10大Defi項目以及他們使用的智能合約开發框架此外,我是這樣看待這些开發框架目前的情況的:
明星選手:
Hardhat[31], Brownie[32], DappTools[33]
優秀選手:
Remix[34], Truffle[35], Apeworx[36], Foundry[37]
替補選手:
Waffle[38], sbt-ethereum[39], web3j[40], Embark[41], Saddle[42]
非EVM:
Anchor[43], TerraSDK[44]
過時的:
Etherlime, Openzeppelin SDK, Cobra, Parasol
明星選手
Hardhat
現在,hardhat框架是最主要的智能合約开發框架。Hardhat是一個基於javascript和solidity的开發框架,可以快速提升你的應用程序的开發速度。你可以查看hardhat-starter-kit[45],了解一下hardhat項目的使用案例。
有了Hardhat的測試速度、對typescript的支持、廣泛的採用、令人難以置信的以开發者體驗為中心的團隊,難怪它的受歡迎程度上升得如此之快。在去年的這個時候,我把這個框架放在了首位,現在依然是。它在後端使用ethers.js[46],自帶的本地區塊鏈用於測試,而且團隊目前正在建立一個新的高級开發平臺[47],集成到Hardhat中,我對2022年裏的這個嘗試感到無比興奮。
如果你了解我,由於javascript的種種怪異之處[48],我並不是它的最大粉絲,所以很多時候,我更喜歡用Hardhat與typecript一起使用。Hardhat很容易成為我第二個最常用的框架。
如果你喜歡javascript,或者你想使用最流行的、支持最多的框架,我強烈推薦這個框架 。
Brownie
如果你讀過我的任何其他材料,你就會知道我愛上了brownie[49]框架。
Brownie是一個开源的基於python的框架,建立在web3.py[50]之上,被Curve.fi[51]、yearn.finance[52]和Badger[53]等協議使用。它同時支持solidity和vyper,但這個框架的主要亮點是基於python。Brownie的誕生是因為許多python工程師鄙視使用javascript工作,並希望有一個python的框架。此外,大多數傳統的金融技術領域都使用python而不是javascript,因此,隨着Brownie的創建,從金融技術領域轉移到Defi也變得更加容易。
Brownie是我創建新項目時的首選框架,我自稱是brownie开發者的倡導者。你可以查看brownie-starter-kit[54](在Brownie世界裏也被稱為 “mixes”),开始使用框架开發。請務必查看Brownie Mixes[55] repo中的其他入門套件的列表。
如果你喜歡python,想使用一個更直接的框架或使用我最喜歡的框架,我強烈推薦這個框架 。
DappTools
雖然Dapptools[56]沒有華麗的logo[57],但它是一個用Haskell構建的應用程序。不過別擔心,你不需要知道Haskell就可以使用它。
Dapptools主要由MakerDAO[58]團隊(DAI背後的團隊)使用,它的靈感來自於Unix[59]的哲學:“一個程序只做一件事,並把它做好。(Write programs that do one thing, and do it well.)” Dapptools是一個專注於命令行的工具,在這裏,你可以使用你已經熟悉的命令行/shell工具,如bash或zsh,而不是用python、javascript或其他高級編程語言來幫助你开發。這有效地減少了一個你必須熟悉的技術,並迫使你在shell腳本方面做得更好!它配備了一套工具,如dapp、seth、ethsign和hevm,每一個工具都是專門為智能合約开發者日常工作的必須的部分而設計的。
我最近开始用Dapptools[60]工作,我喜歡它背後的思維方式。我寫了一個Dapptools的入門套件[61],展示如何使用該工具。使用Dapptools,需要會使用makefiles[62]和shell腳本來 “生產(productionize )”你的代碼。Dapptools認為測試應該用solidity來寫,而fuzzing[63]應該是內置的。
我使用它的經驗是有點笨拙,但我覺得這很大程度上來自於我平庸的bash腳本技能。我認為每個人都應該更好地使用shell腳本,我喜歡它迫使我去學習。
如果你不想學習另一種語言如javascript或python,你喜歡在你的設置中使用盡可能少的工具,你喜歡MakerDAO,或者@transmissions11[64]讓你改變了看法,我強烈推薦這個框架 。
優秀選手
Remix
我對Remix的簡要評價:每個人都應該知道如何使用Remix[65],但不一定用於生產環境。
Remix本身不是一個框架,而更像是一個IDE[66]。Remix是一個我認為每個人在开始時候都應該使用的工具,這樣每個人在嘗試分享想法時都可以有一個共同認知。不是每個人都會知道python、javascript或bash腳本的連接,所以使用像Remix這樣的工具是完美的,因為它是一個可視化的工具。
當部署完一個合約時,Remix就會出現與之交互的按鈕。選擇solidity版本、編譯、運行solidity測試等都很容易。如果你想使用javascript,它也有javascript腳本可供選擇。Remix是可擴展的,所以如果你想增加功能,你可去進行擴展,甚至可以在本地主機上搭建一個Remix开發環境[67],用來運行你本地倉庫中的代碼。
Remix是一個把大家聚集在一起的工具,我很高興我們有一個團隊在做這樣一個神奇的工具來幫助大家。不過,Remix並不是我推薦高級用戶使用的東西,因為你需要在本地开發環境中使用更多微調的工具,而不是總是依賴網絡IDE。我不推薦對Remix進行高級設置,但是,如果你喜歡用它工作,也是可以的!
我強烈建議大家熟悉Remix (如果你知道solidity,就可以直接上手了)。
Truffle
Truffle[68]是最先出現的框架之一,最初是Consensys[69]的一部分,從Consensys剝離出來,然後又合並回Consensys。它是一個基於javascript的框架,包含了Ganache[70](甚至像brownie這樣的框架也使用它)、Drizzle[71]和現在最新的truffle teams[72]等工具。Truffle是所有框架中歷史影響最大的,你可以看到他們對行業的影響,很多框架都採用了Truffle的實踐做法。我們應該感到幸運,這個團隊的出現,為框架建立了如此優秀的起點。如果你想嘗試一下,可以看一下Truffle的入門套件[73]。
他們最近更新了文檔[74],正在推出第七版的Ganache[75],我和他們的團隊談過,他們告訴我他們有很大的計劃,我很興奮。
早在2019年,每個人都聽說過或正在使用Truffle,但在那之後的時間裏,情況已經發生了變化。Hardhat一直處於上升勢頭,以鞏固自己作為事實上的javascript框架的地位。在使用Truffle時,我經常遇到奇怪的錯誤;他們的typescript支持很微妙,測試運行速度比Hardhat[76]慢得多。目前,當Hardhat在所有方面都做得更好時,就很難為Truffle辯護了。
在2021年年初,我提到過[77]我對Truffle感到緊張,以我對該框架的了解,看起來2021年是Hardhat接管的一年。然而,我認為Truffle的未來仍然是光明的。他們有一個非常棒的團隊,他們已經想好了Truffle將在哪裏生存(現在有Consensys),我期待他們在2022年有大作為。
Ganache 是一個框架,如果你是從Truffle开始接觸智能合約开發框架,並且喜歡Truffle的語法,你應該使用這個框架。在大多數情況下,我推薦Hardhat而不是Truffle;然而,我認為Ganache仍然是一個強大的工具,並建議任何希望與在本地構建測試網的人看一下Ganache。它有一個漂亮的用戶界面組件,可以用它來更容易地 “看到 ”交易;它的啓動很簡單,可以在全局安裝。
ApeWorX
ApeWorX[78]是Python的新生力量,它從brownie社區分支出來,做了一個比它的祖先brownie[79]更模塊化的專注金融的框架。
Apeworx的設置和語法與brownie相同,但在應用時有一些有趣的改進。
我只用過Apeworx一點,它感覺非常像brownie,我喜歡增加插件。目前還不清楚這是否會成為Brownie的續集(類似於Hardhat接管Truffle的心智),或者兩者是否會並行存在。無論如何,我非常期待看到Doggie[80]和他的團隊將在2022年創造些什么,而且絕對是一個值得關注的框架,如果你想要一些可以添加插件的類似brownie的框架,可以嘗試一下。
Foundry
Foundry[81]是用Rust編寫的dapptools[82]。這是對該工具最直接的總結。
我使用foundry的時間比使用Dapptools的時間少一點,感覺這可能是Dapptools的繼任者,但我不確定。它也是以命令行為主,需要類似的文件結構,而且幾乎所有來自Dapptools的命令都與foundry的類似。Paradigm[83]團隊的Georgios[84]和朋友們對流行的Dapptools進行了重塑,甚至在他們的發布文章[85]中向Dapptools致敬。
許多命令和文件結構設置與Dapptools相同。這個框架快速、強大,專注於在solidity中構建測試,並內置了模糊測試和其他強大的工具。
Rust正在成為越來越多的最受歡迎的技術之一,為區塊鏈應用程序的基礎設施提供動力,而這感覺就像它符合這一趨勢一樣。我很期待看到哪些大公司同時採用foundry和Dapptools。
替補選手
我在這一節會說得快一點,因為這些可能是你想使用的框架,但我對它們不太熟悉,或者我自己沒有很好地嘗試它們。
Waffle
Waffle[86]仍然是一個流行的框架,只是它更注重於測試而不是一整套工具。可以將Waffle與Hardhat一起使用,因為它們都是基於javascript的,而且很多人都使用這種組合設置。
Saddle
Saddle[87]是Compound[88]對Truffle的重塑。如果你喜歡Compound,可以試試這個!
sbt-ethereum
在過去的幾年裏,我沒怎么用過java,這在我試用sbt-ethereum[89]的時候表現出來了。Sbt-ethereum將自己推銷為:
“一個基於文本的互動平臺,為“業余愛好者” — 不是程序員的人創立 — sbt-ethereum.io[90]
這是我去年了解過的另一個框架,遺憾的是我的scala技能並不好。然而如果你想使用命令行,這是另一個選擇。
Web3j/Epirus
這是我去年了解過的另一個框架;看看他們的網站,似乎他們的主要產品已經從框架轉向了企業區塊瀏覽器。然而,他們仍然有他們的web3j[91]包,這是一個基於java的框架。如果你是java开發者,可以試試這個,看看它的感覺如何。
Embark
Embark[92]我去年給了一個相當亮眼的評價。我能夠從他們的框架中測試和部署智能合約,並使用一些UI工具。然而,它已經一年多沒有收到git提交了[93],而且從那時起,智能合約生態系統中的一些事情已經發生了變化,所以我不確定這對這個框架的未來意味着什么。
非EVM
Anchor
就目前而言,我認為Anchor[94]框架是目前Solana上最大的非EVM框架。如果你在Solana上做开發,我強烈建議你試試Anchor[95],因為它感覺是目前最好的解決方案。
TerraSDK
Terra[96]是另一個基於rust的智能合約區塊鏈構建SDK/开發框架。他們現在有Terra.js[97]和一個python SDK[98],可以用它們开始構建應用。這是另一個我沒有花很多時間的框架,但我計劃在今年多用一些。
4. 錢包
部署智能合約,需要一個錢包來存儲資金或至少是測試網的資金。出於各種目的,下面這些錢包會經常用到。
MetaMask
Metamask[99]是這個領域中幾乎每個人都知道或應該知道的一個工具。它很簡單,很適合在瀏覽器中做測試,是所有前端开發者需要做的。幾乎每個人都應該有一個Metamask或一些類似Metamask的瀏覽器錢包(比如Solana上的Phantom[100])。
Metamask是一個熱錢包[101],很容易上手。熱錢包的問題是,一旦你的私鑰泄露,你就完蛋了!此外,它們總是連接到互聯網上,所以如果有人進入你的電腦,你可能也會完蛋!幸運的是,有一些有用的其他工具供我們使用。
Genosis Safe
Genosis safe[102]被稱為多籤錢包,意味着它需要X個籤名來發送交易。這樣一來,如果一個錢包被攻破,也沒有關系,因為該攻擊者至少需要攻破一半的密鑰持有者。
這對智能合約开發者來說是一個有力的工具,特別是那些處理大量資金並希望確保其資產安全的人。很多DAO也使用Gnosis safe來存儲他們的資金庫。此外,gnosis safe還與許多其他DAO工具集成,如用於投票的Snapshot[103]。
Ledger / Trezor
Ledger[104]和Trezor[105]被稱為 “冷錢包”,或者說是在進行轉換時比較麻煩的錢包。這種繁瑣是故意的;它們使你更難移動資金,攻擊者更難。
你可以在項目中使用冷錢包、熱錢包和多籤錢包任何組合,而且也應該這樣做!對於你需要經常/快速訪問和移動的小額資金,使用熱存儲;對於你長期不想碰的東西,使用冷存儲;對於你希望保護的重大資金,使用多籤。甚至可以把冷錢包作為一個多籤的密鑰之一。
5. 區塊鏈瀏覽器
對於想要 “看到 ”交易和鏈上正在發生的事情的人來說,區塊瀏覽器是重要的工具。如果你有Layer 1的網絡連接,你也可以建立一個這樣的工具,但99%的時候,你會想使用別人的。
Etherscan
啊,Etherscan[106],你怎么會是免費的。Etherscan是我希望每個人都能知道並了解如何使用的工具之一。我很想看到他們开源,但我明白這不會是一個讓他們一直保持令人印象深刻的狀態的很好的激勵措施。Etherscan內置了大多數服務,而且非常好用。Etherscan是ETH社區最主要的區塊瀏覽器,他們已經為Polygon[107]、ETH 2[108]和Binance Smart Chain[109]等項目建立了支持。
Etherchain
然而,我很高興他們有競爭,所以他們必須保持警惕!Etherchain[110]是一個輕量級的區塊瀏覽器,它也發布了一個ETH 2 [111]瀏覽器,目前我使用的比Etherscan更多!
Ethplorer
另一個ETH區塊瀏覽器,Ethplorer[112],可能是另一個你可能想要知道的瀏覽器。
大多數其他區塊鏈也有多個區塊瀏覽器客戶端;然而,EVM/ETH社區很快就擁有了最多的客戶端,因此我選擇在這裏重點介紹它們。
6. Layer 1 節點服務
你需要接入一個區塊鏈來發送交易!如果你擔心成本問題,所有這些都有免費的選項,我強烈建議你嘗試一下,但你也可以隨時自己運行自己的第一層網絡節點!對於那些不熟悉的人來說,“第一層網絡節點 ”指的是你的區塊鏈連接。例如,要在ETH鏈上發送交易,你需要將交易發送到一個ETH節點。即使是Metamask和錢包也有一個連接到後臺運行的第一層網絡節點!
Alchemy
Alchemy[113]非常棒,是我進行ETH連接和所有EVM連接的首選。它的速度很快,有一個漂亮的用戶界面來跟蹤請求,有大量的可用的第一層網絡。他們的反應速度驚人,有很好的支持和开發者倡導團隊,我對他們在2022年的發展感到非常興奮。
Infura
Infura[114]是另一個在2020年佔主導地位的應用,而且可能仍然是。他們已經擴展到更多的產品,如IPFS,有一批堅實的追隨者,許多工具與Infura原生支持。如果你正在尋找一個可靠的第一層網絡接入,這就是你要找的。
Moralis
我甚至不知道Moralis[115]有第一層網絡接入產品,直到幾個月前我才知道,我已經用過幾次了,它非常好用!它沒有Infura或Alchemy那樣的附加功能,但我認為這是因為Moralis的附加值更多體現在他們的前端服務上(這些服務非常棒,我們很快就會提到)。但我認為,對於任何想使用這些工具的人來說,Moralis仍然是一個很好的選擇。
QuickNode
如果上面的一個沒有我想要的區塊鏈,QuickNode[116]有可能會有。QuickNode擁有大量可以連接的節點,並且設置簡單,是另一個可能適合你的服務。
7. 前端工具
對於構建全棧應用程序/前端,你可能仍然會使用所有的一些標准工具,如javascript、HTML、CSS,也許還有一個框架,如react、angular或svelte。除此以外,還有一些奇妙的工具將使你的前端开發生活變得更加美好。
Web3js/Ethersjs
Web3js[117]和Ethersjs[118]是世界上使用的兩個主要的javascript框架,它們都是非常出色的前端开發庫。如果你要建立一個網站,你幾乎必須使用這些工具中的一個,而且它們都做得很出色。最近,趨勢是Ethersjs更受歡迎;但其實它們都能完成一樣的工作。
Moralis
Moralis[119]是一個我認為每個人都應該了解的工具。它支持开箱即用的web3js,並有大量的工具來改善你的前端开發。它被宣傳為 “加密貨幣的軍火基地”,我認為它正是這樣做的。也許你想要一個數據庫來使你的前端更快;也許你想建立一個Etherscan[120]或Opensea[121];也許你需要一個地址擁有的NFT列表。有很多你可能想做的事情,Moralis都有內置的支持。
它擁有你所需要的一切,包括一個开源的工具包和一個基於雲的服務框架。
我強烈建議每個在2022年建立web3網站的人了解Moralis。他們有很多模板[122]可以讓你的項目开始。
UseDapp
Usedapp[123]是另一個开源項目,它有很多用於web3的插件,我在一些項目中使用過它,並且很喜歡。
Drizzle
Drizzle[124]來自Truffle、Metamask、Infura和Consensys的家族,做得很好。它在你的javascript中創建了一些簡單的包裝器,與你的合約一起工作,它還內置了React支持!請看Dapp大學關於使用Drizzle的視頻[125]。
更多工具
此外,我認為每個人都應該了解create-eth-app[126]和scaffold-eth[127]。確切地說,它們不是 “工具”,而是構建web3應用程序/dapp的入門套件,所以我認為每個人都應該了解。
8. 獲取幫助和支持
每個开發者都應該知道在他們遇到問題時獲得幫助的基本路线圖[128]。
谷歌一下確切的錯誤
在StackOverflow或Stack Exchange ETH(或任何Stack Exchange)上查找
在項目的Github上提出一個issue
在論壇上提出問題
在 Discord 中提問
在這些地方提問時,你的問題應該是:
可搜索 :這樣其他有同樣問題的人就能找到你的問題。
最小化和可重復性 :你的用途越具體,你就越不可能得到答案。
你要把在論壇或stack overflow中的提問視為 “活的文檔”。你的問題格式越好,就越容易得到回答。沒有不好的問題,只有格式不好的問題;讓你的問題成為一個好問題[129]吧!
StackOverflow[130] & Stack Exchange ETH[131]
這是你的經驗法則:“如果我遇到一個問題,而它的答案沒有出現在谷歌結果的第一頁,我應該把它發布在Stack Overflow上。”
這樣做你會得到你想要的答案,同時幫助整個社區!有時候並不總是能從這些網站上得到回應,因為有時你的問題可能太難了,以前沒有人做過,或者知道答案的人沒有看到它。有時,我會在討論區中加入我的問題的鏈接,以吸引更多的人關注它。但一個經驗法則是,當我遇到問題時,Stackoverflow或Stack Exchange ETH應該是我最先尋找的地方之一。
你應該發到哪個地方?說實話這並不重要。Stack Exchange通常更友好一些,但StackOverflow的搜索排名更好,所以這取決於你。這兩個論壇都是針對具體的技術問題。不要用這些論壇來討論更多的理論問題或大問題。這更適合在 Discord 或 Twitter 上討論。
Discord
在2022年,我希望我們從Discord[132]轉移到像StackOverflow這樣的論壇作為支持和問題的主要手段。Discord的問題不會被索引,因此不能被排名。Discord對於快速聊天和交流想法是很好的,但不應該被用作支持渠道。
論壇
論壇是非常棒的,因為它們像StackOverflow一樣有索引和排名。一個很好的例子是Openzeppelin論壇[133],它的排名很好,而且問的問題也很好。
9. 安全分析工具
我們都知道,在將代碼發布到區塊鏈上時,審計是至關重要的,因為任何人都可以查看,一旦它發布了,就有可能被利用!因此,有一些工具可以幫助我們確保在代碼中減少錯誤,這是非常重要的。這個領域已經出現了一些工具,使我們的智能合約更加安全。
不過我還沒有使用過這部分的所有工具。我所做的少數審計已經使用了Trail of Bits套件和MythX(以及手動滾動瀏覽每一行代碼!)。你可以查看一下這些工具的其他評論,包括 charingane[134]和 Matt Solomon[135].
記住,這些工具並不總是能抓住每一個錯誤,一定要自己的能力!。
Slither
Slither[136]正在成為靜態分析[137]的首選工具之一。Slither由Trail of Bits[138]團隊(該領域我最喜歡的審計機構之一)建立,易於使用,可以捕捉工程師可能犯的許多簡單錯誤。我強烈建議大家嘗試一下這個开源的錯誤捕捉器!
MythX
MythX[139]是Consensys的另一個工具,它是基於雲的測試bug的工具,據說可以做更深入的挖掘。許多像Aave和我一樣的用戶喜歡它的深度。它確實對用戶有一個付費門檻,但如果你有錢的話,它是值得的。
Mythril
Mythril[140]是MythX產品的分析工具的一個开源子集。這不是一個我已經深入研究過的工具,但它看起來會給你一些有希望的簡單結果。
Manticore
Manticore[141]是另一個Trail of Bits工具,但它不做靜態分析,而是做符號執行[142],它找出什么會觸發你的智能合約工作。如果你已經用Slither工作,你不妨也試試這個!
Echidna
接下來,Trail of Bits(你知道為什么他們是我的最愛之一)又推出了Echidna[143]。這是一個針對EVM合約的fuzzer[144],如果你正在使用Trail of Bits的其他工具,你不妨再一次嘗試一下。
Securify
Securify[145]是一個令人難以置信的开源工具,它可以尋找特定的漏洞。這是另一個你可以嘗試的工具!
10. 監測和維護
我們的最後一節沒有圖片,因為對於監控,我通常使用很多自己的腳本。然而,我認為Openzeppelin的Defender[146]和Tenderly[147]是你應該100%熟悉的工具。它們都是允許你監控你的生產代碼並確保它們保持安全的工具!
如果你還沒有,我強烈建議你嘗試一下這兩個工具,並讓我知道你的想法。
總結
這是我迄今為止最大的一篇文章,它包含了一個龐大的工具清單。我知道有很多,但是你在這個領域建立的越多,你就越能意識到這些工具中的每一個對於快速建立應用程序是多么重要。
2022年將是瘋狂的一年,我希望我已經給了你一些想法,讓你知道今年應該嘗試什么,以建立你的驚人的、獨特的、鼓舞人心的web3應用程序。
讓我知道你認為我錯過了什么工具,請在評論部分告訴我!祝你在新的一年裏過得愉快!讓我們把它搞個大的!
如果你想在今年开始你的區塊鏈之旅,請查看如何成為一名區塊鏈工程師[148],以及這份有10個優質的資源的清單[149]。
原文地址:Top 10 Smart Contract Developer Tools You Need for 2022
翻譯:團長
參考資料
[1]
團長: https://learnblockchain.cn/people/320
[2]
頂級的智能合約开發者框架: https://betterprogramming.pub/the-top-blockchain-developer-frameworks-for-2021-89afa5e7bd04?sk=e7e2b2fb5b34d58e3cd20877fa33df51
[3]
Chainlink: https://chain.link/
[4]
我自己的區塊鏈基礎設施公司: https://alphachain.io/
[5]
solidity: https://learnblockchain.cn/docs/solidity/
[6]
以太坊虛擬機(EVM): https://learnblockchain.cn/2019/04/09/easy-evm
[7]
前十的Defi項目: https://defillama.com/
[8]
yul/assembly: https://docs.soliditylang.org/en/v0.8.9/yul.html
[9]
Vyper: https://vyper.readthedocs.io/en/stable/
[10]
前10個Defi項目: https://defillama.com/
[11]
Curve.fi: https://curve.fi/
[12]
Rust: https://www.rust-lang.org/
[13]
Solana: https://solana.com/
[14]
Terra: https://docs.terra.money/Tutorials/Smart-contracts/Overview.html
[15]
Polkadot: https://polkadot.network/
[16]
區塊鏈預言機: https://learnblockchain.cn/article/587
[17]
混合智能合約: https://blog.chain.link/hybrid-smart-contracts-explained/
[18]
DeFipulse: https://defipulse.com/
[19]
資產定價: https://docs.chain.link/docs/get-the-latest-price/
[20]
隨機數: https://docs.chain.link/docs/get-a-random-number/
[21]
事件驅動的自動化執行: https://docs.chain.link/docs/chainlink-keepers/introduction/
[22]
不管是什么語言或區塊鏈: https://docs.chain.link/
[23]
閃電貸攻擊: https://www.coindesk.com/tech/2020/11/11/flash-loans-arent-the-problem-centralized-price-oracles-are/
[24]
黑客行為: https://rekt.news/leaderboard/
[25]
Openzeppelin: https://docs.openzeppelin.com/openzeppelin/
[26]
部署NFT/ERC721: https://www.youtube.com/watch?v=p36tXHX1JD8
[27]
ERC20: https://betterprogramming.pub/python-blockchain-token-deployment-tutorial-create-an-erc20-77a5fd2e1a58
[28]
可升級合約: https://www.youtube.com/watch?v=bdXJmWajZRY
[29]
DAO/治理: https://github.com/brownie-mix/dao-mix
[30]
專門針對這個類別的: https://betterprogramming.pub/the-top-blockchain-developer-frameworks-for-2021-89afa5e7bd04
[31]
Hardhat: https://learnblockchain.cn/docs/hardhat/getting-started/
[32]
Brownie: https://eth-brownie.readthedocs.io/en/stable/
[33]
DappTools: https://learnblockchain.cn/article/3118
[34]
Remix: https://remix.ethereum.org/#optimize=false&runs=200
[35]
Truffle: https://trufflesuite.com/
[36]
Apeworx: https://www.apeworx.io/
[37]
Foundry: https://github.com/gakonst/foundry
[38]
Waffle: https://github.com/EthWorks/Waffle
[39]
sbt-ethereum: https://www.sbt-ethereum.io/
[40]
web3j: https://www.web3labs.com/web3j-sdk
[41]
Embark: https://framework.embarklabs.io/
[42]
Saddle: https://github.com/compound-finance/saddle
[43]
Anchor: https://project-serum.github.io/anchor/getting-started/introduction.html
[44]
TerraSDK: https://docs.terra.money/
[45]
hardhat-starter-kit: https://github.com/smartcontractkit/hardhat-starter-kit
[46]
ethers.js: https://docs.ethers.io/v5/getting-started/
[47]
一個新的高級开發平臺: https://medium.com/nomic-labs-blog/slang-rethnet-2ad465fd7880
[48]
怪異之處: https://www.youtube.com/watch?v=3se2-thqf-A
[49]
brownie: https://eth-brownie.readthedocs.io/en/stable/
[50]
web3.py: https://web3py.readthedocs.io/en/stable/
[51]
Curve.fi: https://curve.fi/
[52]
yearn.finance: https://yearn.finance/
[53]
Badger: https://badger.com/
[54]
brownie-starter-kit: https://github.com/smartcontractkit/chainlink-mix
[55]
Brownie Mixes: https://github.com/brownie-mix
[56]
Dapptools: https://dapp.tools/
[57]
華麗的logo: https://github.com/dapphub/dapptools/issues/903
[58]
MakerDAO: https://makerdao.com/en/
[59]
Unix: https://en.wikipedia.org/wiki/Unix
[60]
Dapptools: https://learnblockchain.cn/article/3118
[61]
Dapptools的入門套件: https://github.com/smartcontractkit/dapptools-starter-kit
[62]
makefiles: https://www.gnu.org/software/make/manual/html_node/Introduction.html
[63]
fuzzing: https://en.wikipedia.org/wiki/Fuzzing
[64]
@transmissions11: http://twitter.com/transmissions11
[65]
Remix: https://remix.ethereum.org/
[66]
IDE: https://www.redhat.com/en/topics/middleware/what-is-ide
[67]
在本地主機上搭建一個Remix开發環境: https://ethereum.stackexchange.com/a/60118/57451
[68]
Truffle: https://learnblockchain.cn/docs/truffle/
[69]
Consensys: https://consensys.net/
[70]
Ganache: https://trufflesuite.com/ganache/
[71]
Drizzle: https://trufflesuite.com/drizzle/
[72]
truffle teams: https://trufflesuite.com/blog/sunsetting-truffle-teams/
[73]
Truffle的入門套件: https://github.com/smartcontractkit/truffle-starter-kit
[74]
文檔: https://trufflesuite.com/docs/truffle/testing/writing-tests-in-javascript.html
[75]
第七版的Ganache: https://github.com/trufflesuite/ganache/releases
[76]
Hardhat: https://learnblockchain.cn/docs/hardhat/getting-started/
[77]
提到過: https://betterprogramming.pub/the-top-blockchain-developer-frameworks-for-2021-89afa5e7bd04
[78]
ApeWorX: https://www.apeworx.io/
[79]
brownie: https://eth-brownie.readthedocs.io/en/stable/
[80]
Doggie: https://twitter.com/fubuloubu
[81]
Foundry: https://www.paradigm.xyz/2021/12/introducing-the-foundry-ethereum-development-toolbox/
[82]
dapptools: https://dapp.tools/
[83]
Paradigm: https://www.paradigm.xyz/
[84]
Georgios: https://twitter.com/gakonst
[85]
發布文章: https://www.paradigm.xyz/2021/12/introducing-the-foundry-ethereum-development-toolbox/
[86]
Waffle: https://ethereum-waffle.readthedocs.io/en/latest/
[87]
Saddle: https://github.com/compound-finance/saddle
[88]
Compound: https://compound.finance/
[89]
sbt-ethereum: https://www.sbt-ethereum.io/
[90]
sbt-ethereum.io: https://www.sbt-ethereum.io/
[91]
web3j: http://docs.web3j.io/latest/
[92]
Embark: https://framework.embarklabs.io/docs/
[93]
git提交了: https://github.com/embarklabs/embark
[94]
Anchor: https://project-serum.github.io/anchor/getting-started/introduction.html
[95]
Anchor: https://solana.com/
[96]
Terra: https://docs.terra.money/SDKs/
[97]
Terra.js: https://terra-money.github.io/terra.js/
[98]
python SDK: https://terra-money.github.io/terra.py/
[99]
Metamask: https://docs.metamask.io/guide/
[100]
Phantom: https://phantom.app/
[101]
熱錢包: https://www.gemini.com/cryptopedia/crypto-wallets-hot-cold
[102]
Genosis safe: https://learnblockchain.cn/article/2980/
[103]
Snapshot: https://snapshot.org/#/
[104]
Ledger: https://learnblockchain.cn/article/3359
[105]
Trezor: https://trezor.io/
[106]
Etherscan: https://learnblockchain.cn/docs/etherscan/
[107]
Polygon: https://docs.polygon.technology/docs/develop/getting-started/
[108]
ETH 2: https://learnblockchain.cn/article/572
[109]
Binance Smart Chain: https://bscscan.com/
[110]
Etherchain: https://etherchain.org/
[111]
ETH 2 : https://learnblockchain.cn/article/572
[112]
Ethplorer: https://ethplorer.io/
[113]
Alchemy: https://alchemy.com/?a=673c802981
[114]
Infura: https://infura.io/
[115]
Moralis: https://moralis.io/
[116]
QuickNode: https://www.quicknode.com/
[117]
Web3js: https://learnblockchain.cn/docs/web3.js/
[118]
Ethersjs: https://docs.ethers.io/v5/
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...
悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤
一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...
登鏈社區
文章數量
6粉絲數
0