精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用Go實現區塊鏈

區塊鏈
自互聯網以來,鎖鏈技術已被某些人稱為最有影響力的發明。盡管公眾將區塊鏈與投機性加密貨幣同義解釋,但區塊鏈實際上在現代世界中具有不可思議的廣泛應用。

[[392202]]

本文轉載自微信公眾號「區塊鏈研究實驗室」,作者鏈三豐。轉載本文請聯系區塊鏈研究實驗室公眾號。

自互聯網以來,鎖鏈技術已被某些人稱為最有影響力的發明。盡管公眾將區塊鏈與投機性加密貨幣同義解釋,但區塊鏈實際上在現代世界中具有不可思議的廣泛應用。實際上,加密貨幣只是區塊鏈領域的一小部分,生產中的許多解決方案都是由私人組織領導來實現的。

隨著區塊鏈技術的迅速發展,技術領域的專業人員越來越需要了解區塊鏈的基礎知識及其技術影響力。

畢竟,實現自己的區塊鏈實際上并不像聽起來那樣復雜。本文中,我們將使用2021年最流行的編程語言之一GoLang實現基本的區塊鏈。那么,讓我們開始吧!

了解區塊鏈

區塊鏈是名稱符合其含義的少數技術之一。我們可以將區塊鏈視為通過哈希相互連接的信息塊,哈希是從輸入數據生成的加密的固定輸出。由于每個塊都通過哈希相互引用,因此如果不大幅度更改鏈的其余部分,就不可能更改鏈的任何部分。

區塊鏈中的每個塊都可以包含幾乎任何內容的數據。一個基本框架將包括每個塊的過去交易的所有記錄。比特幣以類似的方式工作,這就是為什么您可以一直跟蹤比特幣交易直至Satoshi首次進行加密貨幣交易的原因。

下面我們有三個區塊來創建區塊鏈。第一塊是創世塊。由于之前沒有任何內容,因此前一個哈希字段為空。我們仍然使用時間戳記屬性和初始事務作為哈希算法的輸入。該算法將吐出一大串數字和字母,這些數字和字母代表了創世紀塊的哈希值。

轉到塊2,我們將創世塊的哈希值用作塊2先前哈希值。這個動作將創世塊與第2塊聯系起來!接下來,我們將時間戳,交易列表和先前的哈希值作為我們的哈希算法的輸入。該算法將為我們提供一個新的哈希值來表示塊2。

我們將繼續重復該過程任意多次,除了區塊的有效性以及存儲區塊鏈的能力(比特幣的區塊鏈約為330 GB)之外,沒有任何其他限制。

在Go中創建一個簡單的區塊鏈

創建我們的區塊鏈的第一步是定義什么是區塊。Go使我們的生活更輕松地創建自定義類型,我們可以Block使用以下代碼來定義類型。在這里,該Block結構具有四個字段以匹配我們上面的圖。

  1. type Block struct { 
  2.   timestamp  time.Time 
  3.   transactions  []string 
  4.   prevHash  []byte 
  5.   Hash    []byte 

下一步是創建構造函數的Go版本,以創建新的塊。該函數的輸入將使用一個字符串數組來表示事務,以及一個字節數組來表示先前制作的塊所對應的先前的哈希值。下一個要研究的NewHash()功能是我們下一步將實現的功能。

  1. func NewBlock(transactions []string, prevHash []byte) *Block { 
  2.   currentTime := time.Now() 
  3.   return &Block { 
  4.     timestamp: currentTime, 
  5.     transactions: transactions, 
  6.     prevHash: prevHash, 
  7.     Hash: NewHash(currentTime, transactions, prevHash), 
  8.   } 

該NewHash()函數將時間,事務列表和以前的哈希作為我們的輸入參數,同時返回一個字節數組來表示新生成的哈希值。在此功能中,我們基本上只是將所有輸入都混入一個稱為的單個字節數組中input。我們這樣做是使用append()功能的附加time參數,prevHash通過轉換time為string用...,以追加作為后綴time片的prevHash切片。

然后,我們遍歷transactions并將每個個體附加transaction到input數據blob。有趣的語法string(rune(transaction))...只是Go中將其中的每個元素轉換transactions為可以附加到的切片的一種方法input。它正在輸入垃圾內容,因此,如果您真的想要,請深入研究。

  1. func NewHash(time time.Time, transactions []string, prevHash []byte) []byte { 
  2.   input := append(prevHash, time.String()...) 
  3.   for transaction := range transactions { 
  4.     input = append(input, string(rune(transaction))...) 
  5.   } 
  6.   hash := sha256.Sum256(input) 
  7.   return hash[:] 

最后,我們使用crypto包轉到電話sha256.Sum256()與input作為它的參數。這將為我們的所有數據輸入提供新的哈希表示。我們返回時hash[:]使用的[:]語法將hash在返回時切成適當的長度。

這實際上是我們開始鏈接我們的區塊鏈所需的全部。當然,我們希望在程序中看到某種輸出,以便在打印時可以使用一些輔助方法:

  1. func printBlockInformation(block *Block) { 
  2.   fmt.Printf("\ttime: %s\n", block.timestamp.String()) 
  3.   fmt.Printf("\tprevHash: %x\n", block.prevHash) 
  4.   fmt.Printf("\tHash: %x\n", block.Hash) 
  5.   printTransactions(block) 
  6.  
  7. func printTransactions(block *Block) { 
  8.   fmt.Println("\tTransactions:"
  9.   for i, transaction := range block.transactions { 
  10.     fmt.Printf("\t\t%v: %q\n", i, transaction
  11.   } 

現在剩下的就是創建新的事務,塊和哈希。我們可以通過我們的主要方法來做到這一點。我們定義了一個字符串數組來記錄我們的區塊鏈中的交易。另請注意,我們如何傳遞一個空字節數組NewBlock()來生成名為的第一個塊genesisBlock。

  1. func main() { 
  2.   genesisTransactions := []string{"Izzy sent Will 50 bitcoin""Will sent Izzy 30 bitcoin"
  3.   genesisBlock := NewBlock(genesisTransactions, []byte{}) 
  4.   fmt.Println("--- First Block ---"
  5.   printBlockInformation(genesisBlock) 
  6.  
  7.   block2Transactions := []string{"John sent Izzy 30 bitcoin"
  8.   block2 := NewBlock(block2Transactions, genesisBlock.Hash) 
  9.   fmt.Println("--- Second Block ---"
  10.   printBlockInformation(block2) 
  11.  
  12.   block3Transactions := []string{"Will sent Izzy 45 bitcoin""Izzy sent Will 10 bitcoin"
  13.   block3 := NewBlock(block3Transactions, block2.Hash) 
  14.   fmt.Println("--- Third Block ---"
  15.   printBlockInformation(block3) 

為了創建新的區塊,我們將前一個區塊的哈希值NewBlock()與對應的交易歷史記錄一起傳遞。如果您想在一個地方查看整個程序,則為:

  1. package main 
  2.  
  3. import ( 
  4.   "crypto/sha256" 
  5.   "fmt" 
  6.   "time" 
  7.  
  8. type Block struct { 
  9.   timestamp    time.Time 
  10.   transactions  []string 
  11.   prevHash    []byte 
  12.   Hash      []byte 
  13.  
  14. func main() { 
  15.   genesisTransactions := []string{"Izzy sent Will 50 bitcoin""Will sent Izzy 30 bitcoin"
  16.   genesisBlock := NewBlock(genesisTransactions, []byte{}) 
  17.   fmt.Println("--- First Block ---"
  18.   printBlockInformation(genesisBlock) 
  19.  
  20.   block2Transactions := []string{"John sent Izzy 30 bitcoin"
  21.   block2 := NewBlock(block2Transactions, genesisBlock.Hash) 
  22.   fmt.Println("--- Second Block ---"
  23.   printBlockInformation(block2) 
  24.  
  25.   block3Transactions := []string{"Will sent Izzy 45 bitcoin""Izzy sent Will 10 bitcoin"
  26.   block3 := NewBlock(block3Transactions, block2.Hash) 
  27.   fmt.Println("--- Third Block ---"
  28.   printBlockInformation(block3) 
  29.  
  30. func NewBlock(transactions []string, prevHash []byte) *Block { 
  31.   currentTime := time.Now() 
  32.   return &Block { 
  33.     timestamp: currentTime, 
  34.     transactions: transactions, 
  35.     prevHash: prevHash, 
  36.     Hash: NewHash(currentTime, transactions, prevHash), 
  37.   } 
  38.  
  39. func NewHash(time time.Time, transactions []string, prevHash []byte) []byte { 
  40.   input := append(prevHash, time.String()...) 
  41.   for transaction := range transactions { 
  42.     input = append(input, string(rune(transaction))...) 
  43.   } 
  44.   hash := sha256.Sum256(input) 
  45.   return hash[:] 
  46.  
  47. func printBlockInformation(block *Block) { 
  48.   fmt.Printf("\ttime: %s\n", block.timestamp.String()) 
  49.   fmt.Printf("\tprevHash: %x\n", block.prevHash) 
  50.   fmt.Printf("\tHash: %x\n", block.Hash) 
  51.   printTransactions(block) 
  52.  
  53. func printTransactions(block *Block) { 
  54.   fmt.Println("\tTransactions:"
  55.   for i, transaction := range block.transactions { 
  56.     fmt.Printf("\t\t%v: %q\n", i, transaction
  57.   } 

如果要運行此程序,將得到以下輸出:

  1. $ go run example.go  
  2. --- First Block --- 
  3.         time: 2021-04-05 15:12:18.813294 -0600 MDT m=+0.000074939 
  4.         prevHash:  
  5.         Hash: 43ec51c50d2b9565f221155a29d8b72307247b08eaf6731cca 
  6.         Transactions: 
  7.                 0: "Izzy sent Will 50 bitcoin" 
  8.                 1: "Will sent Izzy 30 bitcoin" 
  9. --- Second Block --- 
  10.         time: 2021-04-05 15:12:18.813477 -0600 MDT m=+0.000257244 
  11.         prevHash: 43ec51c50d2b9565f221155a29d8b72307247b08eaf6731cca 
  12.         Hash: fcce5323a35cb67b45fe75866582db00fd32baeb92aac448c7 
  13.         Transactions: 
  14.                 0: "John sent Izzy 30 bitcoin" 
  15. --- Third Block --- 
  16.         time: 2021-04-05 15:12:18.813488 -0600 MDT m=+0.000269168 
  17.         prevHash: fcce5323a35cb67b45fe75866582db00fd32baeb92aac448c7 
  18.         Hash: fc1d3eee286970d85812b47c3a5bf016ae8c1de4f86b8ace972ffa 
  19.         Transactions: 
  20.                 0: "Will sent Izzy 45 bitcoin" 
  21.                 1: "Izzy sent Will 10 bitcoin" 

過程可能會很粗糙,但這是創建自己的區塊鏈的基礎!

責任編輯:武曉燕 來源: 區塊鏈研究實驗室
相關推薦

2021-04-16 20:43:18

Go區塊鏈編程

2022-07-18 23:49:19

區塊鏈民主數據

2022-01-10 10:56:37

區塊鏈技術比特幣

2019-04-03 10:50:09

Javascript區塊鏈技術

2020-09-04 08:33:17

區塊鏈病例電子病例

2021-09-23 22:40:10

區塊鏈比特幣技術

2021-04-08 18:39:57

JavaScriptExpress區塊鏈

2021-12-13 14:05:27

區塊鏈金融技術

2023-06-13 11:49:35

2018-03-27 09:52:30

區塊鏈數字貨幣比特幣

2021-05-10 15:09:47

區塊鏈互聯網金融

2021-09-02 00:25:46

區塊鏈互聯網技術

2019-01-24 15:50:06

區塊鏈數字貨幣比特幣

2018-06-14 10:32:25

2021-02-20 22:35:17

區塊鏈比特幣記賬

2021-04-11 11:31:05

區塊鏈記賬比特幣

2021-03-16 14:33:12

區塊鏈比特幣加密貨幣

2020-08-18 10:58:05

區塊鏈比特幣區塊鏈戰略

2021-04-12 10:57:28

區塊鏈信任銀行

2022-04-18 14:50:00

區塊鏈安全交易
點贊
收藏

51CTO技術棧公眾號

天堂av中文在线资源库| 四虎影视一区二区| 国产精品专区免费| 国产精品毛片久久久久久| 亚洲一区二区三区777| 日本一级淫片色费放| 精品欧美久久| 欧美成人精品福利| 天堂av在线网站| 高清电影在线免费观看| 国产视频一区二区三区在线观看| 成人中心免费视频| 色一情一乱一伦| 欧美jjzz| 在线日韩欧美视频| 中文字幕一区二区三区乱码不卡| 六九午夜精品视频| 欧美视频裸体精品| 大胆欧美熟妇xx| 99中文字幕一区| 99久久99久久精品免费观看| 亚洲xxxxx性| 成人黄色片在线观看| 伊人影院久久| 欧美精品一二区| 欧美激情视频二区| 天天躁日日躁狠狠躁欧美巨大小说| 欧美福利一区二区| wwwwxxxx日韩| 黄色综合网址| 午夜精品一区在线观看| 粉嫩av一区二区三区天美传媒| 成人在线免费观看| 久久精品一区二区三区av| 国产伦精品一区二区三区| 国产av无码专区亚洲av麻豆| 麻豆精品一区二区三区| 国产精品久久久久久久久粉嫩av| 日韩福利片在线观看| 牛夜精品久久久久久久99黑人| 色婷婷综合成人av| 日本一级免费视频| 久久99国产精品视频| 亚洲国产免费av| 在线看黄色的网站| 加勒比视频一区| 精品免费日韩av| 韩国三级视频在线观看| 91精品啪在线观看国产爱臀| 日韩欧美第一区| av地址在线观看| 日韩高清二区| 精品久久久久久久久久久久久久久 | 欧美在线国产精品| 日本少妇bbwbbw精品| 亚洲国产黄色| 欧美最猛性xxxxx免费| 91video| 日一区二区三区| 国产精品18久久久久久首页狼| 一级黄色av片| 麻豆91在线观看| 92国产精品视频| 99国产揄拍国产精品| 国产资源在线一区| 91视频在线免费观看| 日本波多野结衣在线| 97超碰欧美中文字幕| 免费一区二区三区| h视频在线播放| 亚洲精品国产一区二区精华液 | 日韩伦理电影网站| 亚洲无线码一区二区三区| 亚洲熟妇无码一区二区三区导航| 麻豆免费在线| 欧美在线啊v一区| 天天综合天天添夜夜添狠狠添| 亚洲不卡在线| 亚洲精品视频在线播放| 变态另类ts人妖一区二区| 亚洲91精品| 久久久伊人欧美| 国产91精品看黄网站在线观看| 日本中文字幕一区二区有限公司| 91社区国产高清| 污视频在线免费观看| 欧美国产乱子伦| av日韩在线看| 日本欧美日韩| 日韩区在线观看| 中文字幕一区二区三区人妻| 天天射成人网| 97超级碰在线看视频免费在线看| 中文字幕a级片| 丁香亚洲综合激情啪啪综合| 五月天久久综合网| 性国产高清在线观看| 日本久久精品电影| 国产黄色一区二区三区| 亚洲欧美tv| 久久久国产成人精品| 国产剧情在线视频| 国产成人免费高清| 亚洲五月六月| 亚洲天堂手机| 日韩一区二区三区高清免费看看| 性欧美一区二区| 国精品一区二区三区| 国产精品一区二区久久国产| 少妇精品高潮欲妇又嫩中文字幕 | 精品中文字幕久久久久久| 三级在线观看免费大全| 免费精品视频| 超碰国产精品久久国产精品99| 成人动漫在线免费观看| 亚洲成人精品一区二区| 国产美女视频免费看| 国产一区2区| 国内精品小视频在线观看| 91资源在线视频| 久久精品日产第一区二区三区高清版 | av毛片在线| 欧美性大战久久久久久久| 李丽珍裸体午夜理伦片| 欧美 日韩 国产 一区| 国产精品视频不卡| 韩国三级av在线免费观看| 午夜激情一区二区| 337p日本欧洲亚洲大胆张筱雨| 欧美电影《轻佻寡妇》| 国产精品无码专区在线观看| 精品欧美不卡一区二区在线观看| 亚洲成人tv网| 中文字幕在线观看91| 中文精品久久| 91精品在线一区| 国产cdts系列另类在线观看| 欧美另类z0zxhd电影| 女教师淫辱の教室蜜臀av软件| 视频一区二区欧美| 欧美一区二视频在线免费观看| 看黄在线观看| 亚洲欧美成人网| 亚洲影院在线播放| 久久婷婷综合激情| 国产aaa一级片| 美女久久99 | 日韩欧美中文字幕一区二区三区| 北条麻妃一区二区三区中文字幕| 伊人久久亚洲综合| 国产精品久久久久影视| 久久久久久蜜桃一区二区| 久久在线视频| 成人性生交xxxxx网站| 很黄的网站在线观看| 666欧美在线视频| 免费中文字幕在线| 成人国产精品免费| 69堂免费视频| 久久国产综合| 97久久夜色精品国产九色 | 亚洲一区二区欧美| 亚洲黄色小说在线观看| 99精品国产在热久久婷婷| 久久av免费一区| 朝桐光一区二区| 俺也去精品视频在线观看| www.亚洲黄色| 黑人精品xxx一区一二区| 天天躁日日躁aaaxxⅹ| 蜜臀av性久久久久蜜臀av麻豆 | 99伊人成综合| 欧美精品成人一区二区在线观看| 超薄肉色丝袜脚交一区二区| 久久视频在线免费观看| 欧美少妇bbw| 91成人免费电影| 久久久久亚洲av片无码| a亚洲天堂av| av丝袜天堂网| 欧美精品啪啪| 欧美精品一区二区三区久久| 婷婷丁香久久| 66m—66摸成人免费视频| 在线视频三区| 精品久久国产97色综合| 97人妻一区二区精品视频| 亚洲欧洲日产国码二区| 成人午夜精品无码区| 美腿丝袜亚洲一区| 黄页免费在线观看视频| 日韩片欧美片| 久久精品成人一区二区三区蜜臀| jizzjizz少妇亚洲水多| 午夜精品免费视频| 黄色一级片在线观看| 亚洲美女av电影| av免费在线不卡| 在线看日本不卡| 国产一级免费观看| 国产精品久久夜| 亚洲男人在线天堂| 国产精品资源站在线| 激情内射人妻1区2区3区| 欧美三级乱码| 永久久久久久| 国产精品欧美在线观看| 国产精品免费看一区二区三区| 欧美三级电影网址| 日本伊人精品一区二区三区介绍| gogo在线高清视频| 最新国产成人av网站网址麻豆| 少妇又色又爽又黄的视频| 91精品国产综合久久久久久久久久| 五月婷婷中文字幕| 亚洲成人中文在线| a级黄色片免费看| 中文字幕在线不卡国产视频| 日韩乱码人妻无码中文字幕久久| 国产**成人网毛片九色| 午夜天堂在线视频| 美女视频黄久久| 成人一区二区三| 校园春色综合网| 日韩欧美视频网站| 亚洲国内欧美| www成人免费| 在线成人超碰| 亚洲免费视频播放| 国产精品成久久久久| 四虎影院一区二区三区| 亚洲制服一区| 免费久久99精品国产自| 男人的天堂久久| 国产日韩欧美一区二区| www.爱久久| 高清av免费一区中文字幕| 国产精品一区免费在线| 国产又爽又黄的激情精品视频| jizz久久久久久| 国产在线拍偷自揄拍精品| 成人亚洲网站| 国产日韩欧美综合| 95精品视频| 亚洲在线免费视频| 欧美欧美在线| 俄罗斯精品一区二区| jizz性欧美23| 精品不卡在线| 亚欧洲精品视频在线观看| 欧美系列一区| sdde在线播放一区二区| 午夜一区二区三区| 99久久夜色精品国产亚洲狼 | 亚洲经典三级| 精品这里只有精品| 蜜桃av一区| 三级a三级三级三级a十八发禁止| 蜜芽一区二区三区| 91精品国产三级| 成人亚洲一区二区一| 星空大象在线观看免费播放| 久久久午夜电影| 日韩精品电影一区二区三区| 亚洲同性gay激情无套| 久久久久久久福利| 婷婷六月综合亚洲| 成人免费视频国产免费| 欧美日韩国产123区| 国产高清精品软件丝瓜软件| 亚洲第一av网| 电影av一区| 久久国产精品影视| 成人在线黄色电影| 国产精品久久久久久久久久久久 | 法国空姐在线观看免费| 亚洲激情网站| 国产一线二线三线在线观看| 国产真实精品久久二三区| www.日本高清| 亚洲欧洲日韩女同| 久久久久久久久影院| 精品视频一区 二区 三区| 国产av无码专区亚洲av| 亚洲裸体xxxx| 日韩少妇视频| 国产精品精品一区二区三区午夜版| 国内精品视频| 欧美日韩精品综合| 一区二区三区四区电影| 免费高清在线观看免费| 国产在线日韩欧美| 精品成人av一区二区三区| 亚洲精选视频免费看| 日韩美一区二区| 日韩一区二区电影| 国产中文字幕在线看| 欧美激情综合色综合啪啪五月| 中文另类视频| 精品国产一区二区三区四区精华 | 国产精品美女视频| 日韩精品一区二区不卡| 欧美精品久久99久久在免费线| 亚洲色欧美另类| 欧美激情精品久久久久久变态| 国产91亚洲精品久久久| 久久精品五月婷婷| 欧美日韩一区二区三区四区在线观看 | 欧美日韩精品综合| 亚洲激情午夜| 色综合久久久无码中文字幕波多| 欧美国产禁国产网站cc| 好看的av在线| 精品国产乱码久久久久久免费 | 青青草国产成人a∨下载安卓| 色欲色香天天天综合网www| 精品夜夜嗨av一区二区三区| 无码一区二区三区在线| 午夜精品免费在线| 性欧美18一19性猛交| 久久精品国产v日韩v亚洲| 亚州一区二区三区| 久久国产精品精品国产色婷婷| 国产精品hd| 手机在线播放av| 亚洲欧洲日韩av| 国产又黄又猛又爽| 色婷婷综合成人| 免费视频成人| 亚欧精品在线| 奇米色777欧美一区二区| 成人性生交大免费看| 色哟哟在线观看一区二区三区| 五月婷婷开心中文字幕| 97视频免费在线观看| 国产精品xxxav免费视频| 免费高清一区二区三区| 国产69精品一区二区亚洲孕妇| 极品久久久久久| 欧美一级理论片| 欧美黑人xx片| 国产一级精品aaaaa看| 亚洲三级国产| 国产精品久久无码| 狠狠久久五月精品中文字幕| 四虎影视2018在线播放alocalhost| 久久久亚洲国产天美传媒修理工| 白白在线精品| 亚洲 高清 成人 动漫| 久久亚洲精华国产精华液| 老熟妇仑乱一区二区av| 一本色道久久综合亚洲精品小说| 深夜视频一区二区| 一区二区精品视频| 国产精品99久久久久久久vr| 免费一级a毛片夜夜看| 亚洲成av人影院在线观看| 国内激情视频在线观看| 麻豆成人在线播放| 日韩avvvv在线播放| 欧美福利在线视频| 91精品国产一区二区三区| 欧洲成人综合网| 欧美lavv| 毛片不卡一区二区| 欧产日产国产v| 日韩精品极品视频免费观看| japanese23hdxxxx日韩 | 亚洲一区国产一区| 精品一区二区三区蜜桃在线| 666欧美在线视频| 国产三级电影在线播放| 视频三区二区一区| 国产在线国偷精品免费看| 国产污视频在线看| 亚洲人成在线观看| 99tv成人影院| 亚洲欧洲日产国码无码久久99| 欧美国产禁国产网站cc| 超碰免费在线97| 国产成人综合av| 欧美成人69av| 丰腴饱满的极品熟妇| 7777精品久久久大香线蕉| 国产剧情av在线播放| 亚洲精品自在在线观看| 国产精品性做久久久久久| 国产黄网在线观看| 欧美日本高清视频| 国产成人手机高清在线观看网站| 日本网站在线看| 欧洲色大大久久| 美女91在线| 亚洲一区二区三区免费看| 成人动漫一区二区在线| 中文字幕在线观看高清| 91精品国产亚洲| 亚洲一区二区日韩| 亚洲精品国产一区黑色丝袜| 精品欧美一区二区三区精品久久|