Skip to content

Releases: lightninglabs/loop

loop v0.2-alpha

26 Jun 17:11
v0.2-alpha
7bcd7f0
Compare
Choose a tag to compare

This is the first second release of Lightning Loop! This new release enables Loop In on mainnet, and also exposes some additional code used to build the loop daemon as an external package that others can use. Check out our latest blog post for more details on Loop In, and the future of Lightning Loop.

Loop In

At a high-level a Loop In swap can be used to:

  • Refilling depleted channels with funds from cold-wallets or exchange withdrawals
  • Servicing off-chain Lightning withdrawals using on-chain payments, with no funds in channels required
  • As a failsafe payment method that can be used when channel liquidity along a route is insufficient

A new command has been added to the loop cli command to allow users to drive Loop In swaps:

NAME:
   loop in - perform an on-chain to off-chain swap (loop in)

USAGE:
   loop in [command options] amt

DESCRIPTION:

    Send the amount in satoshis specified by the amt argument off-chain.

OPTIONS:
   --amt value  the amount in satoshis to loop in (default: 0)
   --external   expect htlc to be published externally

The --external argument allows the on-chain HTLC transacting to be published externally. This allows for a number of use cases like using this address to withdraw from an exchange into your Lightning channel!

Additionally, the gRPC API (and REST!) docs have also been updated.

Loop there it is!! ⚡️🔁

Verifying the Release

In order to verify the release, you'll need to have gpg or gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:

curl https://keybase.io/roasbeef/pgp_keys.asc | gpg --import

Once you have his PGP key you can verify the release (assuming manifest-v0.1-alpha.txt and manifest-v0.1-alpha.txt.sig are in the current directory) with:

gpg --verify manifest-v0.2-alpha.txt

You should see the following if the verification was successful:

gpg: assuming signed data in 'manifest-v0.2-alpha.txt'
gpg: Signature made Wed Jun 26 09:56:58 2019 PDT
gpg:                using RSA key F8037E70C12C7A263C032508CE58F7F8E20FD9A2
gpg: Good signature from "Olaoluwa Osuntokun <laolu32@gmail.com>" [ultimate]

That will verify the signature on the main manifest page which ensures integrity and authenticity of the binaries you've downloaded locally. Next, depending on your operating system you should then re-calculate the sha256 sum of the binary, and compare that with the following hashes (which are included in the manifest file):

de97a2e33fcce9650911f8976ed9089d061a1d5fb374bdfd3be0d6101871585d  loop-darwin-386-v0.2-alpha.tar.gz
666a5910757cb15dd2a62ac009b31359a97f4f1c83803d4028d10d23db6ee587  loop-darwin-amd64-v0.2-alpha.tar.gz
4a06d43e48e7537975a92d25ac187b78a74426976ffd36bb1efaeb83bae7aa4f  loop-dragonfly-amd64-v0.2-alpha.tar.gz
f6cf356db4060d8c90b91dc1d8547472b255ceb8aae2197f531a177a285f60fc  loop-freebsd-386-v0.2-alpha.tar.gz
74fdb8d3a8e0a91cfeabe5e06f2be386a68e4524fa42d9c042b9a2030499a76d  loop-freebsd-amd64-v0.2-alpha.tar.gz
d500f36eefc1e1ee63b8259d4eefcd64f34b295781956559bd52389b5a37a98b  loop-freebsd-arm-v0.2-alpha.tar.gz
d2d01f9a8d1483173c5f1618477ff1929e8aa5e322849091d7b86694fedbf0bb  loop-linux-386-v0.2-alpha.tar.gz
da92445ec5e754da3f379e85310d697f3609a17e6639d1251a479a09fc0c16e1  loop-linux-amd64-v0.2-alpha.tar.gz
04edae2cbdb6943b70b13cbc678901d26f4f06767f60f591f7c7d791c8b5925f  loop-linux-arm64-v0.2-alpha.tar.gz
5fae0185f8849364af9b998609d002f5e226d3e937dabfd56d1474415f6555db  loop-linux-armv6-v0.2-alpha.tar.gz
931a43c8a936db0a3a6a3d099b67d953b69344259bfa7d37faac985341ff27e9  loop-linux-armv7-v0.2-alpha.tar.gz
757ae30b349f8fc209f7df20e1b6010814d0dd279a3717b8c7ba5cb7a092103b  loop-linux-mips64-v0.2-alpha.tar.gz
900c8ce735ac94f1d35c179e4387cc9292f261be685eb57b865d772bd668d8ec  loop-linux-mips64le-v0.2-alpha.tar.gz
aeb3d2f882405308827974515ea5d652d5e6d72188165ab315dbbb4c7402bc3f  loop-linux-ppc64-v0.2-alpha.tar.gz
0d072fd9ed648de679f46ee959a3aef1ae9e025d756140e432df2a51bfe57221  loop-netbsd-386-v0.2-alpha.tar.gz
f26cedf2e8a38b175b47a6b6101edab99033e4776c6de21306cdc793e6dc0b0b  loop-netbsd-amd64-v0.2-alpha.tar.gz
3ea2bb1482c78d2bb45358c3de7961670b5ed64a231ec9a2dc2b6ba13a3e76a6  loop-openbsd-386-v0.2-alpha.tar.gz
7a67ae9805beb8e43bd257e8355f8c471bbc740b1b2f1bbf8f834d50312299fe  loop-openbsd-amd64-v0.2-alpha.tar.gz
8f15d5c5f56bd19952361ee27b1821306d634bbe8799e52ab36a09f8c151ff6d  loop-source-v0.2-alpha.tar.gz
99de0a0e0464a5d7910e6ec4c5cdc881db278bf1bbb6095d5aec7c7a033aca0f  loop-windows-386-v0.2-alpha.zip
fb1e4dca3728a2608dce560385bf6e07cb319d27f4d7cfeb0a4aaf00b1cc2a4c  loop-windows-amd64-v0.2-alpha.zip
47b208033931c22fd6b1b23b723d49e18359709cb6b29a3f2623e6f80179bfbf  vendor.tar.gz

One can use the shasum -a 256 <file name here> tool in order to re-compute the sha256 hash of the target binary for your operating system. The produced hash should be compared with the hashes listed above and they should match exactly.

Finally, you can also verify the tag itself with the following command:

git verify-tag v0.2-alpha

Building the Contained Release

With this new version of loop, we've modified our release process to ensure the bundled release is now fully self contained. As a result, with only the attached payload with this release, users will be able to rebuild the target release themselves without having to fetch any of the dependancies. Note that at this stage, binaries aren't yet fully reproducible (even with
go modules). This is due to the fact that by default, Go will include the full directory path where the binary was built in the binary itself. As a result, unless your file system exactly mirrors the machine used to build the binary, you'll get a different binary, as it includes artifacts from your local file system. This will be fixed in go1.13, and before then we may modify our release system to do this automatically.

In order to re-build from scratch, assuming that vendor.tar.gz and loop-source-v0.1-alpha.tar.gz are in the current directory:

tar -xvzf vendor.tar.gz
tar -xvzf loop-source-v0.1-alpha.tar.gz
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loop
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loopd

The -mod=vendor flag tells the go build command that it doesn't need to fetch the dependencies, and instead, they're all enclosed in the local vendor directory.

Contributors (Alphabetical Order)

Joost Jager
Olaoluwa Osuntokun
Valentine Wallace

v0.1.2-alpha

03 May 22:38
v0.1.2-alpha
Compare
Choose a tag to compare

Patch release for Loop client with fixes:

  • No more need to regenerate macaroons
  • Fixes issue that required specifying testnet remote service URL directly
  • Reduce max routing fee

loop v0.1.1-alpha

17 Apr 19:59
v0.1.1-alpha
3d0d733
Compare
Choose a tag to compare

This is a minor release of the Lightning Loop Go client.

Includes changes to:

  • Fix monitoring exception
  • Add testnet support for Loop In (on-chain to off-chain swaps)
  • Add amt as a keyword argument
  • Documentation updates

The Loop In implementation can be kicked off using the loop in command:

⛰   loop in -h
NAME:
   loop in - perform an on-chain to off-chain swap (loop in)

USAGE:
   loop in [command options] amt

DESCRIPTION:

    Send the amount in satoshis specified by the amt argument off-chain.

OPTIONS:
   --amt value  the amount in satoshis to loop in (default: 0)
   --external   expect htlc to be published externally

The --external flag is of note as it allows the HTLC to be paid by a wallet other then lnd. This allows for users to do things like top-off channel from another wallet, or withdrawal funds from an exchange directly into one's channel. It can also be used to obtain an address to give to someone else, which once paid and Looped In, is credited to your channel!

Verifying the Release

In order to verify the release, you'll need to have gpg or gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:

curl https://keybase.io/roasbeef/pgp_keys.asc | gpg --import

Once you have his PGP key you can verify the release (assuming manifest-v0.1.1-alpha.txt and manifest-v0.1.1-alpha.txt.sig are in the current directory) with:

gpg --verify manifest-v0.1.1-alpha.txt

You should see the following if the verification was successful:

gpg: assuming signed data in 'manifest-v0.1.1-alpha.txt'
gpg: Signature made Wed Apr 17 15:20:49 2019 PDT
gpg:                using RSA key F8037E70C12C7A263C032508CE58F7F8E20FD9A2
gpg: Good signature from "Olaoluwa Osuntokun <laolu32@gmail.com>" [ultimate]

That will verify the signature on the main manifest page which ensures integrity and authenticity of the binaries you've downloaded locally. Next, depending on your operating system you should then re-calculate the sha256 sum of the binary, and compare that with the following hashes (which are included in the manifest file):

d3c3db1bed3ff0fb125514d9072d621492ff2b86f4a90200e93686052f18f5bd  loop-darwin-386-v0.1.1-alpha.tar.gz
ebf461a604b681d8a5c82bae14a0620a38a9f65604ca4f532aedb44ddc7c4ea0  loop-darwin-amd64-v0.1.1-alpha.tar.gz
bc83eb2eefb91054858c2a9164fdf245848f2f861d01526261e65dbd2d8237e0  loop-dragonfly-amd64-v0.1.1-alpha.tar.gz
ece2bb8e4c477627a4485f809e7f0d1c88893e01ca7e33363784c392875f00b6  loop-freebsd-386-v0.1.1-alpha.tar.gz
496941befd46331a4551ff9ff60fe4dc1a49434c1593960f3ed53a255aca0783  loop-freebsd-amd64-v0.1.1-alpha.tar.gz
6e21b065178d9616e78a63bacdca4401f8ed36a82dbdfb0d915099af29ae29da  loop-freebsd-arm-v0.1.1-alpha.tar.gz
3264e23ffe8994bd374c961f4973eaa6288e4dce0531967de85b23b342518824  loop-linux-386-v0.1.1-alpha.tar.gz
476f26083febb42fab15fa263048cf8bddcc86671aeaa98e1b74f5c422ebaee4  loop-linux-amd64-v0.1.1-alpha.tar.gz
9f13fb6cc9df51501e4c9560da96d96a9d0f385e600eb77fdbfdb97fb731a4a6  loop-linux-arm64-v0.1.1-alpha.tar.gz
53faaf225412c4f9dc16d437252f666243dba13f9135f07886ec019e5b109ebb  loop-linux-armv6-v0.1.1-alpha.tar.gz
4e8c04d1585476a8efb02805181dde80be0a1b45816d24f004924b6756298dd5  loop-linux-armv7-v0.1.1-alpha.tar.gz
a21b05379615a6d7d4de68c3edb2f5a341f23dd0f4895b646b5272e6b99e98d2  loop-linux-mips64-v0.1.1-alpha.tar.gz
047c2a9e62b477db7eb8c4f88a5bda68bcdd10bb396d4ba66ff34328a7b9e6d8  loop-linux-mips64le-v0.1.1-alpha.tar.gz
bd25a16e27fb3140be8ae62a8df1076a80ceac443420738d6261f0c375e60bb5  loop-linux-ppc64-v0.1.1-alpha.tar.gz
ef1a37d85c8ae1eb7fba34a66613344042f26867ab838017b3995ef4d7d8cd95  loop-netbsd-386-v0.1.1-alpha.tar.gz
1962c2b174bc401c5362ca1f7282e8129b6958dae08a1fd0248de6505d4b6c4c  loop-netbsd-amd64-v0.1.1-alpha.tar.gz
be27b8c84fac5c0e492aa7b395e3b344f8e0c7170525610e2df51238f8fea7de  loop-openbsd-386-v0.1.1-alpha.tar.gz
31ce199daf1af10f328af3b5d8b9cfcefc980eabffd6b91481ddf8a5d2b1e235  loop-openbsd-amd64-v0.1.1-alpha.tar.gz
406d5989ec935faf85dbdaccb88a659ba88ff35ca111b71bf769871f20139ccd  loop-source-v0.1.1-alpha.tar.gz
61395e480f7e1cecb9b945a7cad4a0b81186767474da5520dee48b6e89191f9b  loop-windows-386-v0.1.1-alpha.zip
01848825834fb4fc1c13841ffdfdc1b59b4f352d350d5b7ffbb3252885f0330d  loop-windows-amd64-v0.1.1-alpha.zip
2f0fcaca1479d04b49e85e0a3b7f70dd430cf675daaaa4b77104a83747bba3e0  vendor.tar.gz

One can use the shasum -a 256 <file name here> tool in order to re-compute the sha256 hash of the target binary for your operating system. The produced hash should be compared with the hashes listed above and they should match exactly.

Finally, you can also verify the tag itself with the following command:

git verify-tag v0.1.1-alpha

Building the Contained Release

With this new version of loop, we've modified our release process to ensure the bundled release is now fully self contained. As a result, with only the attached payload with this release, users will be able to rebuild the target release themselves without having to fetch any of the dependancies. Note that at this stage, binaries aren't yet fully reproducible (even with
go modules). This is due to the fact that by default, Go will include the full directory path where the binary was built in the binary itself. As a result, unless your file system exactly mirrors the machine used to build the binary, you'll get a different binary, as it includes artifacts from your local file system. This will be fixed in go1.13, and before then we may modify our release system to do this automatically.

In order to re-build from scratch, assuming that vendor.tar.gz and loop-source-v0.1-alpha.tar.gz are in the current directory:

tar -xvzf vendor.tar.gz
tar -xvzf loop-source-v0.1-alpha.tar.gz
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loop
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loopd

The -mod=vendor flag tells the go build command that it doesn't need to fetch the dependencies, and instead, they're all enclosed in the local vendor directory.

Contributors (Alphabetical Order)

Alex Bosworth
Joost Jager
Olaoluwa Osuntokun

loop v0.1-alpha

21 Mar 01:15
v0.1-alpha
91c0e92
Compare
Choose a tag to compare

This is the first major release of Lightning Loop! This release is the first of many planned, and includes the initial base functionality for the system. Check out our blog post for a high level overview on how the Loop service works. With this new release, users can use Loop Out to free up inbound receiving bandwidth in their channels and also send coins on chain from their existing channel.

The Lightning Loop client software is similar to lnd. There's the primary daemon loopd, and its command-line interface loop. Check out the instructions in the README to get started. The loop command is very simple and at initial release has the following commands:

⛰   loop -h
NAME:
   loop - control plane for your loopd

USAGE:
   loop [global options] command [command options] [arguments...]

VERSION:
   0.1.0-alpha commit=v0.1-alpha

COMMANDS:
     out      perform an off-chain to on-chain swap (looping out)
     terms    Display the current swap terms imposed by the server.
     monitor  monitor progress of any active swaps
     quote    get a quote for the cost of a swap
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --loopd value  loopd daemon address host:port (default: "localhost:11010")
   --help, -h     show help
   --version, -v  print the version

You'll most frequently be using loop out. A sample run looks something like:

loop out 500000 --addr=bc1qnrhawnjr7fn3gd09s8gltzzjdfsxsrm2k64ze7

By specifying the optional addr flag, I tell loopd that I'd like to have the funds sent to that target address. This lets one do cool things like send directly from your channel into cold storage, or even deposit directly into an exchange or another wallet under one's control.

Once the loop has been initiated, you can use loop monitor to check on its status.

The other primary way to interact with Lightning Loop is via the gRPC API. This lets existing lapps, services, and businesses drive Loop programmatically in a similar fashion to how they interact with lnd today. We'll have more example uses cases, documentation, and explainers in the near future.

Loop there it is!! ⚡️🔁

Verifying the Release

In order to verify the release, you'll need to have gpg or gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:

curl https://keybase.io/roasbeef/pgp_keys.asc | gpg --import

Once you have his PGP key you can verify the release (assuming manifest-v0.1-alpha.txt and manifest-v0.1-alpha.txt.sig are in the current directory) with:

gpg --verify manifest-v0.1-alpha.txt

You should see the following if the verification was successful:

gpg: assuming signed data in 'manifest-v0.1-alpha.txt'
gpg: Signature made Wed Mar 20 20:22:49 2019 PDT
gpg:                using RSA key F8037E70C12C7A263C032508CE58F7F8E20FD9A2
gpg: Good signature from "Olaoluwa Osuntokun <laolu32@gmail.com>" [ultimate]

That will verify the signature on the main manifest page which ensures integrity and authenticity of the binaries you've downloaded locally. Next, depending on your operating system you should then re-calculate the sha256 sum of the binary, and compare that with the following hashes (which are included in the manifest file):

5c63d870d007d4dd9d0480a0ebc1fee83f1099acac12a4bdd121d3882b772bfb  loop-darwin-386-v0.1-alpha.tar.gz
98fc299e107c89df4875af0f2fe46957b228321036c60661507ecdbb9ba1a56a  loop-darwin-amd64-v0.1-alpha.tar.gz
761c5af296e62b2eaa9421e9d36a258e9f435a2bc53df33b950b41d3a9eef89d  loop-dragonfly-amd64-v0.1-alpha.tar.gz
269997eba3daebeeac7edb82739b3406df3e52b3345c61124c60b145b9080c0f  loop-freebsd-386-v0.1-alpha.tar.gz
38fb7a32c9c36f80cac9a47e448338dedde53554f569454202236d278654eadf  loop-freebsd-amd64-v0.1-alpha.tar.gz
7226a8c5171c6e10adf754d1c3acd81dee84497d170877981ea441108368fee7  loop-freebsd-arm-v0.1-alpha.tar.gz
e07552fd11967743262a678060369f5fbe17bcde3c4ee6cc21196618248afb9c  loop-linux-386-v0.1-alpha.tar.gz
816a7050c91652a8e5b881e939c1bc70e06fe23e8309ac80ef5d38fda06969b7  loop-linux-amd64-v0.1-alpha.tar.gz
75a9ce3f605359735d39d9a0fb5037676c6ac29a70d7db5bc75fc1e5e3fcc465  loop-linux-arm64-v0.1-alpha.tar.gz
b7c7668c90f1d67689a9e557346e32bf10c169ace220cd507ae4ee63f64b12d1  loop-linux-armv6-v0.1-alpha.tar.gz
8aad519ff927643c35968bc9eb4e91a5a1f063ebf60e50b12c05f745d3602540  loop-linux-armv7-v0.1-alpha.tar.gz
5b3be8f2ab4acff7e854a794ecde59abd7feed3002bb13177f89c1cd1c9419e7  loop-linux-mips64-v0.1-alpha.tar.gz
aa3da5049eb2d411912aba8386dcc241f9db2b41dd4571ddbea80cf07f3fbc20  loop-linux-mips64le-v0.1-alpha.tar.gz
1a6a8e8e93df6c02eac1e61d4e9f3a518bc2c2a096deb0b77f0e5a6c0afb553d  loop-linux-ppc64-v0.1-alpha.tar.gz
85e4f4e32783aad5e7e53125ca4c2efecaf997b24e81e54db0cc380cdf876cf9  loop-netbsd-386-v0.1-alpha.tar.gz
8896df3499e9287177b5eacb2fc6b964e6dec698807f49582cbccbd3b7088878  loop-netbsd-amd64-v0.1-alpha.tar.gz
133b069ad151adeac9c62596ba507f9ed425cfe6670a03e2e5dea6316e522f18  loop-openbsd-386-v0.1-alpha.tar.gz
a9d1f80d34f698450d413844ff1a4536a4377faa6debd7c16bcfde94964cd628  loop-openbsd-amd64-v0.1-alpha.tar.gz
94c35abdcafeebb17f19850b5e88031926116cce8bd22cdf56d905716a0063d8  loop-source-v0.1-alpha.tar.gz
5cd5171f469e639ece6b37a2ff35bae3dac6d1b0a9490ed9e3f90e4f1fcadb97  loop-windows-386-v0.1-alpha.zip
b139416e426868b060ea6fd28ba840398a6e45ad492eac50297462d4391bc0ce  loop-windows-amd64-v0.1-alpha.zip
e2ab0d8f7ec07468ea46e551f17521799147a01f48a3f2c5b1c2d62efd9512a5  vendor.tar.gz

One can use the shasum -a 256 <file name here> tool in order to re-compute the sha256 hash of the target binary for your operating system. The produced hash should be compared with the hashes listed above and they should match exactly.

Finally, you can also verify the tag itself with the following command:

git verify-tag v0.1-alpha

Building the Contained Release

With this new version of loop, we've modified our release process to ensure the bundled release is now fully self contained. As a result, with only the attached payload with this release, users will be able to rebuild the target release themselves without having to fetch any of the dependancies. Note that at this stage, binaries aren't yet fully reproducible (even with
go modules). This is due to the fact that by default, Go will include the full directory path where the binary was built in the binary itself. As a result, unless your file system exactly mirrors the machine used to build the binary, you'll get a different binary, as it includes artifacts from your local file system. This will be fixed in go1.13, and before then we may modify our release system to do this automatically.

In order to re-build from scratch, assuming that vendor.tar.gz and loop-source-v0.1-alpha.tar.gz are in the current directory:

tar -xvzf vendor.tar.gz
tar -xvzf loop-source-v0.1-alpha.tar.gz
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loop
GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightninglabs/loop.Commit=v0.1-alpha" ./cmd/loopd

The -mod=vendor flag tells the go build command that it doesn't need to fetch the dependencies, and instead, they're all enclosed in the local vendor directory.

Contributors (Alphabetical Order)

Alex Bosworth
Joost Jager
Olaoluwa Osuntokun
Wilmer Paulino