3分鐘漫談以太坊The DAO事件,淺入淺出區(qū)塊鏈(3)

這片博文主要是繼續(xù)的簡要的介紹一下The DAO事件,以及ETH和ETC的關(guān)系。

這是一系列關(guān)于區(qū)塊鏈的漫談博客。用講故事的方法,漫聊一下區(qū)塊鏈。其中也會穿插一些區(qū)塊鏈相關(guān)概念,以及編程的介紹。主要目的是漫談,每個(gè)主題之間相對獨(dú)立,在閱讀的時(shí)候,可以選擇你有興趣的部分閱讀。

雖然目的是漫談,但準(zhǔn)確的信息是博文的基本,如果有不準(zhǔn)確的地方,請留言或者發(fā)消息,我會及時(shí)訂正。

復(fù)習(xí)一下DAO

DAO是Decentralized Autonomous Organization的簡稱。
可以理解為:去中心化自治組織。任何符合以下特征的組織,都可以被成為DAO組織。
DAO組織的操作過程:發(fā)布智能合約,發(fā)行代幣(ICO),眾籌資金,運(yùn)營和投資眾籌的資金。這整個(gè)過程也被成為DAO項(xiàng)目。

復(fù)習(xí)一下The DAO事件

德國一家專注“智能鎖”的公司發(fā)布了一個(gè)DAO項(xiàng)目,黑客利用一個(gè)DAO項(xiàng)目的漏洞,轉(zhuǎn)移了一筆巨款,然后以太坊的白帽黑客們,通過軟分叉,和硬分叉的方法拿回了被盜的以太幣。

復(fù)習(xí)一下Fallback Function 回調(diào)函數(shù)

contract MyContract {
    //這個(gè)沒有函數(shù)名,沒有參數(shù),沒有返回值的函數(shù),就叫做Fallback Function
    function() payable { }

    //這個(gè)函數(shù)的函數(shù)名為:buySomething,所以不是Fallback Function
    function buySomething() external payable {
  }
}
  • Fallback函數(shù),在兩種情況下會被調(diào)用:當(dāng)智能合約里,沒有處理請求的相應(yīng)的函數(shù)的時(shí)候;當(dāng)智能合約沒有其他附屬數(shù)據(jù),只是在接受以太幣的時(shí)候。
  • 雖然Fallback函數(shù),沒有參數(shù),但是 msg.data 可以在函數(shù)里使用,從而得到調(diào)用者的相關(guān)信息。
  • 基本上,如果向一個(gè)合約地址轉(zhuǎn)賬,那么合約內(nèi)必須有回調(diào)函數(shù),否則轉(zhuǎn)賬將會被拒絕。

msg.sender 等全局變量

在學(xué)習(xí)以太坊DApp編程的時(shí)候,我們經(jīng)常會看到 msg.sender 等的使用,但是我們沒有定義這些變量,這些變量是什么意思呢?
msg.sender 等這樣的變量或者函數(shù),是以太坊區(qū)塊鏈默認(rèn)提供的,其中包含了在處理請求的時(shí)候,請求方的相關(guān)信息。

  • msg.sender : 返回請求發(fā)送方的地址。
  • msg.data: 包含了所有請求發(fā)送方的信息。這個(gè)數(shù)據(jù)是不可變的,也不會永久性的存儲到區(qū)塊鏈里面。
  • msg.gas : 請求發(fā)送方剩余的gas數(shù)量。
  • msg.sig : 發(fā)送方需要的處理函數(shù)的地址的前4個(gè)bytes。(智能合約可以提供很多種功能,很多時(shí)候我們只需要使用其中的一個(gè)功能的時(shí)候,我們可以指定智能合約分配個(gè)每個(gè)功能的ID來實(shí)現(xiàn)。)
  • msg.value : 我們發(fā)送給這個(gè)智能合約的Ether,以wei為單位??梢愿綆Оl(fā)送信息。(wei是描述Ether的最小單位,就好像一分錢是人民幣最小的單位一樣)

全部的函數(shù)和變量可以在下方官網(wǎng)查看:
Special Variables and Functions

圖片來源

圖片來自網(wǎng)絡(luò)

相關(guān)鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容