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

資訊專欄INFORMATION COLUMN

區塊鏈智能合約入門:Hello world(1)

felix0913 / 1460人閱讀

摘要:區塊鏈入門也從最基礎的智能合約開始。在正式部署執行智能合約之前,我們需要在電腦上安裝。這時需要調用支付部署智能合約所需要的費。顯示智能合約的內容是什么,在這里是。是析構函數,用于銷毀數據,終止合約。現在,錢仍然被鎖在合約里,永久凍結。

Hello world 是最簡單的程序之一,也是大部分程序員編寫的第一個程序。區塊鏈入門也從最基礎的Hello world智能合約開始。

在正式部署執行Hello world智能合約之前,我們需要在電腦上安裝MetaMask for CMT。這是一個安裝在Chrome 瀏覽器的錢包工具,它的主要功能是管理 CyberMiles 帳號私鑰,實現從網頁上直接支付 CMTs (包括gas 費)等功能。

安裝過程比較簡單,去Chrome 應用商店中下載插件MataMask for CMT,打開開發者模式。

如果Chrome 瀏覽器中已經安裝了其他版本的MetaMask,為了不影響使用,最好暫時停止使用其他版本的MetaMask,只留Metamask for CMT激活。

安裝好MetaMask for CMT,生成一個新的 CyberMiles 帳號來存儲 CMTs,在最上方選擇Main CyberMiles Network 或CMT Test Network。

MetaMask 需要有真實的CMT或者test CMT來支付執行智能合約的gas 費,分別對應主鏈狀態、測試鏈狀態。

CMT轉賬速度非常快,差不多10秒就到賬了,并且不用支付gas費,轉賬體驗+1分!

在 Chrome 里打開Remix for CMT,將寫好的Hello World智能合約代碼放進中間的代碼編輯區,當然,你也可以選擇自己寫代碼。

之后點擊右側的 Start to compile, 編譯器會自動檢查這段代碼是否存在常規性錯誤。沒有問題的話,編譯器會自動識別出該段合約的名稱,也就是 Contract 后面的Greet。

如果有問題,編譯器會給出提示,根據提示修改代碼,再次編譯即可。

檢查代碼沒有問題后,就可以把Greet智能合約部署到 CyberMiles 區塊鏈了。點擊右側最上方的Run,然后點擊Deploy。這時需要調用MetaMask for CMT 支付部署智能合約所需要的gas 費。

一般情況下,MetaMask 的支付頁面會自動跳出,點擊 Submit 進行支付就可以了。如果沒有自動跳出,手動點擊插件就好了。可以看到,部署這個合約上鏈只需要花費0.000489個CMT。

支付完gas 費后,右下方Deployed Contracts 處就可以看到,我們的合約已經在CyberMiles 鏈上部署好了。

紅色的terminate 可以終止這個合約,但只有合約owner 才可以執行這項操作,終止合約同樣需要支持少量gas 費。

greet 顯示智能合約的內容是什么,在這里是Hello World。當然,Hello World 這個詞只是程序員的選擇。作為智能合約的開發者,你可以讓 greet() 返回任何字符 — 可以是一首歌,一篇文章,一本書,或者是一段加密的文字。

owner 顯示這個合約的所有權歸哪個地址所有。你為這個合約支付部署gas費的賬號地址就是合約的所有者。

同時用區塊瀏覽器www.cmttracking.io/查詢交易地址信息,可以看到剛剛創建的合約地址。如果你的朋友有這個合約地址,在 At Address 欄內輸入合約地址,點擊At Address 就可以收到別致的智能合約問候啦!

我們上面知道怎么用Hello World智能合約在區塊鏈存一段話,并讓世界上任何人看見這段話。那么,這是怎么在代碼里實現的呢?

pragma lity ^1.2.4;

這是智能合約所用的代碼語言及版本。

contract Greet {
    
  function greet() {
  
  }

  function terminate() {
  
  }
}

以上代碼介紹了智能合約的名字Greet,以及兩個功能,greet和terminate。

address public owner;
 modifier onlyOwner() {
        assert(msg.sender == owner);
        _;
    }

    constructor () public {
        owner = msg.sender;
    }

以上的代碼設置了合約的owner,owner的地址信息是公開的。信息發送者,也就是誰支付了gas費,讓合約能夠部署到鏈上,誰就是owner,并且定義了只有owner能夠修改這個合約。

function greet() public pure returns (string) {
      return "Hello world";
  }

以上代碼表明當你調用greet()時,就會出現 Hello World。這個功能只是從區塊鏈上讀取數據,所以不需要 gas 費用。這里你可以把 Hello World 改成任何文字。

 function terminate() external onlyOwner {
     selfdestruct(owner);   }

這就是智能合約最開始定義的terminate 終止合約的功能,并且定義了只有Owner可以執行這項功能。selfdestruct是析構函數,用于銷毀數據,終止合約。

這個最基礎的合約既設置了合約的Owner,同時也設置了Owner 能夠銷毀合約,當執行selfdesruct時,合約里的錢也會返還給Owner。

因為合約地址與錢包地址長地非常像,并且長度也一致,如果不小心把幣打到了合約地址,一般情況下,是無法找回的。但如果你知道合約的owner是誰,可以聯系合約的owner,在銷毀合約時拿回你的資產。

這只是個人的小損失,如果項目方沒有認真地對待代碼,帶來的資產損失是非常嚴重的。非常典型的案例是,今年7月份,Polkadot 有超過513,774.16 ETH 被凍結在Parity錢包中,就是因為合約中的 owner 被人設成 null 了,因此沒有人可以終止合約,拿回存在合約里的錢。現在,錢仍然被鎖在合約里,永久凍結。

謹慎對待,認真審查每一段代碼,尤其是涉及到錢的代碼,這是每個程序員該有的素質。

這是最簡單最基礎的Hello World,完整代碼可去github查看。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24533.html

相關文章

  • 智能合約開發環境搭建及Hello World合約

    摘要:今天我們來一步一步從搭建以太坊智能合約開發環境開始,講解智能合約的如何編寫。開發環境搭建安裝強烈建議新手使用來進行開發。第行修改部署賬戶為新賬戶索引,即使用新賬戶來部署合約。 本文首發于深入淺出區塊鏈社區原文鏈接:智能合約開發環境搭建及Hello World合約原文已更新,請讀者前往原文閱讀 如果你對于以太坊智能合約開發還沒有概念(本文會假設你已經知道這些概念),建議先閱讀入門篇。就先...

    Winer 評論0 收藏0
  • 區塊技術學習指引

    摘要:引言給迷失在如何學習區塊鏈技術的同學一個指引,區塊鏈技術是隨比特幣誕生,因此要搞明白區塊鏈技術,應該先了解下比特幣。但區塊鏈技術不單應用于比特幣,還有非常多的現實應用場景,想做區塊鏈應用開發,可進一步閱讀以太坊系列。 本文始發于深入淺出區塊鏈社區, 原文:區塊鏈技術學習指引 原文已更新,請讀者前往原文閱讀 本章的文章越來越多,本文是一個索引帖,方便找到自己感興趣的文章,你也可以使用左側...

    Cristic 評論0 收藏0
  • 工廠模式管理多個以太坊solidity智能合約

    摘要:在新智能合約的構造函數中,將引用我們的合約工廠的地址。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。以太坊入門教程,主要介紹智能合約與應用開發,適合入門。這里是原文用工廠模式管理多個智能合約 我們寫了一份小的計算合約作為Hello World。如果我們可以創建一個允許用戶創建自己的計數器的合約怎么辦? showImg(https://segmentfault.com/img/...

    leone 評論0 收藏0
  • 以太坊是什么 - 以太坊開發入門指南

    摘要:以太坊是什么以太坊是一個建立在區塊鏈技術之上,去中心化應用平臺。運行環境以太坊虛擬機是以太坊中智能合約的運行環境。是由以太坊客戶端提供的是典型的開發以太坊時使用的客戶端,基于語言開發。 本文首發于深入淺出區塊鏈社區原文鏈接:以太坊是什么 - 以太坊開發入門指南原文已更新,請讀者前往原文閱讀 很多同學已經躍躍欲試投入到區塊鏈開發隊伍當中來,可是又感覺無從下手,本文將基于以太坊平臺,以通俗...

    tomlingtm 評論0 收藏0
  • 區塊平臺EOSIO開發智能合約和dapp(一)

    摘要:與傳統方式不同,在去中心化的網絡及區塊鏈上運行后端代碼智能合約。這個博客涵蓋了什么在本博客中,我將展示如何設置區塊鏈并開發智能合約。 在我傾聽Bettina Warburg的演講之后,我對去中心化經濟(dApps)的概念著迷。傳統的Web應用程序是: 前端→后端→數據庫 相比之下,dApp網站是: 前端→智能合約→區塊鏈 例如,當你進入電子銀行時,網頁將調用后端代碼來獲取你的個人數據并...

    tylin 評論0 收藏0

發表評論

0條評論

felix0913

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<