Upgrade to Pro — share decks privately, control downloads, hide ads and more …

チームスマコン・ブロックチェーン勉強会資料1回

mogiken
December 18, 2017

 チームスマコン・ブロックチェーン勉強会資料1回

チームスマコンによる、Ethereum Solidity勉強会1回目です。
スマートコントラクトの開発環境に慣れてもらいます。

mogiken

December 18, 2017
Tweet

More Decks by mogiken

Other Decks in Technology

Transcript

  1. スケジュール ・第1回 12/20(水) 開発環境・スマートコントラクト入門 ・第2回 1/16 (火) Ether送金・独自トークン作成(ERC20,ERC223どちらか) ・第3回 1月下旬

    所有権移転・証明書 ・第4回 2月上旬 ウォレット・ICO 2月にはICOのソースコードを理解して、 書けるようになることを目指す!!
  2. ブロックチェーンアプリケーションの開発手順 設計 サーバー準備 スマートコント ラクト作成 バックエンド・ フロント開発 ・本勉強会はスマートコントラクト作成の箇所に焦点を当てています。 Solidityを使用。参考:https://solidity.readthedocs.io/en/develop/ ・実際にアプリケーションを作成する際は、その後のバックエンド・フロント部分

    の開発が必要になります。 ・バックエンド・フロント部分とスマートコントラクトを紐づけるためには、 Geth(go-ethereum)やweb3.js APIなどを使用する必要があります。 (本勉強会はこの部分について触れません) ・gethのサーバー環境部分はこのスライドを参考にしてください。https://goo.gl/KxvVNr
  3. 用語解説 ・Ethereum Ethereumはスイスの非営利団体(Ethereum Fundation)によって開発されているオープンソースです。スマートコントラクト の多くはこのEthereumを使用して開発されています。 ・Coinbase(Etherbase) マイニングが成功したときに報酬を受け取るアカウントのことをCoinbaseと呼びます。なお、EthereumではEtherbaseと呼び ます。 ・Account =

    Address Ethereumには2種類のアカウントが存在します。一つはユーザーに付与されるアカウント、もう一つはスマートコントラクト に付与されるアカウントです。 ・Ether Ethereumの仮想通貨をEtherと呼びます。 ・Gas スマートコントラクトを実行する際はEtherを手数料として支払う必要があります。その手数料のことをGasと呼びます。 ・Gas Limit 支払ってもよいGasの最大値。Gasの高い順からマイニングされるため、Gas Limitが低いとマイニングされない可能性がある。 ・Transaction 個々の取引のことをTransactionと呼びます。Transactionはマイニングされることにより処理されます。 ・Mining 採掘(マイニング)とは新たなブロックを生成し、その報酬としてBitcoinやEtherを手に入れる行為のことです。
  4. コーディングエリアに下記のソースコードを入力してください。 ※コード解説は最後にやります!! pragma solidity ^0.4.16; contract testContract { uint public

    data; function testContract(uint _p) public { data = _p; } function setP(uint _n) payable public { data = _n; } function setNP(uint _n) public { data = _n; } function get () public constant returns (uint) { return data; } function getBalance () public constant returns (uint) { return this.balance; } } 参考:https://remix.readthedocs.io/en/latest/quickstart_javascriptvm.html#sample-contract ソースコード入力
  5. コード解説 ①testContractというスマートコントラクトを作成。 ②ブロックチェーン上にデプロイする際に初期値を 設定する関数。 ③setPとして情報を登録する際の関数。 payableを入れることで、Etherを送金することが できる。 ④ setNPとして情報を登録する際の関数。 ③との違いはpayableが無い点。これにより、

    Etherを送金することができない。 ⑤getとして情報を取得する際の関数。 ⑥ Etherの残高を取得する際の関数。 ① ② ③ ④ ⑤ ⑥ ※トランザクションが発生する関数 はreturnで値を返せないorz マイニングの完了を待つわけにはい かないので。。