如何通過 ArcBlock 連接底層公鏈

本文為【U贊社區精選文章】

U贊,U Network 公鏈的第一個DAPP。

U Network 是價值內容第一公鏈,是全球第一個去中心化內容估值和發佈平臺。

添加U贊小姐姐微信(Uzan003),加入U贊社區~

前言:

《2018中美區塊鏈進化50講》是由硅谷密探聯合50位區塊鏈項目創始人聯手打造首套中美區塊鏈進化課程。現在區塊鏈正處於非常早期的階段,魚龍混雜,很多用戶根本無法識別,2018硅谷密探將邀請中美50位區塊鏈世界的推動者和先行者,分享他們對區塊鏈世界的真知灼見,為像我們這樣的區塊鏈的信仰者提供一個學習的機會,並推動區塊鏈技術的運用和落地。

主講人簡介:

冒志鴻,ArcBlock區塊基石創始人兼CEO,連續創業和技術革新者,連續創建天擇軟件、北極星軟件、優友地帶三家公司,是國內最早的VoIP通訊系統和社交網絡服務創造提供者。此後加入了微軟歐洲研發中心和微軟美國研究院,從事社會化計算研究。2017年,在美國創立ArcBlock,為區塊鏈3.0時代的到來奠定堅實的基礎。

如何通過 ArcBlock 連接底層公鏈

內容看點:

1、ArcBlock協議層的商業價值

2、如何通過開放鏈訪問協議實現應用跨鏈而造

3、開發者如何在ArcBlock上快速搭建DAPP

以下為直播分享內容實錄:

考慮到不是所有朋友都對我們ArcBlock 基石項目比較熟悉,先簡單的介紹一下ArcBlock 基石這個項目的願景,然後再來講一講這個我們最近在做什麼,以及我們即將要發佈的東西是什麼?

ArcBlock 基石的目標是設計一個服務性的應用服務的平臺,那麼這個應用服務平臺和這個其他的雲計算有什麼區別?它是一個專門為區塊鏈應用而優化的平臺。

雲計算平臺有很多種,大部分雲計算平臺是比較通用的。從雲計算平臺的發展,也經歷了一個相當長的過程,從最初的比如說亞馬遜的這個AWS為主,他們首先是提供存儲服務,然後提供虛擬機的計算服務,比如說像EC two,逐漸他們提供了一系列各種各樣的應用服務,比如說數據庫的服務,無服務器的服務等等。

亞馬遜取得巨大成功之後,有相當多的公司也都跟進,比如說微軟的windows A以及國內所知道的阿里雲騰訊等等。比較有趣的是這個阿里雲的美國的公司,就跟我們在同一棟樓上,而騰訊、華為就在我們邊上的一棟樓,我們在美國的辦公室周圍都是雲計算的公司,所以西雅圖也被稱為是全球的雲計算之都。

ArcBlock的本質是一個雲計算的平臺。這樣一個定位可能跟現在主流的區塊鏈普遍的設計有一點點不同,甚至有點格格不入。因為在區塊鏈這個世界裡面聽到的聲音都是說認為只要是雲計算那就是中心化的,那麼我們區塊鏈是去中心化的東西,那麼只要是允許這種東西,它可能就不是區塊鏈了。

但是我們經過自己思考,認為不是這麼樣,我們認為在區塊鏈時代,一個未來的真正的區塊鏈能落地的時候,應該是跟雲計算更緊密的結合,更有效地結合的這樣一個時候。所以我們的ArcBlock本質上和普通的雲計算平臺還有一個更不同的地方,大部分銀行平臺它有一個特點,它基本上都是一家公司開發與運營,比如亞馬遜的AWS永遠都屬於亞馬遜,它是自己開發的,那麼它的整合、經營、運營的權利全部都是由亞馬遜這一家公司擁有的,同樣阿里雲也是屬於阿里巴巴的。

在ArcBlock的運營思路里面,有一個很大的區別,我們認為一個去中心化的運營,才是一個更加有潛力、有競爭力的一種方式。

我們ArcBlock的願景是開發出ArcBlock這樣一個軟件之後, ArcBlock服務的提供者除了我們本身以外還有很多夥伴一起來進行。之所以能保持夥伴們在各自運營自己的服務,還能形成有保證的統一的服務質量並且價格合理的這樣一個平臺,那麼這裡面最重要的一個機制是什麼呢?就是需要通過我們設計有一個APP鏈,那麼這個APP鏈在第一階段,它主要的作用就是作為這個服務平臺的boss系統,可以認為這種就是一個平臺的大boss,他管理著整個平臺的運營計費和業務支撐。

所以ArcBlock在這裡面有一個比較創新的地方,就是我們把區塊鏈的去中心化公開,並有一個分佈式的賬本來公開透明的處理這樣的一些機制,把它引入了雲計算平臺的計費和業務支撐之中,無論有多少方來共同運營ArcBlock,它背後的便利與系統、業務支撐系統都是統一的,這樣才能夠使得更多的合作方可以來參與維護運營。

那麼這就是ArcBlock白皮書中提到的代幣經濟中礦工的概念,我們把礦工分為兩種,一種叫資源礦工,一種叫組件礦工。

那麼這兩個之間有什麼區別?大家都知道要運營一個業務系統,要運行一個軟件系統,那麼你需要的不僅僅是服務器帶寬這個存儲,同樣也需要軟件,我們如果把服務器帶寬存儲等等這些稱為一種資源的話,那麼產品的軟件也同樣的重要,資源跟軟件是同等重要的,但並不是所有可以提供出資源的人,都能夠寫出最好的軟件,也不一定是能寫出這些好的軟件的人,能提供這些資源。

所以我們把礦工分成兩類,一類是可以提供資源的人,也就是它可以提供他的網絡帶寬服務器一起來參與這個運營。另外一類是成為組建礦工,他們可以提供一些組件的軟件,比如說在我們這個ArcBlock裡面重要的一個概念稱為叫開發鏈訪問協議,那麼這個開發鏈訪問協議裡面的適配器就可以是一個組件,也就是說任何一個第三方,他覺得ArcBlock這個開發鏈訪問協議這種想法不錯,我們如果有一個新的區塊鏈技術社區還沒有支持,但是卻有用戶想要能夠支持他,我們可以不需要讓ArcBlock來開發,可以讓用戶自己來參與開發。用戶如果開發的比較理想的話,不僅可以給自己用,還可以把這個協議適配器提供給其他人來用,當然在其他人來用的時候,你就能獲得報酬。

如何通過 ArcBlock 連接底層公鏈

這是組建跨礦工的一個例子,這種類型在ArcBlock裡也認為是一種組件,就是應用級的組件。那麼同樣的話,這些組件裡面還有很底層的,有直接面向用戶很高層的,這也有所謂的中間層,也就是說比如說有人他特別擅長於寫某個算法,舉個例子,如果是要實現一個未來的去中心化的交易所,那麼這個去中心化的交易所裡面可能有一些撮合的算法,有一些這個量化交易的算法,有一些人他特別擅長於做這些事情,但是呢他們可能並不擅長於開發對用戶比較友好的界面,因為開發者他們各自有不同的專長。那麼在這種情況下,就可以讓一些開發者專注於提供這種算法相關的組件,開發者就可以專注於自己所擅長的這種,比如說是這個用戶界面相關的事情。

ArcBlock這樣一個平臺是一個非常宏大的願景,這個願景最了不起的地方不只是說我們設計出這樣一個先進的系統,而是帶來了一個先進的理念,這個理念使得無數的第三方可以通過區塊鏈這樣一個公開透明的機制來形成一個新的聯合體。這個聯合體中有錢的出錢,有力的出力,有智慧的出智慧,有用戶的出用戶,第一次被如此好地團結起來,並且這個價值的分配也在整個這個軟件這個開發的發展歷史之中,能夠有效的把這個價值得到體現。所以從這個角度來講,ArcBlock是非常有意義的。

在ArcBlock這個設計裡面,我們主要分為四大主要的部分,第一個主要的部分就稱為叫開放鏈訪問協議。那麼開放鏈訪問協議目標是實現一個開放的中間層,那麼這個中間層呢可以你可以通過它去訪問任何不同的區塊鏈。也就是說我們開發者通過開放鏈訪問協議可以去訪問底層不同的區塊鏈。大家都知道在今天這種萬鏈奔騰的時代,那麼想要真正的去做一個開發是很痛苦的。即使像以太坊這樣非常友好的一個系統,你跟著它的這個開發者指南去一步步去實現,也需要幾個小時,而更糟糕的在今天整個區塊鏈還沒有一個統一的架構,這樣就使得開發者在初期決定這個項目怎麼去開發的時候,光在這個選型上就非常頭疼。

大家都知道做一個開發者有的時候沒有輪子是很痛苦的,因為你得要去自己重新造輪子,但是有的時候輪子過多是更痛苦,可能你發現這個A輪子裡面有一半是你需要的,B輪裡面有另外一半是你需要的,這時候往往導致的結果就是很多開發就開發出了C輪,最終就導致一堆輪子在那地方,然後每個輪子都不完善,不知道該怎麼去做。

現在大部分區塊鏈是從鏈本身的角度去考慮的,所以每個鏈出來的API也是千差萬別的,但如果我們從這個應用的角度去入手的話,我們能總結出一些需求的話,那麼我們就有希望開發出這樣一個有效的中間層,這個中間層能使得它可能滿足百分之八九十這種應用的需求,那麼那麼剩下的那個可能10~20%的應用可能需要調用一些比較高級的API,他最重要的是解決就是說絕大部分應用的問題。

我們開發鏈訪問協議這個設計相當大程度的受到了數據庫的整個發展的這樣一個啟示,在一個計算機的系統裡面,它非常像一個數據庫的地位。數據庫的地位今天大家已經是有目共睹的,大家用到99%的應用都是一個有數據庫支撐的應用。但是數據庫本身並不在整個系統之中,他雖然是極其重要的,但是它並不能起到這個99%的這一個部分。

其實數據庫雖然是一個非常中性化的非常核心的這樣一個部件,但是一個應用系統往往更多的開發更多的這個價值體現在這個應用。這既體現在數據之外,那麼區塊鏈也有一個相當大的這樣一個共性,從某種角度來講,現在大家都說公鏈非常重要,它的價值是很大,然而就是作為一個完整的應用系統,這個區塊鏈本身在這整個系統之中只是佔了很小的一部分,就像今天的數據庫一樣,數據庫是幾乎是99%應用的核心,但是數據庫本身所佔到的只是這個系統相當小的一部分。

如何通過 ArcBlock 連接底層公鏈

區塊鏈的今天非常類似於像數據庫早年一樣,有無數種不同的實踐方法,有無數種不同的協議,但是作為我們開發者來說,我們不需要這些,而且對於有一個統一的開放的標準,對整個這個應用的這個生態的形成有非常大的這個價值。我們在這裡面試圖貢獻我們的力量。

明天我們將開始發佈我們的第一個版本,簡稱OCAP,在我們採用了現在已經有的一個GraphQL的這樣一個查詢語言, GraphQL是Facebook主導推出,並且在幾年之前已經開源的一套查詢語言,你可以認認為它是一個產品,也可以認為它是一個應用框架,我們通過GraphQL我們一下子就團結了GraphQL現在整個生態及生態裡的各種工具,也就是說大家在我們這個APP上面進行這種開發,不需要重新去學這個新的語言,不需要去發明新的輪子,而是說現有的整個GraphQL裡面的這個大部分工具都可以直接使用。

而從另外一個角度來講,我們ArcBlock也是對GraphQL社區的一個重大的貢獻,因為在在此之前GraphQL主要都是用來做API或者說這個數據庫的這種查詢的這種接口,而當我們開放鏈訪問協議推出來後,GraphQL開發者可以非常輕鬆的來訪問各種各樣不同的區塊鏈,所以從這個角度來講也是一個比較大的貢獻。

OCAP是我們是我們第一個應用,他是一個讓大家去實驗和玩的地方,本身並不能作為一個獨立的應用去去執行,因此呢就是我們在OCAP的這這個推出之後,緊接著我們將會推出一個稱為叫OCAP Playground的概念,這個OCAP Playground其實是是一個比較有趣的想法,也就是當你用這個OCAP Playground,很多人可能他拿到這個的時候,他仍然會知道不知所措,因為你不知道這裡面可以幹什麼。那麼在這種情況之下,可能大家最容易看到的事情就是一些例子的程序。

舉個例子,我們可以去查詢這個中本聰的第一個這個創始區塊裡面寫的什麼寫的東西是什麼?還有比如說我們國內著名的一個七彩神仙魚,它它在這個比特幣上寫了一個這個浪漫的愛的宣言,那個區塊裡面數據在哪裡寫的什麼東西?比如在前一段時間中國這個北大發生的事情,有人把一個這個學校很不喜歡的一個一封信把它寫在一個地方,那麼這樣去找到類似的這種事情就等等,這些例子都可以都可以很容易的去做到,而且呢就是說並且可以把它分享出來,那麼能把這些歷程有效的分享,這個東西呢我們把它把它整治把它結合在一起,我們就把它就我們就會推出一個第二個應用,我們稱為叫這個OK的OCAP Playbook。

這個OCAP Playbook的作用,一方面是使得大家可以把推廣的這個應用進行分享,另外一方面呢也可以使得就是大家把如何使用這OCAP來開發區塊鏈這樣的一個這種思路變的充分的普及。

區塊鏈開發的最大的一個痛點是它的後端的部署成本和開發成本都比較大,大家今天用這個區塊鏈的時候也是這樣一種情況,你需要去弄那麼難記的錢包地址,為什麼要付這個gas? gas調高調低是什麼概念大家都不清楚,實際上這些事情用戶是不需要知道的,那麼這件事情是我們開發者知道,我們開發者應該把這些事情把它做好,做完了之後讓最終的用戶解放出來。

我們OCAP就是把這些很紮實的這種後端的事情把你給搞定了,換句話說就是說你通過這個OCAP就實現了非常多的一個後端,那麼你只要把主要的精力花在要讓後端來幹什麼?以及讓這個前端怎麼做的這個事情,我們還會推出OCAP的SDK,IOS的SDK與安卓的SDK,也就是說有開發IOS和安卓經驗的開發者,通過OCAP就可以非常容易地在原來應用上增加對區塊鏈的支持。

問答環節

Q1:因為公鏈的不同,所以現在數字貨幣錢包都只支持一種公鏈上的TOKEN,比如說IM TOKEN他只支持以太坊和這個以太坊TOKEN,而無法支持BTC或者EOS那ArcBlock這個跨鏈協議的功能,到時候能不能誕生出一種支持所有TOKEN的錢包?

老冒:是的,如果採用開放鏈訪問協議,那麼完全可能出現一種超級錢包的應用,這個錢包的應用可以支持所有的開發公鏈,開放訪問協議支持各種不同的錢包絕對沒有問題,我們協議是一個非常好的選擇,但這需要用戶去開發,我們並沒有去開發一個跨鏈的錢包。

區塊鏈裡面的這些錢包,並不是真正的你的錢在這個錢包裡面,你用的這個錢包的這個APP首先它是個地址的查詢器,也就是說你給他一些地址,他能知道這些地址裡面有多少餘額,然後可以查到這個地址曾經發生過哪些交易。如果要發送這些錢,錢包需要對這個交易進行簽名,也就是說這些錢包需要掌握你的私鑰,現在我們用的這個APP都是在這個設備上進行簽名的,相對來講這個錢包的安全程度不是那麼高。

任何一個錢包他有一個接口能夠訪問這個區塊鏈,能從區塊鏈的查詢到某一個地址上面有多少餘額,查詢到這個地址相關的這一個交易,同時呢他也能產生一個交易,並且把它廣播的這個區塊鏈上去,讓這個區塊鏈去執行這個轉賬或者執行這個合約。那麼有了這個開放鏈訪問協議之後,那麼你可以通過這個開放鏈訪問協議去向不同的鏈去發出查詢,查詢他的地址餘額,查詢它的轉賬記錄,查詢他的同時呢你也可以把簽好名的這個交易通過開發利用範圍協議在這個鏈上進行發送,從而達到轉賬的目的。

即使你是一個區塊鏈的新手,你通過這個OCAP就可以看到別人寫好的一些查詢,你可以簡單的修改一下參數,就可以把它拿來用在自己的應用之中了。這樣的話就是說更大程度的來降低這個降低這個應用的成本。所以前面有朋友問到就是說能不能用OCAP坐ERC20的錢包那當然是可以了,我相信當OCAP否這個逐漸的完善之後,一定會出現這個這樣超級錢包一定是在上面會出現了一種一種典型的應用。

Q2:這個ArcBlock是自己開發的嗎?

老冒:ArcBlock是我們自己開發的,但不完全是從零開始的,我們是基於GraphQL語言開發的,我們可以從GraphQL裡面採用了很多已經有了好的東西,我們並不是從頭開始的,但是我們在這個GraphQL上面做了很多這個跟區塊鏈相關的這些東西,所以也相當於是一個我們自己開發的ID但是從GraphQL的社區的現有的基礎上發展出來的,我們將來也會把它開源,所以也就相當於貢獻給社區了。

如何通過 ArcBlock 連接底層公鏈

Q3:中心化或許是區塊鏈進程中的噩夢,請問ArcBlock在依託雲計算中心化的過程,如何防止中性化?

老冒:什麼是去中心化?我覺得對一個系統來說他是中心還是去中心化的,你要從不同的維度去看,基本上我覺得至少可以從三個維度去,第一個維度是這個物理層次的,也就是說它的節點分佈,它的系統是不是去中心化。第二個維度是這個治理層面上,也就是說它是有一家公司控制的。那麼第三個層次是邏輯層面上,邏輯層面上比較容易理解,就是這一件事情,他這一個組合在一起的東西,它是可以有效的拆成兩樣不同的東西,每一樣東西都可以獨立的工作,互相不影響,但組合在一起又可以變成一個完整的服務,這如果是的話,那麼他就是邏輯上去中心化,拿阿里云為例,阿里巴巴的這個雲服務,它在物理上是去中心化的。

阿里巴巴一定有很多個機房,裡面有很多臺機器,很多臺機器通常為了這個做各種災備,通常有很多不同的數據中心。它們是不同的機器裡面會有可能會採用不同的操作系統,不同的一些軟件的部件。所以從某種角度來講,就是說今天幾乎任何一個雲計算的服務,它都是高度去中心化的物理上的這個設計。然而阿里雲它是屬於阿里巴巴的,所以不管怎麼樣阿里巴巴可以決定它怎樣去運營,它是怎樣具備怎樣的規則,那麼同時阿里雲也是不可以說隨便什麼人都敢去加入的,你想去成為一個阿里雲的節點沒門對吧?這是由阿里巴巴來管理的,所以在治理層面上它是高度中心化,它就屬於阿里巴巴的一家。

邏輯上某種角度上是去中心化的,舉個例子,比如說阿里雲裡面可能提供了這個函數式計算,對函數式計算本身是可以作為一個獨立的業務來提供的。阿里雲裡面提供了存儲的服務,這個存儲的服務和它的計算服務,每一個服務其實都是相對獨立的,他其實可以切割成很多幅度可以單獨去用的,所以從邏輯上呢是比較去中心化。

作為ArcBlock的角度來講,不要認為把這個區塊鏈平臺部署在雲之上,做一個雲上雲,因為是用雲計算就就變成是中心化的。我們最重要的一個思路,要能夠讓很多方跟我們一起來運營這樣一個ArcBlock服務。那麼從這個角度來講,就是說我們在治理上去中心化的。那麼另外一點毫無疑問,作為一個應用的平臺,我們在產品可以跑很多種不同的應用,很多不同的應用之間可以通過這個APP這樣一種方式來形成有效的這種合作和價值組合,所以我們在邏輯上也是高度去中心化的。

所以我覺得從ArcBlock這個設計角度來講,我們是在物理上邏輯上和這個治理上都是去中心化的。

Q4:作為一個沒有區塊鏈開發經驗的後端開發,如何入手?APP的開發網站文檔在哪裡?

老冒:我們會有OCAP及GraphQL支持這個文檔,會把它提供出來。沒有區塊鏈開發經驗的後端,我覺得ArcBlock恰恰就是為你們而設計的,你們可能只要比較熟悉GraphQL或者稍微去學習GraphQL,這是一個非常容易掌握的這樣一個技術。就可以非常容易地去開發這個區塊鏈的應用了,而且更重要的是你開發了這個應用之後,你的部署也非常容易,ArcBlock在這個角度上還是做了不少考量,我覺得只有讓開發者不但容易開發,同時也非常容易部署,讓他們在這些後端的這種部署這些角度上就是不需要花太多的這個時間去擔心,這樣呢才能夠更加有效地促進這個應用生態的繁榮。

關於收費的問題,我們在ABT這個鏈正式上線之前,我們的服務都是免費的,測試鏈中我們雖然不需要收費,但是要使用這個ArcBlock所有的服務都必須要有ABT,也就是說你必須持有ABT才能調用這些API才能開始在裡面做這種開發跟各種各樣的開發,但是隻需要你持有就行了,不會去消耗的。等我們就是說等到業務完全跑起來之後,有很多服務都會是收費,這也是ABT設計的目的。

本文由【U贊·價值發現官】上善若水整理


分享到:


相關文章: