イーサリアムスマートコントラクト–スマートコントラクトを実行する方法は?



このイーサリアムスマートコントラクトチュートリアルでは、トリュフとイーサリアムプライベートネットワークを使用してスマートコントラクトを作成、展開、実行する方法を学習します。

ブロックチェーンテクノロジーがトップテクノロジーの中でその地位を獲得する主な理由は、その分散型の性質によるものです。ブロックチェーンの主な目的は中央機関なしでトランザクションレコードを維持することでしたが、これを自動化するために、 スマートコントラクト 紹介されました。しかし、その後はどう ?このイーサリアムスマートコントラクトチュートリアルでは、使用方法を説明します トリュフイーサリアム そして イーサリアムプライベートネットワーク スマートコントラクトを実行します。

イーサリアム開発に興味がありますか?このライブをチェックしてください 。





このイーサリアムスマートコントラクトチュートリアルでは、次のトピックを見ていきます。

  1. ユースケース:保険プロセスにおけるスマートコントラクト
  2. スマートコントラクトのメリット
  3. 前提条件のインストール
  4. ジェネシスブロックの構成
  5. イーサリアムプライベートネットワークの実行
  6. イーサリアムアカウントの作成
  7. イーサリアムスマートコントラクトの作成
  8. イーサリアムスマートコントラクトの実行

ユースケース:保険プロセスにおけるスマートコントラクト

「中央機関なし」はBlockchainが従うものであり、それがスマートコントラクトが導入された理由です。しかし、スマートコントラクトをどのように使用できるのか疑問に思ったことはありませんか?さて、イーサリアムスマートコントラクトのこのセクションでは、保険プロセスにおけるスマートコントラクトのユースケースについて説明します。



フライト遅延保険の例を考えてみましょう。出発地Aから目的地Cまでのフライトを利用したいが、直行便がないとします。それで、あなたは乗り継ぎ便を利用することにしました(B経由)。これで、ルートはAからBになり、次にBからCになります。ここで、Bはフライトを変更する空港です。残念ながら、AからBへのフライトとBからCへのフライトの間に大きな時間差はありません。したがって、万が一、AからBへのフライトが遅れると、BからCへのフライトを逃してしまいます。これを認識し、大きな損失から身を守るために、フライト遅延保険に加入します。

フライト遅延保険-Edureka

これで、AからBへのフライトが遅れた場合(BからCへのフライトを逃すことになります)、保険金額が支払われます。これが機能する通常の方法は、フライトが遅れた場合、保険を請求することです。次に、そこにいる誰かが保険を確認して承認し、最後にあなたはあなたの保険金額を受け取ります。しかし、これは非常に長いプロセスです。



スマートコントラクトを使用して保険プロセスを改善するにはどうすればよいですか?

金融取引に関して、そして特にあなたがお金を稼いでいるとき、「より速く、より良い」ではありませんか?それでは、スマートコントラクトが保険プロセスをどのように強化できるかを見てみましょう。スマートコントラクトは、特定の条件が満たされたときに自動的に実行されるデジタルコントラクトです。フライトが遅れた場合にフライト遅延保険を選択した人に保険金額を支払うためのスマートコントラクトを作成できます。そのため、フライトが遅れ、この遅れがシステムによって記録されると、保険はすぐに支払われます。

ホラ!数秒で支払われる保険金額。これは、スマートコントラクトがプロセスを実現する方法です。

スマートコントラクトのメリット

上記の例で、スマートコントラクトがどのように財務プロセスを固定できるかを見てきました。高速トランザクションとは別に、スマートコントラクトにはさらにいくつかの利点があります。ここでは、スマートコントラクトを使用することのその他の利点をいくつか挙げています。

  • 自動: 処理中のすべてのステップは、スマートコントラクトで自動的に行われます
  • 中間体なし: スマートコントラクトを使用する場合、すべてがスマートコントラクトによって処理されるため、仕事を完了するために中間者は必要ありません
  • 費用効果: スマートコントラクトを使用すると、銀行が請求する取引手数料と仲介業者(存在する場合)が請求するサービス手数料の費用を節約できます

スマートコントラクトを使用して世界をより速くする方法がわかったので、このイーサリアムスマートコントラクトチュートリアルの実践的な部分に取り掛かりましょう。

前提条件のインストール

このイーサリアムスマートコントラクトチュートリアルでは、5つの重要なアプリケーションが必要になります。

  • NodeJS
  • NPM
  • イーサリアム
  • トリュフ
  • Solidityコンパイラ

NodeJSのインストール

NodeJSは、サーバーアプリケーションの構築に使用されるJavaScriptフレームワークです。プライベートネットワークを使用しているため、NodeJSを使用するとネットワークアプリケーションを簡単に構築できます。

Nodejsをインストールするには、ターミナルで次のコマンドを実行します。

$ sudo apt-get install nodejs

NPMのインストール

NPMはNodePackage Managerの略で、Nodejsアプリケーションを実行するために使用されます。

NPMをインストールするには、ターミナルで次のコマンドを実行します。

$ sudo apt-get install npm

イーサリアムのインストール

イーサリアム は、分散型アプリケーションを構築するためのオープンソースおよびパブリックブロックチェーンベースの分散コンピューティングプラットフォームです。

イーサリアムをインストールするには、ターミナルで次のコマンドを実行します。

$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Truffleのインストール

Truffleは、Ethereum Blokchainsの開発環境、テストフレームワーク、およびアセットパイプラインです。

Truffleをインストールするには、ターミナルで次のコマンドを実行します。

$ npm install -g truffle

Solidityコンパイラのインストール

Solidityは、スマートコントラクトの作成に使用されるプログラミング言語です。システムでスマートコントラクトを実行するには、SolidityCompilerをインストールする必要があります。

Solidityコンパイラをインストールするには、ターミナルで次のコマンドを実行します。

$ sudo npm install -g solc

ジェネシスブロックの構成

ジェネシスブロックはブロックチェーンの開始点であり、ブロックチェーンを開始するにはジェネシスファイルが必要です。イーサリアムスマートコントラクトのこのセクションでは、ジェネシスファイルを作成し、スマートコントラクトを実行できるように構成します。

最初に新しいディレクトリを作成し、次にそのディレクトリに作成します。 ジェネシスファイル

$ mkdirイーサリアム-ネットワーク$ cdイーサリアム-ネットワーク$ nano Genesis.json

ここで、次の行を Genesis.json ファイル:

{'config':{'chainId':2019、 'homesteadBlock':0、 'eip155Block':0、 'eip158Block':0}、'alloc':{}、 'difficulty': '200''gasLimit': '99999999999999'}

これを保存して終了します。

イーサリアムプライベートネットワークの実行

このイーサリアムスマートコントラクトチュートリアルでは、プライベートネットワークにイーサリアムスマートコントラクトを展開します。したがって、このネットワークを開始するには、次のコマンドを使用します。

$ geth --datadir ./dataDir init ./genesis.json

$ geth --port 4321 --networkid 1234 --datadir =。/ dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi'eth、net、web3、personal、miner '

先に進む前に、上記のコマンドで使用されるいくつかの重要なフラグについて説明します。

datadir: ブロックチェーンに関連するデータが保存されているディレクトリ。

rpc: HTTP-RPCサーバーを有効にします。

rpcport そして rpcaddr ネットワークのポートとアドレスをそれぞれ設定するために使用されます。

rpcapi: さまざまなAPIを使用してイーサリアムネットワークと対話できます。

ゲスをイーサリアムプライベートブロックチェーンに接続する

Gethコンソールは、Ethereum PrivateBlockchainと対話できるコンソールです。 GethをEthereumPrivate Blockchainに接続するには、新しいターミナルを開き、以下のコマンドを実行します。

$ geth attach http://127.0.0.1:8543

これで、ブロックチェーンと対話するコマンドを実行できるGethコンソールが表示されます。

イーサリアムアカウントの作成

取引を行うには、アカウントが必要です。イーサリアムスマートコントラクトチュートリアルのこのセクションでは、Gethコンソールから新しいイーサリアムアカウントを作成する方法を説明します。

これまでの手順に従って、すでにGethコンソールを使用しています。新しいアカウントを作成するには、Gethコンソールで次のコマンドを実行します。

> personal.newAccount( 'シードフレーズ')

シードフレーズ」に、このアカウントに設定するパスワードを入力します。

新しいアカウントを作成しましたが、このアカウントにはエーテルがありません。必要ですトランザクションを実行し、エーテルを取得するためのエーテル私たちのアカウントでは、エーテルの採掘を開始します。マイニングを開始するには、最初にアカウントのロックを解除する必要があります。アカウントのロックを解除してマイニングを始めましょう。

> personal.unlockAccount(web3.eth.coinbase、 'seedphrase')> miner.start()

採掘が続くにつれて、いくつかはエーテルこの口座に入金されます。

注意 :これらのエーテルは ダミーエーテル 実世界の価値はありません。

バランスを確認するにはエーテルアカウントで、次のコマンドを実行します。

> web3.fromWei(eth.getBalance(eth.coinbase)、 'ether')

このコマンドを定期的に実行すると、次のことがわかります。エーテル鉱業のために増加しています。

マイニングを停止するには、次のコマンドを実行します。

> miner.stop()

イーサリアムスマートコントラクトの作成

トリュフプロジェクトの作成

プライベートブロックチェーンの準備ができたので、Truffleを使用してEthereumスマートコントラクトを作成する方法を見ていきます。このチュートリアルでは、簡単な「HelloWorld」イーサリアムスマートコントラクトを作成します。

これから始めるために、まずTruffleプロジェクトを保存するための新しいディレクトリを作成しましょう。そして、そのディレクトリに、新しいTruffleプロジェクトを作成します。新しいターミナルを開き、以下のコマンドを実行します。

$ mkdir truffle $ cd truffle $ truffle init

ザ・ トリュフの初期化 コマンドは、トリュフプロジェクトに必要なすべてのファイルを作成します。

イーサリアムスマートコントラクトを展開するためのすべての準備が整ったので、「HelloWorld」スマートコントラクトの作成に取り掛かりましょう。

「HelloWorld」スマートコントラクトの作成

すべての契約は「契約」ディレクトリに書き込む必要があります。このディレクトリに切り替えて、「HelloWorld.sol」という名前のコントラクトを作成し、このファイルに次の行を追加します。

プラグマソリディティ^ 0.4.15コントラクトHelloWorld {string public message function Hello()public {message = 'Hello World!' }}

これだよ!ただし、このスマートコントラクトを単独で実行することはできません。そのためにいくつかの構成を行う必要があります。

Truffle移行の構成

スマートコントラクトを移行するには、にファイルを追加する必要があります 「移行」 のディレクトリ 'トリュフ' ディレクトリ。このディレクトリに、という名前のファイルを追加します 「2_deploy_contracts.js」 次の内容が含まれています。

var HelloWorld = Artifacts.require( './ HelloWorld.sol')module.exports = function(deployer){deployer.deploy(HelloWorld)}

保存して終了。

ネットワークでトリュフを実行するには、「 truffle.js 」ファイル 'トリュフ' ディレクトリ このファイルを開き、次のエントリを作成します。

module.exports = {rpc:{host: 'localhost'、port:8543}、networks:{development:{host: 'localhost'、port:8543、network_id: '*'、from: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a'、gas:20000000}}}

注意: を交換してください 'から' 前の手順で作成したアカウントのアドレスを持つアドレス。

イーサリアムスマートコントラクトの実行

イーサリアムスマートコントラクトチュートリアルのこの最後のセクションでは、「ハローワールド」スマートコントラクトをイーサリアムプライベートネットワークにデプロイする方法を説明します。

スマートコントラクトのコンパイルと展開

スマートコントラクトを実行する前に、まずそれをコンパイルしてイーサリアムプライベートネットワークにデプロイする必要があります。次のコマンドを使用してこれを行います。

$トリュフコンパイル

PythonでAtomを使用する方法

次に、アカウントのロックを解除してマイニングを開始する必要があります。 Gethコンソールを使用してターミナルに戻り、次のコマンドを実行します。

> personal.unlockAccount(web3.eth.coinbase) > miner.start()

その後、持っているターミナルに戻ります 'トリュフ' 現在の作業ディレクトリとして実行次のコマンド:

$トリュフの移行

展開が完了するのを待ちます。

プライベートイーサリアムブロックチェーンでスマートコントラクトを実行する

「HelloWorld」スマートコントラクトを実行するには、トリュフコンソールに入る必要があります。これを行うには、次のコマンドを実行します。

$トリュフコンソール

これで、トリュフコンソールが表示されます。スマートコントラクトを実行するには、次のコマンドを実行します。

> var first_contract> HelloWorld.deployed()。then(function(instance){first_contract = instance})> dApp.message.call()

おめでとう!これで、最初のイーサリアムスマートコントラクトが作成され、実行されました。このイーサリアムスマートコントラクトのチュートリアルが参考になり、イーサリアムスマートコントラクトの実行方法を理解するのに役立つことを願っています。さあ、先に進んで、他のスマートコントラクトを書いて実行してみてください。

質問がありますか?投稿してください 折り返しご連絡いたします。

Blockchainを学び、Blockchain Technologiesでキャリアを築きたい場合は、 インストラクター主導のライブトレーニングと実際のプロジェクト経験が付属しています。このトレーニングは、Blockchainとは何かを徹底的に理解し、主題をマスターするのに役立ちます。