cmd/lncli: increase lightning gRPC block size to 50MB

In this commit, we increase the gRPC block size from 4MB to 50MB.
Recently, the output of `lncli describegraph` has hit the block size cap
due to the expansion of the mainnet graph. Without this attempts to
fetch the graph returns an error of:
```
[lncli] rpc error: code = ResourceExhausted desc = grpc: received message larger than max (4246753 vs. 4194304)
```

With this commit, we give ourselves some breathing room. It's important
to note that the max message size limit is a _client side_ setting. As a
result, any developers driving `lnd` with gRPC will also need to raise
their block size limit as well if they wish to fetch the graph over
gRPC.
This commit is contained in:
Olaoluwa Osuntokun 2018-12-25 13:09:34 -06:00
parent e6623f98b3
commit 0453078213
No known key found for this signature in database
GPG Key ID: CE58F7F8E20FD9A2

@ -37,6 +37,10 @@ const (
var ( var (
defaultLndDir = btcutil.AppDataDir("lnd", false) defaultLndDir = btcutil.AppDataDir("lnd", false)
defaultTLSCertPath = filepath.Join(defaultLndDir, defaultTLSCertFilename) defaultTLSCertPath = filepath.Join(defaultLndDir, defaultTLSCertFilename)
// maxMsgRecvSize is the largest message our client will receive. We
// set this to ~50Mb atm.
maxMsgRecvSize = grpc.MaxCallRecvMsgSize(1 * 1024 * 1024 * 50)
) )
func fatal(err error) { func fatal(err error) {
@ -131,11 +135,10 @@ func getClientConn(ctx *cli.Context, skipMacaroons bool) *grpc.ClientConn {
// We need to use a custom dialer so we can also connect to unix sockets // We need to use a custom dialer so we can also connect to unix sockets
// and not just TCP addresses. // and not just TCP addresses.
opts = append( genericDialer := lncfg.ClientAddressDialer(defaultRPCPort)
opts, grpc.WithDialer( opts = append(opts, grpc.WithDialer(genericDialer))
lncfg.ClientAddressDialer(defaultRPCPort), opts = append(opts, grpc.WithDefaultCallOptions(maxMsgRecvSize))
),
)
conn, err := grpc.Dial(ctx.GlobalString("rpcserver"), opts...) conn, err := grpc.Dial(ctx.GlobalString("rpcserver"), opts...)
if err != nil { if err != nil {
fatal(fmt.Errorf("unable to connect to RPC server: %v", err)) fatal(fmt.Errorf("unable to connect to RPC server: %v", err))