LoginSignup
3
1

More than 5 years have passed since last update.

スマートコントラクト開発の準備をする(ethereum5)

Last updated at Posted at 2017-12-26

前回はこちら。マイニングと譲渡をHTTP経由で改めてやってみる

概要

開発者はコードを書き、サーバ(ここではブロックチェー ン)にデプロイします。ユーザはブラウザでサーバにアクセスし、目的の処理を行います。まず開発者はチューリング完全な高レベルの言語でコントラクトを記述します。そしてそれを EVMコンパイラでコンパイルして EVM バイトコード(EVM 固有のバイナリ形式)にし、ブロックチェー ンにデプロイします(EVMとは Ethereum Virtual Machine の略)。EVMバイトコードは、個々のEVM上で実行されます。なお「ブロックチェーンにデプロイする」とは、ブロック内にEVMバイトコードを保存することを意 味します。ブロックチェーンネットワークに参加する全ノードは同じブロックを保持しますので、全ノードがEVMバイトコードを保持して実行できることになります。

スクリーンショット 2017-12-26 18.59.02.png

次はコントラクト(EVM バイトコード)へのアクセスについて説明します。ユーザはブラウザやコンソールからブロックチェーン上の EVM バイトコードに JSON-RPC 等でアクセスします。EVMバイトコードは接続したノードの EVM上で実行され、データの更新を行う場合は、(送金などと同様に) 更新内容がブロックチェーンネットワークに配信されます。

スクリーンショット 2017-12-26 19.01.20.png

コンパイラをインストール

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

versionの確認

solc --version
solc, the solidity compiler commandline interface
Version: 0.4.19+commit.c4cbbb05.Linux.g++

gethを起動

nohup geth --networkid 4649 --nodiscover --maxpeers 0 --datadir /home/ubuntu/data_testnet --mine --minerthreads 1 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpccorsdomain "*" --rpcapi "admin,db,eth,debug,miner,net,shh,txpool,personal, web3" --unlock 0,1 --verbosity 6 2>> /home/ubuntu/data_testnet/geth.log &

web console

geth attach rpc:http://localhost:8545

Geth に solc のパスをセットします

admin.setSolc("/usr/bin/solc")
"solc, the solidity compiler commandline interface\nVersion: 0.4.19+commit.c4cbbb05.Linux.g++\n"

正しくセットされたことを確認する

eth.getCompilers()
["Solidity"]
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1