|
48 | 48 | defaultTotalPaymentTimeout = time.Minute * 60 |
49 | 49 | defaultMaxPaymentRetries = 3 |
50 | 50 |
|
| 51 | + // defaultRPCBatchSize is the default batch size to use for RPC calls |
| 52 | + // we make to LND during migrations. If operations on the LND side are |
| 53 | + // too slow a too large batch size may prevent the migration from |
| 54 | + // completing. |
| 55 | + defaultRPCBatchSize = 1000 |
| 56 | + |
51 | 57 | // DefaultTLSCertFilename is the default file name for the autogenerated |
52 | 58 | // TLS certificate. |
53 | 59 | DefaultTLSCertFilename = "tls.cert" |
@@ -179,6 +185,8 @@ type Config struct { |
179 | 185 |
|
180 | 186 | EnableExperimental bool `long:"experimental" description:"Enable experimental features: reservations"` |
181 | 187 |
|
| 188 | + MigrationRPCBatchSize int `long:"migrationrpcbatchsize" description:"The RPC batch size to use during migrations."` |
| 189 | + |
182 | 190 | Lnd *lndConfig `group:"lnd" namespace:"lnd"` |
183 | 191 |
|
184 | 192 | Server *loopServerConfig `group:"server" namespace:"server"` |
@@ -207,20 +215,21 @@ func DefaultConfig() Config { |
207 | 215 | Sqlite: &loopdb.SqliteConfig{ |
208 | 216 | DatabaseFileName: defaultSqliteDatabasePath, |
209 | 217 | }, |
210 | | - LogDir: defaultLogDir, |
211 | | - MaxLogFiles: defaultMaxLogFiles, |
212 | | - MaxLogFileSize: defaultMaxLogFileSize, |
213 | | - DebugLevel: defaultLogLevel, |
214 | | - TLSCertPath: DefaultTLSCertPath, |
215 | | - TLSKeyPath: DefaultTLSKeyPath, |
216 | | - TLSValidity: DefaultAutogenValidity, |
217 | | - MacaroonPath: DefaultMacaroonPath, |
218 | | - MaxL402Cost: l402.DefaultMaxCostSats, |
219 | | - MaxL402Fee: l402.DefaultMaxRoutingFeeSats, |
220 | | - LoopOutMaxParts: defaultLoopOutMaxParts, |
221 | | - TotalPaymentTimeout: defaultTotalPaymentTimeout, |
222 | | - MaxPaymentRetries: defaultMaxPaymentRetries, |
223 | | - EnableExperimental: false, |
| 218 | + LogDir: defaultLogDir, |
| 219 | + MaxLogFiles: defaultMaxLogFiles, |
| 220 | + MaxLogFileSize: defaultMaxLogFileSize, |
| 221 | + DebugLevel: defaultLogLevel, |
| 222 | + TLSCertPath: DefaultTLSCertPath, |
| 223 | + TLSKeyPath: DefaultTLSKeyPath, |
| 224 | + TLSValidity: DefaultAutogenValidity, |
| 225 | + MacaroonPath: DefaultMacaroonPath, |
| 226 | + MaxL402Cost: l402.DefaultMaxCostSats, |
| 227 | + MaxL402Fee: l402.DefaultMaxRoutingFeeSats, |
| 228 | + LoopOutMaxParts: defaultLoopOutMaxParts, |
| 229 | + TotalPaymentTimeout: defaultTotalPaymentTimeout, |
| 230 | + MaxPaymentRetries: defaultMaxPaymentRetries, |
| 231 | + EnableExperimental: false, |
| 232 | + MigrationRPCBatchSize: defaultRPCBatchSize, |
224 | 233 | Lnd: &lndConfig{ |
225 | 234 | Host: "localhost:10009", |
226 | 235 | MacaroonPath: DefaultLndMacaroonPath, |
@@ -367,6 +376,10 @@ func Validate(cfg *Config) error { |
367 | 376 | return fmt.Errorf("TLS certificate minimum validity period is 24h") |
368 | 377 | } |
369 | 378 |
|
| 379 | + if cfg.MigrationRPCBatchSize <= 0 { |
| 380 | + return fmt.Errorf("migrationrpcbatchsize must be greater than 0") |
| 381 | + } |
| 382 | + |
370 | 383 | return nil |
371 | 384 | } |
372 | 385 |
|
|
0 commit comments