万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    トークンと送金・売買サイトを作って学ぶDapps開発入門

    sfc-academy-slackin.herokuapp.com/

    トークンと送金・売買サイトを作って学ぶDapps開発入門

    コントラクト

    build/.webpack.dev.conf.js

    1+0x17個 100000000000000000 SHN

    ERC20Token

    コントラクト 00->12

    src/ 03まではコントラクトなし

    webpack (Parcel 設定なし, Gulp)

    webpack-dev-sever

    設定だるいので 「typescript vue webpack config」 で検索 MSからパクる Ga webpack.base.conf.js にてそれぞれの拡張子でパッケージ化

    node-gyp

    Solidity Web IDE http://remix.ethereum.org

    Ethereum ERC20 最初の企画

    gethのインストール

    参加

    マイナーの手数料が高い方からマイニング

    マイナーはみんなより一段進んだ新しいファイル

    送金しい額だけでなく

    MetaMask gethのサーバ持ってる

    SSTORE GAS:20000 LSTORE GAS:5000

    メモリ従量制

    GASxGAS代(wei単位)=手数料 8 x 10000 Gas Limit

    GAS Fee Ether 0.0026

    GasLimit

    VSCodeの拡張 Prettier オートフォーマッタ TSLint Vetur

    Vue HTML

    Vue HTML Script(JS, TypeScript) CSS

    HTMLをpugという言語(元Jade)

    HTML要素を配置し終わったら呼ばれる mounted

    window.web3 ブロックチェーン Proxy ブラウザのコンソールログにcurrentProvider MetaMaskのgethがある MetamaskInpageProvider

    1.0.0が最新 "0.20.3"

    プロバイダのURLだけもらって、web3 1.0.0に変更

    gethはJSONを渡してJSONを返す

    infra.io 財団のgethを使う レンタル を配っているエントリポイント

    https://ropsten.infura.io/B3hd1WhDtDSLkfVBMRtl

    json rpc Remote Procedure Call リモートのPCに処理をする そのJSON

    JSON RPC仕様

    https://github.com/ethereum/wiki/wiki/JSON-RPC

    curl -H 'Content-Type:application/json' -s -X POST --data '{"jsonrpc":"2.0","id":67867379,"method":"eth_blockNumber","params":[]}' https://ropsten.infura.io/XXXXXXX

    method 重要 eth_blockNumber

    mainの

    https://main.infura.io/B3hd1WhDtDSLkfVBMRtl

    Send Raw Transaction

    https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendrawtransaction

    npm install solc

    低レイヤー http://shunsuke.me/blog-ja/124/tutorial-for-ethereum-development/#toc5 サインが必要

    WebからやるにはWeb3でdapps

    ABI.. application binary interface

    addressとABI

    web3・・・Web3.0っぽくつけたらしい

    Vueのルール、親の要素は必ず1つ

    ・remixのこと 赤のボタン、手数料・・・トランザクト 青いところは、無料で即座・・・コール

    gasPrice・・・1ガスの大きさ(1に9個) gas・・・gas Limit 上限値 中断

    手数料調査

        // 手数料
        hw.methods
          .setMessage('From web!!!')
          .estimateGas()
          .then(result => {
            console.log(result);
          });
    ````
    
    ## コントラクトに送金する
    
    
      web3.eth
        .sendTransaction({
          from: this.address,
          to: contractInfo.HellloWorld.address,
          value: 100000000000000000, // 0.1 ETH
          gas: 30000000,
          gasPrice: 10000000,
        })
        .on('transactionHash', hash => {
          console.log('マイニング開始');
        })
        .on('receipt', hash => {
          console.log('マイニング開始');
        });
    
    
    コントラクトというSolidity単位・・・今回HelloWorld
    状態変数 message
    関数 setMessage // public/ external 外部からの呼び出しだけただしpublicよりもやすい
    
    view / pure
    
    function getMessage() external view returns(string) {
        return message;
    }
    
    ・青い
    ・書き換えない
    view, pure ・・・callだけどただ
    pure 1+2
    view 書き換えはしない
    
    ・書き換える
    payable・・・・送金もする
    nonpayable・・有料ブロックチェーンの内容
    
    ・ローカル変数
    memory, storage
    
    memory・・・・マイナーのメモリ
    storage・・・ブロックチェーン 上の
    
    
    [f:id:shinriyo:20180911094855p:plain]
    
    [f:id:shinriyo:20180911094859p:plain]