區(qū)塊鏈如何開發(fā)?
網(wǎng)友解答: 謝邀。算是區(qū)塊鏈行業(yè)的一枚熟鳥,所以應(yīng)該也有資格回答這個問題。區(qū)塊鏈開發(fā)可以分為兩種,區(qū)塊鏈應(yīng)用開發(fā)和區(qū)塊鏈底層技術(shù)的開發(fā)。我主要是從事區(qū)塊鏈底層技術(shù)的開發(fā),所以我先講區(qū)塊鏈
謝邀。
算是區(qū)塊鏈行業(yè)的一枚熟鳥,所以應(yīng)該也有資格回答這個問題。區(qū)塊鏈開發(fā)可以分為兩種,區(qū)塊鏈應(yīng)用開發(fā)和區(qū)塊鏈底層技術(shù)的開發(fā)。我主要是從事區(qū)塊鏈底層技術(shù)的開發(fā),所以我先講區(qū)塊鏈底層怎么開發(fā)。
區(qū)塊鏈底層開發(fā)最早的做區(qū)塊鏈底層開發(fā)的應(yīng)該就是中本聰,寫了首個區(qū)塊鏈系統(tǒng)比特幣。后面的底層技術(shù)的開發(fā)大概又分為兩類,一類是基于現(xiàn)有的某個區(qū)塊鏈系統(tǒng)的代碼進(jìn)行修改,變成新的區(qū)塊鏈系統(tǒng);另一類就是完全從頭寫一款區(qū)塊鏈系統(tǒng)。山寨幣例如萊特幣就是這種,它是在比特幣的基礎(chǔ)上,更換了密碼算法,其它的部分完全都是fork。而以太坊、比特幣這種系統(tǒng)本身的開發(fā),屬于后一類,但是有很多其它的項目都是在兩者基礎(chǔ)上進(jìn)行改進(jìn)或者分叉,變成新的區(qū)塊鏈系統(tǒng)。
那么如果在以太坊或者比特幣基礎(chǔ)上進(jìn)行底層開發(fā),步驟是怎么樣的呢?
我們以比特幣為例,加入我們要用比特幣的源碼做一個山寨幣,那么我們有以下一些步驟:
fork比特幣的源碼;修改它的創(chuàng)世區(qū)塊;修改網(wǎng)絡(luò)中的引導(dǎo)節(jié)點;修改密碼學(xué)相關(guān)的部分;修改挖礦間隔。從上面的幾個步驟,我們基本上就可以根據(jù)比特幣修改出一條我們自己的公鏈了。當(dāng)然具體的細(xì)節(jié)想知道的小伙伴可以查詢資料或者給我留言,人數(shù)夠的話,我會專門寫一篇文章詳細(xì)介紹如何根據(jù)比特幣修改一條新的公鏈(要知道,在2017年初的時候,用比特幣修改一條公鏈可是價值不菲哦)。
在以太坊上面修改就要復(fù)雜很多,而且現(xiàn)在也有很多項目就是在以太坊的基礎(chǔ)上進(jìn)行改進(jìn)的,有興趣的小伙伴可以搜索一下。
區(qū)塊鏈應(yīng)用開發(fā)區(qū)塊鏈的應(yīng)用開發(fā)主要是在現(xiàn)成的區(qū)塊鏈系統(tǒng)的基礎(chǔ)上,開發(fā)相應(yīng)的應(yīng)用。目前最多的應(yīng)該是在以太坊和eos上面開發(fā)相應(yīng)的應(yīng)用。這些應(yīng)用主要是指構(gòu)建在區(qū)塊鏈系統(tǒng)上的dapp的開發(fā),你可以簡單理解為區(qū)塊鏈系統(tǒng)就是后端,dapp開發(fā)主要是做前端相關(guān)的開發(fā)。因為eos的應(yīng)用開發(fā)我沒有研究,所以我就著重給大家說一下以太坊的應(yīng)用開發(fā)。
1、智能合約
以太坊相比比特幣的一個非常大的改進(jìn)就是引進(jìn)了智能合約,通過智能合約來讓區(qū)塊鏈的落地應(yīng)用成為可能。為了讓以太坊能更好的使用智能合約,v神發(fā)明了solidity語言,專門用來寫智能合約的語言。
所以,要進(jìn)行智能合約的開發(fā),需要學(xué)會solidity,當(dāng)然以太坊也提供了用go寫智能合約的機(jī)制,但是個人覺得,你如何能用go搞定的話,我相信你肯定對底層是有一定研究的,可能也就不會只做上層應(yīng)用了。
2、truffle
為了方便的進(jìn)行dapp的開發(fā),以太坊還提供了truffle框架。它是在內(nèi)存中模擬以太坊的執(zhí)行,讓開發(fā)更加快速便捷。如果只是純粹的應(yīng)用開發(fā),我建議都可以不用運行以太坊,用用truffle就好了。關(guān)于truffle,可以查查相關(guān)的資料,貌似我直接貼官網(wǎng)地址審核不過.
說到這里,基本上怎么在以太坊上開發(fā)應(yīng)用就說完了,總結(jié)起來就是,學(xué)好solidity,然后在truffle下面進(jìn)行dapp的開發(fā),當(dāng)然你要會一些node.js之類的前端知識。
總結(jié)如果你一直是做c/c++系列的,那么可能比較適合做底層的技術(shù)開發(fā),如果是前端、node.js這些的,可能適合做應(yīng)用開發(fā)。另外底層技術(shù)的開發(fā)門檻也要高一些,對算法有一定的要求。當(dāng)然,如果你肯下功夫,底層開發(fā)也可以做,應(yīng)用開發(fā)也可以做,可以做一個區(qū)塊鏈的全棧工程師!
個人淺見,請多點贊!