仮想通貨アンテナ

仮想通貨 ブロックチェーン情報

イーサリアム ブロックチェーン

初心者がただで簡単にDappsを学ぶおすすめコース~2(truffle +使用)

更新日:

node.jsをインストール

OSに合ったnode.jsをインスト―ルする。

node.jsインストーラーはこちらです。

Node.js はネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の サーバーサイドのJavaScript 環境です。

作業用に適当なディレクトリを作成し移動する

mkdir trdapps
cd trdapps

Truffleインストール

npm install -g truffleコマンド実施。
truffle versionでバージョン確認。
Truffle v5.1.44 (core: 5.1.44)
Solidity v0.5.16 (solc-js)
Node v12.18.3
Web3.js v1.2.1

Ganacheインストール

Ganacheは、チェーンの動作を制御し、テストの実行、コマンドの実行、状態の検査に使用できる個人用のEthereumブロックチェーン環境です。

Ganacheサイトよりダウンロードしてください。

作成したディレクトリでtruffleプロジェクトを作成する。

truffle init

ディレクトリ構成は下記の通り3つのディレクトリと1個のファイルが作成される。。
C:.
├─contracts
├─migrations
└─test

2020/09/15 09:39 DIR contracts
2020/09/15 09:39 DIR migrations
2020/09/15 09:39 DI test
1985/10/26 17:15 4,205 truffle-config.js

truffle-config.jsをganache用に修正

作成されたtruffle-config.jsファイルをGanache接続用に修正する。

module.exports = {
    networks: {
      development: {
         host: "127.0.0.1",     // Localhost (default: none)
         port: 7545,            // Standard Ethereum port (default: none)
         network_id: "*",       // Any network (default: none)
      }
    }
}

truffleとganacheを連携する

上記のtruffle-config.jsとganacheを連携したプロジェクトを作成する。
ganaceプロジェクト

100ETHをもったアカウントが自動的に10個生成されます。

ganache

スマートコントラクトの作成

 

contractsディレクトリに、HellowWorld.sol作成。

pragma solidity ^0.5.16;
contract HelloWorld {
string defaultMessage;
constructor() public {
defaultMessage = 'Hello World';
}
function getMessage() public view returns(string memory){
return defaultMessage;
}
}

truffle compileの実施

trdapps>truffle compile

Compiling your contracts...
===========================
> Compiling .\contracts\HelloWorld.sol
> Compiling .\contracts\Migrations.sol
> Artifacts written to C:\Users\■■■\Desktop\trdapps\build\contracts
> Compiled successfully using:
- solc: 0.5.16+commit.9c3226ce.Emscripten.clang

マイグレーションファイルの作成

コントラクトをネットワークにデプロイするためのマイグレーションファイルを作成。

truffle create migration HelloWorld

1600132863_hello_world.jsが新たに作成される。

最初の数字は、その時点でのデプロイ状況による。

2020/09/15 10:21 86 1600132863_hello_world.js
1985/10/26 17:15 126 1_initial_migration.js

デプロイの実施

C:\Users\■■■\Desktop\trdapps>truffle migrate

Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name:    'ganache'
> Network id:      5777
> Block gas limit: 6721975 (0x6691b7)

1_initial_migration.js
======================
   Deploying 'Migrations'
   ----------------------
   > transaction hash:    0xeddd47d033f43f9e9cf3a139901df2bff5110e7dfb81f164b9aea24cc53c7f1e
   > Blocks: 0            Seconds: 0
   > contract address:    0x321FF038A8F5866Fda67643cefC9D0794a500010
   > block number:        1
   > block timestamp:     1600133209
   > account:             0xd3676A23A50cC5A4e19A463861c1d35Db5e78914
   > balance:             99.99616114
   > gas used:            191943 (0x2edc7)
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.00383886 ETH
   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:          0.00383886 ETH

1600132863_hello_world.js
=========================
   Deploying 'HelloWorld'
   ----------------------
   > transaction hash:    0x56c9ff39299f1b63e89d50ef81f95b99ba893f230ff020d3fb9e72945e3b1292
   > Blocks: 0            Seconds: 0
   > contract address:    0xaD1E7481Ec626016E7E86a5f1174746dFF9E0BA7
   > block number:        3
   > block timestamp:     1600133209
   > account:             0xd3676A23A50cC5A4e19A463861c1d35Db5e78914
   > balance:             99.992052
   > gas used:            163119 (0x27d2f)
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.00326238 ETH
   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:          0.00326238 ETH

Summary
=======
> Total deployments:   2
> Final cost:          0.00710124 ETH

デプロイ時のトランザクションの状況

deploy

ビットコインってなに?

2008年11月、metzdowd.comにナカモトサトシにより投稿された論文Bitcoin:A Peer-to-Peer Electronic Cash Systemで定義された仕様とをもとにビットコイン・コミュニティーで開発が続けられる製造と取引に暗号学を使った通貨のことです。

ビットコイン自体は、フリー・ソフトウエアで、ソフトウェア開発のプラットフォームGitHubに登録すれば、ソースやドキュメント閲覧が可能で、開発に参加も可能です。

ナカモトサトシは、2010年12月まで開発に携わっていましたが、その後姿を消しました。日本名ですが、国籍も含め匿名性が高く身元も不明です。

真偽のほどは、不明ですがSBI社長の北尾氏が、2018年3月期第2四半期 SBIホールディングス(株)決算説明会動画の1:29:20頃)でナカモトサトシと議論を交わしたと発言して話題になりました。

ビットコインの仕組み

ビットコインは、P2P型の公開型分散台帳技術(DLT)によって信頼性を担保され運用されるブロックチェーンで結合された暗号通貨(cryptocurrency)のことです。

ビットコインは、P2Pネットワーク上のサーバー上で同一取引情報を持ちコントロールすることで取引の妥当性のチェックが行われるため、銀行など、特定の管理者がいない非中央集権型の仮想通貨と呼ばれています。

ブロックチェーン


GitHub

ブロックチェーンの動き

マイニング

ビットコインは送信アドレス(Tx)に対するデジタル署名によって保護されており、一定時間(10分)ごとに、すべての取引記録を分散台帳に追加します。

その追加処理には、ネットワーク上の分散取引台帳データと、10分間に発生したすべての取引のデータの整合性を取りながら正確に記録することが必要です。

整合性を取る作業は、膨大な計算量が必要となるため専用のハードウエアの計算能力を使って、誰でもが取引を処理することができます。

この手伝いをしてくれた人(膨大な計算処理を行った人)の中で、結果として追記処理を成功させた人には、その見返りとしてビットコインが支払われます。

この作業をマイニングと呼びます。

マイニングには、ソロマイニングとプールマイニングがあり、個人のPCでも余った演算能力でプールマイニングに参加できます。

ジェネシス・マイニングでのハッシュパワー購入

ジェネシス・マイニングは世界最大の高く信頼されたビットコイン クラウド マイニングのプロバイダーです。ハッシュパワー購入時に,コード(kjx2uz)を使用した人は、購入時に3%の割引になります。

ブロックチェーンエクスプローラー

ブロックチェーンアドレスを入力することで、送金状況(confirmation回数の確認)が行えます。

ブロックチェーンエクスプローラー

ブロックチェーンエクスプローラー(chainFlyer)

ビットコイン価格とチャート表示

-イーサリアム, ブロックチェーン

Copyright© 仮想通貨アンテナ , 2020 All Rights Reserved.