nimbus-eth2/beacon_chain
Jacek Sieka 78b767f645
avoid genericAssign for beacon node types (#1166)
* avoid genericAssign for beacon node types

ok, I got fed up of this function messing up cpu measurements - it's so
ridiculously slow, it's sad.

before, while syncing:

```
40,65%  beacon_node_shared_witti_0  [.]
genericAssignAux__U5DxFPRpHCCZDKWQzM9adaw
   9,02%  libc-2.31.so                [.] __memmove_avx_unaligned_erms
   7,07%  beacon_node_shared_witti_0  [.] BIG_384_58_monty
   5,19%  beacon_node_shared_witti_0  [.] BIG_384_58_mul
   2,72%  beacon_node_shared_witti_0  [.] memcpy@plt
   1,18%  [kernel]                    [k] rb_next
   1,17%  beacon_node_shared_witti_0  [.] genericReset
   1,06%  [kernel]                    [k] map_private_extent_buffer
```

after:

```
  24,88%  beacon_node_shared_witti_0  [.] BIG_384_58_monty
  20,29%  beacon_node_shared_witti_0  [.] BIG_384_58_mul
   3,15%  beacon_node_shared_witti_0  [.] BIG_384_58_norm
   2,93%  beacon_node_shared_witti_0  [.] BIG_384_58_add
   2,55%  beacon_node_shared_witti_0  [.] BIG_384_58_sqr
   1,64%  beacon_node_shared_witti_0  [.] BIG_384_58_mod
1,63%  beacon_node_shared_witti_0  [.]
sha256Transform__BJNBQtWr9bJwzqbyfKXd38Q
   1,48%  beacon_node_shared_witti_0  [.] FP_BLS381_add
   1,39%  beacon_node_shared_witti_0  [.] BIG_384_58_sub
   1,33%  beacon_node_shared_witti_0  [.] BIG_384_58_dnorm
   1,14%  beacon_node_shared_witti_0  [.] FP2_BLS381_mul
   1,05%  beacon_node_shared_witti_0  [.] BIG_384_58_cmove
1,05%  beacon_node_shared_witti_0  [.]
get_shuffled_seq__4uncAHNsSG3Pndo5H11U9aQ
```

* better field iteration
2020-06-12 21:10:22 +02:00
..
block_pools avoid genericAssign for beacon node types (#1166) 2020-06-12 21:10:22 +02:00
fork_choice [Split fork choice PR] Derisk-ed attestation checks changes (#1154) 2020-06-10 08:58:12 +02:00
spec avoid genericAssign for beacon node types (#1166) 2020-06-12 21:10:22 +02:00
ssz Fix SSZ issues on 32-bit platforms 2020-06-11 17:40:08 +03:00
tracing replace links to Apache and MIT licenses with HTTPS versions (#592) 2019-11-25 16:30:02 +01:00
.gitignore interop updates 2019-09-02 22:14:18 +03:00
attestation_aggregation.nim [Split fork choice PR] Derisk-ed attestation checks changes (#1154) 2020-06-10 08:58:12 +02:00
attestation_pool.nim fixed build 2020-06-10 13:50:50 +03:00
beacon_chain_db.nim avoid genericAssign for beacon node types (#1166) 2020-06-12 21:10:22 +02:00
beacon_node.nim Small fixes (#1165) 2020-06-12 18:43:20 +02:00
beacon_node.nim.cfg [Split fork choice PR] Derisk-ed attestation checks changes (#1154) 2020-06-10 08:58:12 +02:00
beacon_node_common.nim - extracted the commands to run a VC into a separate run_validator.sh script 2020-06-10 13:50:50 +03:00
beacon_node_types.nim fixed build 2020-06-10 13:50:50 +03:00
block_pool.nim ncli_db: database tool 2020-05-28 17:43:02 +00:00
conf.nim Fix the validator client build 2020-06-11 17:40:08 +03:00
deposit_contract.nim Spec-compliant implementation of Eth1 monitoring; Eth1-enabled local sim 2020-04-26 13:04:53 +03:00
eth2_discovery.nim Use the latest LibP2P 2020-06-05 19:34:12 +03:00
eth2_json_rpc_serialization.nim reorder ssz (#1099) 2020-06-03 15:52:02 +02:00
eth2_network.nim Filter discovery nodes on forkId (#1162) 2020-06-12 16:14:18 +02:00
extras.nim Increase finalization and finalization checking robustness (#990) 2020-05-09 12:43:15 +00:00
faststreams_backend.nim Enable Snappy by default (using LibP2P steams for now) 2020-05-13 12:18:42 +03:00
inspector.nim show peer info on connect (#1155) 2020-06-11 07:14:26 +02:00
interop.nim Implement more of the KeyStore spec and integrate it in the beacon node 2020-06-11 17:40:08 +03:00
keystore_management.nim Address review comments 2020-06-11 17:40:08 +03:00
libp2p_json_serialization.nim Use the latest LibP2P 2020-06-05 19:34:12 +03:00
libp2p_streams_backend.nim Don't use StackArray in ssz; Drop the support for strings 2020-05-24 19:00:34 +03:00
logtrace.nim Add pubsub message logging. 2020-03-11 17:26:30 +00:00
mainchain_monitor.nim beacon_node: graceful shutdown (#1033) 2020-05-19 20:57:35 +02:00
merkle_minimal.nim Address review comments 2020-06-11 17:40:08 +03:00
nimbus_binary_common.nim - extracted the commands to run a VC into a separate run_validator.sh script 2020-06-10 13:50:50 +03:00
nimquery.nim Integrate Discovery V5 and support ENR bootstrap records 2020-01-21 01:26:57 +02:00
peer_pool.nim Add "drop by score" ability to PeerPool. (#917) 2020-04-23 17:31:00 +02:00
request_manager.nim Reform the networking layer in order to handle the new stricter SSZ API 2020-05-24 19:00:34 +03:00
ssz.nim Implement more of the KeyStore spec and integrate it in the beacon node 2020-06-11 17:40:08 +03:00
sszdump.nim Small fixes (#1165) 2020-06-12 18:43:20 +02:00
state_transition.nim remove some debugging code 2020-06-09 18:39:05 +00:00
statusbar.nim Cosmetic improvement for the statusbar 2020-06-11 17:40:08 +03:00
sync_manager.nim Fix #1153. (#1160) 2020-06-11 16:20:53 +02:00
sync_protocol.nim show peer info on connect (#1155) 2020-06-11 07:14:26 +02:00
sync_protocol.nim.generated.nim show peer info on connect (#1155) 2020-06-11 07:14:26 +02:00
time.nim more work on the BN/VC split 2020-05-28 13:01:42 +03:00
validator_api.nim can finalize successfully with external VCs! + some other cleanup 2020-06-10 13:50:50 +03:00
validator_client.nim Address review comments 2020-06-11 17:40:08 +03:00
validator_client.nim.cfg first batch of work towards the VC/BN split: 2020-05-25 16:23:15 +03:00
validator_duties.nim avoid genericAssign for beacon node types (#1166) 2020-06-12 21:10:22 +02:00
validator_pool.nim - extracted the commands to run a VC into a separate run_validator.sh script 2020-06-10 13:50:50 +03:00
version.nim spec: regulate exceptions (#913) 2020-04-22 07:53:02 +02:00