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