lighthouse-pulse/crypto/bls/src
Michael Sproul 82753f842d Improve compile time (#1989)
## Issue Addressed

Closes #1264

## Proposed Changes

* Milagro BLS: tweak the feature flags so that Milagro doesn't get compiled if we're using BLST. Profiling showed that it was consuming about 1 minute of CPU time out of 60 minutes of CPU time (real time ~15 mins). A 1.6% saving.
* Reduce monomorphization: compiling for 3 different `EthSpec` types causes a heck of a lot of generic functions to be instantiated (monomorphized). Removing 2 of 3 cuts the LLVM+linking step from around 250 seconds to 180 seconds, a saving of 70 seconds (real time!). This applies only to `make` and not the CI build, because we test with the minimal spec on CI.
* Update `web3` crate to v0.13. This is perhaps the most controversial change, because it requires axing some deposit contract tools from `lcli`. I suspect these tools weren't used much anyway, and could be maintained separately, but I'm also happy to revert this change. However, it does save us a lot of compile time. With #1839, we now have 3 versions of Tokio (and all of Tokio's deps). This change brings us down to 2 versions, but 1 should be achievable once web3 (and reqwest) move to Tokio 0.3.
* Remove `lcli` from the Docker image. It's a dev tool and can be built from the repo if required.
2020-12-09 01:34:58 +00:00
..
impls Improve compile time (#1989) 2020-12-09 01:34:58 +00:00
generic_aggregate_public_key.rs Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
generic_aggregate_signature.rs Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
generic_keypair.rs Support multiple BLS implementations (#1335) 2020-07-25 02:03:18 +00:00
generic_public_key_bytes.rs Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
generic_public_key.rs Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
generic_secret_key.rs Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
generic_signature_bytes.rs Implement standard eth2.0 API (#1569) 2020-10-01 11:12:36 +10:00
generic_signature_set.rs Support multiple BLS implementations (#1335) 2020-07-25 02:03:18 +00:00
generic_signature.rs Implement slasher (#1567) 2020-11-23 03:43:22 +00:00
get_withdrawal_credentials.rs Support multiple BLS implementations (#1335) 2020-07-25 02:03:18 +00:00
lib.rs Improve compile time (#1989) 2020-12-09 01:34:58 +00:00
macros.rs Fix new clippy lints (#2036) 2020-12-03 01:10:26 +00:00
zeroize_hash.rs Implement key cache to reduce keystore loading times for validator_client (#1695) 2020-10-05 10:50:43 +00:00