lnd/mobile
carla daae8a9944
multi: wrap logger to request shutdown from signal on critical error
This commit adds a shutdown logger which will send a request for
shutdown on critical errors. It uses the signal package to request safe
shutdown of the daemon. Since we init our logs in config validation,
we add a started channel to the signal package to prevent the case where
we have a critical log after the ShutdownLogger has started but before
the daemon has started listening for intercepts. In this case, we just
ignore the shutdown request.
2020-08-24 08:54:34 +02:00
..
bindings.go multi: wrap logger to request shutdown from signal on critical error 2020-08-24 08:54:34 +02:00
gen_bindings.sh mobile: remember walletunlocker.proto 2020-08-04 14:43:08 +02:00
README.md build+routerrpc+lncli: remove routerrpc conditional compilation 2020-03-31 21:41:22 +02:00
sample_lnd.conf mobile: remove no-macaroons from sample config 2019-12-18 10:30:51 +01:00

Building mobile libraries

Prerequisites

protoc

Install the dependencies for generating protobuf definitions as stated in lnrpc docs

gomobile

Follow gomobile in order to install gomobile and dependencies.

Remember to run gomobile init (otherwise the lnd build might just hang).

Note that gomobile only supports building projects from GOPATH at this point.

falafel

Install falafel:

go get -u -v github.com/lightninglabs/falafel

Building lnd for iOS

make ios

Building lnd for Android

make android

make mobile will build both iOS and Android libs.

Libraries

After the build has succeeded, the libraries will be found in mobile/build/ios/Lndmobile.framework and mobile/build/android/Lndmobile.aar. Reference your platforms' SDK documentation for how to add the library to your project.

Generating proto definitions for your language.

In order to call the methods in the generated library, the serialized proto for the given RPC call must be provided. Similarly, the response will be a serialized proto.

In order to generate protobuf definitions for your language of choice, add the proto plugin to the protoc invocations found in gen_protos.sh. For instance to generate protos for Swift, add --swift_out=. and run make rpc.

Options

Similar to lnd, subservers can be conditionally compiled with the build by setting the tags argument:

make ios

To support subservers that have APIs with name conflicts, pass the "prefix" flag. This will add the subserver name as a prefix to each method name:

make ios prefix=1

API docs

TODO(halseth)