概述,區(qū)塊鏈和云計(jì)算的相似之處
云計(jì)算的底層三要素
1.計(jì)算虛擬化
計(jì)算虛擬化是指將虛擬系統(tǒng)和底層硬件之間的CPU和內(nèi)存抽象出來(lái),供虛擬機(jī)使用。計(jì)算虛擬化技術(shù)需要模擬一套操作系統(tǒng)的運(yùn)行環(huán)境。在這種環(huán)境下,可以安裝Windows或Linux。這些操作系統(tǒng)被稱為來(lái)賓操作系統(tǒng)。兩者相互獨(dú)立,互不影響(相比之下,當(dāng)主機(jī)資源不足時(shí),會(huì)出現(xiàn)競(jìng)爭(zhēng)等問題,從而導(dǎo)致運(yùn)行緩慢等問題)。計(jì)算虛擬化可以將主機(jī)的單個(gè)物理內(nèi)核虛擬化為多個(gè)vcpu,這些vcpu本質(zhì)上是正在運(yùn)行的進(jìn)程。考慮系統(tǒng)調(diào)度,虛擬核越多越好。記憶力也差不多。物理機(jī)上的內(nèi)存在邏輯上分為幾個(gè)部分,供不同的虛擬機(jī)使用。每個(gè)虛擬機(jī)都有自己獨(dú)立的內(nèi)存。除了這些,我們還需要模擬網(wǎng)絡(luò)設(shè)備,BIOS等。這個(gè)虛擬化軟件叫hypervisor,以ESXI、xen、KVM等著稱。通常分為兩種。第一個(gè)直接部署到物理服務(wù)器上,如下圖ESXI所示
由于直接部署在裸機(jī)上,虛擬機(jī)管理程序需要自帶硬件驅(qū)動(dòng),虛擬機(jī)的所有操作都需要通過虛擬機(jī)管理程序。還有一種虛擬化虛擬機(jī)管理程序,KVM是最流行的一種(安裝在個(gè)人電腦上的virtualbox和工作站也是)。它們依賴于主機(jī)操作系統(tǒng)。這樣做的好處是他們可以充分利用主機(jī)的各種資源管理和驅(qū)動(dòng),但是效率會(huì)打折扣。下圖是使用IO時(shí)KVM的流程圖。
當(dāng)然,從完全虛擬化、半虛擬化和硬件輔助虛擬化的角度來(lái)看,數(shù)據(jù)中心現(xiàn)在基本上是硬件輔助虛擬化。完全虛擬化完全依靠軟件模擬,半虛擬化需要修改操作,讓他們知道自己在虛擬環(huán)境中運(yùn)行。硬件輔助為每個(gè)Guest OS提供一組寄存器,Guest OS可以直接在特權(quán)級(jí)運(yùn)行,從而提高效率。
雖然VMware的ESXI仍然是數(shù)據(jù)中心的主要虛擬化軟件,但KVM正在慢慢趕上OpenStack,KVM是開源的。下面簡(jiǎn)單介紹一下KVM。KVM是基于內(nèi)核的,從內(nèi)核2.6開始帶。它可以在x86和power等主流架構(gòu)上運(yùn)行。KVM主要是CPU和內(nèi)存的虛擬化,其他設(shè)備的虛擬化和虛擬機(jī)的管理都需要QEMU。一個(gè)虛擬機(jī)本質(zhì)上就是一個(gè)進(jìn)程,運(yùn)行在qemu-KVM進(jìn)程地址空,KVM (kernel 空)和QEMU (user 空)相結(jié)合,為用戶提供一個(gè)完整的虛擬化環(huán)境。
2.網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化是一種重要的網(wǎng)絡(luò)技術(shù),它可以在物理網(wǎng)絡(luò)上虛擬多個(gè)隔離的虛擬網(wǎng)絡(luò),而不依賴于底層的物理連接,并且可以動(dòng)態(tài)改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),提供多租戶隔離,從而使不同的用戶可以使用獨(dú)立的網(wǎng)絡(luò)資源片,從而提高網(wǎng)絡(luò)資源的利用率,實(shí)現(xiàn)靈活的網(wǎng)絡(luò)。目前最火的是軟件定義網(wǎng)絡(luò)(SDN)。SDN的出現(xiàn)使得網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)更加靈活高效,同時(shí)網(wǎng)絡(luò)虛擬化也成為SDN應(yīng)用中的一個(gè)重量級(jí)應(yīng)用。其核心技術(shù)OpenFlow將網(wǎng)絡(luò)設(shè)備的控制平面和數(shù)據(jù)平面分開,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為一個(gè)管道更加智能化。
通過SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化包括物理網(wǎng)絡(luò)管理、網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三個(gè)部分。這三部分往往由專門的中間層軟件來(lái)完成,我們稱之為網(wǎng)絡(luò)虛擬化平臺(tái)。虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)管理和抽象虛擬化,并提供給不同的租戶。此外,虛擬化平臺(tái)還應(yīng)該實(shí)現(xiàn)不同租戶之間的相互隔離,以確保不同租戶之間互不影響。虛擬化平臺(tái)的存在使得租戶無(wú)法感知網(wǎng)絡(luò)虛擬化的存在,即虛擬化平臺(tái)可以實(shí)現(xiàn)用戶透明的網(wǎng)絡(luò)虛擬化。
(1)虛擬化平臺(tái)
虛擬化平臺(tái)是數(shù)據(jù)網(wǎng)絡(luò)拓?fù)浜妥鈶艨刂破髦g的中間層。面向數(shù)據(jù)平面,虛擬化平面是控制器;對(duì)于租戶控制器,虛擬化平臺(tái)就是數(shù)據(jù)平面。因此,虛擬化平臺(tái)本質(zhì)上有兩個(gè)屬性:數(shù)據(jù)平面和控制平面。在虛擬化的核心層,虛擬化平臺(tái)需要完成從物理網(wǎng)絡(luò)資源到虛擬資源的虛擬化映射過程。面對(duì)租戶控制器,虛擬化平臺(tái)充當(dāng)數(shù)據(jù)平面,并將模擬的虛擬網(wǎng)絡(luò)呈現(xiàn)給租戶控制器。從租戶控制器往下看,只能看到自己的虛擬網(wǎng)絡(luò),不知道真實(shí)的物理網(wǎng)絡(luò)。從數(shù)據(jù)角度看,虛擬化平臺(tái)就是控制器,交換機(jī)并不知道虛擬平面的存在。因此,虛擬化平臺(tái)的存在實(shí)現(xiàn)了租戶和底層網(wǎng)絡(luò)的透明虛擬化,管理所有物理網(wǎng)絡(luò)拓?fù)?,為租戶提供隔離的虛擬網(wǎng)絡(luò)。
網(wǎng)絡(luò)虛擬化平臺(tái)示意圖
虛擬化平臺(tái)不僅可以實(shí)現(xiàn)物理拓?fù)涞教摂M拓?fù)涞摹耙粚?duì)一”映射,還可以實(shí)現(xiàn)物理拓?fù)涞摹岸鄬?duì)一”映射。由于租戶網(wǎng)絡(luò)不能壟斷物理平面的交換機(jī),所以虛擬網(wǎng)絡(luò)本質(zhì)上實(shí)現(xiàn)了“一虛多”和“多虛一”的虛擬化。這里的“一個(gè)虛擬多臺(tái)”是指單個(gè)物理交換機(jī)可以虛擬映射到多個(gè)虛擬租戶網(wǎng)絡(luò)中的邏輯交換機(jī),從而由不同的租戶共享;“多個(gè)虛擬交換機(jī)”是指將多個(gè)物理交換機(jī)和鏈路資源虛擬化為一個(gè)大型邏輯交換機(jī)。也就是說,租戶眼中的交換機(jī)可以通過多個(gè)物理交換機(jī)進(jìn)行物理連接。
將單個(gè)虛擬節(jié)點(diǎn)映射到多個(gè)物理節(jié)點(diǎn)
(2)網(wǎng)絡(luò)資源虛擬化
為了實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,虛擬化平臺(tái)需要對(duì)物理網(wǎng)絡(luò)資源進(jìn)行抽象虛擬化,包括拓?fù)涮摂M化、節(jié)點(diǎn)資源虛擬化和鏈路資源虛擬化。
拓?fù)涮摂M化
拓?fù)涮摂M化是網(wǎng)絡(luò)虛擬化平臺(tái)最基本的功能。虛擬平臺(tái)需要完成從虛擬節(jié)點(diǎn)和虛擬鏈路到租戶虛擬網(wǎng)絡(luò)中物理節(jié)點(diǎn)和鏈路的映射。這包括“一對(duì)一”和“一對(duì)多”映射。在“一對(duì)一”映射中,虛擬節(jié)點(diǎn)將映射到物理節(jié)點(diǎn),虛擬鏈路也是如此。在“一對(duì)多”映射中,一個(gè)虛擬節(jié)點(diǎn)可以映射成多個(gè)連接在一起的物理節(jié)點(diǎn);邏輯鏈路也可以映射到鏈接在一起的多個(gè)鏈路。對(duì)于物理節(jié)點(diǎn),一個(gè)物理節(jié)點(diǎn)可以被多個(gè)邏輯節(jié)點(diǎn)映射。
節(jié)點(diǎn)資源虛擬化
節(jié)點(diǎn)資源的虛擬化包括節(jié)點(diǎn)Flow表、CPU等資源的抽象虛擬化。流表資源本身就是交換節(jié)點(diǎn)的稀缺資源。如果可以虛擬化,然后由虛擬化平臺(tái)分配給不同的租戶,那么不同的租戶可以分配和限制節(jié)點(diǎn)資源的使用。拓?fù)涑橄笾皇峭瓿闪藦奶摂M節(jié)點(diǎn)到物理節(jié)點(diǎn)的映射,并沒有指定不同用戶/租戶對(duì)物理節(jié)點(diǎn)資源的分配。如果要對(duì)網(wǎng)絡(luò)進(jìn)行更細(xì)粒度的虛擬化,就需要對(duì)節(jié)點(diǎn)資源進(jìn)行虛擬化。
鏈接資源虛擬化
和節(jié)點(diǎn)資源一樣,鏈路資源也是網(wǎng)絡(luò)中重要的資源,但是拓?fù)涑橄蟛]有規(guī)定一些用戶可以使用多少鏈路資源。因此,為了實(shí)現(xiàn)鏈路資源的合理分配,有必要對(duì)鏈路資源進(jìn)行虛擬化??梢猿橄筇摂M化的鏈路資源包括租戶可用的帶寬、端口的隊(duì)列資源等。
(3)網(wǎng)絡(luò)隔離
網(wǎng)絡(luò)資源虛擬化只是完成了從物理資源到虛擬資源的抽象過程。為了實(shí)現(xiàn)完整的網(wǎng)絡(luò)虛擬化,需要為不同的租戶提供隔離的網(wǎng)絡(luò)資源。網(wǎng)絡(luò)隔離需要隔離SDN的控制平面和數(shù)據(jù)平面,以保證不同租戶控制器之間的互補(bǔ)干擾和不同虛擬網(wǎng)絡(luò)之間的隔離。另外,為了滿足用戶在地址空之間的定制需求,虛擬化平臺(tái)還需要對(duì)網(wǎng)絡(luò)地址進(jìn)行虛擬化。
控制平面隔離
控制器的性能對(duì)SDN的整體性能影響很大,所以虛擬化平臺(tái)需要保證租戶的控制器在運(yùn)行時(shí)不受其他租戶控制器的影響,從而保證租戶可以使用虛擬化平臺(tái)的資源。虛擬化平臺(tái)連接到租戶控制器時(shí),需要保證進(jìn)程能夠獲得一定的資源,比如CPU資源。虛擬化平臺(tái)本身可以輕松地將租戶的控制器相互隔離。
數(shù)據(jù)平面隔離
數(shù)據(jù)平面的資源包括節(jié)點(diǎn)的CPU和流表、鏈路帶寬、端口的隊(duì)列資源等。為了保證每個(gè)租戶的正常使用,需要相應(yīng)隔離數(shù)據(jù)平面的資源,以保證租戶的資源不被其他租戶占用。如果資源沒有在數(shù)據(jù)平面上隔離,那么數(shù)據(jù)平面上租戶的數(shù)據(jù)之間就會(huì)產(chǎn)生競(jìng)爭(zhēng),不能保證租戶對(duì)網(wǎng)絡(luò)資源的需求,所以需要在數(shù)據(jù)平面上隔離資源。
地址隔離
為了使租戶能夠在自己的虛擬租戶網(wǎng)絡(luò)中任意使用地址,虛擬化平臺(tái)需要完成地址隔離。地址隔離主要通過地址映射來(lái)實(shí)現(xiàn)。租戶可以隨意定制地址空,這些地址是面向租戶的虛擬化平臺(tái)虛擬地址。虛擬化平臺(tái)在轉(zhuǎn)發(fā)租戶控制器南行協(xié)議報(bào)文時(shí),需要將虛擬地址翻譯成整個(gè)網(wǎng)絡(luò)唯一的物理地址。租戶服務(wù)器的地址在發(fā)送到接入交換機(jī)時(shí)會(huì)被修改為物理地址,然后數(shù)據(jù)包的轉(zhuǎn)發(fā)會(huì)基于修改后的物理地址。當(dāng)數(shù)據(jù)到達(dá)租戶目的地址的主機(jī)出口時(shí),控制器需要將該地址轉(zhuǎn)換為原租戶設(shè)置的地址,從而完成地址的虛擬映射。地址的虛擬映射使租戶可以使用完整的地址空和任意的FlowSpace (flow 空:由流表匹配項(xiàng)組成的多維空),而物理層實(shí)現(xiàn)地址隔離,使不同租戶使用特定的物理地址和數(shù)據(jù)不會(huì)相互干擾。
3.存儲(chǔ)虛擬化
存儲(chǔ)虛擬化是一種貫穿整個(gè)信息技術(shù)環(huán)境的技術(shù),用于簡(jiǎn)化原本可能相對(duì)復(fù)雜的底層基礎(chǔ)架構(gòu)。存儲(chǔ)虛擬化的思想是將資源的邏輯映像從物理存儲(chǔ)中分離出來(lái),從而為系統(tǒng)和管理員提供簡(jiǎn)化和無(wú)縫的資源虛擬視圖。存儲(chǔ)虛擬化在云計(jì)算之前已經(jīng)發(fā)展了很長(zhǎng)時(shí)間,與云計(jì)算沒有特別的關(guān)系。云計(jì)算存儲(chǔ)通常指亞馬遜的S3存儲(chǔ)或EBS存儲(chǔ),它將一個(gè)統(tǒng)一的資源庫(kù)劃分為多個(gè)用戶。
對(duì)用戶來(lái)說,虛擬化存儲(chǔ)資源就像一個(gè)巨大的“存儲(chǔ)池”。用戶看不到特定的磁盤和磁帶,也不必關(guān)心他們的數(shù)據(jù)通向哪個(gè)特定的存儲(chǔ)設(shè)備。
從管理角度來(lái)看,虛擬存儲(chǔ)池采用集中式管理,根據(jù)具體需求動(dòng)態(tài)分配存儲(chǔ)資源給各種應(yīng)用。值得指出的是,通過使用虛擬化技術(shù),磁帶庫(kù)可以由磁盤陣列模擬,為應(yīng)用程序提供與磁盤一樣快但與磁帶庫(kù)一樣大的存儲(chǔ)資源。這就是VTL,虛擬磁帶庫(kù)(VTL),它如今被廣泛使用,在當(dāng)今的企業(yè)存儲(chǔ)系統(tǒng)中扮演著越來(lái)越重要的角色。
主流存儲(chǔ)虛擬化有以下三種技術(shù)。在云計(jì)算場(chǎng)景中,通常會(huì)根據(jù)實(shí)際場(chǎng)景選擇合適的技術(shù)。
療養(yǎng)院
先說高端存儲(chǔ)?,F(xiàn)在高端存儲(chǔ)應(yīng)該是以EMC、IBM、HDS為主。近年來(lái),外部存儲(chǔ)隨著廉價(jià)磁盤不斷提高容量和性能,推動(dòng)了存儲(chǔ)區(qū)域網(wǎng)絡(luò)和主機(jī)光纖通道接口的不斷成熟,在數(shù)據(jù)中心,尤其是金融領(lǐng)域變得非常普遍。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)提供塊存儲(chǔ)。例如,一個(gè)磁盤陣列中有10個(gè)測(cè)試數(shù)據(jù)磁盤,然后10個(gè)數(shù)據(jù)磁盤可以按磁盤陣列或邏輯卷(LVM)劃分。但是,這10個(gè)數(shù)據(jù)磁盤不同于以前的物理磁盤。邏輯盤可以具有提供100克的第一物理盤和提供300克的第二物理盤。對(duì)于操作系統(tǒng)來(lái)說,無(wú)法感知是物理磁盤還是邏輯磁盤,這就是存儲(chǔ)資源池的概念。RAID或LVM不僅可以提供數(shù)據(jù)保護(hù),還可以重新劃分磁盤大小,提高讀寫速率。
但是SAN也不是沒有缺點(diǎn),價(jià)格也比較貴。光纖端口和光纖交換機(jī)價(jià)格高,所以有IPSAN存儲(chǔ),存儲(chǔ)協(xié)議由IP協(xié)議承載;無(wú)法提供數(shù)據(jù)共享,一個(gè)磁盤只能掛在一臺(tái)主機(jī)上,所以有NAS存儲(chǔ)。
噪聲控制協(xié)會(huì)
NAS是文件存儲(chǔ)。與塊存儲(chǔ)相比,文件存儲(chǔ)具有最大的數(shù)據(jù)共享優(yōu)勢(shì)。它基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,存儲(chǔ)區(qū)域網(wǎng)絡(luò)有自己的一套存儲(chǔ)協(xié)議。常見的NAS包括NFS、FTP、HTTP文件服務(wù)器等。由于這類設(shè)備通常有IP,一般客戶端可以作為數(shù)據(jù)網(wǎng)關(guān)服務(wù)器直接訪問。網(wǎng)絡(luò)連接存儲(chǔ)建立在傳統(tǒng)網(wǎng)絡(luò)上,因此可以遠(yuǎn)距離傳輸。NAS易于安裝和維護(hù),但速度通常比SAN慢很多。
分布式存儲(chǔ)
隨著x86性能的提高,用x86芯片搭建的小型存儲(chǔ)系統(tǒng)開始在中端存儲(chǔ)領(lǐng)域嶄露頭角。利用X86本地磁盤構(gòu)建大型存儲(chǔ)集群。分布式存儲(chǔ)通常可以提供塊存儲(chǔ)和文件存儲(chǔ)。沒有必要引入與OpenStack緊密集成的分布式存儲(chǔ)ceph。下圖是ceph官網(wǎng)的整體模塊圖,提供了CEPH FS文件存儲(chǔ)系統(tǒng)和POSIX接口,對(duì)象存儲(chǔ)和最常用的快速存儲(chǔ)。
其基石是以下RADOS,然后是系統(tǒng)組件,包括:
ceph osds:ceph的OSD(對(duì)象存儲(chǔ)設(shè)備)守護(hù)進(jìn)程。主要功能包括:數(shù)據(jù)存儲(chǔ)、復(fù)制數(shù)據(jù)處理、數(shù)據(jù)恢復(fù)、數(shù)據(jù)補(bǔ)償、平衡數(shù)據(jù)分布。并提供一些與數(shù)據(jù)相關(guān)的監(jiān)控信息給cephmonitor,讓cephmonitor可以檢查其他OSD的心跳狀態(tài)。CEPH存儲(chǔ)集群需要至少兩個(gè)CEPH操作系統(tǒng)才能有效存儲(chǔ)兩個(gè)數(shù)據(jù)。請(qǐng)注意,這里的兩個(gè)ceph OSD指的是運(yùn)行在兩個(gè)物理服務(wù)器上的守護(hù)進(jìn)程,而不是一個(gè)物理服務(wù)器上的兩個(gè)ceph OSD。
監(jiān)視器:CEPH的Moniter守護(hù)進(jìn)程,其主要功能是維護(hù)集群狀態(tài)表組,該組包含多個(gè)表,包括Moniter:CEPH、OSD映射、PG(放置組)映射和CRUSH映射。
mdss:ceph的MDS(元數(shù)據(jù)服務(wù)器)守護(hù)進(jìn)程,主要保存ceph文件系統(tǒng)的元數(shù)據(jù)。請(qǐng)注意,CEPH的數(shù)據(jù)塊設(shè)備和CEPH對(duì)象存儲(chǔ)都不需要CEPH MDS守護(hù)程序。Cephemds為基于POSIX文件系統(tǒng)的用戶提供了一些基本命令,比如ls、find等。,可以大大降低CPEH存儲(chǔ)集群的壓力。
另一個(gè)開源對(duì)象存儲(chǔ)是openstack的Swift。Swift的初衷是低成本存儲(chǔ)超大容量的數(shù)據(jù)。swift使用容器來(lái)管理對(duì)象,允許用戶存儲(chǔ)、檢索和刪除對(duì)象及其元數(shù)據(jù),所有這些都是通過用戶友好的RESTful界面完成的。
底部三個(gè)元素的區(qū)塊鏈
1.共享書籍
確切地說,共享分類賬是一種分布式分類賬技術(shù),本質(zhì)上是一種可以在由多個(gè)站點(diǎn)、不同地理位置或多個(gè)機(jī)構(gòu)組成的網(wǎng)絡(luò)中共享的資產(chǎn)數(shù)據(jù)庫(kù)。網(wǎng)絡(luò)中的參與者可以獲得一份唯一真實(shí)的分類賬副本。書中的任何變化都會(huì)體現(xiàn)在所有的副本中,反應(yīng)時(shí)間在幾分鐘甚至幾秒鐘之內(nèi)。本賬簿中存儲(chǔ)的資產(chǎn)可以是金融資產(chǎn)、法律定義的資產(chǎn)、實(shí)物資產(chǎn)或電子資產(chǎn)。本賬本存儲(chǔ)資產(chǎn)的安全性和準(zhǔn)確性是通過使用公私鑰和簽名來(lái)控制賬本的訪問權(quán)限,從而實(shí)現(xiàn)基于密碼學(xué)的維護(hù)。根據(jù)網(wǎng)絡(luò)中約定的規(guī)則,總賬中的記錄可以由一個(gè)、部分或全部參與者更新。
分布式賬本技術(shù)使用加密哈希算法和數(shù)字簽名來(lái)保證交易的完整性,并保證共享賬本是準(zhǔn)確的副本,降低了交易欺詐的風(fēng)險(xiǎn),因?yàn)榇鄹男枰诙鄠€(gè)地方同時(shí)進(jìn)行。密碼哈希算法(如SHA256計(jì)算算法)可以確保對(duì)事務(wù)輸入的任何更改——即使是最輕微的更改——都會(huì)計(jì)算出不同的哈希值,這表明事務(wù)輸入可能已損壞。數(shù)字簽名確保交易源自發(fā)送者(用私鑰簽名),而不是冒名頂替者。
2.一致性算法
在區(qū)塊鏈的發(fā)展過程中有五種典型的共識(shí)算法:PoW、PoS、DPoS、PBFT和聯(lián)合共識(shí)。
早期,比特幣比特幣作為區(qū)塊鏈技術(shù)的第一個(gè)成功應(yīng)用,率先引入了利用哈希算法隨機(jī)性的工作證明(PoW)。PoW機(jī)制通常被稱為挖掘,比特幣的每個(gè)區(qū)塊都被挖掘出來(lái)。每個(gè)塊使用事務(wù)、時(shí)間和自定義值來(lái)計(jì)算該塊的哈希。合格塊的Hash必須滿足前n位為零,所以需要不斷調(diào)整剛才的三個(gè)參數(shù),才能找到滿足條件的Hash。因?yàn)楣K惴ㄗ銐螂S機(jī),所以零的數(shù)量越多,計(jì)算該哈希的概率就越低。此時(shí),需要進(jìn)行大量嘗試才能得到合理的Block Hash,計(jì)算時(shí)間取決于機(jī)器的Hash運(yùn)算速度。當(dāng)一個(gè)節(jié)點(diǎn)提供了一個(gè)合理的Block Hash值,就意味著這個(gè)節(jié)點(diǎn)經(jīng)歷了大量的嘗試計(jì)算,這就是工作量的證明。當(dāng)然,我們無(wú)法得到計(jì)算次數(shù)的絕對(duì)值,因?yàn)檎业揭粋€(gè)合格的Hash是一個(gè)概率事件。當(dāng)一個(gè)節(jié)點(diǎn)在整個(gè)網(wǎng)絡(luò)中有n%的計(jì)算能力時(shí),它有n%的概率先發(fā)布一個(gè)合格的塊。
然后由于算法PoW極度消耗計(jì)算資源,截止到本文撰寫之時(shí)(2017年8月),估計(jì)比特幣網(wǎng)絡(luò)消耗的電量已經(jīng)達(dá)到15TW。因此,NXT和其他新興的加密貨幣提出了一個(gè)新的想法,即PoS(股份證明)。這個(gè)模型將根據(jù)你持有數(shù)字現(xiàn)金的數(shù)量和時(shí)間來(lái)決定你可以發(fā)布下一個(gè)區(qū)塊的概率。在PoS模式下,有一個(gè)名詞叫做貨幣年齡,每種貨幣每天產(chǎn)生一個(gè)貨幣年齡。比如你總共持有100種貨幣30天,那么此時(shí)你的貨幣年齡是3000,然后根據(jù)每個(gè)人的貨幣年齡,按照隨機(jī)算法決定誰(shuí)來(lái)發(fā)布下一個(gè)區(qū)塊。此時(shí),如果您被選中發(fā)布POS塊,您的貨幣年齡將被清除空將為0,您將重新開始。
PoS不是沒有缺點(diǎn),但最大的缺點(diǎn)在于效率。于是,BitShares提出了DPoS(委托持股證明)。其原理是讓每一個(gè)持有bit份額的人投票,從而產(chǎn)生101個(gè)委托,可以理解為101個(gè)超級(jí)節(jié)點(diǎn)或挖掘池,這101個(gè)超級(jí)節(jié)點(diǎn)的權(quán)限完全相等。從某個(gè)角度來(lái)說,DPoS有點(diǎn)像議會(huì)制或者人大制。如果代表未能履行職責(zé)(輪到他們時(shí),他們未能生成塊),他們將從列表中刪除,網(wǎng)絡(luò)將選擇新的超級(jí)節(jié)點(diǎn)來(lái)替換他們。
這些共識(shí)機(jī)制都依賴于密碼學(xué)貨幣,因?yàn)轵?qū)動(dòng)搜索塊的來(lái)源,無(wú)論是PoW還是PoS,都是發(fā)布新塊的貨幣獎(jiǎng)勵(lì)。對(duì)于沒有令牌的系統(tǒng),比如HyperLedger Fabric,如何選擇共識(shí)機(jī)制?這時(shí),我們可以回頭看看PBFT。BFT(拜占庭容錯(cuò))是一種很早就提出的分布式容錯(cuò)算法,可以發(fā)現(xiàn)拜占庭問題進(jìn)行進(jìn)一步的理解,這里就不詳述了。作為BFT的一個(gè)實(shí)現(xiàn),PBFT是一個(gè)狀態(tài)機(jī)復(fù)制算法,即將服務(wù)建模為狀態(tài)機(jī),狀態(tài)機(jī)在分布式系統(tǒng)的不同節(jié)點(diǎn)進(jìn)行復(fù)制。每個(gè)狀態(tài)機(jī)的副本保存服務(wù)的狀態(tài),并且還實(shí)現(xiàn)服務(wù)的操作。所有副本的集合用大寫字母R表示,每個(gè)副本用0到|R|-1的整數(shù)表示。為了描述方便,假設(shè)|R|=3f+1,其中f為可能無(wú)效副本的最大數(shù)量。雖然可能有超過3f+1的副本,但額外的副本除了降低性能之外,并不能提高可靠性。
此外,還有一個(gè)基于投票的聯(lián)合共識(shí),由瑞波代表。這種共識(shí)使得網(wǎng)絡(luò)能夠基于特殊節(jié)點(diǎn)的列表達(dá)成共識(shí)。最初的特殊節(jié)點(diǎn)列表就像一個(gè)俱樂部。接納新會(huì)員,必須得到51%俱樂部會(huì)員的認(rèn)可。共識(shí)遵循這個(gè)核心成員51%的權(quán)力,外人沒有影響力。這種共識(shí)模式也大大提高了效率,但需要保證不超過51%的惡意節(jié)點(diǎn)在特殊節(jié)點(diǎn),代價(jià)是分散整個(gè)網(wǎng)絡(luò)。
3.P2P網(wǎng)絡(luò)
P2P之所以廣為人知,主要是因?yàn)锽itTorrent和BT的普及,P2P網(wǎng)絡(luò)的核心概念是多臺(tái)相互連接的計(jì)算機(jī)處于平等的地位,每臺(tái)計(jì)算機(jī)功能相同,沒有隸屬劃分。一臺(tái)計(jì)算機(jī)可以作為服務(wù)器,設(shè)置共享資源供網(wǎng)絡(luò)中的其他計(jì)算機(jī)使用,也可以作為工作站使用。一般來(lái)說,整個(gè)網(wǎng)絡(luò)不依賴于專用的集中式服務(wù)器或?qū)S玫墓ぷ髡尽>W(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)不僅可以充當(dāng)網(wǎng)絡(luò)服務(wù)的請(qǐng)求者,還可以響應(yīng)其他計(jì)算機(jī)的請(qǐng)求,提供資源、服務(wù)和內(nèi)容。這些資源和服務(wù)一般包括:信息共享和交換、計(jì)算資源(如CPU計(jì)算能力共享)、存儲(chǔ)共享(如緩存和磁盤之間的使用空)、網(wǎng)絡(luò)共享、打印機(jī)共享等。
為了實(shí)現(xiàn)分布式賬本的能力,區(qū)塊鏈還采用了P2P網(wǎng)絡(luò)。分布式分類帳分布到網(wǎng)絡(luò)中的所有成員節(jié)點(diǎn),可以防止任何個(gè)人或一組參與者控制底層基礎(chǔ)設(shè)施或破壞整個(gè)系統(tǒng)。網(wǎng)絡(luò)中的參與者是平等的,遵守相同的協(xié)議。
作者簡(jiǎn)介:
謝文杰·錢諾瓦首席技術(shù)官
區(qū)塊鏈技術(shù)專家。前金山云技術(shù)產(chǎn)品專家,百度移動(dòng)事業(yè)部技術(shù)經(jīng)理,搜狐高級(jí)工程師。畢業(yè)于南京郵電大學(xué)計(jì)算機(jī)系,擁有十余年大型軟件技術(shù)架構(gòu)經(jīng)驗(yàn),擅長(zhǎng)設(shè)計(jì)高性能、高可用性服務(wù),對(duì)云計(jì)算、移動(dòng)APP、手機(jī)游戲、社交網(wǎng)絡(luò)、P2P網(wǎng)絡(luò)等各類產(chǎn)品的開發(fā)運(yùn)營(yíng)有深入研究。我從14年開始研究區(qū)塊鏈,在區(qū)塊鏈很多主流技術(shù)平臺(tái)上進(jìn)行了深入研究,重點(diǎn)是區(qū)塊鏈技術(shù)在海量數(shù)據(jù)和高性能高可用性軟件系統(tǒng)中的應(yīng)用實(shí)踐。
金鏈條新星區(qū)塊鏈高級(jí)工程師
前IBM GBS區(qū)塊鏈技術(shù)專家,移動(dòng)應(yīng)用軟件架構(gòu)師。本人從事互聯(lián)網(wǎng)工作8年,在金融領(lǐng)域和制造業(yè)領(lǐng)域有豐富的行業(yè)經(jīng)驗(yàn)。他學(xué)習(xí)區(qū)塊鏈16年,參與過郵政儲(chǔ)蓄銀行、農(nóng)業(yè)銀行等多家區(qū)塊鏈銀行的實(shí)踐項(xiàng)目,具有豐富的咨詢和實(shí)施經(jīng)驗(yàn)。
鏈新星(www.chainnova.com)
智聯(lián)是由a股上市公司中南建設(shè)和美國(guó)硅谷科技公司PeerNova共同成立的高科技公司。定位于服務(wù)金融科技行業(yè)的實(shí)踐,整合區(qū)塊鏈、云計(jì)算、大數(shù)據(jù)、人工智能等技術(shù)板塊,共同實(shí)現(xiàn)面向國(guó)內(nèi)乃至全球用戶的行業(yè)應(yīng)用場(chǎng)景,打造互聯(lián)網(wǎng)新金融、區(qū)塊鏈+工商認(rèn)知等解決方案。目前現(xiàn)有的行業(yè)解決方案涵蓋:供應(yīng)鏈(商品)追溯、FinTech、IP信息正義、知識(shí)產(chǎn)權(quán)交易、企業(yè)外部成本交易。智聯(lián)是Linux基金會(huì)和Hyperledger的成員。
本文是瑞文原創(chuàng)專家專欄。請(qǐng)聯(lián)系后臺(tái)授權(quán)。
1.《謝文杰 10分鐘帶你看透區(qū)塊鏈和云計(jì)算之底層技術(shù)三要素》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《謝文杰 10分鐘帶你看透區(qū)塊鏈和云計(jì)算之底層技術(shù)三要素》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/yule/880871.html