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