You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
3.0 KiB

<h1 align='center'>Advanced Usage</h1>
## Compiling Zap From Source
***Note:*** *If you have installation or compilation issues, please file a [Github issue](https://github.com/LN-Zap/zap-desktop/issues) or ping us in [Slack](https://join.slack.com/t/zaphq/shared_invite/enQtMjkyNTAxNDA3MjE2LWE3NGZjZGE5ZmI1NGQ5YTk3MGQzMTdmNDAwYjNhZTJkMWU0ZWZlNzA0MjJiNDBjMzcxYjcyMDMxNWY3OGNhYWQ).*
### Prerequisites
To compile the Zap wallet, you will need:
- **[Node.js version >= 8](https://nodejs.org)** and **[npm version >= 5](https://www.npmjs.com)**
- **[yarn](https://yarnpkg.com/lang/en/docs/install/)**
### Downloading Zap
After installing the above prerequisites, clone the repo via git:
```bash
git clone https://github.com/LN-Zap/zap-desktop.git
```
### Installing Dependencies
Install all the dependencies with yarn + install grpc:
```bash
cd zap-desktop
yarn
npm run install-grpc
```
## Lightning Network Daemon (lnd)
Zap requires `lnd` but does not store `lnd` binaries in the Github repo.
To setup `lnd` for Zap, you have two options:
- [Light Client](#Light-Client)
- [Full Bitcoin Node](#Full-Bitcoin-Node)
### Light Client
`lnd` has a light client called `neutrino` which allows you to run `lnd` without requiring a full node. This is the default configuration for the Zap wallet. To use the light client you can either use the [Lightning Labs Binary](#lightning-labs-binary) or [Compile lnd](#compile-lnd).
#### Lightning Labs Binary
***Note:*** *The Lightning Labs `lightning-app` project is different then [lnd](https://github.com/lightningnetwork/lnd)*
Download the [lnd binary](https://github.com/lightninglabs/lightning-app/tree/master/apps/desktop/bin) for your appropriate OS and copy it to the [appropriate location](#lnd-location) for your OS.
#### Compile lnd
You can [compile](https://github.com/lightningnetwork/lnd/blob/master/docs/INSTALL.md) `lnd` from source to have the latest development version. This allows you to use [`lncli`](http://dev.lightning.community/overview/#lnd-interfaces) in addition to Zap, and run a seperate `lnd` instance with [custom](http://dev.lightning.community/guides/installation/#lnd) configuration. Zap will detect the separate `lnd` instance and use it as the backend client.
For Zap to run properly without any custom `lnd` setup, copy the `lnd` binary to the [appropriate location](#lnd-location) for your OS.
The `lnd` binary can be found at `$GOPATH/bin`.
### Full Bitcoin Node
Follow the instructions on the [lnd installation](https://github.com/lightningnetwork/lnd/blob/master/docs/INSTALL.md) page.
### lnd Location
Zap expects `lnd` to be in one of these directories depending on your OS:
- macOS `resources/bin/darwin/`
- Linux `resources/bin/linux/`
- Windows `resources/bin/win32/`
On macOS and Linux, make sure the file has execute permissions:
```bash
chmod +x lnd
```
## Running Zap
### Testing
To test that everything has been installed correctly:
```bash
npm run test
```
### Running
To run Zap:
```bash
npm run dev
```
### Linting
To check linting:
```bash
npm run lint
```