如何切入?yún)^(qū)塊鏈去中心化應(yīng)用開(kāi)發(fā)

如何切入?yún)^(qū)塊鏈去中心化應(yīng)用開(kāi)發(fā),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比昭陽(yáng)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式昭陽(yáng)網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昭陽(yáng)地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

前段時(shí)間一個(gè)以太坊游戲應(yīng)用:Fomo3D異?;鸨诙潭痰膸滋靸?nèi)就吸引了幾萬(wàn)的以太幣投入游戲,第一輪游戲一個(gè)“黑客”用了一個(gè)非常巧妙的利用以太坊規(guī)則成為了最終贏家,拿走了1萬(wàn)多以太幣獎(jiǎng)金。

區(qū)塊鏈應(yīng)用的價(jià)值由這個(gè)游戲反映的淋漓盡致,F(xiàn)omo3D游戲能夠成功核心所依賴的是以太坊提供的一個(gè)可信、不可篡改平臺(tái)。當(dāng)游戲的規(guī)則確定之后,一切都按規(guī)則運(yùn)行,無(wú)人可干預(yù)。今天就來(lái)介紹一下程序員如何切入去中心化應(yīng)用開(kāi)發(fā)。

中心化應(yīng)用

作為對(duì)比,先來(lái)看看中心化應(yīng)用,其實(shí)就是現(xiàn)有的互聯(lián)網(wǎng)應(yīng)用。

平時(shí)我們接觸的是應(yīng)用的前端(或稱客戶端),前端可以是HTML5的web頁(yè)面、 小程序、APP, 在前端展現(xiàn)的內(nèi)容通常發(fā)送一個(gè)請(qǐng)求到服務(wù)器,服務(wù)器返回相應(yīng)的內(nèi)容給前端。在前端的動(dòng)作同樣也會(huì)轉(zhuǎn)化請(qǐng)求發(fā)送到服務(wù)器,服務(wù)器處理之后返回?cái)?shù)據(jù)到前端。也就是說(shuō)我們所有看到的內(nèi)容或者操作都是中心化的服務(wù)器控制,因此說(shuō)是中心化應(yīng)用。

去中心化應(yīng)用DAPP

而去中心化應(yīng)用有什么不同呢?  前端的表現(xiàn)上是一樣的, 還是H5頁(yè)面、 小程序、APP,DAPP和傳統(tǒng)App關(guān)鍵是后端部分不同,是后端不再是一個(gè)中心化的服務(wù)器,而是分布式網(wǎng)絡(luò)上任意節(jié)點(diǎn),注意可以是 任意一個(gè)節(jié)點(diǎn),在應(yīng)用中給節(jié)點(diǎn)發(fā)送的請(qǐng)求通常稱為 交易,交易和中心化下的請(qǐng)求有幾個(gè)很大的不同是:交易的數(shù)據(jù)經(jīng)過(guò)用戶個(gè)人簽名之后發(fā)送到節(jié)點(diǎn),節(jié)點(diǎn)收到交易請(qǐng)求之后,會(huì)把 請(qǐng)求廣播到整個(gè)網(wǎng)絡(luò),交易在網(wǎng)絡(luò)達(dá)成共識(shí)之后,才算是真正的執(zhí)行(真正其作用的執(zhí)行不一是連接的后端節(jié)點(diǎn),盡管后端也會(huì)執(zhí)行)。以及中心化下的請(qǐng)求大多數(shù)都是同步的(及時(shí)拿到結(jié)果), 而交易大多數(shù)是異步的,這也是在開(kāi)發(fā)去中心應(yīng)用時(shí)需要注意的地方,

從節(jié)點(diǎn)上獲得數(shù)據(jù)狀態(tài)(比如交易的結(jié)果),一般是通過(guò)事件回調(diào)來(lái)獲得。

如何開(kāi)發(fā)

在開(kāi)發(fā)中心化應(yīng)用最重要兩部分是 客戶端UI表現(xiàn)后端服務(wù)程序, UI表現(xiàn)通過(guò)HTTP請(qǐng)求連接到后端服務(wù)程序,后端服務(wù)程序運(yùn)行在服務(wù)器上,比如Nginx Apached等等。

開(kāi)發(fā)一個(gè)去中心化應(yīng)用最重要也是兩部分: 客戶端UI表現(xiàn)智能合約,智能合約的作用就像后端服務(wù)程序,智能合約是運(yùn)行在節(jié)點(diǎn)的EVM上, 客戶端調(diào)用智能合約,是通過(guò)向節(jié)點(diǎn)發(fā)起RPC請(qǐng)求完成。

下面是一個(gè)對(duì)比:

     客戶端UI <=> 客戶端UI 
        HTTP <=> RPC
  后端服務(wù)程序 <=> 智能合約
Nginx/Apache <=> 節(jié)點(diǎn)

因此對(duì)于去中心化應(yīng)用來(lái)說(shuō),程序員可以從兩個(gè)方面切入:

一個(gè)是 去中心化應(yīng)用的客戶端開(kāi)發(fā), 熟悉已經(jīng)熟悉客戶端軟件(如Web\APP等)開(kāi)發(fā)的同學(xué),只需要了解一下客戶端跟區(qū)塊鏈節(jié)點(diǎn)通信的API接口,如果是在當(dāng)前應(yīng)用最廣泛的區(qū)塊鏈平臺(tái)以太坊上開(kāi)發(fā)去中心化應(yīng)用,那么需要了解Web3 這個(gè)庫(kù),Web3對(duì)節(jié)點(diǎn)暴露出來(lái)的JSON-RPC接口進(jìn)行了封裝,比如Web3提供的功能有:獲取節(jié)點(diǎn)狀態(tài),獲取賬號(hào)信息,調(diào)用合約、監(jiān)聽(tīng)合約事件等等。

目前的主流語(yǔ)言都有Web3的實(shí)現(xiàn),列舉一些實(shí)現(xiàn)給大家參考:

  • JavaScript Web3.js

  • Python Web3.py

  • Haskell hs-web3

  • Java web3j

  • Scala web3j-scala

  • Purescript purescript-web3

  • PHP web3.php

  • PHP ethereum-php

另一個(gè)切入點(diǎn)是 智能合約的開(kāi)發(fā),在以太坊現(xiàn)在推薦的語(yǔ)言是Solidity,有一些同學(xué)對(duì)新學(xué)一門(mén)語(yǔ)言有一些畏懼,Solidity的語(yǔ)法其實(shí)很簡(jiǎn)潔,有過(guò)一兩門(mén)其他語(yǔ)言基礎(chǔ)(開(kāi)發(fā)經(jīng)驗(yàn))的同學(xué)三五天就可以學(xué)會(huì),我也錄制了一個(gè)視頻課程:深入詳解以太坊智能合約語(yǔ)言Solidity。

下面用一個(gè)Hello合約,體會(huì)下Solidity的語(yǔ)法:

contract Hello {
      function hello() public returns(string) {
           return "Hello World"; 
      }
}

如果把上面的contract關(guān)鍵字更改為class,就和其他語(yǔ)言定義一個(gè)類一樣。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

分享名稱:如何切入?yún)^(qū)塊鏈去中心化應(yīng)用開(kāi)發(fā)
URL網(wǎng)址:http://www.muchs.cn/article0/phdooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站制作移動(dòng)網(wǎng)站建設(shè)、微信公眾號(hào)、全網(wǎng)營(yíng)銷推廣面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)