掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
譯者 | 陳峻

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁制作,對(duì)房屋鑒定等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化排名優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
審校 | 孫淑娟
目前,我們正處于Web3的技術(shù)爆發(fā)期。作為一名Solidity開發(fā)人員,如果您希望在比以太坊(Ethereum)更快、更安全、且更具可擴(kuò)展性的區(qū)塊鏈上進(jìn)行構(gòu)建的話,那么Flow將是您不可錯(cuò)過的選擇。本文將和您詳細(xì)討論Flow區(qū)塊鏈、其智能合約語言Cadence,并闡述為何以太坊開發(fā)人員應(yīng)當(dāng)?shù)紽low上進(jìn)行構(gòu)建。
2017年,加拿大公司??Dapper Labs??開發(fā)了一款新的以太坊收藏品游戲--CryptoKitties。不過,在只有10,000名用戶的情況下,它導(dǎo)致以太坊網(wǎng)絡(luò)出現(xiàn)了大規(guī)模的擁塞,并直接沖上了新聞?lì)^條。Dapper Labs的開發(fā)人員很快意識(shí)到,以太坊網(wǎng)絡(luò)并未針對(duì)游戲的運(yùn)營和擴(kuò)展進(jìn)行優(yōu)化,因此他們開始研究替代性的方案。
Dapper Labs的努力成果便是Flow區(qū)塊鏈。作為一種分散且對(duì)開發(fā)人員友好的區(qū)塊鏈,它無需??分片??(sharding)即可實(shí)現(xiàn)擴(kuò)展。同時(shí),F(xiàn)low針對(duì)NFT等數(shù)字資產(chǎn)的創(chuàng)建和管理,進(jìn)行了高度優(yōu)化。
Flow區(qū)塊鏈的基礎(chǔ)由四個(gè)關(guān)鍵支柱組成:
這四大支柱不但讓Flow與眾不同,而且有助于解決其他區(qū)塊鏈所面臨的常見挑戰(zhàn)。下面,讓我們來逐一進(jìn)行討論:
Flow采用了允許網(wǎng)絡(luò)擴(kuò)展的多角色架構(gòu)。該獨(dú)特的設(shè)計(jì)是通過一個(gè)驗(yàn)證節(jié)點(diǎn)來實(shí)現(xiàn)的。此節(jié)點(diǎn)可被分為四個(gè)不同的角色:收集、共識(shí)、執(zhí)行和驗(yàn)證。簡(jiǎn)單來說,其中的采集節(jié)點(diǎn)負(fù)責(zé)批量處理,共識(shí)節(jié)點(diǎn)負(fù)責(zé)保護(hù),執(zhí)行節(jié)點(diǎn)負(fù)責(zé)完成,而驗(yàn)證節(jié)點(diǎn)負(fù)責(zé)檢查工作。當(dāng)然,每個(gè)節(jié)點(diǎn)雖然各自會(huì)專注于流程的不同階段,但是它們也會(huì)參與到驗(yàn)證交易之中,并能有效地提高交易的吞吐量。
Flow的第二個(gè)支柱是面向資源的編程。作為一種面向資源的編程語言,Cadence可被用于在Flow區(qū)塊鏈上開發(fā)智能合約。此類已優(yōu)化的智能合約語言通過使用強(qiáng)大的靜態(tài)類型系統(tǒng),來最大限度地減少各類錯(cuò)誤。同時(shí),由于該語言允許使用各種前置和后置條件,因此開發(fā)人員可以強(qiáng)制執(zhí)行各種預(yù)期的行為。我們將在下一節(jié)中詳細(xì)介紹Cadence。
從一開始,F(xiàn)low的創(chuàng)建者就專注于支持開發(fā)人員,并讓他們的工作更輕松。
可視的安全性往往能夠確保用戶在運(yùn)行事務(wù)時(shí),做出明智的決定。由Flow提供的可讀(Human-readable)式交易,則能夠確保一定程度的透明度,清楚地展示用戶可能被授予的權(quán)限,進(jìn)而避免了僅簽署那些散列的、混淆了數(shù)字與字母的交易。
??Flow錢包??具有內(nèi)置的、可選的、且模塊化的智能合約功能,可實(shí)現(xiàn)更復(fù)雜的授權(quán)控制、以及自動(dòng)化的流程。這些功能不但可以確保用戶不會(huì)丟失其資產(chǎn),而且提供了在丟失密鑰的情況下,恢復(fù)帳戶的選項(xiàng),從而造就了更好的體驗(yàn)。此外,它通過提供多重簽名的支持,來允許用戶定期循環(huán)使用舊的密鑰,并為錢包增加安全性。
除了提供更快且可擴(kuò)展的區(qū)塊鏈,F(xiàn)low的開發(fā)團(tuán)隊(duì)還創(chuàng)建了一種新的智能合約語言-- ??Cadence??。它旨在優(yōu)化數(shù)字資產(chǎn)在區(qū)塊鏈上的創(chuàng)建和管理過程。
Cadence的語法是從Swift、Kotlin和Rust等其他現(xiàn)代編程語言中汲取的靈感。它是首個(gè)高級(jí)的、面向資源(resource-oriented)的編程語言,并且利用了強(qiáng)大的靜態(tài)類型系統(tǒng)。據(jù)此,它能夠有效地有助于減少運(yùn)行時(shí)(runtime)的錯(cuò)誤,并確保各種預(yù)期行為的實(shí)現(xiàn)。
說到面向資源,在Cadence中,有一種被稱為資源的特殊數(shù)據(jù)類型。它基于線性數(shù)據(jù)類型,代表著Flow上資產(chǎn)的數(shù)字所有權(quán)。諸如NFT之類的資源,可以直接被存儲(chǔ)在用戶的賬戶中,而不是作為記錄被反映到公共數(shù)字分類賬上。同時(shí),它們一次只能被存放到一個(gè)地方。這就意味著,F(xiàn)low上數(shù)字資產(chǎn)的所有權(quán),是直接用語言本身所定義的,因此有效地消除了將余額存儲(chǔ)到中心化的數(shù)字分類賬上,所涉及到的風(fēng)險(xiǎn)。
此外,Cadence通過執(zhí)行嚴(yán)格的操作規(guī)則,來改進(jìn)對(duì)于資產(chǎn)的管理。在明確是要移動(dòng)、存儲(chǔ)、還是銷毀資源之前,開發(fā)人員必須使用“@”符號(hào),來定義資源的類型。這種對(duì)于資產(chǎn)的強(qiáng)制管理,消除了由于代碼錯(cuò)誤,而丟失或意外刪除資產(chǎn)的可能性,并減少了各種人為錯(cuò)誤。
與Flow類似,Cadence也是建立在如下五個(gè)支柱之上的:
隨著Flow的持續(xù)改進(jìn)和引入各種協(xié)議,以太坊開發(fā)人員或Web3新手可以通過廣泛的??架構(gòu)指南???,透徹地了解Flow優(yōu)化的解決方案,并通過使用其各種??工具套件??,來提高區(qū)塊鏈生命周期的開發(fā)效率。
其中,??Flow Client Library(FCL)JS???包通過強(qiáng)大的SDK提供了快速、安全地創(chuàng)建Dapps所需的各種工具,進(jìn)而簡(jiǎn)化了錢包的集成。而??Flowser??(Flow Browser)是一種創(chuàng)新的區(qū)塊鏈開發(fā)工具。您不僅可以用它來檢查Flow的主網(wǎng)、測(cè)試網(wǎng)、以及模擬器的狀態(tài),而且可以通過其GUI來管理自定義的模擬器和錢包。
此外,F(xiàn)low區(qū)塊鏈也能夠排定環(huán)境影響的??優(yōu)先級(jí)??。歸功于其共識(shí)機(jī)制和前文提到的多角色架構(gòu),它比其他區(qū)塊鏈在工作量證明方面使用的能源更少。例如,從能源使用角度來看,我們執(zhí)行一次Google搜索的能源成本,可以用它來創(chuàng)建12個(gè)Flow NFT。Flow可謂最為環(huán)保的區(qū)塊鏈。
我們將從如下重要方面與差異性,來全面比較Flow與以太坊:
當(dāng)網(wǎng)絡(luò)需求量較高時(shí),以太坊會(huì)因交易成本的高昂而提高費(fèi)用。這往往是區(qū)塊鏈網(wǎng)絡(luò)用來將交易量保持在可管理水平的一種機(jī)制。也就是說,當(dāng)區(qū)塊空間需求很高時(shí),費(fèi)用就會(huì)上漲,以阻止人們進(jìn)行部署。此外,以太坊上的區(qū)塊需要每12到14秒確認(rèn)一次,最終確認(rèn)發(fā)生在6個(gè)區(qū)塊內(nèi),而且會(huì)超過1分鐘。這便限制了其最大事務(wù)吞吐量約為每秒15個(gè)事務(wù)。為了滿足數(shù)百萬用戶的需求,此方面有待改進(jìn)。
而Flow在被創(chuàng)建過程中,充分考慮到此類挑戰(zhàn)。上文提到的多角色架構(gòu)會(huì)使得區(qū)塊大約每2.5秒發(fā)生一次最終確認(rèn),即每秒大約100個(gè)事務(wù)。它在主網(wǎng)上的部署和交易的費(fèi)用只是以太坊主網(wǎng)上的一個(gè)零頭。
總的說來,以太坊智能合約在部署上的恒定性是有利有弊的。一方面,由于智能合約在部署后無法被編輯,即:與您交互的代碼一旦上線后就無法被更改或重用,因此可信度能夠得以保證。另一方面,即使是由非常熟練的編碼人員操刀,也很少能一次性以完美的形式部署,因此任何小的缺陷都可能導(dǎo)致大規(guī)模的違規(guī)行為,進(jìn)而造成重大的損失。對(duì)此,為了修復(fù)有缺陷的智能合約,開發(fā)人員必須部署一個(gè)全新的合約,來確保其用戶群使用該合約。此時(shí),恒定性就凸顯出了弊端。
而Flow已考慮到了上述場(chǎng)景與其智能合約的恒定性。當(dāng)合約被部署到Flow區(qū)塊鏈時(shí),默認(rèn)情況下它們是可變的。這就意味著,如果實(shí)時(shí)合約出現(xiàn)任何復(fù)雜的情況,開發(fā)人員都可以輕松地予以更改。當(dāng)然,這并不意味著智能合約完全跳過了測(cè)試階段。開發(fā)合約的團(tuán)隊(duì)通常會(huì)使用軟件開發(fā)的優(yōu)秀實(shí)踐,在測(cè)試網(wǎng)中去測(cè)試和迭代各種合約,然后最終部署到主網(wǎng)中。
在主網(wǎng)上運(yùn)行了一段時(shí)間后,智能合約完成了各種最終測(cè)試或安全性檢查。此時(shí),開發(fā)人員便可以選擇撤銷持有智能合約的賬戶密鑰。該操作可以阻止任何進(jìn)一步的更改,從而有效地保證了智能合約的恒定性??梢姡悄芎霞s開發(fā)人員可以隨時(shí)對(duì)任何合約啟用恒定性,這便是Flow相對(duì)于以太坊、以及其他區(qū)塊鏈網(wǎng)絡(luò)的優(yōu)勢(shì)所在。
除了技術(shù)優(yōu)勢(shì)之外,F(xiàn)low的社區(qū)也在快速地發(fā)展中。作為一個(gè)強(qiáng)大的開發(fā)者生態(tài)系統(tǒng),合作伙伴在其網(wǎng)絡(luò)中的參與度和對(duì)內(nèi)容的貢獻(xiàn),都有助于穩(wěn)步提升Flow上的交易量。值得一提的是,2022年6月是Flow創(chuàng)紀(jì)錄的一個(gè)月,其交易量已接近3400萬筆。
大多數(shù)人一聽到Flow區(qū)塊鏈就會(huì)想到NBA TopShot的非同質(zhì)化代幣。其實(shí),F(xiàn)low在DeFi和游戲領(lǐng)域也有廣泛涉獵。其中,基于Flow區(qū)塊鏈聚合器--??Flowverse???的??Chainmonsters???和??Zeedz???都是引領(lǐng)游戲領(lǐng)域的高銷量產(chǎn)品。而在DeFi領(lǐng)域,Blocto構(gòu)建了去中心化的交易所--??BloctoSwap???和??IncrementFi??。您可以通過鏈接--https://www.flowverse.co/projects,查看更多基于Flow構(gòu)建的項(xiàng)目。
此外,??Flow生態(tài)系統(tǒng)??還從Flow生態(tài)系統(tǒng)基金處獲得了7.25億美元,用于幫助那些在Flow上構(gòu)建的開發(fā)人員。可以預(yù)測(cè),隨著Flow技術(shù)的提升、普及度的擴(kuò)展、以及資金的積累,開發(fā)人員對(duì)于Flow和Cadence的需求、以及在Flow上構(gòu)建的項(xiàng)目都會(huì)持續(xù)攀升。
隨著CryptoKitties的成功,Dapper Labs團(tuán)隊(duì)很快意識(shí)到以太坊已無法支持大規(guī)模的區(qū)塊鏈游戲。為了優(yōu)化數(shù)字資產(chǎn)的創(chuàng)建和管理,他們創(chuàng)建了Flow區(qū)塊鏈和Cadence智能合約語言。
對(duì)于以太坊和Solidity開發(fā)人員來說,目前正是開始構(gòu)建更快、更安全、更具可擴(kuò)展性的區(qū)塊鏈的最佳時(shí)機(jī)。如果您想進(jìn)一步了解有關(guān)在Flow上進(jìn)行開發(fā)、以及如何使用Cadence的更多信息,請(qǐng)?jiān)L問https://developers.flow.com/。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流