You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice to have a Bitfield of dynamic length, that implements SSZ encoding/deocding. Currently we have fixed-length types, which requires the length of the object to be known at compile time. This is particularly annoying with the ENR bitfields. It means that anything that touches reads the bitfield ENR now has to have a generic which fixes the bitfield length. This typically means threading through the E: EthSpec generic.
Adjusting the length changes the merklisation of the ENR, however, to my knowledge we never merkalize an ENR and so a dynamic length bitfield should be fine and we can remove a bunch of generics in various parts of the network code.
Description
It would be nice to have a Bitfield of dynamic length, that implements SSZ encoding/deocding. Currently we have fixed-length types, which requires the length of the object to be known at compile time. This is particularly annoying with the ENR bitfields. It means that anything that touches reads the bitfield ENR now has to have a generic which fixes the bitfield length. This typically means threading through the E: EthSpec generic.
Adjusting the length changes the merklisation of the ENR, however, to my knowledge we never merkalize an ENR and so a dynamic length bitfield should be fine and we can remove a bunch of generics in various parts of the network code.
Implementaiton
The current bitfields are here: https://github.com/sigp/ethereum_ssz/blob/main/ssz/src/bitfield.rs#L115
Making a version that is dynamic and then using this in the Lighthouse code, eg https://github.com/sigp/lighthouse/blob/stable/beacon_node/lighthouse_network/src/discovery/enr.rs#L34
The text was updated successfully, but these errors were encountered: