亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

用GO語言構建自己的區塊鏈

Ashton2018 全棧工程師
難度初級
時長 1小時16分
學習人數
綜合評分9.47
27人評價 查看評價
9.6 內容實用
9.3 簡潔易懂
9.5 邏輯清晰
  • 鏈式結構小結

    https://img1.sycdn.imooc.com//5b8005cc000111ff07160327.jpg

    更改區塊1的數據,只有修改所有鏈條上的數據才能保證一致。

    https://img1.sycdn.imooc.com//5b800695000177ad07180371.jpg

    在區塊1上可以分叉新的鏈條,這種方式也需要全網區塊達成共識。


    查看全部
    0 采集 收起 來源:鏈式結構小結

    2018-08-24

  • 認識hash函數

    https://img1.sycdn.imooc.com//5b7fffb60001ccd506350265.jpg

    https://img1.sycdn.imooc.com//5b80008e0001acf306780301.jpg

    確定性:對同一個輸入數據,無論用哈希函數重復計算多少次,每次都能得到相同的結果。

    單向性:可以很輕松的對已知數據進行哈希計算,得到哈希值,通過哈希值反推相應的已知數據非常難。

    隱秘性:在已知哈希值的情況下,沒有可行的辦法算出哈希函數的輸入值。

    https://img1.sycdn.imooc.com//5b80010a0001285806180253.jpg

    抗篡改:對一個數據塊,哪怕只改動一個bit位,哈希值改動非常大。

    抗碰撞:兩個不同的數據塊,hash值相同的可能性非常小。

    https://img1.sycdn.imooc.com//5b8001ad0001d95906030268.jpg

    MD系列常用MD5,但其抗碰撞性被公認較差,不推薦使用。

    SHA0,SHA1已被證實不安全,推薦使用SHA256,SHA3。


    查看全部
    0 采集 收起 來源:hash函數介紹

    2018-08-24

  • 區塊鏈鏈式結構

    https://img1.sycdn.imooc.com//5b7fff3900010c5205980306.jpg

    https://img1.sycdn.imooc.com//5b7fff0e0001c01706990314.jpg

    查看全部
  • 區塊鏈的架構模型

    ?https://img1.sycdn.imooc.com//5b7ffd7e0001e0a304150378.jpg

    查看全部
    0 采集 收起 來源:區塊架構模型

    2018-08-24

  • 認識一下什么是區塊鏈

    https://img1.sycdn.imooc.com//5b7ff9ce00014f8806110346.jpg

    https://img1.sycdn.imooc.com//5b7ffa1e0001f10606560372.jpg

    價值傳遞從轉讓方到了受讓方

    https://img1.sycdn.imooc.com//5b7ffa6a0001061006970366.jpg

    價值傳遞雙方借助第三方中介進行傳遞,由于擔心第三方系統會發生故障導致數據丟失,因此引入區塊鏈。

    https://img1.sycdn.imooc.com//5b7ffb1b0001c4f606280364.jpg

    https://img1.sycdn.imooc.com//5b7ffb9900015d9906780352.jpg

    通過區塊鏈協議進行自管理。

    https://img1.sycdn.imooc.com//5b7ffbd30001d67906500346.jpg


    查看全部
    0 采集 收起 來源:什么是區塊鏈

    2018-08-24

  • go語言構建區塊鏈

    https://img1.sycdn.imooc.com//5b7ff7720001fb6706420329.jpg

    https://img1.sycdn.imooc.com//5b7ff83900016d3f06370333.jpg

    https://img1.sycdn.imooc.com//5b7ff88c0001643606940317.jpg

    https://img1.sycdn.imooc.com//5b7ff8d00001976106740307.jpg

    https://img1.sycdn.imooc.com//5b7ff90700019a8706780340.jpg

    https://img1.sycdn.imooc.com//5b7ff9200001fe5806630346.jpg

    https://img1.sycdn.imooc.com//5b7ff9350001e0e406180350.jpg

    查看全部
    0 采集 收起 來源:課程介紹

    2018-08-24

  • 要看一下,錢包是啥玩意
    查看全部
    0 采集 收起 來源:課程介紹

    2018-08-19

  • done
    查看全部
    0 采集 收起 來源:課程總結

    2018-08-14

  • 學習區塊鏈
    查看全部
    0 采集 收起 來源:課程介紹

    2018-08-11

  • package?BlockChain
    
    import?(
    ???"crypto/sha256"
    ???"encoding/hex"
    ???"time"
    )
    
    //構建區塊鏈結構體——區塊
    type?Block?struct?{
    ???Index?int64???//區塊編號
    ???Timestamp?int64??//區塊時間戳秒為單位,區塊創建的時間
    ???PrevBlockHash?string??//上一個區塊哈希值
    ???Hash?string??//當前區塊的哈希值
    ???Data?string??//區塊所包含的數據
    }
    
    //計算區塊的哈希值
    func?calculateHash(b?Block)?string{
    ???//用區塊的這幾個部分作為hash內容
    ???//string(b.Index)???將int64轉化為string
    ???blockData?:=?string(b.Index)?+?string(b.Timestamp)?+?b.PrevBlockHash?+?b.Data
    ???//計算hash值并存入字節數組
    ???hashInBytes?:=?sha256.Sum256([]?byte(blockData))
    
    ????return?hex.EncodeToString(hashInBytes[:])
    
    }
    
    //生成區塊
    func?GenerateNewBlock(preBlock?Block,?data?string)?Block{
    ???//定義一個新的區塊
    ???newBlock?:=?Block{}
    ???//新區塊的編號等于父區塊的編號+1
    ???newBlock.Index?=?preBlock.Index?+?1
    ???//新區塊的哈希值等于上一個區塊本身的hash值
    ???newBlock.PrevBlockHash?=?preBlock.Hash
    ???//新區塊的時間戳等于當前時間
    ???newBlock.Timestamp?=?time.Now().Unix()
    ???//新區塊的Hash是更新新內容計算得來
    ???newBlock.Hash?=?calculateHash(newBlock)
    ???return?newBlock
    }
    
    //生成創世區塊:是第一個區塊,區塊編號為0,區塊的哈希值是一個空值,
    //區塊的時間戳和當前Hash值可以為它傳遞一個虛擬的父區塊生成
    //?在系統啟動之前就已經生成好了
    func?GenerateGenesisBlock()?Block{
    ???preBlock?:=?Block{}
    ???preBlock.Index?=?-1
    ???preBlock.Hash?=?""
    ???return?GenerateNewBlock(preBlock,"First?Block")
    }


    查看全部
    2 采集 收起 來源:創建Block

    2018-08-07

  • 修改其中一個區塊,這個區塊后面的所有區塊都有跟著修改

    查看全部
    0 采集 收起 來源:鏈式結構小結

    2018-08-07

  • 鏈式結構哈希的計算

    查看全部
    0 采集 收起 來源:鏈式結構小結

    2018-08-07

  • 哈希函數:是一種算法,把任意長度的二進制數據映射為固定長度的二進制數據。

    哈希函數的特點:具有確定性,單向性,隱秘性,抗篡改,抗碰撞

    哈希函數的實現:MD系列,SHA系列,推薦SHA256,SHA3


    查看全部
    0 采集 收起 來源:hash函數介紹

    2018-08-07

  • 區塊鏈鏈式結構:

    一個區塊由區塊頭和區塊體組成;

    區塊體中存儲了相關的交易數據;

    區塊頭中最重要的元素是父區塊hash,每一個區塊含有一個父區塊的hash,相當于有了一個指向父區塊的指針,通過hash指針把一個一個的區塊連接起來,就構成了區塊鏈特殊的鏈式結構。

    在區塊鏈中的第一個節點稱為創世區塊,創世區塊只有數據值,沒有父區塊和hash值。

    查看全部
  • 區塊鏈的架構模型

    1. 數據層:封裝了底層數據區塊的鏈子結構,以及相關的非對稱的公鑰私鑰加密技術和時間戳技術;是整個區塊鏈最底層的數據結構。

    2. 網絡層:包括P2P組網機制,數據傳播機制和數據驗證機制。

    3. 共識層:封裝了網絡節點的各類共識機制算法,是區塊鏈的核心技術,它決定是到底是誰來進行記賬,而記賬方式將會影響整個系統的安全性和可靠性。

    4. 激勵層:將幀元素集中到區塊鏈的技術體系中來,包括發行機制和分配機制,主要應用在公有鏈中,并不是所有的區塊鏈都有激勵層。

    5. 合約層:用于封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎,可以簡單理解為一份自定義的電子合同。

    6. 應用層:封裝了區塊鏈的各種應用場景和案例。

      合約層、激勵層、共識層、網絡層、數據層構成了區塊鏈的核心系統

      共識層、網絡層、數據層是構建區塊鏈系統的必要元素

      激勵層通常位于公有鏈,激勵遵守規則的節點,懲罰不遵守規則的節點

      合約層用于封裝各類腳本、算法、合約。

    查看全部
    0 采集 收起 來源:區塊架構模型

    2018-08-07

舉報

0/150
提交
取消
課程須知
1、對區塊鏈有基本的認知。 2、有基本的開發基礎,最好有基本的Go語言語法知識。
老師告訴你能學到什么?
1、區塊鏈的發展與現狀 2、技術人員的機會 3、什么是區塊鏈 4、區塊鏈的架構模型 5、區塊鏈的鏈式結構 6、如何用 Go 實現一個簡單的區塊鏈模型

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!