From 78d2855142ad74158200a0638d23b1bfa62d1735 Mon Sep 17 00:00:00 2001 From: Christian Rotzoll Date: Fri, 12 Apr 2019 11:48:51 +0100 Subject: [PATCH] Doccumentation on LND RPC libs --- build_sdcard.sh | 16 +++++++++- home.admin/config.scripts/lnd.initwallet.py | 4 +-- home.admin/config.scripts/lndlibs/README.md | 29 ++++++++++++++++++ .../{lnd060libs => lndlibs}/__init__.py | 0 .../{lnd060libs => lndlibs}/rpc.proto | 0 .../{lnd060libs => lndlibs}/rpc_pb2.py | 0 .../{lnd060libs => lndlibs}/rpc_pb2.pyc | Bin .../{lnd060libs => lndlibs}/rpc_pb2_grpc.py | 0 .../{lnd060libs => lndlibs}/rpc_pb2_grpc.pyc | Bin 9 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 home.admin/config.scripts/lndlibs/README.md rename home.admin/config.scripts/{lnd060libs => lndlibs}/__init__.py (100%) rename home.admin/config.scripts/{lnd060libs => lndlibs}/rpc.proto (100%) rename home.admin/config.scripts/{lnd060libs => lndlibs}/rpc_pb2.py (100%) rename home.admin/config.scripts/{lnd060libs => lndlibs}/rpc_pb2.pyc (100%) rename home.admin/config.scripts/{lnd060libs => lndlibs}/rpc_pb2_grpc.py (100%) rename home.admin/config.scripts/{lnd060libs => lndlibs}/rpc_pb2_grpc.pyc (100%) diff --git a/build_sdcard.sh b/build_sdcard.sh index 4234797..9ce05c9 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -338,7 +338,6 @@ if [ "${binaryChecksum}" != "${bitcoinSHA256}" ]; then exit 1 fi - # check gpg finger print sudo -u admin wget https://bitcoin.org/laanwj-releases.asc if [ ! -f "./laanwj-releases.asc" ] @@ -480,6 +479,21 @@ if [ ${#installed} -eq 0 ]; then exit 1 fi +# prepare python for lnd api use +# https://dev.lightning.community/guides/python-grpc/ +# +echo "" +echo "*** LND API for Python ***" +sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 +sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1 +echo "to switch between python2/3: sudo update-alternatives --config python" +sudo apt-get -f -y install virtualenv +sudo -u admin virtualenv lnd +sudo -u admin source lnd/bin/activate +sudo -u admin pip install grpcio grpcio-tools googleapis-common-protos + +echo "" + # Go is needed for ZAP connect later echo "*** Installing Go ***" wget https://storage.googleapis.com/golang/go1.11.linux-armv6l.tar.gz diff --git a/home.admin/config.scripts/lnd.initwallet.py b/home.admin/config.scripts/lnd.initwallet.py index 3127b6c..1b7abaa 100644 --- a/home.admin/config.scripts/lnd.initwallet.py +++ b/home.admin/config.scripts/lnd.initwallet.py @@ -1,7 +1,7 @@ #!/usr/bin/python import codecs, grpc, os, sys, base64 -from lnd060libs import rpc_pb2 as ln -from lnd060libs import rpc_pb2_grpc as lnrpc +from lndlibs import rpc_pb2 as ln +from lndlibs import rpc_pb2_grpc as lnrpc # display config script info if len(sys.argv) <= 1 or sys.argv[1] == "-h" or sys.argv[1] == "help": diff --git a/home.admin/config.scripts/lndlibs/README.md b/home.admin/config.scripts/lndlibs/README.md new file mode 100644 index 0000000..86cf33b --- /dev/null +++ b/home.admin/config.scripts/lndlibs/README.md @@ -0,0 +1,29 @@ +For every new LND version the LND RPC libs need to be compiled from the matching protobuff files. +Do this on a raspberrypi with the exact same python version the scripts will be are running on. +See https://dev.lightning.community/guides/python-grpc/ + +Make sure Virtual Environment is setup: +``` +sudo apt-get -f -y install virtualenv +virtualenv lnd +source lnd/bin/activate +pip install grpcio grpcio-tools googleapis-common-protos +``` + +Normally that is already done by build_sdcard.sh for user admin user. So just run: +``` +source lnd/bin/activate +```` + +Now to generate the lnd RPC libs: + +``` +git clone https://github.com/googleapis/googleapis.git +curl -o rpc.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/rpc.proto +python -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. rpc.proto +```` + +*NOTE: If LND master branch is already a version ahead .. use the rpc.proto from the version tagged branch.* + +Now copy the generated RPC libs per SCP over to your Laptop and add them to the `/home/admin/config.scripts/lndlibs`. + diff --git a/home.admin/config.scripts/lnd060libs/__init__.py b/home.admin/config.scripts/lndlibs/__init__.py similarity index 100% rename from home.admin/config.scripts/lnd060libs/__init__.py rename to home.admin/config.scripts/lndlibs/__init__.py diff --git a/home.admin/config.scripts/lnd060libs/rpc.proto b/home.admin/config.scripts/lndlibs/rpc.proto similarity index 100% rename from home.admin/config.scripts/lnd060libs/rpc.proto rename to home.admin/config.scripts/lndlibs/rpc.proto diff --git a/home.admin/config.scripts/lnd060libs/rpc_pb2.py b/home.admin/config.scripts/lndlibs/rpc_pb2.py similarity index 100% rename from home.admin/config.scripts/lnd060libs/rpc_pb2.py rename to home.admin/config.scripts/lndlibs/rpc_pb2.py diff --git a/home.admin/config.scripts/lnd060libs/rpc_pb2.pyc b/home.admin/config.scripts/lndlibs/rpc_pb2.pyc similarity index 100% rename from home.admin/config.scripts/lnd060libs/rpc_pb2.pyc rename to home.admin/config.scripts/lndlibs/rpc_pb2.pyc diff --git a/home.admin/config.scripts/lnd060libs/rpc_pb2_grpc.py b/home.admin/config.scripts/lndlibs/rpc_pb2_grpc.py similarity index 100% rename from home.admin/config.scripts/lnd060libs/rpc_pb2_grpc.py rename to home.admin/config.scripts/lndlibs/rpc_pb2_grpc.py diff --git a/home.admin/config.scripts/lnd060libs/rpc_pb2_grpc.pyc b/home.admin/config.scripts/lndlibs/rpc_pb2_grpc.pyc similarity index 100% rename from home.admin/config.scripts/lnd060libs/rpc_pb2_grpc.pyc rename to home.admin/config.scripts/lndlibs/rpc_pb2_grpc.pyc