Skip to main content

RestoreChannelBackups

RestoreChannelBackups accepts a set of singular channel backups, or a single encrypted multi-chan backup and attempts to recover any funds remaining within the channel. If we are able to unpack the backup, then the new channel will be shown under listchannels, as well as pending channels.

Source: lightning.proto

gRPC

rpc RestoreChannelBackups (RestoreChanBackupRequest) returns (RestoreBackupResponse);

REST

HTTP MethodPath
POST /v1/channels/backup/restore

Code Samples

const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const GRPC_HOST = 'localhost:10009'
const MACAROON_PATH = 'LND_DIR/data/chain/bitcoin/regtest/admin.macaroon'
const TLS_PATH = 'LND_DIR/tls.cert'

const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync('lightning.proto', loaderOptions);
const lnrpc = grpc.loadPackageDefinition(packageDefinition).lnrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).toString('hex');
const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
let client = new lnrpc.Lightning(GRPC_HOST, creds);
let request = {
chan_backups: <ChannelBackups>,
multi_chan_backup: <bytes>,
};
client.restoreChannelBackups(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "num_restored": <uint32>,
// }

Messages

lnrpc.RestoreChanBackupRequest

Source: lightning.proto

FieldgRPC TypeREST TypeREST Placement
chan_backups
ChannelBackupsobjectbody
multi_chan_backup
bytesstringbody

lnrpc.RestoreBackupResponse

Source: lightning.proto

FieldgRPC TypeREST Type
num_restored
uint32integer

Nested Messages

lnrpc.ChannelBackup

FieldgRPC TypeREST Type
chan_point
ChannelPointobject
chan_backup
bytesstring

lnrpc.ChannelBackups

FieldgRPC TypeREST Type
chan_backups
ChannelBackup[]array

lnrpc.ChannelPoint

FieldgRPC TypeREST Type
funding_txid_bytes
bytesstring
funding_txid_str
stringstring
output_index
uint32integer