區塊鏈產業能否成為開發者的天堂

買賣虛擬貨幣

區塊鏈可以把它理解為一個去中心化的一個資料庫,這是最直接的一種解釋。而且儲存在這個資料庫中的資料穩定性非常的強,不容易被篡改,而且安全度非常的高,因為咱們儲存的時候是進行過加密的。從比特幣網路的儲存的過程中,咱們就會看出來這個安全性和可靠性可見一斑。比特幣從09年1月3號誕生,到現在的話大概有八九年的時間,基本上執行非常的平穩,沒有出現過丟資料或者特別大的一些問題,除了中間有一次硬分叉帶來一些小的影響,整體還是執行的比較平穩。

分散式儲存資料

分散式這個概念其實也並不是最近才提出來,其實我們很久以前就一直在用分散式。那麼一些大型的網站的資料庫伺服器,基本上都是分散式部署的。之前我在百度的時候呢,我們使用的資料儲存他也是分散式部署的。主要的做法就是一主兩備,就是一臺主要用於儲存,其他兩臺就作為備份。如果一臺伺服器出問題,兩臺備份的就會把主伺服器的資料做一個同步,這樣的話可以保證資料一致。

資料分片技術解決TPS問題

在中心化的應用上咱們是怎麼樣解決這個併發的問題,其實是透過叢集來進行解決的。

什麼是叢集,叢集的概念就是由多臺伺服器構成了一個整體的網路來處理併發。這樣的話就是說我有多個視窗同時處理所有使用者的請求,這樣的話每條網路上分得的流量並沒有那麼多,他的吞吐量並沒有那麼多,那麼整體的吞吐量就可以維持到一個很高的一個水平。

像支付寶,支付寶是咱們用支付用的最多的一個工具,支付寶的併發量可以做到三十萬比每秒。就是說正常一個大型的一個平臺,他的TPS必須是做到了幾十萬次才能夠正常解決咱們日常的一個使用。

咱們去中心化應用的話顯然是並沒有達到這樣的一個高度,咱們知道以太坊,EOS,還有比特幣,那麼它的TPS其實並不高,那麼這樣的話就是說根本是沒有辦法解決咱們的日常使用的。EOS目前他的TPS基本上達到了接近每秒4000次。算下就是一天大概能夠處理4億筆交易。前段時間的EOS還剛爆出一次網路擁堵的事件,從這兒我們可以得出一個結論,就是四千的TPS他其實遠遠達不到咱們日常的一個正常的使用。

我們研究院的透過做了無數次的壓力測試,我們得出了一個什麼樣的結論呢?

像EOS這樣減少節點,或者就是說像比特幣增加單個區塊的儲存。這種方式只能夠暫時的加大些TPS,但是他不能從根本上解決併發的問題。

我們是如何解決這個辦法呢?就是說我們必須突破這種單通道處理資料的問題。

這個地方我們就得提到MAI公鏈所使用的一個技術,那就是資料庫分片技術。

那麼什麼叫分片技術呢?我在這個地方給大家做一個詳細的解答。應用在咱們去中心化的網路裡面就說。使用分配技術啊,可以把整個區塊鏈網路切分成若干個小組。每個小組的就單獨對自己的內部的節點做一個管理。每個小組,咱們稱它為一個碎片,這樣就相當於有若干個獨立的區塊鏈,同時在執行。因為這些碎片可以同時處理交易,相當於把原有單一處理模式,變更為一種分開並行的處理模式。這樣的話隨著節點的增多,可以處理的併發會越來越高。

舉一個例子來說明這樣一個道理,假如說現在有一家超市,這家超市有一個收銀臺,其實也就是現在的EOS和比特幣他們的那種處理方式,無論如何想辦法始終都會遇到一個瓶頸,因為這個交易都是一筆一筆的在處理,一筆一筆的在同步。處理同步這一筆交易後才會去同步下一筆。這樣的話,他處理的速度始終會有一個瓶頸。

如果說咱們打破這種常規,就是說我們來設定多個收銀臺,也就是我們的分片技術。是多個收銀臺,讓這些收銀臺同時工作同時來處理交易。這樣的帶來的一個結果,就是說我們的。交易的交易處理的併發將會成倍的增大。隨著我們MAI的公鏈以後的節點的越來越多,我們分組的碎片也會越來越多,這樣的話,我們的TPS是可以隨著公鏈的發展而發展的,而不是停滯在一個瓶頸的階段。這樣一來的話就是說TPS將不再是MAI的阻礙,MAI可以同時執行更多的DAPP,這樣的話,我們的公鏈其實是一個完全可以落地的一個專案。

第二部分 開發者

咱們關於區塊鏈的就簡單說這麼多,接下來咱們再從技術的角度來分析一下,我們開發者應該怎麼樣積極的參與到公鏈或者去中心化應用的一些開發上。對開發者而言,就是說咱們可以從事的第一個,可以積極的參與公網的開發與維護,另外一個,咱們可以去多開發一些DAPP出來。

比特幣是用C++語言來開發的,以太坊前期用c++語言來開發的,後期它更換成了GO語言。還有一個專案就是Fabric 超級賬本,他也是用GO語言的開發的。

其實區塊鏈它是一種程式設計思想,就是用任何一種程式語言基本上都可以實現,比如說c++也好,JAVA也好,Solididy也好 python也好GO語言也好,他都可以進行一個區塊鏈的開發,那麼。咱們應該選一種什麼樣的語言作為主要的開發語言呢?這個我們MAI研究院也是進行了一個對比分析,最後得出了一個結論,就是使用go語言作為我們MAI公鏈的主要開發語言。

為什麼要使用GO語言,咱們透過一些對比來說一下。

GO語言,由Unix之父肯.湯普森牽頭開發的,而肯.湯普森在電腦工業史上具有極高的地位,在2007年9月的時候才正式命名為GO語言,2012年3月然後釋出的第一個正式版本。那麼GO語言是一門比較新的語言,轉眼五六年的時間。已經成為了2016年年度的程式語言最佳的程式語言,那麼在2018年5月的TIOBE語言排行榜上的他已經排到了第九位。

就是說大家對這個GO語言普遍還是比較看好和比較認同的。而且GO語言它還有一定的特性,他呢主要是用來解決分散式的計算,它是雲端計算領域的新興語言。而區塊鏈是一個典型的分散式資料儲存系統,使用GO語言是一個絕配,這是行業裡大家都認可的。

GO語言優勢,就是說它這門語言在編譯和執行的速度上面,在眾多的程式語言中是遙遙領先的,而且它裡面提供了非常豐富的標準庫,讓學習成本低於java。

從最新的boss直聘統計來看,從事去中心化相關開發的技術的薪資,要比從事中心化開發的技術的薪資大概要高個百分之三十到四十。這個給我們帶來一個什麼樣的一個觀點呢?

中性化的應用在未來的十年之內已經趨向於飽和階段,如果再去參與或者從事這些行業的開發,其實他是前景不是很明朗。如果是從事去中心化的一些開發,其實我覺得:因為物以稀為貴。現在畢竟這方面的技術還是比較少,我覺得這方面應該是有很大的一個機會的。

2018年被業內公認為是公鏈的元年,2019年被稱為DAPP的一個元年。過去十年裡,中心化應用一直是獨霸天下。未來的十年,去中心化應用會不會成為行業的領導者呢?會不會引領下一個網際網路下一個十年的發展呢?讓我們拭目以待。

互動環節

1、對開發者來說,他所開發的dapp中產生的資料會不會與其他的dapp的資料混合?

這個應該是不會的,因為每一個DAPP呢,他都會有一個單獨的API去儲存資料,那麼儲存資料一旦上了公鏈呢,他這個不屬於任何一個DAPP的。而且就是說這些儲存上的資料呢,都是屬於使用者的,每一個DAPP他都沒有權利去讀取所有的資料,而如果要讀取資料的話必須經過使用者的同意才可以。

2、當我開發的dapp產生的資料量過大的情況下會不會像EOS一樣收費?

就是我們的DAPP產生的資料呢,這個如果說儲存到MAI的公網上的這個我們是不會進行收費的。

3、如果資料量太大,會不會像之前btc產生分叉,因為單個區塊的容量?

這個產生分叉是不會的,因為咱們的區塊呢,MAI的區塊是一個動態平衡狀態,我們做了很多的工作呢,就是針對於分叉兒專門做了很多的預防。

4、區塊會不會自己去選擇記錄的資料?還有就是分片如何在側鏈和主鏈切換呢?

區塊的記錄資料的時候呢,他不會選擇性的去記錄問題,應該會記記錄所有的資料啊,所有的交易。

針對另外一個問題就是主鏈和側鏈,它怎麼來調換分片的問題。它是這樣的,就是主鏈我們都會有一個回撥,都會有一個回撥ID去回撥到側鏈的分片上,透過回撥ID我們就可以找到這個側鏈,然後就去對裡面的資料進行一個互動。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;