過(guò)了一把區(qū)塊鏈的癮!帶你了解一下!
大家好,我是敖丙。
在很早以前,一個(gè)網(wǎng)站還只對(duì)應(yīng)著一個(gè)數(shù)據(jù)庫(kù),所有的數(shù)據(jù)都以一定規(guī)則存儲(chǔ)在某臺(tái)服務(wù)器上。假設(shè)這臺(tái)存儲(chǔ)數(shù)據(jù)的服務(wù)器宕機(jī)了并且數(shù)據(jù)還沒有進(jìn)行備份,那么結(jié)局你懂的。。
人們意識(shí)到了要將數(shù)據(jù)或者流量分布在不同的節(jié)點(diǎn)上以防止突發(fā)情況——分布式技術(shù)誕生了。但盡管如此,分布式技術(shù)也同樣會(huì)帶來(lái)些許問題,比如多節(jié)點(diǎn)數(shù)據(jù)同步、以及節(jié)點(diǎn)權(quán)限等問題。
后來(lái)人們思考,是否可以在分布式的思想基礎(chǔ)上做到權(quán)限統(tǒng)一、共同維護(hù)的特點(diǎn)?就像是每個(gè)人手握一份”賬本“,所有人都能看到相同的記錄,然后再統(tǒng)一地校驗(yàn)數(shù)據(jù)呢?
于是「分布式賬本」被提倡了出來(lái)。秉著”公開透明“、”不可偽造“、”不可篡改“的特點(diǎn),它成為了區(qū)塊鏈的核心,讓區(qū)塊鏈迅速進(jìn)入了人們的視野。
什么是區(qū)塊鏈?
6月底,我參加了首屆techoday騰訊技術(shù)開放日的活動(dòng),了解了區(qū)塊鏈的技術(shù)背景和市場(chǎng)價(jià)值,我決定跟大家分享一下。
使用區(qū)塊鏈技術(shù)你可以知道一款產(chǎn)品從生產(chǎn)到流通環(huán)節(jié)的全過(guò)程;作為近年來(lái)趨于成熟的技術(shù),它被用于支付、產(chǎn)品檢驗(yàn)等眾多領(lǐng)域。
你可以理解為它是由“區(qū)塊” + “鏈”組成,這條鏈接串聯(lián)起了一個(gè)個(gè)區(qū)塊。即使分布形式上和傳統(tǒng)數(shù)據(jù)庫(kù)有所不同,其本質(zhì)功能也是用于承載信息流,每一條信息流都是以數(shù)據(jù)記錄為基本單位來(lái)存儲(chǔ)的。區(qū)塊和區(qū)塊之間通過(guò)廣播的方式進(jìn)行通信,那么通信的目的又是什么呢?沒錯(cuò),一切都是為了交易。
整個(gè)區(qū)塊鏈其實(shí)都是一個(gè)不斷實(shí)時(shí)同步的分布式賬本,每個(gè)區(qū)塊節(jié)點(diǎn)相當(dāng)于一個(gè)賬本。在這個(gè)賬本上,每一個(gè)動(dòng)作都可以算作一筆“交易”,這樣一筆筆的交易構(gòu)成了區(qū)塊鏈的全部。
我們上面說(shuō)了區(qū)塊鏈存儲(chǔ)的基本單位是數(shù)字記錄,所以你可以理解”交易“的過(guò)程就是一筆筆數(shù)字被記錄的過(guò)程。
知道了交易,我們還需要了解一下另外幾個(gè)術(shù)語(yǔ):
上鏈
因?yàn)閰^(qū)塊鏈?zhǔn)怯梢粋€(gè)個(gè)賬本連接起來(lái)的區(qū)塊鏈接。所以想要加入到這條鏈中就需要上鏈登記,這是使用區(qū)塊鏈重要的一步。
通過(guò)上鏈就可以將我們局域?qū)崿F(xiàn)的“賬本”共享到區(qū)塊鏈。比如想發(fā)揮你項(xiàng)目的優(yōu)勢(shì)讓更多人認(rèn)識(shí)你的業(yè)務(wù),只需要將它進(jìn)行上鏈,區(qū)塊鏈會(huì)將你做的事情都記錄下來(lái)并且廣播給其他人。這個(gè)記錄是公開透明的,會(huì)伴隨著這條鏈永久存在。
那我們要如何創(chuàng)造一條記錄呢?
哈希算法
我們上鏈的每一條記錄必須是系統(tǒng)認(rèn)可且實(shí)際發(fā)生過(guò)的存在,所以就需要使用到哈希加密。哈希算法想必大家都熟。以MD5算法為例,任何一串字符使用它加密后都會(huì)得到一串獨(dú)一無(wú)二的散列值,只要原輸入有任何改動(dòng)經(jīng)過(guò)哈希加密后的數(shù)字就會(huì)完全不同。所以使用區(qū)塊鏈之后任何信息都無(wú)法更改,即便你是系統(tǒng)管理員。這就保證了信息的安全透明。
智能合約
啥是合約嘞?舉一個(gè)生活中的栗子,假如你往自動(dòng)售貨機(jī)里面投入了兩枚硬幣,因?yàn)槭圬洐C(jī)已經(jīng)事先設(shè)置了固定程序,所以它會(huì)吐出你所選的飲料出來(lái)。這就是你和售貨機(jī)之間的“合約”。
區(qū)塊鏈的智能合約,就是你事先在區(qū)塊鏈平臺(tái)定義的固定承諾。因?yàn)閰^(qū)塊鏈的特點(diǎn)是“數(shù)字化”,所以智能合約就是用數(shù)字和程序的方式定義的“承諾“,所有的行為都基于這一系列承諾而執(zhí)行。所以我們的應(yīng)用開發(fā)過(guò)程在區(qū)塊鏈就是一個(gè)寫合約的過(guò)程。
另外,這一系列合約記錄都是不可刪除的喲。
怎么用?
還是拿騰訊云為例,我?guī)Т蠹沂职咽植僮鳌?/p>
首先進(jìn)入騰訊云TBaaS官網(wǎng)https://console.cloud.tencent.com/tbaas/ ,點(diǎn)擊「免費(fèi)體驗(yàn)長(zhǎng)安鏈」-選擇適合自己的測(cè)試組織-之后進(jìn)入控制中心。
來(lái)到長(zhǎng)安鏈區(qū)塊鏈網(wǎng)絡(luò)的控制中心,你就可以看到節(jié)點(diǎn)的整體情況了。
騰訊云一共提供了4個(gè)組織4個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是16核,32G和1000GB的磁盤存儲(chǔ)。好家伙,這個(gè)配置實(shí)屬是高呀。
你可以看到其它用戶的上鏈信息和交易列表。
正如你所見的,區(qū)塊鏈上的交易信息都是透明的,包括交易筆數(shù),交易時(shí)間和組織等。
ok,在知道了它的整體布局之后,下一步的操作就是去安裝智能合約。
長(zhǎng)安鏈為我們提供了智能合約Demo,使用的合約語(yǔ)言是長(zhǎng)安鏈自研的DockerGo,我們需要在合約詳情中下載合約文件。
下載完畢之后需要將合約進(jìn)行編譯,流程可以查看開發(fā)指南,我這里也帶大家詳細(xì)編譯一遍~
此次編譯需要在Linux環(huán)境下并且安裝docker喲。
首先輸入以下命令拉取一下長(zhǎng)安鏈的docker鏡像,靜靜的等待它完成。
docker pull chainmakerofficial/chainmaker-docker-go-contract:v2.2.1
安裝完鏡像后執(zhí)行以下docker run命令,目的是將上面下載好的鏈接掛在到你的工作目錄中以便隨時(shí)能用。$WORK_DIR就是你的工作目錄所在路徑。
docker run -it --name chainmaker-docker-go-contract -v $WORK_DIR:/home chainmakerofficial/chainmaker-docker-go-contract:v2.2.1 bash
接下來(lái)就是比較重點(diǎn)的部分了,需要進(jìn)行合約的編譯和壓縮。
cd /home
tar xvf /data/contract_docker_go_template.tar.gz
cd contract_docker_go
./build.sh
please input contract name, contract name should be same as name in tx:
<contract_name> #此處contract_name必須和交易中的合約名一致
please input zip file:
<zip_file_name> #建議與contract_name保持一致(不包含文件后綴)
按照我上面的步驟安裝,看到Everything is Ok后,那就說(shuō)明編譯成功了。
以上這個(gè)就是我們編譯好的文件啦,下一步只需要將它裝進(jìn)合約文件。
點(diǎn)擊確認(rèn),一個(gè)新的合約就生成好了。
除了DockerGo,目前一共還支持Solidity、Rust、C++ 四種編程語(yǔ)言。每一種智能合約官方都寫了詳細(xì)的參考文檔,點(diǎn)擊你對(duì)應(yīng)的語(yǔ)言即可查看詳細(xì)文檔:
- 智能合約開發(fā)(DockerGo)。
- 智能合約開發(fā)(Solidity)。
- 智能合約開發(fā)(Rust)。
- 智能合約開發(fā)(C++)。
安裝完智能合約之后就是去測(cè)試它是否成功,這也是距離使用區(qū)塊鏈最近的一步了。點(diǎn)擊「快速上鏈」,發(fā)起快速調(diào)用。
上鏈操作完畢后就會(huì)返回上鏈結(jié)果了:
達(dá)到了這里,就代表著你已經(jīng)成功進(jìn)入到區(qū)塊鏈了。連接建立后最后一步就要讓TBaaS和我們的應(yīng)用做對(duì)接了。這里也就是業(yè)務(wù)銜接的部分。
具體對(duì)接過(guò)程你可以查閱:云 API 對(duì)接說(shuō)明。
完事之后你的業(yè)務(wù)行為就會(huì)被視為交易發(fā)送到鏈上,通過(guò)【區(qū)塊鏈瀏覽器】就可以一眼查閱實(shí)時(shí)的交易記錄。
TBaaS平臺(tái)就這么將區(qū)塊鏈實(shí)現(xiàn)可視化,接下來(lái)你就可以自由查看區(qū)塊和交易去感受區(qū)塊鏈了。
總結(jié)
區(qū)塊鏈給咱的整體操作過(guò)程就是一個(gè)從加入體驗(yàn)網(wǎng)絡(luò)->安裝智能合約->業(yè)務(wù)對(duì)接->交易申請(qǐng)的過(guò)程,在此之后就可以輕松地在騰訊云后臺(tái)上查看到你的節(jié)點(diǎn)和業(yè)務(wù)的關(guān)聯(lián)信息了。
較比傳統(tǒng)的業(yè)務(wù)平臺(tái)搭建和監(jiān)控確實(shí)更加便捷迅速,成本也更低。我認(rèn)為作為騰訊云的重點(diǎn)建設(shè)項(xiàng)目TBaaS平臺(tái)今后也會(huì)研發(fā)出更多豐富的功能,值得期待一波。