今回は番号からわかる通り2018/02現在一番新しい(よね?)ERC-20の拡張提案であるERC-827を紹介します。
github.com
Transactionの消費gasは最大50%offまで!
Hi-Etherのslackで興味深い質問がありました。
storageのデータを削除するときには gasがrefundされるという認識だったのですが、arrayの要素を全削除するときにgasが大量にかかるのはどうしてでしょうか?教えていただきたいです。
確かに、以前の記事でstorage上からデータを削除(non zero から zeroに変更)した場合は、refundGas=15000、 used gas=5000で最終的に10000gasが戻ってくると思っていました。が、実際に100件の値を持つuintの配列を生成して削除してみると削除時に270000gasほど消費されてしまいました。
今回は、このrefundGasとtransactionで消費されるgasの計算方法について調べたことをまとめます。
続きを読むbrew install で solidity 0.4.19をインストールする
brew upgrade solidityしても0.4.19が落ちてこなくてなんでだろう?ってずっと思ったら、homeberw用の配布ファイル(になるのかな?)のsolidity.rbに記載してあるバージョン番号を書き換え忘れているのが原因だったようです。
github.com
PR出てたのでそちらを指定してbrew install実行したら無事solidity compilerをバージョンアップできました。
brew unlink solidity brew install https://raw.githubusercontent.com/dostu/homebrew-ethereum/27e8ace58eacae6c7a066d9ab362e97f666ff486/solidity.rb
MacOSX+Geth1.8.0-unstableでRopstenを同期する
Raiden Networkを試してみようと思い、まずはドキュメントに書いてある通りRopstenで動かすために同期をし始めたのですが一向に進まないどころかさっぱりpeerを見つけることもできなくて四苦八苦してしまいました。
なんとか解決(?)できたので同じ症状で困っている人のためにブログにまとめておきます。
結論としては、Geth 1.8.0-unstableにバージョンアップしたら同期が始まりました。1.7.3使ってる人はもう少ないのかな?
ということで、Macでbrewを使ったGeth 1.8.0環境への変更方法をまとめます。
以下はすでにethereumのrepositoryをbrew tap済みでgoもインストール済みの前提で進めます。
1.古いGethを削除
brew uninstall --force ethereum
2.develop版のGeth 1.8.0をインストール
release版はまだないのでdevelop版を指定することで1.8.0をインストールできます。
brew install ethereum --devel
3.昔のデータが残ってるかもしれないので削除
geth --testnet removedb
4. Gethを起動
geth --testnet --fast --cache 1024 console
これですぐに同期が始まりました。light client modeで使いたいのですがlight指定だとなかなか同期が始まらなくて断念しました。うーん残念。。
ERC-777 新しいToken標準の提案
Ethereumの開発者コミュニティーでは常に新しい提案が発表されています。Token Contractの標準としては現状EIP20が主流ですが、この標準規格も問題がないわけではなく、常にそれらの問題を解決するための新しいToken標準が提案されています。
今回は比較的新しい提案であるERC-777について調べてみたことをまとめました。
続きを読む