国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

馬龍駒 / 3253人閱讀

摘要:區塊鏈應用的價值由這個游戲反映的淋漓盡致,游戲能夠成功核心所依賴的是以太坊提供的一個可信不可篡改平臺。今天這篇就來介紹一下程序員如何切入去中心化應用開發。

本文首發于深入淺出區塊鏈社區
原文鏈接:程序員如何切入區塊鏈去中心化應用開發原文已更新,請讀者前往原文閱讀

前段時間一個以太坊游戲應用: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 <=> 節點

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

一個是 去中心化應用的客戶端開發, 熟悉已經熟悉客戶端軟件(如WebAPP等)開發的同學,只需要了解一下客戶端跟區塊鏈節點通信的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,就和其他語言定義一個類一樣。

有興趣的同學可以進一步學習一下這個DApp開發案例Web3與智能合約交互實戰,

在DAPP的開發過程中,一些開發工具可以幫助我們事半功倍,如:Truffle開發框架以及Ganache工具來模擬節點等,這篇文章一步步教你開發、部署第一個去中心化應用

補充

對于想切入到去中心化應用開發的同學,對區塊鏈運行的原理了解肯定會是加分項,尤其是各類共識機制(POW,POS,DPOS等)的理解,P2P網絡的理解,以及各類加密和Hash算法的運用。有一些同學想做區塊鏈底層開發,對區塊鏈運行的原理則是必須項。

歡迎來知識星球提問,星球內已經聚集了300多位區塊鏈技術愛好者。
深入淺出區塊鏈 - 系統學習區塊鏈,打造最好的區塊鏈技術博客。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24262.html

相關文章

  • 區塊鏈技術學習指引

    摘要:引言給迷失在如何學習區塊鏈技術的同學一個指引,區塊鏈技術是隨比特幣誕生,因此要搞明白區塊鏈技術,應該先了解下比特幣。但區塊鏈技術不單應用于比特幣,還有非常多的現實應用場景,想做區塊鏈應用開發,可進一步閱讀以太坊系列。 本文始發于深入淺出區塊鏈社區, 原文:區塊鏈技術學習指引 原文已更新,請讀者前往原文閱讀 本章的文章越來越多,本文是一個索引帖,方便找到自己感興趣的文章,你也可以使用左側...

    Cristic 評論0 收藏0
  • 站在Web3.0 理解IPFS是什么

    摘要:在中,一個文件的哈希值完全取決于其內容,修改它的內容,其相應的值也會發生改變。則是用一個哈希指向一個真實內容文件的,文件更新這更改哈希的指向,當然更新指向需要有哈希對應的私鑰。 本文首發于深入淺出區塊鏈社區原文鏈接:站在Web3.0 理解IPFS是什么原文已更新,請讀者前往原文閱讀 盡管網絡上,已經有不少文章討論IPFS,不過真正講明白IPFS想做什么的很少,文本嘗試站在未來Web3....

    young.li 評論0 收藏0
  • c#工程師用Visual Studio開發dapp應用程序

    摘要:最初,我對以太坊區塊鏈,智能合約和應用程序提出了大量疑問。即使需要額外的工具來設置開發環境,現在微軟將使用新的針對以太坊區塊鏈產品。 最近區塊鏈技術引起了我的注意。我剛開始了解它,就看到了區塊鏈去中心化架構的巨大潛力,并且它能夠簡化各種現有繁瑣的流程,通過各種形式的合約。 作為一名.NET開發人員,我主要使用的是一些提供中心數據源的架構,因此區塊鏈的去中心化概念對我來說是全新的。我很快...

    騫諱護 評論0 收藏0
  • Java開發區塊鏈的三大sdk庫

    摘要:是企業與區塊鏈相遇的地方。的框架旨在成為開發區塊鏈解決方案的支柱。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 如果你想將區塊鏈合并到一個Java項目中,現在我們來看看就是這個細分領域中三個最大的OSS玩家。 好的伙計們,我們都聽說過比特幣,以太坊或其他加密貨幣,其中有一些時髦的名字圍繞著我們常見的新聞,但我們作為Java開發人員知道如何輕松地與這些區塊鏈技術進行交互嗎?以...

    iKcamp 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<