Open
Description
There are three different representations of BLS public keys used by avalanchego:
- In-memory blst pointer
- bytes in the uncompressed format
- bytes in the compressed format
We currently convert (2) and (3) to (1) and pass (1) around. However, there are instances where we repeatedly convert between the formats.
For example, during ICM verification, we may:
- Read (2) from disk here
- Convert to (1) to apply the validator diff
- Convert to (2) to send over the grpc server
- Convert to (1) to convert back from the grpc format
- Convert to (2) to convert to the canonical warp format
This PR #1445 did some of the work (removes 4,5) but we should probably do a holistic pass over how we represent public keys.
Metadata
Metadata
Assignees
Type
Projects
Status
Backlog 🧊