ブロックチェーンインテリジェント契約入門:Hello world(1)


Hello worldは最も簡単なプログラムの一つであり、ほとんどのプログラマーが作成した最初のプログラムでもある.ブロックチェーンの入門も、最も基礎的なHello worldスマート契約から始まります.
Hello worldインテリジェント契約を正式に導入する前に、パソコンにMetaMask for CMTをインストールする必要があります.Chromeブラウザにインストールされた財布ツールで、CyberMilesアカウントの秘密鍵を管理し、WebページからCMTs(gas料を含む)を直接支払うなどの機能を実現するのが主な機能です.
インストールの過程は比較的に簡単で、公式サイトに行きますhttps://www.cybermiles.io/metamask プラグインをダウンロードし、Chromeの拡張プログラムで開発者モードを開き、ダウンロードしたmetamask 4 cmt.crxをChromeの拡張プログラムページにドラッグします.
ドラッグすると、Metamask for CMTが正常に動作しない場合は、ブラウザを再起動してみてください.まだ正常に動作しない場合は、次の方法を試してみてください.
ダウンロードしたmetamask 4 cmt.crxの接尾辞を.rarに変更して解凍します.Chrome拡張プログラムページで、「解凍した拡張プログラムをロード」をクリックし、解凍したmetamask 4 cmt.crxを追加すればいいです.
また、Chromeに他バージョンのMetaMaskがインストールされている場合は、使用に影響を与えないように、他バージョンのMetaMaskの使用を一時的に停止し、Metamask for CMTのみを残してアクティブにすることが望ましい.
MetaMask for CMTをインストールすると、CMTsを格納するために新しいCyberMilesアカウントを生成し、一番上にMain CyberMiles NetworkまたはCMT Test Networkを選択できます.
MetaMaskは、スマート契約を実行するgas費を支払うために、真のCMTまたはtest CMTを必要とし、それぞれプライマリチェーン状態、テストチェーン状態に対応する.
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の2つの機能について説明しています.
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は、データを破棄し、契約を終了するための構造関数です.
ここまで、Hello Worldのコードは終わりました.これは非常に完全なコードです.
この最も基礎的な契約は契約のOwnerを設置するとともに、Ownerが契約を破棄することができ、selfdesructを実行すると、契約の中のお金もOwnerに返されます.
契約の住所は財布の住所によく似ていて、長さも一致しているので、うっかり契約の住所に貨幣を振り込んだら、一般的には取り戻すことができません.しかし、契約のownerが誰なのか知っていれば、契約のownerに連絡して、契約を破棄するときに資産を取り戻すことができます.
これは個人的な小さな損失にすぎず、プロジェクト側がコードに真剣に対応しなければ、資産損失は非常に深刻である.非常に典型的な例は、今年7月にPolkadotが513774.16 ETHを超えてParity財布に凍結されたのは、契約中のownerがnullに設定されているため、契約を終了し、契約中のお金を取り戻すことができる人はいない.はい、お金はまだ契約に閉じ込められていて、永久に凍結されています.
慎重に対処して、すべてのコードを真剣に審査して、特にお金のコードに関連して、これはすべてのプログラマーが持つべき素質です.
CyberMilesは、最も基礎的なスマート契約コードでもコードの完全性を保証しており、学ぶ価値があります.
これは最も簡単で最も基礎的なHello Worldで、完全なコードはgithubに行って見ることができます.
転載先:https://juejin.im/post/5c210913f265da61285a2361