公司该如何创建适合自己的区块链产品、联盟链、私链
現(xiàn)在區(qū)塊鏈?zhǔn)欠浅;鸬?#xff0c;很多公司都想蹭一把區(qū)塊鏈,不管實(shí)際作用大不大,也要往區(qū)塊鏈上靠一靠。
那么這就難為了廣大的技術(shù)開(kāi)發(fā)人員,如何在完全不了解區(qū)塊鏈的情況下,迅速為公司開(kāi)發(fā)出區(qū)塊鏈產(chǎn)品呢?
區(qū)塊鏈基礎(chǔ)架構(gòu)模型
簡(jiǎn)單來(lái)總結(jié)區(qū)塊鏈就是,這是一個(gè)數(shù)據(jù)庫(kù),與傳統(tǒng)數(shù)據(jù)庫(kù)區(qū)別最大的點(diǎn)是,傳統(tǒng)數(shù)據(jù)庫(kù)由一個(gè)中心來(lái)管理維護(hù),所有人都是這個(gè)中心來(lái)做增刪改查;而區(qū)塊鏈則是每個(gè)節(jié)點(diǎn)都有一個(gè)數(shù)據(jù)庫(kù)的完整備份,即所謂的去中心化。這樣一來(lái)不用擔(dān)心數(shù)據(jù)丟失的問(wèn)題(到處都是備份),二來(lái)解決了信任的問(wèn)題(見(jiàn)證者太多,無(wú)法篡改)。至于挖礦什么的,那都是輔助生成數(shù)據(jù)的東西,在區(qū)塊鏈技術(shù)上,屬于非必須的組件。一般說(shuō)來(lái),區(qū)塊鏈系統(tǒng)由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層組成。 其中,數(shù)據(jù)層封裝了底層數(shù)據(jù)區(qū)塊以及相關(guān)的數(shù)據(jù)加密和時(shí)間戳等技術(shù);網(wǎng)絡(luò)層則包括分布式組網(wǎng)機(jī)制、數(shù)據(jù)傳播機(jī)制和數(shù)據(jù)驗(yàn)證機(jī)制等;共識(shí)層主要封裝網(wǎng)絡(luò)節(jié)點(diǎn)的各類共識(shí)算法;激勵(lì)層將經(jīng)濟(jì)因素集成到區(qū)塊鏈技術(shù)體系中來(lái),主要包括經(jīng)濟(jì)激勵(lì)的發(fā)行機(jī)制和分配機(jī)制等;合約層主要封裝各類腳本、算法和智能合約,是區(qū)塊鏈可編程特性的基礎(chǔ);應(yīng)用層則封裝了區(qū)塊鏈的各種應(yīng)用場(chǎng)景和案例。該模型中,基于時(shí)間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)、分布式節(jié)點(diǎn)的共識(shí)機(jī)制、基于共識(shí)算力的經(jīng)濟(jì)激勵(lì)和靈活可編程的智能合約是區(qū)塊鏈技術(shù)最具代表性的創(chuàng)新點(diǎn)。
看起來(lái)很復(fù)雜的樣子,其實(shí)它就是很復(fù)雜。不是模型復(fù)雜,而是具體到每一個(gè)組件都去自己實(shí)現(xiàn)很復(fù)雜。
主要解決的問(wèn)題有數(shù)據(jù)存儲(chǔ)和查詢,節(jié)點(diǎn)間的通信和驗(yàn)證,可自定義的智能合約等。
怎么開(kāi)發(fā)
從上面的模型來(lái)看,要搭建好一個(gè)能用的區(qū)塊鏈平臺(tái),難度是不小的。但是注意看,數(shù)據(jù)層和網(wǎng)絡(luò)層這兩層其實(shí)是不會(huì)發(fā)生大的變化的,無(wú)論是比特幣還是以太幣或者是你自己的任何幣,或者就是普通的數(shù)據(jù)要往區(qū)塊鏈放。這兩層適用于任何區(qū)塊鏈產(chǎn)品。
輪子早已有人造好,作為普通的開(kāi)發(fā)人員更重要的是如何使用輪子。
主要介紹幾個(gè)平臺(tái)及特點(diǎn):
1 以太坊
這個(gè)是除比特幣外,世界第二大虛擬貨幣,擁有世界第二大的算力。以太坊提供了完善的數(shù)據(jù)層、網(wǎng)絡(luò)層,和通過(guò)簡(jiǎn)單配置就能使用的共識(shí)層和激勵(lì)層,需要開(kāi)發(fā)的主要是合約層,通過(guò)自定義合約來(lái)完成自己需要的應(yīng)用層。既可以將自己的合約發(fā)布到以太坊公網(wǎng)(需要以太幣),也可以搭建私鏈、聯(lián)盟鏈來(lái)讓特定的人使用。背后有強(qiáng)大的公司支撐,是目前大部分區(qū)塊鏈學(xué)習(xí)者會(huì)首先碰到的平臺(tái)。但是編寫(xiě)合約用的是以太坊自己的語(yǔ)言,對(duì)于大部分開(kāi)發(fā)者來(lái)說(shuō),該語(yǔ)言很詭異。會(huì)存在語(yǔ)言障礙。
2 騰訊區(qū)塊鏈
https://trustsql.qq.com/
騰訊區(qū)塊鏈解決了底層的一切,對(duì)外暴露一些API,通過(guò)提供的Java和C++的SDK,可以很方便的進(jìn)行區(qū)塊鏈上的操作。我們可以就把它當(dāng)成一個(gè)數(shù)據(jù)庫(kù)就好了,只不過(guò)數(shù)據(jù)庫(kù)是建立在區(qū)塊鏈上的。這樣我們就可以忽略區(qū)塊鏈這個(gè)概念了,就像操作遠(yuǎn)程數(shù)據(jù)庫(kù)一樣,可以在里面存放任何你想存的數(shù)據(jù)。適用于大部分公司所需的場(chǎng)景,就是交易記錄、信息保存等。條件限制目前是每個(gè)節(jié)點(diǎn)只能在騰訊云主機(jī)上。
3 百度區(qū)塊鏈
https://chain.baidu.com/
注冊(cè)了,但是審核沒(méi)下來(lái),估計(jì)是他們放假了。看樣子和騰訊的差不多。
4 布比區(qū)塊鏈
http://www.bubi.cn/
這個(gè)具備可視化操作,看起來(lái)也比較簡(jiǎn)單。沒(méi)看到SDK和文檔,應(yīng)該是收費(fèi)的。注意,就這一個(gè)可能是收費(fèi)的,其他的都是免費(fèi)的。
5 ChainSQL
http://www.chainsql.net/index.html
這個(gè)原理和騰訊區(qū)塊鏈類似,是直接對(duì)外提供類似于數(shù)據(jù)庫(kù)操作那樣的SDK來(lái)操作區(qū)塊鏈。
以太坊先不提,我對(duì)它那個(gè)開(kāi)發(fā)語(yǔ)言很沒(méi)興趣,對(duì)于不提供java sdk的不做討論。
騰訊和ChainSQL都是提供了客戶端,需要安裝到自己主機(jī)上,啟動(dòng)后就相當(dāng)于擁有了一個(gè)區(qū)塊鏈數(shù)據(jù)庫(kù)了,很是方便。
這些公司都是封裝了底層的文件存儲(chǔ)、查詢、通信等等那些復(fù)雜的操作,對(duì)外公布簡(jiǎn)單的數(shù)據(jù)操作接口,形成一個(gè)SaaS系統(tǒng)。這樣很多公司就可以基于此,完成聯(lián)盟鏈的創(chuàng)建,讓自己的一些客戶聯(lián)盟共同維護(hù)這個(gè)鏈,形成數(shù)據(jù)共享。
需要準(zhǔn)備好服務(wù)器,安裝他們提供的客戶端,然后就可以開(kāi)心的使用區(qū)塊鏈了。
如果你覺(jué)得不想使用這些第三方平臺(tái),想要自己來(lái)完成實(shí)現(xiàn)一個(gè)區(qū)塊鏈平臺(tái),或者自己也要做一個(gè)他們那樣的平臺(tái)。那么也有一些開(kāi)源的項(xiàng)目可供參考
Java的:https://github.com/tronprotocol/java-tron/tree/master
這篇文章里也介紹了一些:https://yq.aliyun.com/articles/60443
總結(jié)
以上是生活随笔為你收集整理的公司该如何创建适合自己的区块链产品、联盟链、私链的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: torchtorchvision对应版本
- 下一篇: CentOS 7配置Hadoop3.X环