智能合約的開發(fā)過程與網(wǎng)站或移動應(yīng)用程序的常規(guī)開發(fā)過程有很大的不同。不僅工具和框架是不同的,而且方法也是不同的,例如,如何以協(xié)作的方式開發(fā)智能合約、適當?shù)販y試它們、實現(xiàn)持續(xù)集成并將它們駐留在生產(chǎn)環(huán)境中。
值得一提的是,大多數(shù)區(qū)塊鏈工具都是在Node上制作的。即使智能合約是用可靠的語言編寫的。
用于區(qū)塊鏈后端開發(fā)工具
Visual Studio Code
可靠性是一種相對較新的語言,目前還沒有得到大多數(shù)流行IDE的支持。但是,有一個功能齊全的Visual Studio Code插件,,它支持各種各樣的函數(shù),比如智能合約的語言突出顯示、代碼的完成和編譯。因此,它使Visual Studio代碼成為智能合約開發(fā)的完美IDE。
Truffle
Truffle是用于測試和部署基于以太坊智能合約的最流行開發(fā)框架之一。開發(fā)人員可以在其上創(chuàng)建一個本地環(huán)境。使用Truffle,開發(fā)人員可以編譯、運行單元測試,并將這些人工制品部署到本地機器上的區(qū)塊鏈網(wǎng)絡(luò)。
Truffle為智能合約開發(fā)和測試提供了一種全面的方法合一個智能合約項目模板,該模板包括項目結(jié)構(gòu)、所有需要的文件和目錄。基于以上功能,許多手工步驟可以直接刪除,這就提高了開發(fā)人員的工作效率。
Embark
作為Truffle的替代品,Embark不僅支持EVM區(qū)塊鏈(以太坊),還支持分散存儲(IPFS)和分散通信平臺(Whisper和Orbit)。
它允許您輕松地開發(fā)和部署分散式應(yīng)用程序(DApp), DApp實際上是使用一種或多種分散技術(shù)的無服務(wù)器html5應(yīng)用程序。它還有一個強大的控制臺應(yīng)用程序。
Ganache
Ganache在區(qū)塊鏈開發(fā)過程中扮演著關(guān)鍵角色,因為它是區(qū)塊鏈網(wǎng)絡(luò)的一個極簡版本,您可以使用它進行本地開發(fā)。
它提供了一個區(qū)塊鏈仿真器和一個管理它的web控制臺,它還提供了諸如塊導(dǎo)出器和高級挖掘控制等功能。
因此,您可以創(chuàng)建一個私有的以太坊區(qū)塊鏈來運行測試、執(zhí)行命令和監(jiān)視。因為Ganache自旋了您自己的私有區(qū)塊鏈,所因此所有區(qū)塊鏈操作都是免費執(zhí)行的。
使用Ganache關(guān)鍵的好處在于,一旦您想測試代碼,就可以輕松地將其與Truffle集成,并將合約部署到那里。
Dapp
Dapp是一組實用工具,允許您輕松啟動基于以太坊的區(qū)塊鏈應(yīng)用程序的開發(fā)。Dapp的主要優(yōu)點是:提供了包管理、合約構(gòu)建和部署腳本功能。您還可以使用Dapp運行可靠單元測試、啟動測試網(wǎng)和調(diào)試智能契合約。
Infura
Infura是一個web服務(wù),它充當分布式以太網(wǎng)鏈(如CryptoKitties、Mainnet或Kovan)的網(wǎng)關(guān)。使用Infura的主要好處是您不需要為每個以太網(wǎng)層鏈維護您自己的節(jié)點。在生產(chǎn)中運行時,它可以極大地減少您的上市時間和開銷。
用于區(qū)塊鏈前端開發(fā)的工具
Drizzle
Drizzle是一個與區(qū)塊鏈集成的特殊javascript組件庫,它為您提供了從區(qū)塊鏈到Redux存儲的合約數(shù)據(jù)和事務(wù)數(shù)據(jù)的同步。您可以在使用Drizzle組件的React應(yīng)用程序中使用它。
MetaMask
MetaMask是Chrome和Firefox的擴展,對于調(diào)試區(qū)塊鏈前端應(yīng)用程序非常有用。它為你提供以下服務(wù):
· 允許您通過自身的遠程節(jié)點連接到所需的以太坊網(wǎng)絡(luò),因此不需要為此部署自己的節(jié)點。
· 允許您創(chuàng)建新的或?qū)氍F(xiàn)有帳戶來使用區(qū)塊鏈。它使您能夠使用存儲在本地計算機上的私鑰對事務(wù)進行簽名。
以太網(wǎng)測試和CI工具
在前面的部分中,我們討論了針對單個開發(fā)人員的工具。當您擁有一個團隊時,您應(yīng)該考慮持續(xù)集成和測試。
Ganache CLI
Ganache CLI是Ganache的無頭版本,這使得它非常適合運行測試。使用Ganache CLI,您可以在CI構(gòu)建過程中設(shè)置和拆卸以太網(wǎng)鏈。好消息是,它的狀態(tài)不會在會話之間持久化,因此您可以在一個干凈的環(huán)境中運行所有測試。
Ethlint
Ethlint(以前是Solium)是一個命令行工具,它負責分析Solidity智能合約代碼并搜索安全性問題。
Jenkins、TeamCity、Circle CI和Gitlab
這些構(gòu)建服務(wù)器是眾所周知的,需要為區(qū)塊鏈應(yīng)用程序?qū)崿F(xiàn)適當?shù)腃I/CD流程。您可以將Ganache CLI和Ethlint集成到您最喜歡的CI構(gòu)建步驟中,以實現(xiàn)最快的上市時間。
應(yīng)用程序的托管平臺Node.js web
如果您希望開發(fā)人員能夠單獨訪問具有類似數(shù)據(jù)的智能合約,則需要選擇托管平臺。如果您不想手工進行配置,可以使用PaaS平臺。我建議考慮兩個支持Node的PaaS平臺。PaaS不僅簡化了開發(fā)人員的工作,而且節(jié)省了啟動產(chǎn)品的時間。我們都知道,當我們談?wù)搮^(qū)塊鏈項目的成功時,上市時間是最重要的指標。
Heroku
Heroku是一個允許您運行Node的PaaS。它與Circle CI集成,托管在Amazon Web Service上。
Hidora
允許您在Node.js或任何其他編程語言上運行區(qū)塊鏈應(yīng)用程序。其數(shù)據(jù)中心位于瑞士,因為該地區(qū)擁有最適合區(qū)塊鏈的司法管轄權(quán)。