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