openethereum / parity-ethereum

The fast, light, and robust client for Ethereum-like networks.
Other
6.83k stars 1.69k forks source link

EIP-2565 Benchmarks and Library Options for Open-Ethereum #11714

Open ineffectualproperty opened 4 years ago

ineffectualproperty commented 4 years ago

EIP-2565 seeks to reduce the cost of the EIP-198 precompiles by a factor of 10. This is currently possible on Geth with no adverse effects due to the performance of the Geth precompile. Unfortunately, the EIP-198 precompile for Open-Ethereum is substantially slower. The following spreadsheet shows benchmarks for EIP-198 ModExp precompile with different rust libraries: https://docs.google.com/spreadsheets/d/1zqGQwj2d0qGt3Gue8QZ4Lf-4KGt575SwGgx8Opfay2c/edit?usp=sharing

The only library that enables Open-Ethereum to reach (and exceed) the performance of Geth is the Rust bindings to GMP. Benchmarks and how to use the library for the EIP-198 test vectors can be found here: https://github.com/ineffectualproperty/EIP-2565

@vorot93 mentioned on the Ethereum 'all core devs' call that he would try building this library on windows-gnu. Instructions can be found here: https://docs.rs/gmp-mpfr-sys/1.2.2/gmp_mpfr_sys/#building-on-windows

ineffectualproperty commented 4 years ago

Oh, and a link to the EIP: https://eips.ethereum.org/EIPS/eip-2565