Allow custom message limits in flowkit client
@devbugging is already working on this.
Since Jul 17, 2023.
- Dominant language
- Go
- Stars
- 209
- Forks
- 87
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 3
Description
Issue To Be Solved
Currently, the flowkit client uses a hardcoded max message size:
https://github.com/onflow/flow-cli/blob/6aa41a27add2d95066fc96072cc33c498f515deb/flowkit/gateway/grpc.go#L39
However, Access nodes can configure custom node specific limits to handle cases where data sizes exceed the default. This has come up several times in the last few months as data sizes have increased. Public ANs currently use a limit of 60MB.
(Optional): Suggest A Solution
We should make this limit configurable. A few potential backwards compatible solutions:
- Add a new constructor
NewCustomGrpcGatewaywhich supports passing in a client and the other fields. This could allow callers to build their own SDK client with the grpc settings they want, as well as pass their own context. - Add optional Option callbacks to allow customizing the grpc client options. This would be less flexible and require some more complex logic in the library to properly manage and pass the options into the SDK instantiation.
- Add an optional Option callback to allow specifying just the max message size. This would be simple to implement and add minimal changes to the code, but provides the least flexibility. However, it would solve the immediate problem in a simple way.
(Optional): Context
This limit is too low for GetTransactionResultByBlockID for some recent blocks, resulting the ResourceExhausted errors.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.