Skip to content

Instantly share code, notes, and snippets.

@mrfelton
Last active March 7, 2018 13:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrfelton/425337282a3b2734630be4d4ae03fa28 to your computer and use it in GitHub Desktop.
Save mrfelton/425337282a3b2734630be4d4ae03fa28 to your computer and use it in GitHub Desktop.
process.env.GRPC_SSL_CIPHER_SUITES =
"ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384";
var grpc = require("grpc");
var fs = require("fs");
const lndCert = fs.readFileSync("/home/bitcoin/.lnd/tls.cert");
const credentials = grpc.credentials.createSsl(lndCert);
const lnrpcDescriptor = grpc.load("rpc.proto");
const lnrpc = lnrpcDescriptor.lnrpc;
let metadata = new grpc.Metadata();
let macaroonHex = fs.readFileSync("/home/bitcoin/.lnd/admin.macaroon").toString("hex");
metadata.add("macaroon", macaroonHex);
let macaroonCreds = grpc.credentials.createFromMetadataGenerator(
(params, callback) => callback(null, metadata)
);
let creds = grpc.credentials.combineChannelCredentials(
credentials,
macaroonCreds
);
let lightning = new lnrpc.Lightning("thedeathnode:10009", creds);
lightning.getInfo({}, function(err, response) {
console.log("getInfo: ", err);
console.log("getInfo: ", response);
});
@Metalsprzet
Copy link

Bezpol here:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
process.env.GRPC_SSL_CIPHER_SUITES = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384"

const lndCert = fs.readFileSync("/home/administrator/.lnd/tls.cert")

const credentials = grpc.credentials.createSsl(lndCert)
const lnrpcDescriptor = grpc.load("rpc.proto")
const lnrpc = lnrpcDescriptor.lnrpc

              let metadata = new grpc.Metadata();
              let macaroonHex = fs.readFileSync("/home/administrator/.lnd/data/admin.macaroon").toString("hex");
              metadata.add('macaroon', macaroonHex);

              let macaroonCreds = grpc.credentials.createFromMetadataGenerator((params, callback) =>
                  callback(null, metadata)
              )

              let creds = grpc.credentials.combineChannelCredentials(credentials, macaroonCreds);
              
            
            let lightning = new lnrpc.Lightning('127.0.0.1:10009')

@Metalsprzet
Copy link

Last line mistake must be let lightning = new lnrpc.Lightning('127.0.0.1:10009', creds)

@Metalsprzet
Copy link

Metalsprzet commented Mar 7, 2018

I have full working nodejs app with web pages working with lnd. Now I am connecting clight and eclair. Bezpol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment