欧美日操-欧美日韩91-欧美日韩99-欧美日韩ay在线观看-xxxx色-xxxx视频在线

如何基于區(qū)塊鏈技術(shù)開發(fā)應(yīng)用

2018-07-16 16:59:19 慕課網(wǎng)  點擊量: 評論 (0)
隨著區(qū)塊鏈的火熱,相信很多同學(xué)已經(jīng)躍躍欲試想投入到區(qū)塊鏈開發(fā)隊伍當(dāng)中來,可是又感覺無從下手,本文就基于以太坊平臺,輕松帶大家入?yún)^(qū)塊鏈技術(shù)開發(fā)應(yīng)用的大門。

隨著區(qū)塊鏈的火熱,相信很多同學(xué)已經(jīng)躍躍欲試想投入到區(qū)塊鏈開發(fā)隊伍當(dāng)中來,可是又感覺無從下手,本文就基于以太坊平臺,輕松帶大家入?yún)^(qū)塊鏈技術(shù)開發(fā)應(yīng)用的大門。

以太坊是什么

我們要開發(fā)一個區(qū)塊鏈應(yīng)用,如果要從頭開發(fā)一個區(qū)塊鏈,是不現(xiàn)實的,這時我們就需要以太坊這樣的平臺。 以太坊(Ethereum)是一個建立在區(qū)塊鏈技術(shù)之上的應(yīng)用平臺。它允許任何人在平臺中建立和使用通過區(qū)塊鏈技術(shù)運行的去中心化應(yīng)用。

對這句話不理解的同學(xué),姑且可以理解為以太坊是區(qū)塊鏈里的Android,它是一個開發(fā)平臺,讓我們就可以像基于Android Framework一樣基于區(qū)塊鏈技術(shù)寫應(yīng)用。

在沒有以太坊之前,寫區(qū)塊鏈應(yīng)用是這樣的:拷貝一份比特幣代碼,然后去改底層代碼如加密算法,共識機(jī)制,網(wǎng)絡(luò)協(xié)議等等(很多山寨幣就是這樣,改改就出來一個新幣)。 以太坊平臺對底層區(qū)塊鏈技術(shù)進(jìn)行了封裝,讓區(qū)塊鏈應(yīng)用開發(fā)者可以直接基于以太坊平臺進(jìn)行開發(fā),開發(fā)者只要專注于應(yīng)用本身的開發(fā),從而大大降低了難度。

以太坊是目前最流行的區(qū)塊鏈應(yīng)用平臺,圍繞以太坊已經(jīng)形成了一個較為完善的開發(fā)生態(tài)圈:有眾多開發(fā)框架、工具可以選擇。

智能合約是什么

對區(qū)塊鏈稍有了解的同學(xué),肯定約到過這個詞:智能合約,簡單來說,智能合約就是跑在區(qū)塊鏈上的一段程序。

智能合約英文是Smart Contract,和人工智能( AI:Artificial Intelligence )的智能并沒有什么關(guān)系,智能合約的概念最早是尼克薩博在95年就提出的,它的概念很簡單,就是將法律條文寫成可執(zhí)行代碼。當(dāng)時并沒有區(qū)塊鏈,不過智能合約與區(qū)塊鏈幾乎是天生一對,因為區(qū)塊鏈上程序就像法律條文都是按規(guī)則運行。

那如何來編寫智能合約呢?以太坊上編寫智能合約官方推薦的語言是Solidity,這個語言大家也許沒有聽說過,不用怕的,如果你對Python 或 Java 有一點點了解,那么學(xué)習(xí)Solidity就很簡單。

先來看看一個合約Solidity文件會包含哪些內(nèi)容,我用了一張思維導(dǎo)圖來表示:

再對照代碼看看, 有合約文件simplestorage.sol如下:

這段智能合約的作用是保存了一個變量在區(qū)塊鏈中,然后提供了兩個函數(shù):set() 和 get() 來設(shè)置和獲取變量。

然而,這樣一段智能合約程序并不能稱之為一個應(yīng)用,我們平時看到應(yīng)用,如微信,微博,知乎等都至少需要有一個和用戶交互的界面以便用戶來進(jìn)行使用,不管這個界面是APP、Web、還是小程序,區(qū)塊鏈應(yīng)用既然是應(yīng)用同樣也需要有這樣的交互UI。

區(qū)塊鏈(去中心化)應(yīng)用

區(qū)塊鏈應(yīng)用,由于其運行在去中心化區(qū)塊鏈網(wǎng)絡(luò)上,通常稱為去中心化應(yīng)用程序(Decentralized App)。 去中心化應(yīng)用程序雖然每個人對它的定義不一樣,通常認(rèn)為如果一個應(yīng)用的關(guān)鍵(核心)的數(shù)據(jù)存儲在區(qū)塊鏈網(wǎng)絡(luò)中(不再由一個單一的機(jī)構(gòu)掌握),這樣的應(yīng)用都可以認(rèn)為是區(qū)塊鏈應(yīng)用。

我們可以把區(qū)塊鏈理解為一個存取應(yīng)用數(shù)據(jù)的不可篡改的分布式數(shù)據(jù)庫。

因此一個去中心化應(yīng)用一般應(yīng)該這么幾個組成部分,我用了一張思維導(dǎo)圖來表示:

前面我們已經(jīng)了解如何編寫智能合約,而應(yīng)用的UI展現(xiàn)部分,如編寫HTML5等,這一部分也有大量的教程,關(guān)鍵的一個部分是如何讓UI和智能合約進(jìn)行交互呢?這就需要使用web3.js庫

web3.js

Web3.js是以太坊官方的Java API,可以幫助智能合約開發(fā)者使用HTTP或者IPC與本地的或者遠(yuǎn)程的以太坊節(jié)點交互。

應(yīng)用的整個通信交互過程可以抽象為下圖:

如果一個前端界面需要和上面的智能合約進(jìn)行交互,核心的Java代碼如下:

交互代碼主要有下面這幾個步驟:

初始化web3設(shè)置一個調(diào)用合約的默認(rèn)賬號使用合約的ABI(二進(jìn)制接口信息)及合約地址 創(chuàng)建一個合約對象使用合約對象調(diào)用合約函數(shù)(如:把從合約中獲取的值顯示在界面中,用戶點擊界面調(diào)用相應(yīng)的合約函數(shù))

總結(jié)

我們來做一下總結(jié),編寫一個完整的區(qū)塊鏈(去中心化)應(yīng)用,歸納一下就是需要編寫3個部分的代碼:

1:編寫智能合約;

2: 編寫應(yīng)用UI;

3: 編寫UI月合約交互代碼。

當(dāng)然,在實際開發(fā)過程,我們還會需要非常多的問題,如怎么搭建開發(fā)環(huán)境,怎么進(jìn)行測試,怎么部署等等。

大云網(wǎng)官方微信售電那點事兒

責(zé)任編輯:售電衡衡

免責(zé)聲明:本文僅代表作者個人觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
我要收藏
個贊
?
主站蜘蛛池模板: 日韩国产午夜一区二区三区 | 99精品国产自在现线免费下载 | 久久精品一区二区三区日韩 | 一级毛片免费观看久 | 久久久精品2021免费观看 | 日本免费看| 国产精品99久久久久久董美香 | 91青青青 | 黄页成人免费网站 | 亚洲欧美色视频 | 激情九月婷婷 | 亚洲综合一区二区三区四区 | 国产一级做a爰片久久毛片 国产一级做a爰片... | 四虎成人在线视频 | 国产精品尹人在线观看免费 | 大胖子h粗污 | 成人欧美一区二区三区在线观看 | 久久五月婷 | 国产一级二级三级在线观看 | 久草视频在 | 深入敌后免费高清完整版在线观看 | 欧美黑人乱大交ⅹxxxxx | 精品视频在线视频 | 欧美一区二区在线播放 | 日韩精品免费一级视频 | 国产福利在线观看精品 | 中文字幕 在线观看 | 韩国演艺圈精品一区二区 | 99在线观看视频免费精品9 | 日本大片成人免费播放 | 免费日本黄色 | 亚洲欧洲一区二区 | 久久99这里只有精品国产 | 国产一卡2卡3卡四卡高清 | 九色视| 中文字幕一区在线 | 成人第一页 | 91香蕉国产观看免费人人 | 亚洲国产精品激情在线观看 | 国产综合精品一区二区 | 日韩在线视频网站 |