Skip to content

Commit 2ea3765

Browse files
authored
Merge pull request #772 from ariard/2021-01-getting-project-context
Add GLOSSARY.md and more
2 parents d529a88 + 2caf289 commit 2ea3765

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

CONTRIBUTING.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ Getting Started
3030
First and foremost, start small.
3131

3232
This doesn't mean don't be ambitious with the breadth and depth of your contributions but rather
33-
understand the project context and culture before investing an asymmetric number of hours on
33+
understand the project culture before investing an asymmetric number of hours on
3434
development compared to your merged work.
3535

36+
Browsing through the [meeting minutes](https://github.com/rust-bitcoin/rust-lightning/wiki/Meetings)
37+
is a good first step. You will learn who is working on what, how releases are drafted, what are the
38+
pending tasks to deliver, where you can contribute review bandwidth, etc.
39+
3640
Even if you have an extensive open source background or sound software engineering skills, consider
3741
that the reviewers' comprehension of the code is as much important as technical correctness.
3842

@@ -43,6 +47,8 @@ a "soft" commitment.
4347
If you're eager to increase the velocity of the dev process, reviewing other contributors work is
4448
the best you can do while waiting review on yours.
4549

50+
Also, getting familiar with the [glossary](GLOSSARY.md) will streamline discussions with regular contributors.
51+
4652
Contribution Workflow
4753
---------------------
4854

GLOSSARY.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Glossary
2+
3+
This document gathers the canonical Lightning nomenclature used by LDK contributors. Note, they may diverge from the BOLT specs or the ones used by the wider Lightning community; the test of time has revealed that it can be hard to agree on terminology. The following terms are employed with a best effort across the codebase aiming to reduce confusion.
4+
5+
### Channel Initiator
6+
7+
The channel initiator is the entity who is taking the decision to open a channel. Finalization relies upon the counterparty's channel acceptance policy. Within current protocol version, the initiator has the burden of paying channel onchain fees.
8+
9+
### Holder/Counterparty
10+
11+
Inspired by financial cryptography, a holder is an owner of a given digital value. In Lightning, the holder is the entity operating the current node, of which the interests are served by the implementation during channel operations. The counterparty is the entity participating in the channel operation as a peer, but of whom the interests are not of concern by the implementation.
12+
13+
Used across the `Channel` data structure, part of the channel-management subsystem.
14+
15+
### Broadcaster/Countersignatory
16+
17+
In Lightning, states are symmetric but punishment is asymmetric, which forces channel parties to hold different commitment transactions. At transaction construction, the broadcaster designates the entity that has the unilateral capability to broadcast the transaction. The countersignatory is the entity providing signatures for the broadcastable transaction and thus verifying it encodes the off-chain states. At any point in time, there should be two "latest" commitment transactions that have been processed by each party's implementation, one where the holder is the broadcaster and the counterparty is countersignatory, and one where the holder is the countersignatory and the counterparty is the broadcaster.
18+
19+
Used across the channel-utils library (`chan_utils.rs`).
20+
21+
### Watchtower
22+
23+
A watchtower is an external untrusted service that can only publish justice transactions. The security property of watchtowers is that if you subscribe to *N* of them, you will be safe if at least 1 does the right thing.
24+
25+
A (future) deployment configuration of the monitoring (`ChainMonitor`) subsystem.
26+
27+
### Monitor Replicas
28+
29+
An instance of a highly available distributed channel-monitor. It must have a correctly working HSM, because they have sensitive keys that can cause loss of all funds in the channel.
30+
31+
A deployment configuration of the monitoring (`ChainMonitor`) subsystem.

0 commit comments

Comments
 (0)