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

資訊專欄INFORMATION COLUMN

以太坊智能合約開發(fā)第二篇:理解以太坊相關(guān)概念

yibinnn / 1399人閱讀

摘要:原文發(fā)表于以太坊智能合約開發(fā)第二篇理解以太坊相關(guān)概念很多人都說(shuō)比特幣是區(qū)塊鏈,以太坊是區(qū)塊鏈。它是以太坊智能合約的運(yùn)行環(huán)境。是由以太坊節(jié)點(diǎn)提供。以太坊社區(qū)把基于智能合約的應(yīng)用稱為去中心化的應(yīng)用。

原文發(fā)表于:以太坊智能合約開發(fā)第二篇:理解以太坊相關(guān)概念

很多人都說(shuō)比特幣是區(qū)塊鏈1.0,以太坊是區(qū)塊鏈2.0。在以太坊平臺(tái)上,可以開發(fā)各種各樣的去中心化應(yīng)用,這些應(yīng)用構(gòu)成了以太坊的整個(gè)生態(tài)。目前,以太坊是區(qū)塊鏈?zhǔn)澜缋锷鷳B(tài)建設(shè)最好的底層公鏈。本篇將以通俗易懂的方式介紹以太坊開發(fā)中涉及到的相關(guān)概念,帶領(lǐng)大家輕松入門。

以太坊

以太坊(Ethereum)是一個(gè)建立在區(qū)塊鏈技術(shù)之上的、圖靈完備的去中心化應(yīng)用平臺(tái)。它允許任何人在平臺(tái)中通過(guò)智能合約技術(shù)開發(fā)、部署和使用去中心化應(yīng)用。

>  有沒(méi)有感到和ios、Android平臺(tái)有點(diǎn)類似?

在以太坊未問(wèn)世之前,寫區(qū)塊鏈的應(yīng)用是這樣的:拷貝一份比特幣代碼,然后去改底層代碼如加密算法、共識(shí)機(jī)制、網(wǎng)絡(luò)協(xié)議等等。2013、2014年那時(shí)候的很多山寨幣就是這樣,改改比特幣代碼就造出來(lái)一個(gè)新幣。

以太坊平臺(tái)對(duì)底層區(qū)塊鏈技術(shù)進(jìn)行了封裝,讓區(qū)塊鏈應(yīng)用開發(fā)者可以直接基于以太坊平臺(tái)進(jìn)行開發(fā),開發(fā)者只要專注于應(yīng)用本身的開發(fā),從而大大降低了難度。

>  目前圍繞以太坊已經(jīng)形成了一個(gè)較為完善的開發(fā)生態(tài)圈:社區(qū)支持、開發(fā)框架、開發(fā)工具等等。
智能合約

網(wǎng)絡(luò)上關(guān)于智能合約的解釋都很晦澀。我們可以簡(jiǎn)單的理解為在區(qū)塊鏈上,由事件驅(qū)動(dòng)、以代碼形式存在、可執(zhí)行的特殊交易合同。它是代碼、數(shù)據(jù)的集合。

智能合約非常適合對(duì)信任、安全和持久性要求較高的應(yīng)用場(chǎng)景,比如:數(shù)字貨幣、數(shù)字資產(chǎn)、投票、保險(xiǎn)、金融應(yīng)用、預(yù)測(cè)市場(chǎng)、產(chǎn)權(quán)所有權(quán)管理、物聯(lián)網(wǎng)、點(diǎn)對(duì)點(diǎn)交易等等。

目前除數(shù)字貨幣之外,真正落地的應(yīng)用還不多。和移動(dòng)互聯(lián)網(wǎng)剛興起之時(shí)各種各樣、各行各業(yè)的APP推陳出新一樣,去中心化應(yīng)用的市場(chǎng)在初期肯定有一個(gè)紅利期。對(duì)此有興趣的開發(fā)者,可抓住機(jī)會(huì)。

Solidity

Solidity是一門和JavaScript類似的編程語(yǔ)言,文件擴(kuò)展名以 .sol 結(jié)尾。它用于智能合約的開發(fā),并能編譯成以太坊虛擬機(jī)字節(jié)碼,部署到以太坊底層區(qū)塊鏈網(wǎng)絡(luò)上。

EVM

EVM即以太坊虛擬機(jī),全稱是Ethereum Virtual Machine。它是以太坊智能合約的運(yùn)行環(huán)境。

> EVM是由以太坊節(jié)點(diǎn)提供。每個(gè)以太坊節(jié)點(diǎn)中都包含EVM
> Solidity之于EVM,就像Java跟JVM的關(guān)系一樣
> 以太坊虛擬機(jī)是一個(gè)隔離的環(huán)境,在EVM內(nèi)部運(yùn)行的代碼不能跟外部有聯(lián)系

EVM運(yùn)行在以太坊節(jié)點(diǎn)上,當(dāng)我們把合約部署到以太坊區(qū)塊鏈網(wǎng)絡(luò)上之后,合約就可以在以太坊網(wǎng)絡(luò)中運(yùn)行了。

合約編譯

以太坊虛擬機(jī)上運(yùn)行的是合約的字節(jié)碼。這就需要我們?cè)诓渴鹬跋葘?duì)合約進(jìn)行編譯。

> 推薦使用solc編譯器。
以太坊客戶端(節(jié)點(diǎn))

一個(gè)以太坊客戶端就是一個(gè)以太坊節(jié)點(diǎn)。它提供賬戶管理、數(shù)字資產(chǎn)管理、挖礦、轉(zhuǎn)賬、智能合約的部署和執(zhí)行等等功能。對(duì)于我們開發(fā)者來(lái)說(shuō),它就是一個(gè)開發(fā)者工具。

Geth是典型的以太坊客戶端。Geth這個(gè)名字是Go Ethereum開源項(xiàng)目的簡(jiǎn)稱。它是基于Go語(yǔ)言開發(fā)且實(shí)現(xiàn)了Ethereum協(xié)議的客戶端軟件。 Geth提供了一個(gè)交互式命令控制臺(tái),通過(guò)命令來(lái)操作以太坊的各種功能(API)。

> Geth是全節(jié)點(diǎn)客戶端,會(huì)一直同步以太坊區(qū)塊鏈上的所有數(shù)據(jù)。目前數(shù)據(jù)量已經(jīng)幾十G,不久就會(huì)上百G。
> 在開發(fā)過(guò)程中,我們推薦使用以太坊區(qū)塊鏈的私有鏈Ganache,免去同步以太坊全部區(qū)塊數(shù)據(jù)的麻煩。在后續(xù)的文章中會(huì)介紹Ganache。
賬戶

以太坊中賬戶分為兩類:

外部賬戶(EOA)

該類賬戶被公鑰-私鑰對(duì)控制(用戶),沒(méi)有關(guān)聯(lián)任何代碼
外部賬戶的地址由公鑰衍生而來(lái)

合約賬戶(CA)

該類賬戶為智能合約分配的賬戶,被合約代碼控制且有代碼與之關(guān)聯(lián)
智能合約的部署會(huì)把合約字節(jié)碼發(fā)布到區(qū)塊鏈上,并使用一個(gè)特定的地址來(lái)標(biāo)示這個(gè)合約,這個(gè)地址就是為合約賬戶

合約賬戶存儲(chǔ)了代碼,外部賬戶則沒(méi)有。除了這點(diǎn)之外,這兩類賬戶對(duì)于EVM來(lái)說(shuō)都是一樣的。

合約部署就是將編譯好的合約字節(jié)碼,通過(guò)外部賬號(hào)以發(fā)送交易的形式部署到以太坊區(qū)塊鏈網(wǎng)絡(luò)上(由實(shí)際礦工出塊之后,才會(huì)真正部署成功)。

外部賬戶與外部賬戶之間交易僅僅是轉(zhuǎn)賬。但是外部賬戶到合約賬戶,是可以激活各種操作的。

運(yùn)行

合約部署后,當(dāng)需要調(diào)用這個(gè)智能合約的方法時(shí),只需要向這個(gè)合約賬戶發(fā)送消息(交易)即可,通過(guò)消息觸發(fā)后智能合約的代碼就會(huì)在EVM中執(zhí)行了。

Gas

Gas即礦工費(fèi)。以太坊上每筆交易的執(zhí)行(被礦工打包)都會(huì)被收取一定數(shù)量的gas。gas的目的是限制執(zhí)行交易所需的工作量,同時(shí)為執(zhí)行支付費(fèi)用。當(dāng)EVM執(zhí)行交易時(shí),gas將按照特定規(guī)則被逐漸消耗,無(wú)論執(zhí)行到什么位置,一旦gas被耗盡,將會(huì)觸發(fā)一個(gè) out of gas 異常。當(dāng)前調(diào)用幀所做的所有狀態(tài)修改都將被回滾。如果執(zhí)行結(jié)束,還有g(shù)as剩余,這些gas將會(huì)返還給發(fā)送賬戶。因此,我們需要一個(gè)有以太幣余額的外部賬戶,來(lái)為發(fā)起的交易支付gas。

如果沒(méi)有這個(gè)限制,就會(huì)出現(xiàn)無(wú)法停止(如:死循環(huán))的合約來(lái)阻塞以太坊區(qū)塊鏈網(wǎng)絡(luò)

gas可以認(rèn)為是一個(gè)工作量單位,智能合約越復(fù)雜(計(jì)算步驟的數(shù)量、類型、占用的內(nèi)存等等),所需的gas就越多。gas的最小單位是wei,1eth=10^18wei=10^9gwei

GasLimit: 愿意支付礦工費(fèi)的上限

GasPrice: 礦工費(fèi)單價(jià)

gas = GasLimit * GasPrice

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

Dapp全稱是Decentralized App。以太坊社區(qū)把基于智能合約的應(yīng)用稱為去中心化的應(yīng)用。如果我們把區(qū)塊鏈理解為一個(gè)不可篡改的分布式賬本數(shù)據(jù)庫(kù),智能合約理解為和數(shù)據(jù)庫(kù)打交道的程序,那就很容易理解Dapp了。一個(gè)Dapp不單單有智能合約,還需要有一個(gè)友好的用戶界面和其他的業(yè)務(wù)程序。

Truffle

Truffle是目前最流行的Dapp開發(fā)框架,它可以幫我們處理掉很多繁瑣的事情,讓我們更專注于智能合約的開發(fā),迅速開始編碼-編譯-部署-測(cè)試-打包Dapp的流程。

總結(jié)

我們現(xiàn)在來(lái)總結(jié)一下。以太坊是平臺(tái),它讓我們方便的使用區(qū)塊鏈技術(shù)開發(fā)去中心化的應(yīng)用。應(yīng)用中,我們可以使用Solidity來(lái)編寫和區(qū)塊鏈交互的智能合約,合約編寫好后之后,我們通過(guò)一個(gè)有余額的賬戶將合約部署到以太坊節(jié)點(diǎn)上,并運(yùn)行合約(使用Truffle框架可以更好的幫助我們做這些事情)。為了開發(fā)方便,我們可以用以太坊私有鏈Ganache來(lái)搭建一個(gè)測(cè)試網(wǎng)絡(luò)。

注:本文中為了方便大家理解,對(duì)一些概念做了類比,有些嚴(yán)格來(lái)說(shuō)不是準(zhǔn)確。不過(guò)我認(rèn)為對(duì)于初學(xué)者,也沒(méi)有必要把每一個(gè)概念掌握的很細(xì)致和準(zhǔn)確。學(xué)習(xí)是一個(gè)逐步深入的過(guò)程,很多時(shí)候我們會(huì)發(fā)現(xiàn),過(guò)一段后,我們會(huì)對(duì)同一個(gè)東西有不一樣的理解。

智能合約開發(fā)QQ群:753778670


目前有幾套區(qū)塊鏈實(shí)踐的視頻課程(視頻+源碼),需要的可加我微信(kuangwenjie)私信我(付費(fèi)):

『區(qū)塊鏈』從零構(gòu)建以太坊(Ethereum)智能合約到項(xiàng)目實(shí)戰(zhàn)

基于Ethereum & IPFS的去中心化Ebay區(qū)塊鏈項(xiàng)目開發(fā)實(shí)戰(zhàn)

HyperLedger(超級(jí)賬本)Fabric


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24024.html

相關(guān)文章

  • 以太智能合約開發(fā)第六篇:truffle開發(fā)框架

    摘要:原文發(fā)表于以太坊智能合約開發(fā)第六篇開發(fā)框架在前面幾篇教程中,我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的合約,并通過(guò)編譯器將合約代碼編譯后,部署在私有鏈上。 原文發(fā)表于:以太坊智能合約開發(fā)第六篇:truffle開發(fā)框架 在前面幾篇教程中,我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的 Hello 合約,并通過(guò) solc 編譯器將合約代碼編譯后,部署在私有鏈Ganache上。本篇將介紹通過(guò)truffle框架來(lái)構(gòu)建自動(dòng)編譯、部署合約代碼...

    ityouknow 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.41 - 深入學(xué)習(xí)區(qū)塊鏈

    摘要:和比特幣協(xié)議有所不同的是,以太坊的設(shè)計(jì)十分靈活,極具適應(yīng)性。超級(jí)賬本區(qū)塊鏈的商業(yè)應(yīng)用超級(jí)賬本超級(jí)賬本是基金會(huì)下的眾多項(xiàng)目中的一個(gè)。證書頒發(fā)機(jī)構(gòu)負(fù)責(zé)簽發(fā)撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 從比特幣開始 一個(gè)故事告訴你比特幣的原理及運(yùn)作機(jī)制 這篇文章的定位會(huì)比較科普,盡量用類比的方法將比特幣的基本原理講出來(lái)...

    qianfeng 評(píng)論0 收藏0
  • 以太是什么 - 以太開發(fā)入門指南

    摘要:以太坊是什么以太坊是一個(gè)建立在區(qū)塊鏈技術(shù)之上,去中心化應(yīng)用平臺(tái)。運(yùn)行環(huán)境以太坊虛擬機(jī)是以太坊中智能合約的運(yùn)行環(huán)境。是由以太坊客戶端提供的是典型的開發(fā)以太坊時(shí)使用的客戶端,基于語(yǔ)言開發(fā)。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:以太坊是什么 - 以太坊開發(fā)入門指南原文已更新,請(qǐng)讀者前往原文閱讀 很多同學(xué)已經(jīng)躍躍欲試投入到區(qū)塊鏈開發(fā)隊(duì)伍當(dāng)中來(lái),可是又感覺(jué)無(wú)從下手,本文將基于以太坊平臺(tái),以通俗...

    tomlingtm 評(píng)論0 收藏0
  • 區(qū)塊鏈學(xué)習(xí)之以太(七)

    摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營(yíng)了一個(gè)公開的區(qū)塊鏈平臺(tái)以太坊網(wǎng)絡(luò)。主要特點(diǎn)以太坊區(qū)塊鏈底層也是一個(gè)類似比特幣網(wǎng)絡(luò)的網(wǎng)絡(luò)平臺(tái),智能合約運(yùn)行在網(wǎng)絡(luò)中的以太坊虛擬機(jī)里。以太坊采用交易作為執(zhí)行操作的最小單位。 以太坊將比特幣針對(duì)數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場(chǎng)景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡(jiǎn)介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個(gè)智能合約的平臺(tái),該平臺(tái)支持...

    xiongzenghui 評(píng)論0 收藏0
  • 寫給前端的區(qū)塊鏈開發(fā)入門指南:零基礎(chǔ)開發(fā)基于以太智能合約的 ICO DApp

    摘要:圍繞以太坊的開發(fā)生態(tài)是目前相對(duì)最成熟的,比如有開發(fā)框架,有智能合約在線集成開發(fā)環(huán)境,還有專設(shè)的開發(fā)者問(wèn)答頻道。 showImg(https://segmentfault.com/img/bVbaJOL?w=1200&h=514); 張泉靈說(shuō),時(shí)代拋棄我們的時(shí)候連聲再見(jiàn)都不會(huì)說(shuō),馬云說(shuō)對(duì)于新興事物,絕大多數(shù)人是看不見(jiàn)、看不起、看不懂、來(lái)不及。自從學(xué)完 Coursera 上的 Crypto...

    sean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<