中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何切入區塊鏈去中心化應用開發

發布時間:2021-12-22 15:35:45 來源:億速云 閱讀:173 作者:柒染 欄目:互聯網科技

如何切入區塊鏈去中心化應用開發,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

前段時間一個以太坊游戲應用:Fomo3D異常火爆,在短短的幾天內就吸引了幾萬的以太幣投入游戲,第一輪游戲一個“黑客”用了一個非常巧妙的利用以太坊規則成為了最終贏家,拿走了1萬多以太幣獎金。

區塊鏈應用的價值由這個游戲反映的淋漓盡致,Fomo3D游戲能夠成功核心所依賴的是以太坊提供的一個可信、不可篡改平臺。當游戲的規則確定之后,一切都按規則運行,無人可干預。今天就來介紹一下程序員如何切入去中心化應用開發。

中心化應用

作為對比,先來看看中心化應用,其實就是現有的互聯網應用。

平時我們接觸的是應用的前端(或稱客戶端),前端可以是HTML5的web頁面、 小程序、APP, 在前端展現的內容通常發送一個請求到服務器,服務器返回相應的內容給前端。在前端的動作同樣也會轉化請求發送到服務器,服務器處理之后返回數據到前端。也就是說我們所有看到的內容或者操作都是中心化的服務器控制,因此說是中心化應用。

去中心化應用DAPP

而去中心化應用有什么不同呢?  前端的表現上是一樣的, 還是H5頁面、 小程序、APP,DAPP和傳統App關鍵是后端部分不同,是后端不再是一個中心化的服務器,而是分布式網絡上任意節點,注意可以是 任意一個節點,在應用中給節點發送的請求通常稱為 交易,交易和中心化下的請求有幾個很大的不同是:交易的數據經過用戶個人簽名之后發送到節點,節點收到交易請求之后,會把 請求廣播到整個網絡,交易在網絡達成共識之后,才算是真正的執行(真正其作用的執行不一是連接的后端節點,盡管后端也會執行)。以及中心化下的請求大多數都是同步的(及時拿到結果), 而交易大多數是異步的,這也是在開發去中心應用時需要注意的地方,

從節點上獲得數據狀態(比如交易的結果),一般是通過事件回調來獲得。

如何開發

在開發中心化應用最重要兩部分是 客戶端UI表現后端服務程序, UI表現通過HTTP請求連接到后端服務程序,后端服務程序運行在服務器上,比如Nginx Apached等等。

開發一個去中心化應用最重要也是兩部分: 客戶端UI表現智能合約,智能合約的作用就像后端服務程序,智能合約是運行在節點的EVM上, 客戶端調用智能合約,是通過向節點發起RPC請求完成。

下面是一個對比:

     客戶端UI <=> 客戶端UI 
        HTTP <=> RPC
  后端服務程序 <=> 智能合約
Nginx/Apache <=> 節點

因此對于去中心化應用來說,程序員可以從兩個方面切入:

一個是 去中心化應用的客戶端開發, 熟悉已經熟悉客戶端軟件(如Web\APP等)開發的同學,只需要了解一下客戶端跟區塊鏈節點通信的API接口,如果是在當前應用最廣泛的區塊鏈平臺以太坊上開發去中心化應用,那么需要了解Web3 這個庫,Web3對節點暴露出來的JSON-RPC接口進行了封裝,比如Web3提供的功能有:獲取節點狀態,獲取賬號信息,調用合約、監聽合約事件等等。

目前的主流語言都有Web3的實現,列舉一些實現給大家參考:

  • JavaScript Web3.js

  • Python Web3.py

  • Haskell hs-web3

  • Java web3j

  • Scala web3j-scala

  • Purescript purescript-web3

  • PHP web3.php

  • PHP ethereum-php

另一個切入點是 智能合約的開發,在以太坊現在推薦的語言是Solidity,有一些同學對新學一門語言有一些畏懼,Solidity的語法其實很簡潔,有過一兩門其他語言基礎(開發經驗)的同學三五天就可以學會,我也錄制了一個視頻課程:深入詳解以太坊智能合約語言Solidity。

下面用一個Hello合約,體會下Solidity的語法:

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

如果把上面的contract關鍵字更改為class,就和其他語言定義一個類一樣。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北市| 闽清县| 稷山县| 扶余县| 志丹县| 九龙县| 惠州市| 荣成市| 南郑县| 辽宁省| 县级市| 安福县| 临泉县| 灌阳县| 略阳县| 广灵县| 天等县| 永登县| 太谷县| 赣州市| 孝感市| 钟祥市| 霍山县| 嵊泗县| 茶陵县| 普陀区| 浦江县| 五大连池市| 晋江市| 商都县| 洪泽县| 连山| 忻城县| 贵州省| 会昌县| 大姚县| 柳州市| 运城市| 中江县| 海安县| 舞钢市|