<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                本章源代碼地址:[https://github.com/daleboy/blockchain1] # 文件一:block.go 在區塊鏈中,存儲有效信息的是區塊。比如,比特幣區塊存儲的有效信息,就是比特幣交易信息,交易信息也是所有加密貨幣的本質。除此以外,區塊還包含了一些技術信息,比如版本,當前時間戳和前一個區塊的哈希。這里我們只存儲關鍵的技術信息:時間戳、前一個區塊的哈希,本區塊的哈希。 ![](https://img.kancloud.cn/2a/74/2a74b0fe831d4c2fb3a3a95875df6a87_711x260.png) 本區塊的哈希是將區塊的所有數據(不包括自身的哈希數據)轉為二進制連接起來后,通過哈希運算計算出來。 ![](https://img.kancloud.cn/ca/e0/cae07055ebabc22dc6aca4362945de0f_1189x331.png) 這里,有幾個go語言點注意: (1)變量簡要創建方法 省略var,直接創建變量并賦值,在變量后面跟冒號和等號完成: timestamp:=\[\]byte(strconv.FormatInt(b.Timestamp,?10)) strconv.FormatInt函數:用于將整型數據轉換成指定進制并以字符串的形式返回,其原型是: unc FormatInt(i int64, base int) string (2)類型轉換 這里是將時間戳整數轉為10進制并以字符串的形式返回。 整形不能直接強制轉換為二進制,而字符串可以。所以這里用strconv包進行轉換。 strconv包功能強大,可以實現幾乎我們所需要的任何數據類型轉換。 注意,SetHash是對Block類型定義的一個方法,通過引用調用,因為需要改變實例本身。 接下來,我們需要創建區塊。 ![](https://img.kancloud.cn/55/41/5541e00f583c2a74ceed3a4a46839187_1122x244.png) 注意,Block結構的實例化方法: ![](https://img.kancloud.cn/da/27/da2708f6a7898f687cdd9fffec8f6fc3_1057x47.png) 我們是直接使用var的方式構建Block,實際上也可以用new來創建結構體的實例。 接下來需要一個函數,創建創始區塊: ![](https://img.kancloud.cn/b5/79/b57912ee901016b79441829c9c84c8d6_675x160.png) # 文件二:blockchain.go 接下來是區塊鏈的定義與創建 ![](https://img.kancloud.cn/b3/ea/b3ea5f4da118ac88f99ddaa8cd468804_809x555.png) 這里比較簡單,只需要注意,我們無論是創建有創始區塊的區塊鏈還是給區塊鏈添加一個區塊,均需要返回區塊鏈的指針,以供調用者繼續使用。 # 文件三:main.go 在此執行文件中,完成檢驗 ![](https://img.kancloud.cn/af/ad/afad723cf699680bd0d88ea5d971f79b_1402x684.png) 要注意,一個文件夾下的所有文件必須使用同一個包名。 運行結果: ![](https://img.kancloud.cn/a9/c7/a9c71c49afa68e87f526361ed112a751_1087x424.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看