99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀輕松看懂什么是以太坊
輕松看懂什么是以太坊
2018-05-24
收藏

輕松看懂什么是以太坊

雖然"比特幣"和"以太坊"這兩個(gè)術(shù)語常常一起出現(xiàn),但實(shí)際上這兩者有很大的區(qū)別。以太坊與比特幣的唯一聯(lián)系在于,兩者均為成功的區(qū)塊鏈技術(shù)應(yīng)用。

以太坊不像比特幣僅僅是作為加密貨幣,它還具備一些特性,從而讓其具有大型去中心化計(jì)算機(jī)的功能。

要了解以太坊,首先必須了解區(qū)塊鏈的工作原理。

區(qū)塊鏈?zhǔn)鞘裁?

簡單地說,區(qū)塊鏈就是一個(gè)數(shù)據(jù)庫。它是包含特定數(shù)據(jù),并不斷增長的數(shù)據(jù)庫。區(qū)塊鏈具有很強(qiáng)大的性能:

1. 一旦數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,就永遠(yuǎn)不會(huì)被修改或刪除。區(qū)塊鏈上的每條記錄都是永久不變的。

2. 維護(hù)該數(shù)據(jù)庫的不是個(gè)人或組織; 而是數(shù)千人在維護(hù),并且每個(gè)人都有自己的數(shù)據(jù)庫副本。

那么,怎樣保持每個(gè)人的數(shù)據(jù)庫副本同步呢? 假設(shè)網(wǎng)絡(luò)中有十個(gè)人,每個(gè)人都有空文件夾和一個(gè)空白頁面。每當(dāng)有人在網(wǎng)絡(luò)中進(jìn)行了重要操作,比如轉(zhuǎn)移資金等,他們就會(huì)將此廣播給網(wǎng)絡(luò)中的每個(gè)人。

每個(gè)人都在頁面上進(jìn)行記錄,直到頁面填滿。當(dāng)填滿時(shí),每個(gè)人需要通過解決數(shù)學(xué)難題來對(duì)頁面內(nèi)容進(jìn)行確認(rèn)。解決數(shù)學(xué)難題可以確保每個(gè)人的頁面都具有相同的內(nèi)容,并且永遠(yuǎn)不會(huì)被修改。率先完成的人將獲得一定數(shù)量的加密貨幣。

一旦頁面被確認(rèn)就會(huì)被添加到文件夾中,接著出現(xiàn)新的頁面,繼續(xù)持續(xù)這個(gè)過程。

區(qū)塊鏈

隨著時(shí)間的推移,包含著重要記錄(交易)的頁面(塊)會(huì)被添加到文件夾(鏈),從而形成數(shù)據(jù)庫(區(qū)塊鏈)。

區(qū)塊鏈存儲(chǔ)著什么

區(qū)塊鏈可用于存儲(chǔ)任何類型的數(shù)據(jù),當(dāng)中的數(shù)據(jù)具有一定價(jià)值。比特幣的區(qū)塊鏈存儲(chǔ)著金融交易記錄,比特幣的作用和美元等貨幣類似,而以太坊就不同了。

以太坊不僅僅是美元、英鎊、比特幣之類的貨幣。

可以把以太坊視為大型計(jì)算機(jī)。但是其運(yùn)行速度特別慢,大約比普通計(jì)算機(jī)慢5到100倍,而且成本非常昂貴?!耙蕴挥?jì)算機(jī)"與90年代罕見的智能手機(jī)的功能差不多,因此它的能力是有限的。

這聽起來似乎并不理想,那么為什么以太坊受到大量的關(guān)注呢?作為全球性的去中心化計(jì)算機(jī),以太坊正在席卷全球。

為什么說以太坊是全球性計(jì)算機(jī)呢?讓我們來看到它的運(yùn)行原理。

以太坊如何運(yùn)作

像其他區(qū)塊鏈一樣,以太坊需要數(shù)千人在他們的計(jì)算機(jī)上運(yùn)行軟件,從而驅(qū)動(dòng)整個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)(計(jì)算機(jī))都運(yùn)行著以太坊虛擬機(jī)(EVM)??梢园袳VM視為一種操作系統(tǒng),用于理解并執(zhí)行以太坊特定編程語言編寫的軟件。以太坊虛擬機(jī)執(zhí)行的軟件或應(yīng)用被稱為“智能合約"。

要在這臺(tái)全球性計(jì)算機(jī)上進(jìn)行操作,你需要付費(fèi)。但是,并不是使用美元、英鎊等常規(guī)貨幣進(jìn)行支付。而是使用網(wǎng)絡(luò)原生的加密貨幣進(jìn)行支付,即以太幣(ether)。以太幣與比特幣幾乎完全相同,除了前者還可以用于在以太坊執(zhí)行智能合約的支付。

個(gè)人和智能合約都被視為以太坊的用戶。無論人類用戶做什么,智能合約也可以做。


智能合約與網(wǎng)絡(luò)中的其他人類用戶一樣,兩者都能發(fā)送或接受以太幣。

但是與人類用戶不同的是,智能合約還可以執(zhí)行預(yù)定義的計(jì)算機(jī)程序,從而進(jìn)行各種操作。下面讓我們看到智能合約能做些什么。

智能合約能做些什么

假設(shè)我們對(duì)明天的天氣打賭。我打賭明天是晴天,你打賭是雨天。我們約定輸?shù)娜吮仨毥o贏家100美元。那么我們?nèi)绾未_保失敗者會(huì)遵守諾言呢?常見的有以下三種方式:

1. 相互信任

最簡單方法是相互信任。如果我們是多年的好友,彼此間十分了解,那么相互信任是很容易的。但如果我們是陌生人,那就麻煩了,我們間難以互相信任。

2. 簽訂法律協(xié)議

另一種方法是針對(duì)我們的賭注簽訂相關(guān)協(xié)議。當(dāng)中詳細(xì)規(guī)定賭注條款,包括如果失敗方違反協(xié)議會(huì)怎么樣。

該協(xié)議能夠確保失敗方對(duì)贏家進(jìn)行支付,但這是不現(xiàn)實(shí)的,因?yàn)橥ㄟ^法律途徑達(dá)成協(xié)議比賭注的成本更高。

3. 求助共同的朋友

我們還可以找到一個(gè)彼此都信任的朋友,讓朋友代為保管100美元。在答案揭曉時(shí)將100美元支付給贏家。但是如果這個(gè)朋友拿著錢跑了怎么辦?

現(xiàn)在我們有三種不同的方法,但各有缺點(diǎn)。陌生人難以相互信任;法律協(xié)議成本昂貴;求助共同朋友還可能存在信任方面的問題等。

這時(shí),以太坊的智能合約就派上用場了。智能合約相當(dāng)于雙方的共同朋友,而且是用代碼編寫的。以太坊能讓我們編寫相關(guān)軟件,讓雙方支付價(jià)值100美元的以太幣,并在第二天用天氣API檢查天氣,接著將價(jià)值200美元的以太幣轉(zhuǎn)交給獲勝者。

一旦編寫好智能合約,就無法進(jìn)行編輯或修改。因此,無論合約中制定了什么內(nèi)容,它都將被執(zhí)行。

但是,智能合約是如何執(zhí)行的呢?它與區(qū)塊鏈有什么關(guān)系?

智能合約與區(qū)塊鏈有什么關(guān)系

當(dāng)執(zhí)行智能合約時(shí),它會(huì)將執(zhí)行信息作為交易記錄到區(qū)塊上。以太坊上的交易就像這樣:

當(dāng)中,“數(shù)據(jù)"用于記錄智能合約的創(chuàng)建和執(zhí)行,這被稱為交易。以太坊區(qū)塊鏈上的任何區(qū)塊都可以包含以下三種交易:

1. 用戶間的以太幣交易

這是網(wǎng)絡(luò)中的常規(guī)比特幣式交易。如果你將以太幣發(fā)送給你的朋友,數(shù)據(jù)字段將被清空。


2. 沒有接收方的以太幣交易

如果交易中沒有接收方,這意味著交易的目的是,使用"數(shù)據(jù)"字段的內(nèi)容在網(wǎng)絡(luò)中創(chuàng)建智能合約?!皵?shù)據(jù)"字段包含的軟件代碼將與網(wǎng)絡(luò)中的其他用戶一致。

3. 用戶與智能合約間的以太幣交易

當(dāng)用戶或智能合約想要執(zhí)行智能合約時(shí),都必須與智能合約進(jìn)行交易,并將執(zhí)行指令放在'數(shù)據(jù)'字段中。


就像其他區(qū)塊鏈一樣,只要發(fā)送以上任何一種交易均會(huì)廣播給整個(gè)網(wǎng)絡(luò),從而讓每個(gè)節(jié)點(diǎn)進(jìn)行記錄。除此之外,每個(gè)節(jié)點(diǎn)還會(huì)執(zhí)行指示的智能合約,從而讓其EVM狀態(tài)與網(wǎng)絡(luò)的保持同步。

每個(gè)節(jié)點(diǎn)執(zhí)行一個(gè)軟件,從而使整個(gè)網(wǎng)絡(luò)成為大型(但速度很慢)的分布式計(jì)算機(jī)。然后,每次執(zhí)行都會(huì)永久存儲(chǔ)在區(qū)塊鏈中。

Gas 是什么

在上文我提到過,用戶在執(zhí)行智能合約時(shí)必須支付一定費(fèi)用。該部分費(fèi)用將支付給消耗內(nèi)存、電力,進(jìn)行存儲(chǔ)和計(jì)算的節(jié)點(diǎn),成本的單位稱為Gas。最終,根據(jù)交換率將gas轉(zhuǎn)換成以太幣。

當(dāng)你執(zhí)行智能合約,你都必須定義要消耗的最大gas量。當(dāng)完成執(zhí)行或達(dá)到gas值時(shí),執(zhí)行將停止。這樣是為了避免智能合約中的無限循環(huán),防止程序被卡住而無法繼續(xù)執(zhí)行。

程序員的粗心會(huì)導(dǎo)致這種情況。每次重復(fù)將使用指定的gas,從而讓無限循環(huán)成為有限循環(huán)。gas的概念有效地解決了這個(gè)問題。

結(jié)語

以太坊不僅僅是一種可交易的加密貨幣,其真正的價(jià)值在于它的目的。以太坊的目的是讓所有者能夠使用由數(shù)千個(gè)節(jié)點(diǎn)驅(qū)動(dòng)的全球分布式計(jì)算機(jī)。

當(dāng)然,因?yàn)槊總€(gè)操作都必須由網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)執(zhí)行,從而也導(dǎo)致去中心化計(jì)算機(jī)運(yùn)行緩慢且成本昂貴。

相比起來,集中式計(jì)算機(jī)成本更低,但是一旦集中式計(jì)算機(jī)(服務(wù)器)發(fā)生故障或遭到黑客入侵,那么所有連接的客戶端都會(huì)受到影響。去中心化計(jì)算機(jī)就不同了,只有當(dāng)每個(gè)節(jié)點(diǎn)都出現(xiàn)故障才會(huì)崩潰,因此讓其一直都可以使用。只要有網(wǎng)絡(luò),就有以太坊。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }