比鄰(Blockmason Link)是一個(gè)旨在從書(shū)寫于可編程區(qū)塊鏈的智能合約上生成簡(jiǎn)單的網(wǎng)絡(luò)API接口的新型應(yīng)用。
雖然最初比鄰將基于以太坊主網(wǎng)發(fā)行并且在這份白皮書(shū)中我們將使用以太坊作為例子,但比鄰有支持所有可編程區(qū)塊鏈上的智能合約的潛力。 比鄰的目標(biāo)是去除開(kāi)發(fā)者與終端用戶在與區(qū)塊鏈賦能的應(yīng)用接觸時(shí)所面臨的障礙。為了達(dá)成這個(gè)目標(biāo),比鄰將目前開(kāi)發(fā)者接觸智能合約或用戶接觸去中心化的應(yīng)用時(shí)會(huì)遇到的許多令人迷惑、難懂的過(guò)程化繁為簡(jiǎn)。這些過(guò)程包括:
● 學(xué)習(xí)Solidity 或其它編程語(yǔ)言
● 建立以太坊節(jié)點(diǎn)或是其他基礎(chǔ)架構(gòu)
● 創(chuàng)建以太坊地址
● 購(gòu)買以太坊 (ETH)
● 運(yùn)行 MetaMask 或相似的錢包軟件
從一個(gè)智能合約上創(chuàng)建一個(gè)“比鄰app”的過(guò)程是非常簡(jiǎn)單的:任何開(kāi)發(fā)者都可以通過(guò)向比鄰提供智能合約的地址及ABI已完成其注冊(cè),從中比鄰將會(huì)生成一系列標(biāo)準(zhǔn)的API端點(diǎn)。同時(shí),比鄰也會(huì)生成動(dòng)態(tài)同步的API參考文檔及交互的分析工具以幫助開(kāi)發(fā)者理解在與不在比鄰平臺(tái)上時(shí)他們智能合約的使用情況。最后,比鄰會(huì)生成API秘鑰以供開(kāi)發(fā)者使用,以及開(kāi)立比鄰在代表客戶及開(kāi)發(fā)者執(zhí)行命令時(shí)需用到的以太坊賬戶。 比鄰有三個(gè)首要且是至關(guān)重要的價(jià)值主張:
1. 以DApp或智能合約構(gòu)建傳統(tǒng)的、基于互聯(lián)網(wǎng)的應(yīng)用
2. 讓開(kāi)發(fā)者可以用區(qū)塊鏈和智能合約的基礎(chǔ)架構(gòu)為互聯(lián)網(wǎng)應(yīng)用賦能
3. 讓不熟悉區(qū)塊鏈的用戶都可以通過(guò)比鄰在與互聯(lián)網(wǎng)無(wú)縫銜接的系統(tǒng)中使用DApp
比鄰是促進(jìn)以區(qū)塊鏈為基礎(chǔ)的DApp的普及和增長(zhǎng)的工具。它向沒(méi)有區(qū)塊鏈經(jīng)驗(yàn)的開(kāi)發(fā)者打開(kāi)了區(qū)塊鏈編程的大門,也向不熟悉神秘復(fù)雜的區(qū)塊鏈網(wǎng)絡(luò)(如以太坊)訪問(wèn)過(guò)程的用戶敞開(kāi)了區(qū)塊鏈賦能的DApp的懷抱。
此外,比鄰是一個(gè)適用于所有企業(yè)的工具。 通過(guò)運(yùn)營(yíng)管理必要卻復(fù)雜沉悶的區(qū)塊鏈交互機(jī)制,比鄰使開(kāi)發(fā)者有更多時(shí)間、空間追求更富創(chuàng)?性的項(xiàng)目。比鄰也讓每個(gè)區(qū)塊鏈項(xiàng)目都能真正面向大眾,讓DApp像人們已經(jīng)熟悉的app一樣易用。有了比鄰,我們完全可以想象在不久的未來(lái),我們社區(qū)中的每個(gè)成員都可以日常使用區(qū)塊鏈賦能的app,甚至可能都未意識(shí)到這是區(qū)塊鏈應(yīng)用。
始終堅(jiān)持去除區(qū)塊鏈普及障礙的宗旨,Blockmason邁出了勇敢的一步,成為第一間將區(qū)塊鏈技術(shù)與通證解綁的公司。Blockmason將在傳統(tǒng)的軟件即服務(wù)(SaaS)商業(yè)模型下提供比鄰服務(wù),而非進(jìn)行公開(kāi)發(fā)行或創(chuàng)建一個(gè)復(fù)雜的通證經(jīng)濟(jì)模型。比鄰SaaS發(fā)行對(duì)所有用戶而言都會(huì)是簡(jiǎn)單而熟悉的。
執(zhí)行智能合約:巨大的痛點(diǎn)
為了更好地理解比鄰如何改革智能合約的開(kāi)發(fā)及使用,首先了解目前與智能合 約接觸是多么令人沮喪是非常重要的。
區(qū)塊鏈編程工作并非兒戲。盡管Solidity語(yǔ)言相對(duì)直接,但它就像沙漠中的綠洲。雖然它并不復(fù)雜且很高效,但對(duì)開(kāi)發(fā)者而言,他們不可能只使用在這片綠洲中建?的東西而不穿越沙漠、回到文明世界。
相對(duì)只有很少量的非區(qū)塊鏈開(kāi)發(fā)者對(duì)Solidity或如何打?能與以太坊為基礎(chǔ)的去中心化運(yùn)用、智能合約做交互的應(yīng)用有工作層面的理解。懂得如何使用及訪問(wèn)這些應(yīng)用的潛在用戶數(shù)量就更少了。
這非常容易理解 -- 去中心化的應(yīng)用有非常高的準(zhǔn)入門檻。
讓我們先來(lái)看看一個(gè)潛在終端用戶使用DApp時(shí)所需經(jīng)歷的一切:
當(dāng)一個(gè)用戶認(rèn)真考慮跳入DApp這個(gè)亂麻之中前,他們首先必須獲取一個(gè)以太坊地址,而僅僅是這個(gè)過(guò)程已經(jīng)非常復(fù)雜,以至網(wǎng)絡(luò)上有幾十篇貼文致力于教會(huì)大家這件事。用戶也必須獲取以太坊并將之轉(zhuǎn)至正確地址,而這通常要求他們首先在大型交易所(例如幣安、Coinbase等)開(kāi)立賬戶、提交個(gè)人資料通過(guò)驗(yàn)證、綁定銀行賬戶、等待審核通過(guò)以及購(gòu)買以太坊,整個(gè)流程通常需要數(shù)個(gè)工作日甚至數(shù)周。
當(dāng)用戶經(jīng)過(guò)漫長(zhǎng)的等待終于成功擁有一個(gè)以太坊錢包及一些以太坊后,他們?cè)谡嬲梢允褂肈App前仍需要啟動(dòng)谷歌Chrome瀏覽器--當(dāng)然如果他們還沒(méi)有,他們需要下載并安裝一個(gè)--下載MetaMask并綁定他們的錢包。當(dāng)然,這里還沒(méi)有包括所有復(fù)雜的轉(zhuǎn)賬、計(jì)算gas及等待轉(zhuǎn)換成功的過(guò)程。
相信大家都同意,這遠(yuǎn)不是現(xiàn)在app商城能做到的“點(diǎn)擊按鈕”即可使用的用戶體驗(yàn)。這是一個(gè)令人害怕、困惑及沮喪的過(guò)程。而我們甚至還沒(méi)有開(kāi)始談使用Web3打?典型的與智能合約互動(dòng)的DApp的困難之處:
更不用提如果開(kāi)發(fā)者未使用開(kāi)源合約,寫真正的智能合約本身有多復(fù)雜。但,不需要怕!比鄰的誕生就是為了將這些近乎不可能的過(guò)程轉(zhuǎn)換地平易近人。
比鄰
比鄰代表著簡(jiǎn)約優(yōu)雅。此前,你可能 帶著腳傷在奔跑。請(qǐng)讓比鄰幫你除去這些問(wèn)題,從而讓你隨心奔跑!那么回歸主題,比鄰實(shí)際上是做什么的呢?
還記得之前那張有著許多彎彎曲曲的箭頭和長(zhǎng)長(zhǎng)的路徑的令人討厭的圖么?讓我們向你展示一張簡(jiǎn)單的多的圖片:
請(qǐng)注意使用比鄰后,以下這些就都不需要了:以太坊地址,儲(chǔ)存以太坊,MetaMask,交易所賬戶以及無(wú)數(shù)惱人的步驟。比鄰?fù)ㄟ^(guò)處理所有傳統(tǒng)app用戶無(wú)需接觸的背后流程,如創(chuàng)立以太坊錢包、計(jì)算gas及與以太坊網(wǎng)絡(luò)交互,以促進(jìn)順暢的用戶體驗(yàn)。
比鄰為任意智能合約創(chuàng)建了一個(gè)經(jīng)典、傳統(tǒng)的互聯(lián)網(wǎng)API界面,使沒(méi)有任何區(qū)塊鏈經(jīng)驗(yàn)的開(kāi)發(fā)者都可得益于編程式區(qū)塊鏈主網(wǎng)。更激動(dòng)人心的是,比鄰支持混合應(yīng)用程序,這些程序利用以太坊主網(wǎng)完成某些任務(wù),同時(shí)為其他任務(wù)(如用戶界面)使用替代網(wǎng)絡(luò)或云服務(wù)器。此外,比鄰向一個(gè)全新的潛在用戶群體敞開(kāi)了去中心化應(yīng)用世界的大門,最終使區(qū)塊鏈技術(shù)的服務(wù)范疇能超出早期使用人群。
所以我們所說(shuō)的“把你的DApp當(dāng)成App是什么意思”
比鄰并不打?特別種類的app;比鄰讓app不那么特別。比鄰讓現(xiàn)有的DApp及智能合約更受用戶的認(rèn)可,因?yàn)槲覀冊(cè)试S用戶或潛在用戶在甚至無(wú)需特別考慮區(qū)塊鏈的情況下使用以太坊主網(wǎng)為基礎(chǔ)的去中心化應(yīng)用。
· 為什么選擇比鄰?
比鄰構(gòu)成了發(fā)展中的區(qū)塊鏈生態(tài)系統(tǒng)的必要架構(gòu)。它遠(yuǎn)不是一個(gè)應(yīng)用;應(yīng)該說(shuō),它是所有可能的應(yīng)用。比鄰簡(jiǎn)化了與區(qū)塊鏈相關(guān)所有人(包括開(kāi)發(fā)者,用戶,技術(shù)愛(ài)好者,加密貨幣交易者等)與智能合約互動(dòng)的過(guò)程,并讓區(qū)塊鏈產(chǎn)業(yè)外的人能更好的加入我們的技術(shù)革新之旅。
· 比鄰對(duì)于開(kāi)發(fā)者而言
幫自己卸下重負(fù) (從繁重?zé)o聊的開(kāi)發(fā)任務(wù)中)
試想一下,如果阿特拉斯不再肩負(fù)撐起整個(gè)宇宙的重任的話,他可以成為一名明星運(yùn)動(dòng)員、一個(gè)國(guó)家的首領(lǐng),甚至是一個(gè)區(qū)塊鏈開(kāi)發(fā)者!
當(dāng)然這并不完全是我們要承諾的事情。但卸除了鏈接智能合約與區(qū)塊鏈以外世界的重?fù)?dān),開(kāi)發(fā)者將有更多的空間與精力去創(chuàng)?讓人滿意的產(chǎn)品。我們都知道每個(gè)開(kāi)發(fā)者的精力是有限的。當(dāng)他們必須將時(shí)間用于乏味的技術(shù)開(kāi)發(fā)時(shí),這就削弱了他們用于其它方面的注意力。這也許意味著要花更多時(shí)間去完成項(xiàng)目,或是永遠(yuǎn)無(wú)法完全實(shí)現(xiàn)一個(gè)項(xiàng)目。
為了讓大家理解構(gòu)建和維護(hù)不同類型的應(yīng)用程序需要做什么,下面是一張簡(jiǎn)化版的流程圖,它表示典型的數(shù)據(jù)庫(kù)支持的網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)架構(gòu)。每一個(gè)節(jié)點(diǎn)都代表了應(yīng)用程序中開(kāi)發(fā)者必須構(gòu)建且維護(hù)的一個(gè)方面:
盡管完全有可能、甚至常見(jiàn)到使用較上述流程更為簡(jiǎn)單的操作來(lái)設(shè)置網(wǎng)絡(luò)應(yīng)用程序,但這樣的部署在可靠性、安全性、可拓展性及性能方面都可能付出相應(yīng)的代價(jià)。
在許多方面,建立及維護(hù)一個(gè)傳統(tǒng)的去中性化應(yīng)用程序都要簡(jiǎn)單的多。這個(gè)過(guò)程將許多重?fù)?dān)都移交到了用戶身上,但同時(shí)也使應(yīng)用更不可及:
寫完智能合約后,開(kāi)發(fā)者幾乎對(duì)其沒(méi)有任何責(zé)任,但在此之后的應(yīng)用卻也可能在功能性及使用性上受到極大的限制。當(dāng)然,如此前所述,這張圖不包括任何維護(hù)以太坊節(jié)點(diǎn)或使用第三方基礎(chǔ)設(shè)施服務(wù)的邏輯挑戰(zhàn)。
然后,讓我們考慮一下使用比鄰建立及維護(hù)以互聯(lián)網(wǎng)為基礎(chǔ)、區(qū)塊鏈為背景的應(yīng)用程序的步驟:
你可以看到,比鄰消除了許多要求相關(guān)人員涉及建?、運(yùn)營(yíng)及使用app時(shí)的步驟。一旦部署,開(kāi)發(fā)者可以連接智能合約至比鄰并使用生成的API端點(diǎn)打?一個(gè)極易被終端用戶訪問(wèn)的應(yīng)用程序,這一過(guò)程由區(qū)塊鏈技術(shù)支持而無(wú)需建立維護(hù)以太坊節(jié)點(diǎn)、與傳統(tǒng)網(wǎng)絡(luò)瀏覽器交互而無(wú)需建立運(yùn)營(yíng)傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用所需的復(fù)雜架構(gòu)。比鄰的目標(biāo)就是在最小化部署及運(yùn)營(yíng)所需付出的努力的同時(shí),最大化應(yīng)用程序的使用程度及影響力。
這是比鄰的主要價(jià)值主張之一:讓比鄰幫你肩負(fù)重?fù)?dān),從而讓你能真正實(shí)踐所思所想。
對(duì)于開(kāi)發(fā)者而言,比鄰就像是農(nóng)耕時(shí)代的入口。一旦普羅大眾得到了基本層面的滿足,更新、更精、更專的技能及職業(yè)就會(huì)涌現(xiàn)。只要到那時(shí),人類社會(huì)才會(huì)發(fā)展及興旺。
將您的DApp當(dāng)App (反之亦然?。?/p>
有了比鄰,區(qū)塊鏈開(kāi)發(fā)將對(duì)任何只有傳統(tǒng)編程經(jīng)驗(yàn)的開(kāi)發(fā)者開(kāi)放。無(wú)論是誰(shuí),只需會(huì)使用網(wǎng)絡(luò)API 即可訪問(wèn)使用智能合約。比鄰將會(huì)生成所有文檔并向開(kāi)發(fā)者提供所有參考資料、數(shù)據(jù)類型、端點(diǎn)及demo等。此外,比鄰可以在無(wú)需開(kāi)發(fā)者與區(qū)塊鏈交互的情況下連接多個(gè)智能合約,從而為創(chuàng)建優(yōu)質(zhì)、協(xié)同、混合的區(qū)塊鏈微服務(wù)提供可能。任何傳統(tǒng)應(yīng)用開(kāi)發(fā)者都可以使用區(qū)塊鏈為其產(chǎn)品充電,甚至都無(wú)需了解區(qū)塊鏈技術(shù)如何運(yùn)作。
當(dāng)然,反之亦然。當(dāng)比鄰向傳統(tǒng)開(kāi)發(fā)者打開(kāi)區(qū)塊鏈編程世界的大門時(shí),其也將區(qū)塊鏈開(kāi)發(fā)者杰出的產(chǎn)品推到了世人面前。比鄰為用戶創(chuàng)?了一個(gè)簡(jiǎn)單、方便地通過(guò)網(wǎng)絡(luò)使用區(qū)塊鏈應(yīng)用的方法。曾經(jīng)令人困惑且復(fù)雜的DApp,如今也可以像app商城里的任意一款應(yīng)用一樣簡(jiǎn)單易用。此外,由于比鄰允許傳統(tǒng)的開(kāi)發(fā)人員通過(guò)所注冊(cè)的門戶與智能合約交互,這也為區(qū)塊鏈開(kāi)發(fā)者提供了通過(guò)對(duì)使用智能合約收取特許費(fèi)以實(shí)現(xiàn)盈利的途徑。
從前文推斷,比鄰有能力創(chuàng)建一個(gè)龐大的開(kāi)源區(qū)塊鏈數(shù)據(jù)庫(kù),而此數(shù)據(jù)庫(kù)由在比鄰上注冊(cè)的智能合約賦能。該數(shù)據(jù)庫(kù)將賦予開(kāi)發(fā)者前所未有的可能,允 許他們選擇一個(gè)新應(yīng)用的哪些部分由他 們自己構(gòu)建,而哪些部分基于比鄰支持的智能合約構(gòu)建。
· 比鄰對(duì)于終端用戶而言
對(duì)于用戶來(lái)說(shuō),比鄰?fù)耆顷P(guān)于可訪問(wèn)性的。在某些圈子里區(qū)塊鏈?zhǔn)且粋€(gè)骯臟的詞--人們不知道區(qū)塊鏈?zhǔn)鞘裁?,而且他們也不想知道。有了比鄰,讓完全沒(méi)有任何區(qū)塊鏈概念的用戶使用區(qū)塊鏈賦能的app就成為了可能。此外,由于比鄰會(huì)自動(dòng)為所有app生成以太坊地址,所以用戶甚至都不需要擁有以太坊賬戶或以太坊即可訪問(wèn)網(wǎng)絡(luò)。
有時(shí),杰出的工作自知總是來(lái)得比他人認(rèn)可更早。
· 工作機(jī)制
實(shí)際上,比鄰將會(huì)負(fù)責(zé)處理所有用戶與連接以太坊主網(wǎng)app的互動(dòng)中涉及到的惱人步驟。所有在正常情況下執(zhí)行一個(gè)智能合約必需的步驟仍然會(huì)發(fā)生--一筆交易會(huì)被創(chuàng)建、簽署及發(fā)送--只是現(xiàn)在,這些步驟都將由后臺(tái)的比鄰處理,而無(wú)需經(jīng)過(guò)用戶。
如果你是一個(gè)尋求在比鄰上登記智能合約創(chuàng)建app的開(kāi)發(fā)者,這個(gè)過(guò)程也十分簡(jiǎn)單,只需向比鄰提供合約地址及ABI。然后,比鄰會(huì)從ABI 生成一組端點(diǎn)。比鄰開(kāi)發(fā)者可以通過(guò)重命名路徑或參數(shù)來(lái)調(diào)整這些端點(diǎn),而比鄰會(huì)將其映射至相應(yīng)的智能合約功能與參數(shù)。比鄰?fù)瑫r(shí)會(huì)為你生成一個(gè)API秘鑰以及以太坊賬戶以用于執(zhí)行你的命令。
· 特點(diǎn)
除了基礎(chǔ)的從難以訪問(wèn)的智能合約生成簡(jiǎn)單易用的網(wǎng)絡(luò)API這一功能,比鄰還可以提供許多其他對(duì)開(kāi)發(fā)者及用戶有用的功能。
文檔 & 樣例代碼
比鄰為所有已注冊(cè)智能合約生成使用文檔,包括樣例代嗎,以指引開(kāi)發(fā)者如何使用比鄰生成的app。該文檔由比鄰?fù)泄懿⑴capp的配置同步,所以開(kāi)發(fā)者無(wú)需自己管理、更新他們的文檔。
洞見(jiàn),監(jiān)測(cè)&可視化數(shù)據(jù)
比鄰將會(huì)就已注冊(cè)應(yīng)用的使用情況提供可視化數(shù)據(jù)、日志及其洞見(jiàn),并將提供使數(shù)據(jù)可被過(guò)濾、排序及搜索的工具。有了比鄰,就可以準(zhǔn)確地了解app的使用狀況如何,甚至可以了解智能合約在比鄰以外的使用狀況以做比較。開(kāi)發(fā)者同時(shí)可以注冊(cè)接收任何有關(guān)其app問(wèn)題的通知,包括如果其關(guān)聯(lián)賬戶余額過(guò)低無(wú)法支付轉(zhuǎn)賬費(fèi)用,或如果智能合約上的錯(cuò)誤率增加等。
用戶目錄集成
傳統(tǒng)的DApp及智能合約依賴于以太坊本身的驗(yàn)證,需要使用以太坊賬戶的公鑰及私鑰。而比鄰使用委托身份驗(yàn)證模型,所以智能合約上的轉(zhuǎn)賬是由比鄰內(nèi)的以太坊賬戶簽署的且開(kāi)發(fā)者可以將一個(gè)或多個(gè)身份連接至此賬戶。這些身份可以通過(guò)多種方法進(jìn)行驗(yàn)證。比鄰支持多種個(gè)人比鄰app驗(yàn)證方法,所以用戶及開(kāi)發(fā)者可以通過(guò)他們的身份提供者無(wú)縫訪問(wèn)(如Active Directory,Okta, SAML, Oauth),或是讓比鄰幫他們處理身份驗(yàn)證及管理問(wèn)題。
自動(dòng)生成+維護(hù)以太坊賬戶
回想一下,當(dāng)使用典型的網(wǎng)絡(luò)app時(shí),用戶通常使用可信任的第三方進(jìn)行身份驗(yàn)證。比如,點(diǎn)擊“使用Google賬戶進(jìn)行登錄”、“使用Facebook賬戶進(jìn)行登錄”,或是使用由app服務(wù)商保存的用戶密碼登錄。
在一個(gè)典型的以比鄰為基礎(chǔ)的DApp中,用戶的體驗(yàn)是完全一樣的。他們將使用DApp進(jìn)行身份驗(yàn)證,從而證明自己的身份并訪問(wèn)app。然而,如果想要與以太坊這類的編程區(qū)塊鏈主網(wǎng)交互,這一類的身份驗(yàn)證是不夠的。DApp可能需要以單個(gè)用戶為單位與智能合約進(jìn)行交互,這也就意味著每個(gè)用戶需要擁有他們自己的以太坊賬戶。
而比鄰為DApp開(kāi)發(fā)者自動(dòng)生成并管理這些以太坊賬戶。DApp信任每個(gè)賬戶并允許其代表特定用戶與以太坊主網(wǎng)進(jìn)行交互。DApp無(wú)需提供任何其在比鄰上所管理的用戶或身份信息,也不必提供任何用戶私人身份驗(yàn)證細(xì)節(jié)。用戶連接到DApp,DApp連接到以太坊賬戶,并通過(guò)比鄰一起連接到以太坊主網(wǎng)。
當(dāng)然,DApp確實(shí)需要驗(yàn)證特定用戶的以太坊賬戶有足夠以太坊支付DApp打算執(zhí)行的相關(guān)交易的交易費(fèi)用。比鄰開(kāi)發(fā)者可以直接將以太坊轉(zhuǎn)至這些賬戶或允許Blockmason代為管理這些賬戶,從而免去終端用戶的交易成本。
需要注意的是,在比鄰中生成的以太坊賬戶是完全由Blockmason管理的--比鄰開(kāi)發(fā)者永遠(yuǎn)不會(huì)有私鑰。這一點(diǎn)在幾個(gè)方面都很重要:
● 安全:比鄰應(yīng)用開(kāi)發(fā)者無(wú)法在以太坊網(wǎng) 絡(luò)上模擬他們的用戶。
● 可靠:確保交易按 順序處理,減少潛在雙花?成的虛假失 敗。
● 成本:減少潛在失 敗交易意味著減少gas的浪費(fèi)。
在以太坊賬戶自動(dòng)化生成與維護(hù)的過(guò)程中,比鄰在區(qū)塊鏈技術(shù)中去中心化計(jì)算及永久儲(chǔ)存特點(diǎn)的基礎(chǔ)上,消除了區(qū)塊鏈?zhǔn)褂眠^(guò)程中的許多財(cái)務(wù)和技術(shù)障礙。
· 優(yōu)勢(shì)
方便&易用
有了比鄰,構(gòu)建一個(gè)DApp與構(gòu)建任何一個(gè)普通app將沒(méi)有任何區(qū)別?,F(xiàn)在,開(kāi)發(fā)者再也不需要擔(dān)心Web3、RLP編碼、錢包或是任何特定的庫(kù),也無(wú)需運(yùn)行任何以太坊節(jié)點(diǎn)或要求終端客戶向以太坊賬戶中充值gas。只需獲取一個(gè)身份驗(yàn)證令牌,并像使用其他任何網(wǎng)絡(luò)API一樣使用你的智能合約。任何可以使用網(wǎng)絡(luò)API的軟件現(xiàn)在都可以使用你的比鄰app,且無(wú)需特定的庫(kù)、工具或區(qū)塊鏈知識(shí)。一切就是這樣簡(jiǎn)單。此外,由于比鄰會(huì)自動(dòng)生成新的以太坊地址,所以完全不熟悉區(qū)塊鏈技術(shù)的客戶也無(wú)需額外努力即可操作該app。從用戶的角度來(lái)看,盡管通過(guò)比鄰發(fā)布的DApp是由區(qū)塊鏈賦能的,但它們將與傳統(tǒng)app看上去毫無(wú)二致…這很酷。
管理精良、可用性極高的基 礎(chǔ)架構(gòu)
有了比鄰,開(kāi)發(fā)者不需要為了用戶使用他們的DApp而創(chuàng)?、搭建或管理任何額外的基礎(chǔ)架構(gòu)。開(kāi)發(fā)者必須且只需配置部署他們的智能合約、在比鄰中創(chuàng)建他們的app,僅此而已。比鄰沒(méi)有任何服務(wù)器需要維護(hù)或警報(bào)需要監(jiān)控。通過(guò)這種方式,鄰建立在Infura及其它管理服務(wù)供應(yīng)公司的重要工作基礎(chǔ)上,允許開(kāi)發(fā)者及區(qū)塊鏈社區(qū)專注于構(gòu)建激動(dòng)人心的產(chǎn)品與服務(wù),而無(wú)需擔(dān)心訪問(wèn)及使用以太坊等區(qū)塊鏈主網(wǎng)的困難。開(kāi)發(fā)者可以就此專注于創(chuàng)?令世人驚嘆的作品,而非重新發(fā)明區(qū)塊鏈車輪。
可移植性
在Blockmason,我們非常重視且盡一切努力確保比鄰應(yīng)用及相關(guān)數(shù)據(jù)的安全。除了負(fù)責(zé)任的信息披露文件和慷慨的安全獎(jiǎng)勵(lì)計(jì)劃,比鄰還接受季度滲透測(cè)試、對(duì)所有基礎(chǔ)架構(gòu)及相關(guān)app進(jìn)行持續(xù)、自動(dòng)化的安全監(jiān)控,并遵循安全優(yōu)先的開(kāi)發(fā)實(shí)踐準(zhǔn)則,包括威脅模型、集成靜態(tài)分析及強(qiáng)制同行審核機(jī)制。Blockmason在美國(guó)一些最著名的安全會(huì)議上一直保持有一定的影響力并仍高度積極參與安全社區(qū)事務(wù)。
此外,如果一款DApp的目標(biāo)客戶是中到大型企業(yè)或企業(yè)級(jí)客戶,那么獲得這些客戶的常見(jiàn)障礙就是需要遵守一系列安全認(rèn)證,包括SOC 2、ISO 27001、HIPPA、FIPS等。獲取這些認(rèn)證并保持合規(guī)性是比鄰持續(xù)支持及維護(hù)的特征。遵守這些認(rèn)證及規(guī)定可能會(huì)很麻煩也很昂貴,但有了比鄰,開(kāi)發(fā)者可輕松知曉他們的DApp是符合規(guī)定的。
可移植性
比鄰是智能合約之上的獨(dú)立層,因此開(kāi)發(fā)者或他們的用戶可以隨時(shí)選擇直接使用智能合約。開(kāi)發(fā)者加載到比鄰層中的任何數(shù)據(jù)都可以隨時(shí)被導(dǎo)出。開(kāi)發(fā)者也可以刪除他們?cè)诒揉徤系乃袛?shù)據(jù)并將賬戶中的所有以太坊或其它資金轉(zhuǎn)移出去。
區(qū)塊鏈賦能的移動(dòng)應(yīng)用
前所未有的,比鄰支持且簡(jiǎn)化了與區(qū)塊鏈無(wú)縫交互整合的無(wú)錢包移動(dòng)app的創(chuàng)建。此外,比鄰也潛在地干擾了應(yīng)用商城對(duì)發(fā)送和接收加密貨幣的第三方應(yīng)用程序的審查。
· 使用案例
由于比鄰適用于任何智能合 約或目前被開(kāi)發(fā)的DApp,其用例幾乎是無(wú)限多的。任何與以太坊或其它可 編程區(qū)塊鏈交互、面向客戶的DApp都可以(也應(yīng)該)使用比鄰。
記住了這一點(diǎn),下面僅是一些通用案例:
傳統(tǒng)應(yīng)用開(kāi)發(fā)者
許多傳統(tǒng)應(yīng)用的開(kāi)發(fā)者對(duì)利用區(qū)塊鏈的強(qiáng)大功能非常感興趣,但卻沒(méi)有響應(yīng)的資源或技術(shù)知識(shí)。
而開(kāi)發(fā)者現(xiàn)在只需使用比鄰的網(wǎng)絡(luò)API連接至區(qū)塊鏈,即可在幾分鐘之內(nèi)創(chuàng)建出一款區(qū)塊鏈賦能的應(yīng)用;而無(wú)需再面對(duì)自建節(jié)點(diǎn)的挑戰(zhàn)或使用Infura的麻煩。若希望了解更多與現(xiàn)有服務(wù)架構(gòu)的比較信息(包括Infura),請(qǐng)參閱后面“管理基礎(chǔ)架構(gòu)的下一步”。比鄰?fù)瑫r(shí)還提供了跨鏈支持,尤其幫助那些希望在多個(gè)鏈上連接而無(wú)需麻煩地依次支持每條鏈的DApp開(kāi)發(fā)者。他們可以在所有平臺(tái)上使用托管于Blockmason的節(jié)點(diǎn)快?啟動(dòng)應(yīng)用程序,且無(wú)需使用JavaScript以外的任何代碼。這是目前開(kāi)發(fā)一款去中心化應(yīng)用程序最簡(jiǎn)單的辦法。
混合部署
有了比鄰,運(yùn)行網(wǎng)絡(luò)服務(wù)的同時(shí)運(yùn)行以太坊為基礎(chǔ)的區(qū)塊鏈服務(wù)終于成為了可能。盡管這里有近乎無(wú)限的應(yīng)用,一個(gè)對(duì)大家而言簡(jiǎn)單而熟悉的例子是混合區(qū)塊鏈身份驗(yàn)證或授權(quán)服務(wù)。通過(guò)將某些服務(wù)委托給以太坊網(wǎng)絡(luò),開(kāi)發(fā)者可以只將產(chǎn)品中可以受益于去中心化的部分使用區(qū)塊鏈技術(shù),而同時(shí)產(chǎn)品界面與不使用區(qū)塊鏈的部分別無(wú)二致。
發(fā)行項(xiàng)目與其產(chǎn)品的合法性
隨著每個(gè)月眾多的新項(xiàng)目的發(fā)布,想要在此間脫穎而出變得非常困難。此外,潛在買家對(duì)于在通證銷售前還沒(méi)有可工作產(chǎn)品的項(xiàng)目的懷疑是合理的。通過(guò)將智能合約連接到比鄰。項(xiàng)目團(tuán)隊(duì)可以生成一個(gè)簡(jiǎn)單易用的app以向潛在買家闡釋他們產(chǎn)品的合法性,或是允許用戶在購(gòu)買通證之前先測(cè)試一下產(chǎn)品。比鄰會(huì)管理所有相關(guān)節(jié)點(diǎn)并提供所需的網(wǎng)絡(luò)API,使產(chǎn)品處于中心地位。
企業(yè)私用側(cè)鏈
盡管目前我們主要側(cè)重于基于以太坊的智能合約--因?yàn)檫@是目前最為活躍的可編程區(qū)塊鏈--比鄰將支持任何區(qū)塊鏈上開(kāi)發(fā)的智能合約。這意味著比鄰對(duì)任何想建立私用側(cè)鏈的人來(lái)說(shuō)特別有用,而這正是目前在IBM等大公司開(kāi)始流行的趨勢(shì)。然而,對(duì)于這樣一家大公司的普通員工來(lái)說(shuō),即使是私鏈也有很高的準(zhǔn)入門檻。有了比鄰,像IBM這樣的公司就可以生成簡(jiǎn)單的app發(fā)行憑證以幫助員工注冊(cè),允許任何與公司業(yè)務(wù)有關(guān)的人與私有智能合約交互以處理供應(yīng)鏈或員工管理業(yè)務(wù)。
· 管理基礎(chǔ)架構(gòu)的下一步
如今的以太坊網(wǎng)絡(luò)完全依賴于幾家創(chuàng)新且至關(guān)重要的架構(gòu)管理供應(yīng)商,其中最著名的就是Infura。Infura使得在不安裝及不維護(hù)昂貴的以太坊基礎(chǔ)架構(gòu)的情況下與以太坊網(wǎng)絡(luò)進(jìn)行交互成為可能。此外還提高了該網(wǎng)絡(luò)在高需求時(shí)的擴(kuò)張能力。實(shí)際上,Infura是一個(gè)托管的以太坊客戶節(jié)點(diǎn),并沒(méi)有對(duì)智能合約有直接的意識(shí)。
比鄰在此基礎(chǔ)上進(jìn)行了改進(jìn),為開(kāi)發(fā)者和用戶提供了一種從以太坊基礎(chǔ)架構(gòu)層以外與智能合約進(jìn)行交互的方式。想要了解這些細(xì)微的差別,理解各種基礎(chǔ)架構(gòu)選項(xiàng)及操作方式的差異是非常重要的。
● 客戶端應(yīng)用程序在應(yīng)用層運(yùn)行,像一個(gè)本地RESTful網(wǎng)絡(luò)服務(wù)一樣與智能合約進(jìn)行交互。
● 比鄰在網(wǎng)絡(luò)層運(yùn)作,提供與智能合 約交互時(shí)的RESTful界面。
● Infura在基礎(chǔ)架構(gòu)層運(yùn)作,提供一個(gè)與以太坊網(wǎng) 絡(luò)直接交互的簡(jiǎn)單包裹,并沒(méi)有對(duì)智能合約有特殊幫助。
● 以太坊在最基礎(chǔ)的共識(shí)層運(yùn)作。
現(xiàn)在,讓我們檢驗(yàn)一張比較不同基礎(chǔ)架構(gòu)間不同方面及特征的表格。
如上表所示,比鄰?fù)ㄟ^(guò)簡(jiǎn)化與以太坊客戶端應(yīng)用的接口,提供了一個(gè)基于現(xiàn)有l(wèi)aaS結(jié)構(gòu)的重要服務(wù)。比鄰從實(shí)際意義上來(lái)說(shuō),就是一個(gè)智能合約的網(wǎng)關(guān)。Infura為以太坊所做的是通過(guò)委托管理增加主網(wǎng)的可訪問(wèn)性及可用性,而比鄰旨在為智能合約做到這一點(diǎn)。比鄰是這些必要服務(wù)的自然演變,也第一次向公眾打開(kāi)了可編程區(qū)塊鏈及其智能合約的大門。
比鄰適用于任何領(lǐng)域中多種多樣的項(xiàng)目,無(wú)論是區(qū)塊鏈投票還是供應(yīng)鏈驗(yàn)證都可以使用比鄰。比鄰也不僅僅是一個(gè)殺手級(jí)應(yīng)用;它是每一個(gè)殺手級(jí)應(yīng)用,是以太坊網(wǎng)絡(luò)及區(qū)塊鏈很快無(wú)法想象可以缺少的基石。
· 技術(shù)概覽
比鄰本身作為部署在Blockmason云存儲(chǔ)架構(gòu)上的網(wǎng)絡(luò)服務(wù)運(yùn)行。開(kāi)發(fā)者可以通過(guò)發(fā)送合約地址及ABI給比鄰以連接智能合約。比鄰將使用合約地址及API生成比鄰app。創(chuàng)建比鄰app后,創(chuàng)建者將可以訪問(wèn)以下各功能:
網(wǎng)絡(luò)服務(wù)
所連接智能合約中的每個(gè)函數(shù)都有對(duì)應(yīng)的HTTP端點(diǎn),并有一個(gè)端點(diǎn)用于查詢事件。
訪問(wèn)控制
開(kāi)發(fā)者可以定義如何允許客戶端對(duì)應(yīng)用程序進(jìn)行身份驗(yàn)證。最直接的驗(yàn)證方式是生成API秘鑰。這個(gè)API秘鑰包含一個(gè)以太坊地址,可以用來(lái)發(fā)送以太坊以支付該秘鑰產(chǎn)生的交易費(fèi)用。更高級(jí)的驗(yàn)證方式可能包括通過(guò)Oauth2.0或SAML連接到外部身份驗(yàn)證提供商。無(wú)論采用哪種身份驗(yàn)證方式,每個(gè)用于與app交互的身份都有一個(gè)以太坊地址以接收以太坊支付交易費(fèi)用。
分析
比鄰為開(kāi)發(fā)者提供了各種分析工具以幫助他們進(jìn)一步了解app及用戶是如何使用他們的智能合約的。這些工具包括可搜查、可過(guò)濾和可排序的交互式圖表??赡苡械牟樵冋?qǐng)求包括業(yè)務(wù)量、gas成本及錯(cuò)誤率(總量,每個(gè)函數(shù)調(diào)用及每個(gè)賬戶)。比鄰?fù)ㄟ^(guò)后臺(tái)的ELK堆棧創(chuàng)建了強(qiáng)大的可視化服務(wù)及搜索引擎,在用戶界面上即可提供與Domo或Kibana相當(dāng)?shù)姆治龉ぞ摺?/p>
API參考文檔
所連接智能合約中的每個(gè)函數(shù)都有對(duì)應(yīng)的HTTP端點(diǎn),并有一個(gè)端點(diǎn)用于查詢事件。
客戶端軟件開(kāi)發(fā)工具包(SDKs)
SDKs--包括屏幕創(chuàng)建、編輯、編譯及連接--支持各種編程語(yǔ)言以便客戶端app與比鄰app整合。每個(gè)SDK都有完整的文檔、樣例代碼及主機(jī)包。
● 常量函數(shù)通過(guò)HTTP GET方法被映射到端點(diǎn)。
● 非常量函數(shù)通過(guò)HTTP POST方法被映射到端點(diǎn)。
● 支付功能將被忽略。比如涉及到以太坊 轉(zhuǎn)賬的功能就不在服務(wù)范疇內(nèi)。
● HTTP資源路徑的端點(diǎn)映射到函數(shù) 簽名。比如,一個(gè)幫披 薩訂單加料的函數(shù):/addTopping(uint256)。
創(chuàng)建比鄰app之后,創(chuàng)建者將可訪問(wèn)以上各個(gè)功能。而且還有一些額外的功能可被用戶管理和監(jiān)控app:
● 函數(shù)的輸入值被映射到查詢參數(shù)(用于GET)或request body中JSON的鍵值對(duì)(用于POST)。例如,一個(gè)非常量addTopping (string name, uint256 count)函數(shù)會(huì)被映射到POST /addTopping并期望JSON requestbody看起來(lái)像{“name”:”pepperoni”,”count”:100}。
● 數(shù)字輸入可以以十六進(jìn)制字符串(比如 “0x1F2E”)或常規(guī)數(shù)字(比如123)提供。
同步版本管理
所有端點(diǎn)及參數(shù)都可以被重命名,且所有文檔及SDK都將保持同步。當(dāng)進(jìn)行更改時(shí),比鄰將根據(jù)語(yǔ)義版本控制(https://semver.org/)自動(dòng)調(diào)整每個(gè)客戶的SDK版本,并盡可能維護(hù)向后兼容端點(diǎn)以確保兼容使用舊版本的客戶。
日志
開(kāi)發(fā)者還可以要求查閱應(yīng)用程序網(wǎng)絡(luò)服務(wù)上的日志并對(duì)其活動(dòng)進(jìn)行審計(jì)。比如,開(kāi)發(fā)者可以審計(jì)端點(diǎn)和參數(shù)重命名或賬戶新增和刪除等功能。這些日志是可交互、可搜索、可過(guò)濾和可排序的。
· 安全
Blockmason致力于保護(hù)比鄰的客戶和用戶,以及他們的數(shù)據(jù)。我們采取了以下步驟以確保我們的應(yīng)用程序是可靠且安全的:
● 根據(jù)最佳規(guī)范編寫代碼,包括大量的同行 評(píng)審
● 廣泛、可驗(yàn)證的應(yīng)用程序代碼測(cè)試;將靜態(tài)分析工具整合至持 續(xù)集成及部署工具鏈;及完全自動(dòng)化、可審計(jì)的基礎(chǔ)架構(gòu)部署
● 對(duì)于與以太坊及比鄰交互的智能合約的專業(yè)、獨(dú)立審計(jì)
● 提供“bug賞金”以鼓勵(lì)白帽黑客識(shí)別并消除錯(cuò)誤代碼
● 將接受季度滲透測(cè)試及其它獨(dú)立安全審計(jì)作為我們安全計(jì)劃的一部分
此外,盡管一些開(kāi)發(fā)者或用戶會(huì)擔(dān)心將某些轉(zhuǎn)賬交至第三方應(yīng)用的風(fēng)險(xiǎn),但使用比鄰并不會(huì)比使用以太坊本身帶來(lái)更多數(shù)據(jù)風(fēng)險(xiǎn)。每一筆轉(zhuǎn)賬仍然記錄在以太坊層上;比鄰僅在等待交付調(diào)用或轉(zhuǎn)賬的結(jié)果時(shí)保留一個(gè)臨時(shí)副本。
最后,即使開(kāi)發(fā)者使用比鄰管理的賬戶,也只有有限用于支付交易成本的資金會(huì)存于賬戶中。任何時(shí)候,開(kāi)發(fā)者都可以選擇連接個(gè)人以太坊賬戶而非使用比鄰管理的賬戶。比鄰對(duì)任何賬戶均不構(gòu)成風(fēng)險(xiǎn)。
評(píng)論
查看更多