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
Add new DownloadRawCertificatesByHeight endpoint and use it. (#4478)
## Motivation
During our performance tests it was found that proxies' bottleneck is
(de)serialization of certificates when responding to
`DownloadCertificatesByHeights` request.
## Proposal
It is a waste of CPU cycles to deserialize data (after loading from the
DB) only to serialize it for transporting over gRPC protocol.
This PR:
- adds a new method on the storage `read_certificates_raw` which returns
raw bytes of the requested certificates
- adds a new endpoint to `rpc.proto/ValidatorNode` –
`DownloadRawCertificatesByHeight` that responds with (bcs) bytes of the
requested certificates
- updates proxy code to serve the new endpoint
- the gRPC _client_ does NOT get a new method, instead the old
`download_certificates_by_height` is modified to use the new endpoint.
**This is safe:** b/c we will release this as a new SDK version meaning
old clients still use old code paths while next version uses new.
## Test Plan
CI
## Release Plan
- These changes should be backported to the latest `devnet` branch, then
- be released in a new SDK,
- be released in a validator hotfix.
- These changes should be backported to the latest `testnet` branch,
then
- be released in a new SDK,
- be released in a validator hotfix.
## Links
closes#4479
- [reviewer
checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
0 commit comments