3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ethereumの基本事項 Solidityでの実装へむけて

Posted at

#この記事について
ブロックチェーンの勉強している学生が、Ethereumを実装するための言語であるSolidityについて学んだことの備忘録です。

#Ethereumの構成要素

  • account
  • transaction
  • Messages

それぞれ、以下のような特徴がある。

##account
Ethereumでは、あらゆる状態はアカウントと呼ばれるオブジェクトから作り上げられる。アドレスとアカウント間における値や情報の直接的やりとりで状態遷移を保持する。4つのフィールドを含む。

  • nonce
  • ether balance
  • contract code
  • storage

##transaction

  • 受信者
  • 送信者を特定する署名
  • 送付されるetherの量
  • オプショナルデータフィールド
  • STARTGAS
  • GASPRICE

EOAから送信されたメッセージを貯蔵する署名付きデータパッケージを参照するために使用される。

##Messages

  • 送信者
  • 受信者
  • etherの量
  • オプショナルデータフィールド
  • STARTGAS

contractにより生成され、外部では作動しない。

#コーディングするためのメモ

##Contract
classのようなもの。デプロイすると、アドレスが割り当てられる。継承することもできる。

##Library
delegatecallやJUMP命令が内部的に使用されている。

internalがある→JUMP命令
internalがない→delegatecall命令

が実行される。

usingで型にライブラリ関数をバインドできる。そうすると、self的な使い方が可能になる。

<型の変数>.<関数>() 

で呼び出しができるようになる。

#参考文献
Solidityドキュメント https://solidity.readthedocs.io/en/develop/
Ethereum白書
https://github.com/ethereum/wiki/wiki/%5BJapanese%5D-White-Paper#ethereum

3
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?