Skip to content

Commit 29961bd

Browse files
Merge pull request #697 from lightninglabs/docs-lnd
Update lnd documentation
2 parents dfdc519 + b5aa5e0 commit 29961bd

File tree

5 files changed

+80
-7
lines changed

5 files changed

+80
-7
lines changed

docs/lnd/code_contribution_guidelines.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,15 @@ security and performance implications.
7777

7878
# Required Reading
7979

80-
- [Effective Go](http://golang.org/doc/effective_go.html) - The entire `lnd`
80+
- [Effective Go](https://golang.org/doc/effective_go.html) - The entire `lnd`
8181
project follows the guidelines in this document. For your code to be accepted,
8282
it must follow the guidelines therein.
8383
- [Original Satoshi Whitepaper](https://bitcoin.org/bitcoin.pdf) - This is the white paper that started it all. Having a solid
8484
foundation to build on will make the code much more comprehensible.
8585
- [Lightning Network Whitepaper](https://lightning.network/lightning-network-paper.pdf) - This is the white paper that kicked off the Layer 2 revolution. Having a good grasp of the concepts of Lightning will make the core logic within the daemon much more comprehensible: Bitcoin Script, off-chain blockchain protocols, payment channels, bidirectional payment channels, relative and absolute time-locks, commitment state revocations, and Segregated Witness.
8686
- The original LN was written for a rather narrow audience, the paper may be a bit unapproachable to many. Thanks to the Bitcoin community, there exist many easily accessible supplemental resources which can help one see how all the pieces fit together from double-spend protection all the way up to commitment state transitions and Hash Time Locked Contracts (HTLCs):
8787
- [Lightning Network Summary](https://lightning.network/lightning-network-summary.pdf)
88-
- [Understanding the Lightning Network 3-Part series](https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791)
88+
- [Understanding the Lightning Network 3-Part series](https://bitcoinmagazine.com/technical/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791)
8989
- [Deployable Lightning](https://github.com/ElementsProject/lightning/blob/master/doc/miscellaneous/deployable-lightning.pdf)
9090

9191

@@ -140,7 +140,7 @@ code works correctly when it is fed correct data as well as incorrect data
140140

141141
Go provides an excellent test framework that makes writing test code and
142142
checking coverage statistics straightforward. For more information about the
143-
test coverage tools, see the [golang cover blog post](http://blog.golang.org/cover).
143+
test coverage tools, see the [golang cover blog post](https://blog.golang.org/cover).
144144

145145
A quick summary of test practices follows:
146146
- All new code should be accompanied by tests that ensure the code behaves
@@ -168,7 +168,7 @@ extensively using the commands within our `Makefile`. As a result, we recommend
168168
- At a minimum every function must be commented with its intended purpose and
169169
any assumptions that it makes
170170
- Function comments must always begin with the name of the function per
171-
[Effective Go](http://golang.org/doc/effective_go.html)
171+
[Effective Go](https://golang.org/doc/effective_go.html)
172172
- Function comments should be complete sentences since they allow a wide
173173
variety of automated presentations such as [godoc.org](https://godoc.org)
174174
- The general rule of thumb is to look at it as if you were completely

docs/lnd/grpc/c#.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,4 +219,4 @@ client.GetInfo(new GetInfoRequest());
219219

220220
### Conclusion
221221

222-
With the above, you should have all the `lnd` related `gRPC` dependencies installed locally in your project. In order to get up to speed with `protobuf` usage from C#, see [this official `protobuf` tutorial for C#](https://developers.google.com/protocol-buffers/docs/csharptutorial). Additionally, [this official gRPC resource](http://www.grpc.io/docs/tutorials/basic/csharp.html) provides more details around how to drive `gRPC` from C#.
222+
With the above, you should have all the `lnd` related `gRPC` dependencies installed locally in your project. In order to get up to speed with `protobuf` usage from C#, see [this official `protobuf` tutorial for C#](https://developers.google.com/protocol-buffers/docs/csharptutorial). Additionally, [this official gRPC resource](https://grpc.io/docs/languages/csharp/) provides more details around how to drive `gRPC` from C#.

docs/lnd/grpc/javascript.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,9 @@ client.getInfo({}, (err, response) => {
235235
With the above, you should have all the `lnd` related `gRPC` dependencies
236236
installed locally in your project. In order to get up to speed with `protofbuf`
237237
usage from Javascript, see [this official `protobuf` reference for
238-
Javascript](https://developers.google.com/protocol-buffers/docs/reference/javascript-generated).
238+
Javascript](https://protobuf.dev/protobuf-javascript/).
239239
Additionally, [this official gRPC
240-
resource](http://www.grpc.io/docs/tutorials/basic/node.html) provides more
240+
resource](https://grpc.io/docs/languages/node/basics/) provides more
241241
details around how to drive `gRPC` from `node.js`.
242242

243243
## API documentation

docs/lnd/release-notes/release-notes-0.19.0.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
# Technical and Architectural Updates
5353
## BOLT Spec Updates
5454

55+
* Add new [lnwire](https://github.com/lightningnetwork/lnd/pull/8044) messages
56+
for the Gossip 1.75 protocol.
57+
5558
## Testing
5659
## Database
5760

docs/lnd/signing_release_candidate.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Signing a LND Release
2+
3+
When a new version of LND is released, binaries for the lnd and lncli programs
4+
are provided for various platforms and CPU architectures. The hashes of all
5+
these binaries are written into a file known as the "Manifest". This Manifest is
6+
then signed by a quorum of trusted LND contributors (see [verify-install.sh](/scripts/verify-install.sh)
7+
script for more details), ensuring that users can trust the binaries they
8+
download, knowing they haven't been modified during the automated build process.
9+
10+
To verify a release binary, users have two options:
11+
12+
* Manual Verification: Users can manually download the signature files and
13+
Manifest from GitHub LND release page, then verify the PGP signatures and
14+
hashes.
15+
16+
* Automated Verification: The LND repository provides a script,
17+
[verify-install.sh](/scripts/verify-install.sh), that automates the verification process. This script uses a
18+
set of trusted developer keys (located in the repo under [scripts/keys/](/scripts/keys)) and
19+
downloads the necessary data from the GitHub server to verify the integrity of
20+
the local lnd/lncli binaries.
21+
22+
Running [verify-install.sh](/scripts/verify-install.sh) validates that trusted developers attest to the authenticity between the lnd release binaries hosted on Github and the developer's local builds.
23+
24+
## Adding a new developer as a signer
25+
26+
When another developer is added to the trusted group of people which are
27+
allowed to sign the lnd/lncli releases, their public PGP key needs to be added to
28+
the LND repo. These keys are added in a PR in which 2 reviewers ensure the developer
29+
is in possession of the PGP key which will be added to the LND repo.
30+
(See https://github.com/lightningnetwork/lnd/pull/8788 as an example).
31+
It is important that the name of the PGP key equals the name in the
32+
[verify-install.sh](/scripts/verify-install.sh) script. See also [scripts/keys/README.md](/scripts/keys/README.md) for more information.
33+
34+
## Signing a release binary package
35+
36+
If the new developer's PGP key has been successfully added to the LND repository,
37+
through the aforementioned PR example, they are now able to provide their
38+
signature for the new release's "Manifest" file. To do so, the developer must
39+
follow these steps:
40+
41+
* Follow the build instructions at https://github.com/lightningnetwork/lnd/blob/masterdocs/release.md#building-a-new-release.
42+
43+
* After a successful build, all binaries and Manifest files, will be placed
44+
in a directory, named after the tag, created within the directory in which the build occurred. For
45+
instance, in the case mentioned above, the folder will be named
46+
`lnd-v0.18.3-beta`.
47+
Ensure that the SHA-256 hashes, in your locally-generated Manifest file, match
48+
those in the Manifest file of the official release on the LND GitHub repository.
49+
Tip: Download the official release Manifest file to your local maschine and do:
50+
`diff lnd-v0.18.3-beta/manifest-v0.18.3-beta.txt ~/Downloads/manifest-v0.18.3-beta.txt`
51+
(example command for a release candidate called `v0.18.3-beta`)
52+
Only if all hashes are identical, should you sign the release. If the digests
53+
match, see the example signing comand, assuming your PGP signing key is
54+
available on your local device:
55+
`gpg --local-user $KEYID --detach-sig --output manifest-$USERNAME-v0.18.3-beta.sig manifest-v0.18.3-beta.txt`.
56+
`USERNAME` being the name in the `[verify-install.sh](../scripts/verify-install.sh)`
57+
script and also the name of your PGP key file. The whole argument `--local-user $KEYID`
58+
is only needed if there's more than one signing key on your local machine. Be
59+
sure to substitute the TAG value `v0.18.3-beta` with the version you are
60+
currently signing.
61+
62+
* Finally, upload the signature file
63+
(e.g. manifest-USERNAME-v0.18.3-beta.sig) to the GitHub release page.
64+
Github write permissions are required to upload signatures to the LND release
65+
page. To avoid interfering with other signers who may be updating the GitHub
66+
release page, LND developers use a `KeyBase` communication channel to signal
67+
when an edit is in progress. Once your signature file is successfully uploaded
68+
and the release page is unlocked, the signing process is complete.
69+
70+
Congratulations signing the LND release 🎉.

0 commit comments

Comments
 (0)