开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費電子書等14項超值服

          開通VIP
          Hyperledger Fabric on SAP Cloud Platform

          今天的文章來自Wen Aviva, 坐Jerry面對面的程序媛。

          Jerry在之前的公眾號文章《在SAP UI中使用純JavaScript顯示產(chǎn)品主數(shù)據(jù)的3D模型視圖》已經(jīng)介紹過Aviva了,SAP成都C4C開發(fā)團隊中其他同事評價她為:“美膩與智慧的化身”,“云時代女王”,“是大家前沿技術的引路人”。因為Jerry和Aviva就在一個組,所以我的看法是,這些評價都實至名歸。

          比如Jerry了解到的Javascript 3D渲染,增強現(xiàn)實(Argument Reality)和這篇文章談到的Hyperledger Fabric, 全部都是從Aviva那里學到的。

          SAP成都研究院的每位同事,只要是參加了2017年歲末年會掃福字領紅包的活動,則理論上都使用了Aviva和成都另一位程序媛Zhao Rina開發(fā)的基于AR的小應用。

          2017年7月初成都C4C開發(fā)團隊剛剛創(chuàng)建,除了老大Max之外,只有5位組員:哈公子,大衛(wèi)哥,象老師,勇哥和阿爽。當時這支新的開發(fā)團隊面臨的最緊迫問題,就是贏得C4C美國開發(fā)總部的信任,從而從總部攬活到成都本地來做。用什么獲得信任呢?對程序猿來說,當然是talk is cheap, show me the code。當時這支剛剛組建起來的五人小團隊對C4C毫不了解,但是卻選擇了一個中國客戶呼聲非常高,非常希望能夠添加到C4C標準產(chǎn)品去的backlog。短短一個月時間,這個五人小團隊完成了從現(xiàn)學C4C產(chǎn)品知識和前后臺開發(fā)知識,到將backlog實現(xiàn)成一個原型的全過程。當原型錄成的視頻給美國開發(fā)老大過目之后,得到了極高的評價,驚嘆這只團隊從創(chuàng)建到productive只花了短短一個月的時間。這個原型的順利完成,為成都C4C團隊后續(xù)的發(fā)展壯大打下了一個堅實的基礎。

          這個原型最后的交付形式是iOS應用。當時五位同事都沒有做過iOS平臺上的開發(fā),不過幸好我們有Aviva。Max從SAP成都數(shù)字創(chuàng)新空間租借了Aviva。在她的幫助下,原型發(fā)布順利完成。更令人敬佩的是,Aviva將她的iOS開發(fā)經(jīng)驗無私地分享給了團隊其他同事,現(xiàn)在C4C團隊已經(jīng)有多位同事能夠在iOS平臺上進行工作。我想,今年三月成都C4C團隊參加編程馬拉松時,在組隊階段給隊伍取名為“Hi Aviva!”, 或許是想通過這種方式感謝Aviva對C4C團隊做出的貢獻。

          Jerry很慶幸每天可以和這樣的同事一起工作。

          下面是Aviva的正文。


          什么是區(qū)塊鏈?簡單來說區(qū)塊鏈就是一個分布式的記賬本,或者分布式的數(shù)據(jù)庫。

          區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)是一個鏈表,交易數(shù)據(jù)被存儲到鏈表的區(qū)塊中,區(qū)塊鏈的第一個區(qū)塊叫創(chuàng)世區(qū)塊,除了創(chuàng)世塊以外,每個區(qū)塊還包含前一個區(qū)塊的哈希指針,這個哈希指針的值是根據(jù)前一個區(qū)塊的實際數(shù)據(jù)計算出來的。哈希指針指向前一個區(qū)塊,后面的區(qū)塊可以查找前面所有區(qū)塊的信息。

          賬本的數(shù)據(jù)結(jié)構(gòu)就是這樣的一個鏈表,那么分布式的含義是什么呢?

          區(qū)塊鏈的眾多參與者組成了一個松散自治的P2P網(wǎng)絡,我們把區(qū)塊鏈網(wǎng)絡的參與者叫做節(jié)點,每個節(jié)點都擁有一個賬本拷貝,所有賬本的信息都是一致的,在區(qū)塊鏈里沒有中心節(jié)點。每當有新的交易進來,所有節(jié)點的賬本都會更新,并且最終保持一致。更新的方式不是去修改某個區(qū)塊的值,而是保存交易記錄。比如在比特幣系統(tǒng)中,它沒有用戶資產(chǎn)記錄這樣的概念,不像普通數(shù)據(jù)庫那樣用一條數(shù)據(jù)存儲資產(chǎn),比特幣用戶資產(chǎn)的值是通過把所有的交易記錄串聯(lián)聚合后得到的,賬戶里資產(chǎn)的來源可以一直向上追溯,直到創(chuàng)世塊為止。區(qū)塊鏈里的交易數(shù)據(jù)根據(jù)具體場景,可以是任何需要記錄的信息。

          智能合約

          為了支持信息的持續(xù)更新,以及對賬本進行管理(寫入交易,進行查詢等),區(qū)塊鏈網(wǎng)絡引入了智能合約來實現(xiàn)對賬本的訪問和控制。智能合約不僅僅可用于在區(qū)塊鏈網(wǎng)絡中打包信息,它們也可以被用于自動的執(zhí)行由參與者定義的特定交易操作。

          比如智能合約可以規(guī)定物流中的運輸費用,根據(jù)物流的快慢收取不同的費用,根據(jù)貨物的到達時間進行自動轉(zhuǎn)賬等。上傳到區(qū)塊鏈網(wǎng)絡中的的智能合約會被打包到某一個區(qū)塊中,因此智能合約一旦寫入?yún)^(qū)塊鏈,也是不可更改的。

          共識機制

          區(qū)塊鏈網(wǎng)絡中交易信息同步的過程,確保交易只有獲得適當參與者批準后才更新,所有的參與者都會將同樣的信息按照同樣的順序更新,這樣的過程叫做共識。共識機制是區(qū)塊鏈的核心之一。

          區(qū)塊鏈的第一個應用比特幣,采用的是Proof of Work(工作量證明)的共識機制。簡單介紹一下比特幣的共識機制,算法的具體細節(jié)大家可以去查白皮書。節(jié)點收到一個交易后,會根據(jù)判斷標準對該交易進行有效性校驗,無效的交易會被廢棄。通過有效性驗證之后的交易將會被廣播給其他節(jié)點。其他節(jié)點會做同樣的獨立校驗,當有效的交易達到整個網(wǎng)絡所有節(jié)點時,即全網(wǎng)達成了“該交易有效”的共識。每個節(jié)點都會收到很多有效但是還未被打包到區(qū)塊中的交易,這些交易被組裝成Merkle Tree,Merkle Tree的第一個交易比較特殊,叫做coinbase,由節(jié)點自己創(chuàng)建,將挖礦獎勵支付到礦工自己的地址。挖礦獎勵包括新創(chuàng)建的比特幣和打包進該區(qū)塊所有交易的手續(xù)費總額。然后節(jié)點計算一個符合難度的哈希值,挖礦就是通過修改參數(shù)不斷計算區(qū)塊哈希值,直至達到難度要求,也就間接證明了該節(jié)點付出了對應的工作量,這就是工作量證明。Jerry的公眾號文章《300行ABAP代碼實現(xiàn)一個最簡單的區(qū)塊鏈原型》里用了一個ABAP方法CL_ABAP_MESSAGE_DIGEST=>CALCULATE_HASH_FOR_CHAR來計算區(qū)塊的哈希值。

          當節(jié)點計算出一個符合難度的區(qū)塊哈希時,即說明該礦工挖礦成功了,該節(jié)點將該區(qū)塊組裝到本地的區(qū)塊鏈,同時也將此區(qū)塊廣播給其他節(jié)點。其他節(jié)點接收到該區(qū)塊后會驗證該區(qū)塊是否有效,有可能有兩個節(jié)點同時挖出了新的區(qū)塊B1和B2,它們的上一個區(qū)塊都是同一個區(qū)塊P。有的節(jié)點可能會先收到B1,有的會先收到B2,這時區(qū)塊鏈出現(xiàn)了暫時性的兩個分叉。要打破這種局面,要看下一個區(qū)塊是基于B1生成還是基于B2生成。如果基于B1,B1這條鏈就變成了最長鏈,其他包含B2的節(jié)點會重新選擇最長鏈,而B2作為孤塊被丟棄掉。

          到目前為止,我們可以將區(qū)塊鏈看做是一個共享的,去中心化的多備份系統(tǒng),通過智能合約更新交易數(shù)據(jù),同時借助共識的協(xié)作流程使網(wǎng)絡中所有的節(jié)點保持一致。

          這里的交易可以指代任何數(shù)據(jù),例如:數(shù)字貨幣,合同,記錄或者其它任何信息。

          區(qū)塊鏈的類型

          • 公有鏈:網(wǎng)絡中的節(jié)點可以任意接入,網(wǎng)絡中數(shù)據(jù)讀寫權(quán)限不受限制,所有節(jié)點都參與共識過程。比特幣,以太坊等數(shù)字貨幣都屬于公有鏈。

          • 私有鏈:網(wǎng)絡中的節(jié)點被一個組織控制,由其獨享該區(qū)塊鏈的寫入權(quán)限,私有鏈和其他的分布式存儲沒有太大區(qū)別。

          • 聯(lián)盟鏈:多個公司或組織通過授權(quán)接入,由某些節(jié)點參與共識過程。Hyperledger Fabric屬于聯(lián)盟鏈。

          什么是Hyperledger Fabric?

          Hyperledger Fabric 是Linux基金會發(fā)起的Hyperledger項目之一。Hyperledger Fabric 專為在企業(yè)環(huán)境中使用而設計的開源的基于區(qū)塊鏈的分布式賬本。Hyperledger Fabric可用于全球供應鏈管理、金融交易、資產(chǎn)記賬、人力資源、保險、健康和數(shù)字音樂等領域。

          Hyperledger Fabric中的賬本子系統(tǒng)(ledger)包括兩個組件:世界觀(world state)和事務日志(transaction log)。世界觀記錄了賬本在特定時間點的現(xiàn)狀,是一個鍵值數(shù)據(jù)庫。交易日志記錄產(chǎn)生世界狀態(tài)當前值的所有交易,是世界觀的更新歷史。賬本的世界觀的底層數(shù)據(jù)庫可以更換,可以選擇使用levelDB或couchDB。

          Hyperledger Fabric是第一個支持以通用語言編寫智能合約的區(qū)塊鏈平臺,可以使用java,nodejs和go語言來編寫智能合約。Hyperledger Fabric中的智能合約也叫鏈碼(chain code)。

          和其他公有區(qū)塊鏈平臺最大的不同,Hyperledger Fabric 是私有的并且需要授權(quán)才能接入,它擁有一個MSP(Membership Service Provider)模塊專門提供成員管理服務。

          CA(Certificate Authority)負責權(quán)限管理,成員身份相關證書管理(Enrollment CertificateAuthority)和維護交易相關證書管理(Transaction Certificate Authority)等等。

          Hyperledger Fabric提供了建立channel的功能,這允許參與者為交易新建一個單獨的賬本。當網(wǎng)絡中的一些參與者是競爭對手時,這個功能變得尤為重要。因為這些參與者并不希望所有的交易信息——比如提供給部分客戶的特定價格信息——都對網(wǎng)絡中所有參與者公開。只有在同一個channel中的參與者,才會擁有該channel中的賬本,而其他不在此channel中的參與者則看不到這個賬本。

          Hyperledger Fabric使用獨立的排序節(jié)點(order)來提供共識服務,負責排序交易,提供全局確認的交易順序。

          應用程序通過SDK訪問Hyperledger Fabric。

          最新版Hyperledger Fabric的設計中,根據(jù)功能將節(jié)點角色解耦開,讓不同節(jié)點處理不同類型的工作負載。從業(yè)務邏輯上又將節(jié)點分為背書節(jié)點(Endorser)和提交節(jié)點(Committer)。

          • Endorser peer:負責對來自客戶端的交易進行合法性和權(quán)限檢查(模擬交易),通 過檢查則簽名并返回結(jié)果給客戶端。

          • Committer peer:負責維護賬本,將達成一致順序的批量交易結(jié)果進行狀態(tài)檢查,生成區(qū)塊,執(zhí)行合法的交易,并寫入賬本,同一個物理節(jié)點可以同時擔任endorser和committer兩個角色。

          Hyperledger Fabric 交易流程:共識

          共識流程主要分Proposal,Packaging和Validation三個階段。

          Proposal

          應用提交一個交易proposal,然后將其提交給所有的背書節(jié)點,后者接到后,將其作為輸入執(zhí)行鏈碼生成相應的交易proposal響應。此時并不會更新Ledger,而是對交易proposal 響應簽名,并將其返回給應用。應用收到簽名后的響應,共識流程的第一階段就完成了。

          Packaging

          這個階段是order節(jié)點對交易進行排序打包。Order節(jié)點從各個應用接收交易proposal響應,然后對這些交易進行排序,排序之后打包成區(qū)塊。

          Validation

          共識流程的最后一個階段,由order節(jié)點將區(qū)塊分發(fā)給所有和它連接的節(jié)點,這些節(jié)點將確認區(qū)塊中的交易都經(jīng)過背書節(jié)點簽名,然后將確認后的區(qū)塊更新到ledger中。

          整個流程稱為共識,所有節(jié)點都已對交易內(nèi)容和順序達成一致,這一過程由order節(jié)點控制。 共識是一個多步驟的過程,只有在整個流程完成時才會更新賬本 ,可能每個節(jié)點的更新時間稍有不同。

          Hyperledger Fabric Service on SAP Cloud Platform(一)

          構(gòu)建一個Hyperledger Fabric平臺絕非易事,既需要硬件基礎設施的投入,也需要全方位的開發(fā)和運營管理(DevOps)。除了平臺本身,一套完整的解決方案,還包括設備接入,訪問控制,服務監(jiān)控等管理功能。

          SAP Cloud Platform(下文簡稱SCP)提供了開箱即用的Hyperledger Fabric Service,為開發(fā)者提供了強大的服務支持:

          • 直觀友好的可視化監(jiān)控與操作界面,幫助開發(fā)者按需申請區(qū)塊鏈網(wǎng)絡,創(chuàng)建管理節(jié)點、渠道,而無需考慮底層硬件資源。

          • 簡單易用的智能合約開發(fā)與測試環(huán)境,方便開發(fā)者對應用代碼進行管理。

          • 安全,隱私性方面的保障,并對相關資源進行了性能優(yōu)化。

          以上是我對Hyperledger Fabric的一些理解,接觸和了解區(qū)塊鏈的時間有限,難免存在一些錯誤,歡迎大家指正。后續(xù)會給大家?guī)鞸AP云平臺上Hyperledger Fabric開發(fā)的一些細節(jié)介紹。

          主要參考文獻

          要獲取更多Jerry的原創(chuàng)文章,請關注公眾號"汪子熙"

          本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          基于區(qū)塊鏈的電子政務數(shù)據(jù)共享設計研究
          超級賬本Fabric教程目錄
          【區(qū)塊鏈】了解這種改變游戲規(guī)則的技術
          Fabric
          【超級賬本】Fabric介紹及其環(huán)境搭建(一)
          HyperLedger Fabric入門指南
          更多類似文章 >>
          生活服務
          分享 收藏 導長圖 關注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點擊這里聯(lián)系客服!

          聯(lián)系客服