www.e4938.cn-老师你下面太紧了拔不出来,99re8这里有精品热视频免费,国产第一视频一区二区三区,青青草国产成人久久

<button id="60qo0"></button>

<strike id="60qo0"></strike>
<del id="60qo0"></del>
<fieldset id="60qo0"><menu id="60qo0"></menu></fieldset>
  • 如何基于區(qū)塊鏈技術(shù)開(kāi)發(fā)應(yīng)用

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

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

    以太坊是什么

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

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

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

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

    智能合約是什么

    對(duì)區(qū)塊鏈稍有了解的同學(xué),肯定約到過(guò)這個(gè)詞:智能合約,簡(jiǎn)單來(lái)說(shuō),智能合約就是跑在區(qū)塊鏈上的一段程序。

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

    那如何來(lái)編寫智能合約呢?以太坊上編寫智能合約官方推薦的語(yǔ)言是Solidity,這個(gè)語(yǔ)言大家也許沒(méi)有聽(tīng)說(shuō)過(guò),不用怕的,如果你對(duì)Python 或 Java 有一點(diǎn)點(diǎn)了解,那么學(xué)習(xí)Solidity就很簡(jiǎn)單。

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

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

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

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

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

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

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

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

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

    web3.js

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

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

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

    交互代碼主要有下面這幾個(gè)步驟:

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

    總結(jié)

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

    1:編寫智能合約;

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

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

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

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

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

    免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
    我要收藏
    個(gè)贊
    ?
    久久99精品久久水蜜桃| 亚洲中文字幕无码久久1| 最近在线观看免费播放电视剧| 精品一区二区三区无码视频免费送| 免费AV一区二区三区无码| 精品国产一二三产品价格| 潘金莲书房双乳晃动干柴烈火| 亚洲国产成人一区二区精品区| 久久无码中文字幕东京热| 无码毛片内射白浆视频|