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

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

Avatar for mogiken mogiken
December 18, 2017

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

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

Avatar for mogiken

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 マイニングの完了を待つわけにはい かないので。。