作者:EmmanuelAwosika
原文標題:《20+BlockchainDevelopmentTools》
編譯:ChinaDeFi
據報道,現在區塊鏈是發展最快的領域之一。隨著區塊鏈項目(DeFi、NFT、DAO)的激增,對區塊鏈開發人員的需求也在直線上升。
如果已經在區塊鏈上進行了構建,或者計劃構建,那么這里有關于創建區塊鏈應用程序的一些最佳工具的介紹。
編程語言
要開發區塊鏈應用程序,就需要學習一種編程語言。這些語言可以讓我們創建智能合約代碼,以作為應用程序的后端。
Solidity
目前,Solidity是區塊鏈開發中最流行的編程語言。它是一種高級的,面向對象的語言,它從其他語言(尤其是C++)中借鑒了一些元素。
許多開發人員更喜歡學習Solidity,是因為被看作是事實上的區塊鏈的以太坊使用了Solidity來編寫智能合約。除此之外,Solidity是圖靈完備的,允許我們創建功能豐富的復雜應用程序。
學習Solidity是作為區塊鏈開發人員開始旅程的一個很好的開端。Solidity的流行意味著我們可以訪問為初學者設計的有用的教程、指南和文檔。
Solidity也可以在其他區塊鏈上運行,只要它們與以太坊虛擬機(EVM)兼容。這就意味著我們可以在兼容EVM的區塊鏈上部署項目,如幣安智能鏈、Avalanche、Polygon、MaticNetwork等。
Vyper
Solidity并不是創建智能合約的唯一語言。一種流行的替代方案是Vyper——一種基于Python且兼容EVM的語言。
雖然Vyper的功能和流行程度不如Solidity,但對于熟悉Python的開發人員來說,它是理想的選擇。此外,Vyper的簡單架構減少了軟件錯誤,簡化了智能合同審計。
Rust
Rust是一種較新的編程語言,它在區塊鏈開發社區中越來越受歡迎。它是一種用于編寫智能合約的低級語言,因其存儲效率、簡單性和可靠性而備受贊譽。
NEAR:團隊開發者總數逾800名,較2021年增長41%:1月18日消息,NEAR Protocol發推稱,團隊現有至少200名全職開發者,與2018年1月相比,同比增長率為22%。2022年團隊開發者總數逾800名,較2021年增長41%,自2018年1月以來增長10倍。[2023/1/18 11:18:49]
問題是Rust不兼容EVM,所以我們不能在以太坊和EVM兼容鏈上部署項目。但是像Solana,Terra,NEAR,Polkadot和Elrond這樣較新的鏈可以使用Rust,所以學習這門語言仍然是一項很好的投資。
框架
從頭構建去中心化應用程序(dApp)可能是一項困難的任務,特別是如果我們必須自己處理每一個微小的細節。幸運的是,我們可以受益于「即插即用」基礎設施的軟件框架,以便輕松創建dapp。
框架附帶了用于創建、測試和部署代碼的資源(庫和工具)。從頭開始編寫dApp是沒有必要的,因為我們可以使用現成包,然后添加額外的功能。此外,大多數框架都是由經驗豐富的工程師開發和優化的,所以它們都是強大、高效和通用的。
Truffle
在我們的區塊鏈開發框架列表中,第一個就是Truffle。Truffle是一個基于javascript的框架,用于開發、測試和部署智能合約。它仍然是區塊鏈行業中最常用的框架之一。
Truffle提供了創建功能齊全的dApp所需的資源,它可以提供從內置的智能合約創建工具到測試區塊鏈的環境。它還具有現成的庫,使得構建以太坊dApp的前端更容易。
Hardhat
Hardhat是另一個被強烈推薦給智能合約開發者的框架。與Truffle一樣,Hardhat是一個基于javascript的框架,用于在以太坊上創建、測試、部署和調試應用程序。
Hardhat是一個全面的工具平臺,它抽象出與區塊鏈軟件開發相關的大多數底層通用功能。因此,我們可以專注于更重要的任務,比如為dApp構建核心基礎設施。
Embark
Embark是一個完整的棧開發框架,它允許我們同時構建dApp的前端和后端。雖然位列列表的最后,但Embark與本節中列出的其他框架一樣好。
Square Crypto宣布將向兩名比特幣開發者提供資助:Square的比特幣開發部門Square Crypto今日宣布,將向兩名開發者Jon Atack、Tankred Hase提供資助,新的資金將幫助這兩位開發者全職參與有利于比特幣網絡的開源項目。此外,Square Crypto還闡述了其希望資助的項目類型,除了對比特幣核心(Bitcoin Core)做出貢獻外,Square Crypto還特別關注閃電網絡擴容的開發工作。(Decrypt)[2020/3/5]
Embark為dApp數據存儲、實時代碼測試和智能合約部署提供資源。此外,我們還可以訪問重要的插件,如Etherscan、Solc、Solium等。
集成開發環境(IDE)
集成開發環境(IDE)通過將核心開發工具組合成一個圖形用戶界面(GUI)來幫助應用程序開發。大多數IDE都具有代碼編譯、編輯、語法高亮顯示、構建自動化和調試等功能。
RemixIDE
Remix被許多區塊鏈開發人員認為是IDE的行業標準。使用RemixIDE,我們可以編譯、測試和調試智能合約—所有操作都可以通過一個直觀的界面完成。
RemixIDE是用JavaScript編寫的,我們可以在任何瀏覽器上使用它,我們也可以在自己的計算機上本地運行它(作為桌面應用程序)。它提供了一套全面的庫、插件和其他功能,以推動智能合約開發。
EthFiddle
EthFiddle是一個基于瀏覽器的IDE,用于編寫和調試Solidity代碼。如果我們在一個項目上與他人合作,那么LoomNetwork開發的EthFiddle是一個很好的工具,有了這個軟件,我們可以輕松地編輯、查找代碼片段,并與他人共享代碼片段以獲得反饋。
EthFiddle不像RemixIDE那樣功能豐富,但它能在演示文稿中共享代碼這一點卻很有用。它提供了設計良好的測試和原型功能,使其成為了所有區塊鏈開發人員的好工具。
Ethcode
我們也推薦Ethcode,一個用于開發以太坊智能合約的VisualStudioCode插件。Ethcode為編寫、調試和單元測試合約代碼提供了一個初學者友好的開發環境。
動態 | 比特幣開發者為BTC測試網絡提出新提案Signet:本周三,比特幣開發者提出可替代比特幣測試網的新提案Signet。該軟件可供開發者測試應用程序,且可測試比特幣重大變化(如隔離見證)的可行性和安全性。比特幣核心貢獻者Karl-Johan Alm表示,新測試網更適合集成,且高度協調,除非網絡運營商要求,否則基本上不會發生重組等問題。其進一步指出,Signet就像比特幣,但它是完全中心化的,由一個或幾個人集中控制,必須共同簽名才有效。(Coindesk)[2019/7/18]
代碼是開源的,新的開發人員可以在需要時尋求支持。Ethcode適用于Vyper和Solidity,可以將智能合約部署到以太坊主網和Goerli測試網等。
API和SDK
除了框架和IDE之外,API和SDK也是Web3開發者最重要的工具之一。幫助區塊鏈工程師解決開發過程中遇到的具體問題,并幫助dApp的創建。
為了簡化不同軟件之間的交互,設計了一個API(ApplicationProgrammingInterface)。通過使用API請求數據來改進dApp,我們可以在現有功能的基礎上進行構建。
SDK是「軟件開發工具包」的簡稱,是針對特定平臺構建應用程序的軟件產品集合。區塊鏈開發SDK降低了構建特定于平臺的dapp的復雜性。
AlchemyNFTAPI
隨著NFT價值的飆升,許多開發人員開始將注意力轉向這個行業。如果打算創建一個NFT應用,Alchemy的NFTAPI是一個完美的工具。
AlchemyNFTAPI允許開發人員在用戶友好的界面中顯示不同NFT的元數據。它跨多個鏈(以太坊、Polygon,、Flow等)工作,所以買家在選擇NFT方面有更大的靈活性。
NFTAPI抽象了NFT交互所涉及的大多數技術任務。通過將NFTAPI集成到我們的平臺中,買家在驗證和購買NFT之前不需要閱讀智能合約。
ThirdwebSDK
ThirdwebSDK對于構建Web3應用程序或將Web3特性集成到現有應用程序非常有用。例如,我們可以在我們的應用程序中添加「連接錢包」特性,而不需要編寫代碼。
動態 | 以太坊社區核心開發者發起提高透明度的行動 紛紛列明收入來源和持幣情況:據reddit消息,以太坊核心開發者 Afri Schoedon 因參與以太坊且就職波卡開發公司 Parity Technologies 而被質疑存在利益沖突,進而憤然宣布退出社交網絡之后,以太坊社區核心開發者發起提高透明度的行動,希望通過澄清自己和多個項目的關系,以更高的透明度減少猜疑,增加以太坊社區的凝聚力。以太坊創始人 Vitalik Buterin 通過 reddit 表明了自己和各項目的關系:除了 ETH 之外,他還持有 BCH、BTC、DOGE、ZEC 等非以太坊生態的密碼貨幣,這些密碼貨幣的價值不足其持有 ETH 價值的 10%;他還持有以太坊生態內 KNC、MKR、OMG、REP 的代幣, 這些代幣的價值也不足其持有 ETH 價值的 10%;他個人還投資了 Clearmatics 和 Starkware 兩個初創公司;此外,他除了從以太坊基金會獲得工資收入之外,因個別項目的顧問角色獲得一些收入。除了 Vitalik Buterin 之外,Justin Drake、Martin Swende 等以太坊核心開發者也紛紛仔細列明了自己的收入來源、持幣狀況等信息,借此提高透明度,減少利益沖突。[2019/2/20]
Thirdweb可以用于以下方面:
創建NFT市場
在不編寫代碼的情況下啟動NFT
為治理、社區成員資格和其他目的創建代幣
編程版稅分成NFT
Thirdweb目前支持Fantom,Avalanche,Ethereum和Polygon,并承諾在未來支持更多的鏈。雖然智能合約可以免費使用,但Thirdweb通過收取代幣合約未來版稅的5%來賺錢。
MoralisAPI和SDK
Moralis是一個Web3開發平臺,提供API和SDK,以加快區塊鏈開發周期。MoralisSDK通過提供現成的功能降低了構建全功能dApp的復雜性,例如:
用戶身份驗證
發送和獲取交易
監聽智能合約事件
與智能合約互動
比特幣核心開發者Greg Maxwell已從Blockstream的CTO職位離職:Blockstream官推發消息稱,該公司的CTO Greg Maxwell已經離職,稱他將專注于比特幣的發展。[2018/1/20]
Moralis的跨鏈Web3API還可以聚合關于賬戶余額、代幣、鏈上交易等的全面信息。它支持最流行的鏈,包括Avalanche,Polygon,Ethereum和幣安智能鏈。
測試區塊鏈網絡
默認情況下,大多數智能合約是不可變的,一旦代碼部署到區塊鏈上,就無法做出任何修改。因此,不鼓勵在以太坊主網上測試,因為我們不能在部署后進行更改。
為了解決這個問題,以太坊開發人員可以使用測試區塊鏈網絡(testnet)來測試dapp。測試網絡可以讓我們看到智能合約在區塊鏈上如何工作,允許我們在啟動它之前找到缺陷。
本地區塊鏈(Ganache)
Ganache是用于以太坊開發的本地區塊鏈,可以作為命令行工具或桌面應用程序使用。區塊鏈開發人員可以使用Ganache部署智能合約和執行測試。
Ganache工具擁有用戶友好的界面,可以訪問調試信息和區塊鏈數據(帳戶、區塊、交易)。我們還可以配置其他元素,如區塊時間,以滿足我們的開發需求。
公共測試網絡(Ropsten/Rinkeby)
我們可以使用Ropsten、Goerli或Rinkeby等公共測試網來代替Ganache。主要的區別是Ganache可以離線使用,不需要在線訪問。
一些開發人員更喜歡公共測試網,因為它們模擬了以太坊的行為,可能更適合測試假設。例如,Ropsten使用類似于以太坊主網的工作證明共識。
雖然測試網是免費使用的,但我們需要在瀏覽器錢包中測試以太幣(ETH)才能完成交易。
預言機
雖然智能合約有令人興奮的應用程序,但它們的功能有限,因為它們只能訪問存儲在鏈上的信息。這給任何構建依賴外部信息來執行功能的智能合約的開發人員帶來了問題。
這就是預言機發揮作用的地方。
區塊鏈預言機從不同的來源收集真實世界的信息,并將其傳遞給運行在區塊鏈上的智能合約。這些信息可以以多種形式顯示:實時價格、天氣信息、體育結果等等。
選擇去中心化的預言機是很重要的,因為它們更難被惡意的參與者操縱,并且(主要)提供可靠的信息。許多流行的dapp,如Kyber、Synthetix和Compound,都使用去中心化的預言機來執行智能合約。
Chainlink
目前,Chainlink是市場份額領先的去中心化預言機解決方案。Chainlink于2017年推出,為多個區塊鏈的智能合約提供「可靠和防篡改」數據。
通過Chainlink,我們可以將智能合約連接到現實世界的各種數據源。例如,我們可以創建一個dApp,獎勵預測現實事件結果的用戶。
其他去中心化預言機解決方案包括BandProtocol,Witnet和UniversalMarketAccess(UMA)。這些應用激勵選定的先知提供準確的信息,保持鏈下數據的完整性。
區塊鏈節點供應商
在構建dApp時,我們將需要與區塊鏈交互—無論是讀取鏈上數據還是向區塊鏈寫入數據。為此,我們那需要連接到區塊鏈節點;區塊鏈節點保存了整個區塊鏈的歷史記錄,可以發送/查詢區塊鏈數據。
問題是維護完整的以太坊節點是昂貴的、耗時的和復雜的。因此,建議區塊鏈開發人員使用區塊鏈節點提供者(node-as-a-service)。節點提供程序為客戶端處理區塊鏈基礎設施,使我們可以專注于構建和擴展dApp。
AlchemySupernode
如果我們正在尋找合適的區塊鏈節點提供商,那么AlchemySupernode值得一試。Supernode提供了一套完整開發的API,用于與區塊鏈交互并獲取關鍵的區塊鏈數據。
使用該工具,連接到區塊鏈網絡層就像注冊和接收API密鑰一樣簡單。該服務不僅適用于以太坊,也適用于其他項目——因此在使用區塊鏈方面會有充分的靈活性。
Alchemy的「節點即服務」工具還有以下優點:
免費注冊
隨量擴展基礎設施
增強的API
可靠
Supernode旨在適應我們的需求,并提供無縫的可擴展性。這樣,我們就不會因為節點基礎設施而失眠,并且我們的用戶可以享受更好的體驗。
如果我們想了解其他可用項目,還可以查看其他節點提供程序。包括QuickNode、Infura、GetBlock、BlockDaemon和Chainstack。
分析
在構建dapp時,許多Web3開發人員很快發現跟蹤鏈上活動是困難的。在大多數情況下,在獲得關鍵的應用程序信息(如實時使用信息、用戶采納率和代幣指標)之前,我們需要做一些繁重的工作。
然而,如果我們想要改進dApp并擴大用戶基礎,分析這些數據點是很重要的。為此,我們需要使用像AlchemyMonitor這樣的工具,它可以更容易地為我們的Web3應用程序進行分析。
AlchemyMonitor
AlchemyMonitor是一個強大的,專門用于監控dApp基礎設施和獲得用戶活動的工具。AlchemyMonitor提供dApp健康狀況的實時更新,并可以顯示API調用、錯誤率和響應時間。
AlchemyMonitor儀表板還可以跟蹤dApp的使用情況,并為用戶行為提供有用的見解。它還有一個漂亮的自動警報系統,可以在我們的dApp出現重大故障之前盡早標記問題。
AlchemyNotify
開發人員并不是唯一需要dApp活動實時信息的人;用戶也需要知道dApp上發生了什么。例如,用戶可能想知道在dApp中執行的交易是否成功。
這就是為什么使用AlchemyNotify推送通知服務是一個很好的主意。添加推送通知到我們的dApp可能是優秀和糟糕用戶體驗的區別。Notify為應用程序用戶提供以下信息:
交易通知;
解決活動警報;
Gas價格警報,以及更多。
安全工具
如果今年有什么啟示的話,那就是安全性應該是任何區塊鏈項目的第一優先級。加強智能合約的安全性比在我們的新dApp中添加花哨的功能更值得考慮。以下是今年一些最大的漏洞:
AxieInfinity(被黑6.15億美元)
InverseFinance(被黑1500萬美元)
ElephantMoney(被黑2250萬美元)
還有更多的黑客攻擊,但這些應該會給我們一個基本的概念,智能合約安全是一件嚴肅的事情。如果沒有正確的安全措施,這可能會破壞我們的聲譽并阻止用戶采用。
Octopus
在我們的加強智能合約安全性的工具列表中,首先是Octopus,這是一個用于對智能合約代碼進行詳細分析的解決方案。Octopus提供了符號執行、調用流分析和控制流分析——所有這些都可以幫助我們發現合約錯誤并在為時已晚之前修復它們。
Mythril
下一個是Mythril,ConsenSys支持的智能合約安全工具。Mythril用于分析以太坊虛擬機(EVM)字節碼,并使用污染分析、符號執行和污染解決來識別以太坊軟件中的漏洞。
Securify
最后,我們還有Securify——一個由以太坊基金會支持的智能合約掃描器。Securify可以檢測多達37個不同的軟件漏洞,并為基于Solidity的智能合約實現上下文特定的分析。
錢包
如果我們要創建dApp,我們需要一個錢包來存放資金,即使它是測試以太幣(ETH)。為此,我們可以在幾分鐘內在瀏覽器中設置一個加密貨幣錢包。
MetaMask
我們建議使用MetaMask,因為除了持有ETH,它還提供了很多功能。作為一個瀏覽器擴展,MetaMask注入Web3jsAPI到網站中,這允許用戶直接在他們的瀏覽器與dapp交互。MetaMask還可以執行其他功能,如密鑰管理、讀取區塊鏈數據等。
總結
區塊鏈開發可能是一個令人興奮的過程,但前提是我們一開始就擁有正確的工具。創建一個強大的開發棧可以更容易地創建應用程序,并提高輸出的質量。
撰文:律動BlockBeats&STEPN聯合創始人Yawn5月27日凌晨,Web3應用龍頭STEPN的用戶政策出現「震動」,團隊發布公告表示,發布《關于清查中國大陸帳戶的公告》.
1900/1/1 0:00:00鏈捕手消息,據新浪體育報道,中國網球巡回賽將發布數字藏品,按照中國網球巡回賽數字藏品設計方案,將以網球、球場和城市為元素,設計專屬中國網球巡回賽的數字藏品.
1900/1/1 0:00:00鏈捕手消息,NFT投資組合管理平臺Evaluate.Market宣布完成400萬美元種子輪投資,RhoCapital的IgnitionFund領投.
1900/1/1 0:00:00鏈捕手消息,TheBlock數據研究總監IgorIgamberdiev在推特上表示,JumpCrypto于一周前試圖穩定UST與美元錨定.
1900/1/1 0:00:00鏈捕手消息,Solana生態數據基礎設施解決方案VybeNetwork宣布完成1050萬美元A輪融資,FTXVentures領投.
1900/1/1 0:00:00整理:麟奇,鏈捕手 傳統的Web2身份認證體系,用戶使用中心化賬號獲得各種服務,但存在容易被盜、流程繁瑣等問題,同時各個平臺的賬號信息相互隔離,對用戶造成諸多不便,其中核心問題即在于數據主權.
1900/1/1 0:00:00