# Getting Started with VLS in Core Lightning This guide assumes that you have successfully installed Core Lightning Network (CLN) on your machine and have Rust programming language installed as well. (To learn how to install Rust, visit [here](https://www.rust-lang.org/tools/install)). ## Introduction In this section, we will walk through the steps to clone and build the Validating Lightning Signer (VLS) from the source. ### Step 1: Clone and Build VLS Repository Firstly, open your terminal and run the following commands to clone the VLS repository from GitLab and navigate to the project directory: ```bash! >> git clone git@gitlab.com:lightning-signer/validating-lightning-signer.git >> cd validating-lightning-signer >> cargo build ``` ### Setting Up Environment Variables Next, we need to set up some environment variables that VLS uses during its runtime: ```bash! export GREENLIGHT_VERSION=`lightningd --version` export VLS_NETWORK="testnet" export BITCOIND_RPC_URL="http://<user>:<pass>@<bitcoin-ip>:<bitcoin-port>" ``` Replace user, pass, bitcoin-ip, and bitcoin-port with your actual Bitcoin RPC credentials and server information. ### Configuring Core Lightning to Use VLS Utilize the --subdaemon=SUBDAEMON:PATH option in lightningd to specify the VLS signer you wish to use. For more information, refer to the lightningd configuration documentation https://docs.corelightning.org/reference/lightningd-config#lightning-daemon-options There are several VLS signer binaries located in the target/debug directory after compiling, which include: - `remote_hsmd_socket` connects the proxy to the signer with a socket - `remote_hsmd_serial` connects the proxy to the signer with a serial connection - `remote_hsmd_inplace` contains both the proxy and signer in the same program, no communication link ### Running the Remote Signer To run a remote signer, such as `remote_hsmd_socket`, execute the following command: ``` lightningd --testnet --subdaemon="hsmd:/<your local path>/validating-lightning-signer/target/debug/remote_hsmd_socket" --bind-addr=0.0.0.0:19737 ``` Remember to replace `<your local path>` with the actual path to your VLS directory. Following this, start the remote signer with: ``` ./vlsd2 --connect http://127.0.0.1:17702 ``` Please take note that http://127.0.0.1:7701 is the default URL exposed by lightningd for the remote signer interface. By following these steps, you should have VLS configured and running with Core Lightning. Make sure to replace placeholder values in the commands with your specific configurations and paths.