2020.11.07_pyhack
https://gyazo.com/beed672aca9267d59d9105a037593f07
Ethereum Protocolに対応したクライアントノードの1つのそのPython実装である #py-evm の状況を調べた。 Ethereumのリファレンス実装であるgo-ethereumはすでにテスト的に使ったりしているのですが、
中の実装をみるためにpython実装も見てみたいなと思った次第。
# py-evmのねらい
- Ethereun 1.0はもちろんだが、2.0もサポートすることを狙いにいれている。
- Ethereumの公式のリファレンス実装はgo-ethereumだが、pythonの普及率や読みやすさなどを活かして、リファレンスの1つになれるようにしたい?
# 状況
release-noteをみてみる。
自分勉強のために、それぞれのリリースのfeatureなどを翻訳してみるが、
中身・用語がわかっていないので、わかるとこから追記していく。
そして調べながら翻訳・理解していくことにする。
py-evm 0.3.0-alpha.20 (2020-10-21)
rlpライブラリをv2.0.0安定版にアップグレードし、32bit環境や他アーキテクチャで動作させやすくした。
backendのrust実装を指定できるようにした。pip install rlp(rust-backend)
(以下、20201212のpyhack作業で追記)
py-evm 0.3.0-alpha.19 (2020-08-31)
py-evm 0.3.0-alpha.18 (2020-06-25)
py-evm 0.3.0-alpha.17 (2020-06-02)
py-evm 0.3.0-alpha.16 (2020-05-27)
py-evm 0.3.0-alpha.15 (2020-04-14)
py-evm 0.3.0-alpha.14 (2020-02-10)
py-evm 0.3.0-alpha.13 (2020-01-13)
py-evm 0.3.0-alpha.12 (2019-12-19)
py-evm 0.3.0-alpha.11 (2019-12-12)
py-evm 0.3.0-alpha.10 (2019-12-09)
py-evm 0.3.0-alpha.8 (2019-11-05)
py-evm 0.3.0-alpha.7 (2019-09-19)
py-evm 0.3.0-alpha.6 (2019-09-05)
py-evm 0.3.0-alpha.4 (2019-08-19)
v0.3.0-alpha.1 Released 2019-06-05 (off-schedule release to handle eth-keys dependency issue)
0.2.0-alpha.42 Released Jan 15, 2019
コントラクトのopcode命令がvalidかどうかのチェック7%スピードアップ、トータルのimport時間が7%となる
ロギング処理のオーバヘッドを減らして1.5%スピードアップ
キャッシュトランザクション送信が3%スピードアップ
bytecodeの繰り返し処理が2.5%スピードアップ
apply_計算のopcode参照が1.5%スピードアップ
最新データのJournal accessが6%スピードアップ
stack実行が9%スピードアップ
journal record & commit checkpointsが7%アップ
bytecode navigationが7%アップ
0.2.0-alpha.40 Released Jan 15, 2019
EVM内部のアカウント参照スピードアップ
過去のhashblockやキャッシュ結果参照が遅いのを少し解決?して、EVM内部の親ハッシュの参照を100世代読み込むより高速化した?
0.2.0-alpha.40 Released Jan 15, 2019
eth2 beacon codeの削除、trinityプロジェクトへ移行