區(qū)塊鏈底層與產(chǎn)品的制作工藝

本文我們將開始制作一個(gè)本地的區(qū)塊鏈。

為什么要從本地開始?

很多人,受現(xiàn)在比特幣以太坊等明星產(chǎn)品的影響,可能會(huì)說“區(qū)塊鏈在本地有什么用啊要聯(lián)網(wǎng)才有用啊”。

其實(shí)并不然,區(qū)塊鏈不是必須要連上網(wǎng),并不是經(jīng)過共識(shí)了才叫區(qū)塊鏈。根據(jù)分類,區(qū)塊鏈可分成公共鏈,私有鏈 和聯(lián)盟鏈,其中只有公共鏈?zhǔn)窃诠W(wǎng)上且分布式的,而私有和聯(lián)盟根據(jù)其服務(wù)性質(zhì)而定,其中大部分都是一個(gè)本地鏈即可完成功能。好比銀行中需要數(shù)字賬簿,只需在本地用于該鏈的計(jì)算機(jī)上操作各類交易即可實(shí)現(xiàn)賬目審計(jì)。

簡(jiǎn)而言之,本地區(qū)塊鏈就是一個(gè)可追溯、可信、方便審計(jì)的數(shù)據(jù)庫(kù)。

我們這里選用Golang作為開發(fā)語(yǔ)言,因?yàn)樗鼑?yán)謹(jǐn)而又現(xiàn)代,適合搭建這樣可靠的服務(wù),而且未來在分布式的應(yīng)用方面Golang也有傲人之處。同樣你也可以把代碼根據(jù)思路翻譯成其他語(yǔ)言,JS、Typescript、Python等現(xiàn)代語(yǔ)言對(duì)于初學(xué)者來說會(huì)議更好的體驗(yàn)。

當(dāng)然本地區(qū)塊鏈也有利于新手先熟悉區(qū)塊鏈本身的樣子。由于不涉及網(wǎng)絡(luò)和其他附加元素,本地區(qū)塊鏈最為純凈。同樣也有利于將來將其他附加元素與區(qū)塊鏈分離,實(shí)現(xiàn)接口銜接。

開始,類型

Golang是一個(gè)靜態(tài)編譯的語(yǔ)言,是需要對(duì)其中變量常量對(duì)象進(jìn)行嚴(yán)格定義的。首先我們需要對(duì)區(qū)塊(Block)進(jìn)行定義:

type Block struct {
    Index     int64  `json:"index,string"`
    PrevHash  []byte `json:"prevhash,string"`
    Timestamp int64  `json:"timestamp,string"`
    Data      []byte `json:"data,string"`
    Hash      []byte `json:"hash,string"`
}

這是最基本的區(qū)塊的定義。

首先說明下“`”和“`”之間的是tag內(nèi)容,方便json序列化,各位可以當(dāng)注釋看待。

Index是為了區(qū)塊排序用的索引,從0(即創(chuàng)世區(qū)塊)開始。Timestamp為創(chuàng)建本區(qū)塊時(shí)的時(shí)間。PrevHash表示上一個(gè)區(qū)塊的hash值,而Hash值即表示將本區(qū)塊所有信息(索引、前一區(qū)塊Hash、時(shí)間戳Timestamp、數(shù)據(jù)Data)經(jīng)過hash函數(shù)處理后獨(dú)一無二的內(nèi)容。

寫到這里插個(gè)題外話,要做數(shù)字資產(chǎn)而且想被市場(chǎng)接受就要有噱頭,或者說大賣點(diǎn)(至少現(xiàn)在是這樣的)。但是作為個(gè)人開發(fā)者沒核心技術(shù)突破的能力,不像有些幣有財(cái)團(tuán)背書有實(shí)驗(yàn)室背書,做不出什么抗量子算法,發(fā)明個(gè)抗ASIC挖礦算法都難。那就推薦這個(gè)bitcoin團(tuán)隊(duì)的repo:https://github.com/bitcoin/bips。這里面包含了所有Bitcoin升級(jí)的建議(BIP),而其中很多是因?yàn)锽TC的勢(shì)力對(duì)抗或者是重構(gòu)與分叉的難度而未能完成的,并不是代碼難度。因此作為一種新幣,只要解決這些問題中的一兩個(gè)就足夠作為噱頭。當(dāng)然我們也能從中看到什么樣的虛擬貨幣是人們真正想要的。其他部分就只要借鑒借鑒即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容