1
0
mirror of https://github.com/lightning/bolts.git synced 2025-01-18 13:22:35 +01:00

Bolt 00: Added Internal Links to Glossary (#637)

This commit is contained in:
Hugo Doyon 2019-07-15 04:01:15 -04:00 committed by Bastien Teinturier
parent ea588805c7
commit ffeece3dab

View File

@ -84,12 +84,12 @@ See [BOLT #11: Invoice Protocol for Lightning Payments](11-payment-encoding.md)
## Glossary and Terminology Guide ## Glossary and Terminology Guide
* *Announcement*: * #### *Announcement*:
* A gossip message sent between *peers* intended to aid the discovery of a *channel* or a *node*. * A gossip message sent between *[peers](#peers)* intended to aid the discovery of a *[channel](#channel)* or a *[node](#node)*.
* `chain_hash`: * #### `chain_hash`:
* The uniquely identifying hash of the target blockchain (usually the genesis hash). * The uniquely identifying hash of the target blockchain (usually the genesis hash).
This allows *nodes* to create and reference *channels* on This allows *[nodes](#node)* to create and reference *channels* on
several blockchains. Nodes are to ignore any messages that reference a several blockchains. Nodes are to ignore any messages that reference a
`chain_hash` that are unknown to them. Unlike `bitcoin-cli`, the hash is `chain_hash` that are unknown to them. Unlike `bitcoin-cli`, the hash is
not reversed but is used directly. not reversed but is used directly.
@ -98,179 +98,180 @@ See [BOLT #11: Invoice Protocol for Lightning Payments](11-payment-encoding.md)
(encoded in hex): (encoded in hex):
`6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000`. `6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000`.
* *Channel*: * #### *Channel*:
* A fast, off-chain method of mutual exchange between two *peers*. * A fast, off-chain method of mutual exchange between two *[peers](#peers)*.
To transact funds, peers exchange signatures to create an updated *commitment transaction*. To transact funds, peers exchange signatures to create an updated *[commitment transaction](#commitment-transaction)*.
* _See closure methods: mutual close, revoked transaction close, unilateral close_ * _See closure methods: [mutual close](#mutual-close), [revoked transaction close](#revoked-transaction-close), [unilateral close](#unilateral-close)_
* _See related: route_ * _See related: [route](#route)_
* *Closing transaction*: * #### *Closing transaction*:
* A transaction generated as part of a _mutual close_. A closing transaction is similar to a _commitment transaction_, but with no pending payments. * A transaction generated as part of a *[mutual close](#mutual-close)*. A closing transaction is similar to a _commitment transaction_, but with no pending payments.
* _See related: commitment transaction, funding transaction, penalty transaction_ * _See related: [commitment transaction](#commitment-transaction), [funding transaction](#funding-transaction), [penalty transaction](#penalty-transaction)_
* *Commitment number*: * #### *Commitment number*:
* A 48-bit incrementing counter for each *commitment transaction*; counters * A 48-bit incrementing counter for each *[commitment transaction](#commitment-transaction)*; counters
are independent for each *peer* in the *channel* and start at 0. are independent for each *peer* in the *channel* and start at 0.
* _See container: commitment transaction_ * _See container: [commitment transaction](#commitment-transaction)_
* _See related: closing transaction, funding transaction, penalty transaction_ * _See related: [closing transaction](#closing-transaction), [funding transaction](#funding-transaction), [penalty transaction](#penalty-transaction)_
* *Commitment revocation private key*: * #### *Commitment revocation private key*:
* Every *commitment transaction* has a unique commitment revocation private-key * Every *[commitment transaction](#commitment-transaction)* has a unique commitment revocation private-key
value that allows the other *peer* to spend all outputs value that allows the other *peer* to spend all outputs
immediately: revealing this key is how old commitment immediately: revealing this key is how old commitment
transactions are revoked. To support revocation, each output of the transactions are revoked. To support revocation, each output of the
commitment transaction refers to the commitment revocation public key. commitment transaction refers to the commitment revocation public key.
* _See container: commitment transaction_ * _See container: [commitment transaction](#commitment-transaction)_
* _See originator: per-commitment secret_ * _See originator: [per-commitment secret](#per-commitment-secret)_
* *Commitment transaction*: * #### *Commitment transaction*:
* A transaction that spends the *funding transaction*. * A transaction that spends the *[funding transaction](#funding-transaction)*.
Each *peer* holds the other peer's signature for this transaction, so that each Each *peer* holds the other peer's signature for this transaction, so that each
always has a commitment transaction that it can spend. After a new always has a commitment transaction that it can spend. After a new
commitment transaction is negotiated, the old one is *revoked*. commitment transaction is negotiated, the old one is *revoked*.
* _See parts: commitment number, commitment revocation private key, HTLC, per-commitment secret, outpoint_ * _See parts: [commitment number](#commitment-number), [commitment revocation private key](#commitment-revocation-private-key), [HTLC](#HTLC-Hashed-Time-Locked-Contract), [per-commitment secret](#per-commitment-secret), [outpoint](#outpoint)_
* _See related: closing transaction, funding transaction, penalty transaction_ * _See related: [closing transaction](#closing-transaction), [funding transaction](#funding-transaction), [penalty transaction](#penalty-transaction)_
* _See types: revoked commitment transaction_ * _See types: [revoked commitment transaction](#revoked-commitment-transaction)_
* *Final node*: * #### *Final node*:
* The final recipient of a packet that is routing a payment from an _origin node_ through some number of _hops_. It is also the final *receiving peer* in a chain. * The final recipient of a packet that is routing a payment from an *[origin node](#origin-node)* through some number of *[hops](#hop)*. It is also the final *[receiving peer](#receiving-peer)* in a chain.
* _See category: node_ * _See category: [node](#node)_
* _See related: origin node, processing node_ * _See related: [origin node](#origin-node), [processing node](#processing-node)_
* *Funding transaction*: * #### *Funding transaction*:
* An irreversible on-chain transaction that pays to both *peers* on a *channel*. * An irreversible on-chain transaction that pays to both *[peers](#peers)* on a *[channel](#channel)*.
It can only be spent by mutual consent. It can only be spent by mutual consent.
* _See related: closing transaction, commitment transaction, penalty transaction_ * _See related: [closing transaction](#closing-transaction), [commitment transaction](#commitment-transaction), [penalty transaction](#penalty-transaction)_
* *Hop*: * #### *Hop*:
* A *node*. Generally, an intermediate node lying between an *origin node* and a *final node*. * A *[node](#node)*. Generally, an intermediate node lying between an *[origin node](#origin-node)* and a *[final node](#final-node)*.
* _See category: node_ * _See category: [node](#node)_
* *HTLC*: Hashed Time Locked Contract. * #### *HTLC*: Hashed Time Locked Contract.
* A conditional payment between two *peers*: the recipient can spend * A conditional payment between two *[peers](#peers)*: the recipient can spend
the payment by presenting its signature and a *payment preimage*, the payment by presenting its signature and a *payment preimage*,
otherwise the payer can cancel the contract by spending it after otherwise the payer can cancel the contract by spending it after
a given time. These are implemented as outputs from the a given time. These are implemented as outputs from the
*commitment transaction*. *[commitment transaction](#commitment-transaction)*.
* _See container: commitment transaction_ * _See container: [commitment transaction](#commitment-transaction)_
* _See parts: Payment hash, Payment preimage_ * _See parts: [Payment hash](#Payment-hash), [Payment preimage](#Payment-preimage)_
* *Invoice*: A request for funds on the Lightning Network, possibly * #### *Invoice*: A request for funds on the Lightning Network, possibly
including payment type, payment amount, expiry, and other including payment type, payment amount, expiry, and other
information. This is how payments are made on the Lightning information. This is how payments are made on the Lightning
Network, rather than using Bitcoin-style addresses. Network, rather than using Bitcoin-style addresses.
* *It's ok to be odd*: * #### *It's ok to be odd*:
* A rule applied to some numeric fields that indicates either optional or * A rule applied to some numeric fields that indicates either optional or
compulsory support for features. Even numbers indicate that both endpoints compulsory support for features. Even numbers indicate that both endpoints
MUST support the feature in question, while odd numbers indicate MUST support the feature in question, while odd numbers indicate
that the feature MAY be disregarded by the other endpoint. that the feature MAY be disregarded by the other endpoint.
* *MSAT*: * #### *MSAT*:
* A millisatoshi, often used as a field name. * A millisatoshi, often used as a field name.
* *Mutual close*: * #### *Mutual close*:
* A cooperative close of a *channel*, accomplished by broadcasting an unconditional * A cooperative close of a *[channel](#channel)*, accomplished by broadcasting an unconditional
spend of the *funding transaction* with an output to each *peer* spend of the *[funding transaction](#funding-transaction)* with an output to each *peer*
(unless one output is too small, and thus is not included). (unless one output is too small, and thus is not included).
* _See related: revoked transaction close, unilateral close_ * _See related: [revoked transaction close](#revoked-transaction-close), [unilateral close](#unilateral-close)_
* *Node*: * #### *Node*:
* A computer or other device that is part of the Lightning network. * A computer or other device that is part of the Lightning network.
* _See related: peers_ * _See related: [peers](#peers)_
* _See types: final node, hop, origin node, processing node, receiving node, sending node_ * _See types: [final node](#final-node), [hop](#hop), [origin node](#origin-node), [processing node](#processing-node), [receiving node](#receiving-node), [sending node](#sending-node)_
* *Origin node*: * #### *Origin node*:
* The _node_ that originates a packet that will route a payment through some number of _hops_ to a _final node_. It is also the first _sending peer_ in a chain. * The *[node](#node)* that originates a packet that will route a payment through some number of [hops](#hop) to a *[final node](#final-node)*. It is also the first [sending peer](#sending-peer) in a chain.
* _See category: node_ * _See category: [node](#node)_
* _See related: final node, processing node_ * _See related: [final node](#final-node), [processing node](#processing-node)_
* *Outpoint*: * #### *Outpoint*:
* A transaction hash and output index that uniquely identify an unspent transaction output. Needed to compose a new transaction, as an input. * A transaction hash and output index that uniquely identify an unspent transaction output. Needed to compose a new transaction, as an input.
* _See related: funding transaction, commitment transaction_ * _See related: [funding transaction](#funding-transaction), [commitment transaction](#commitment-transaction)_
* *Payment hash*: * #### *Payment hash*:
* The *HTLC* contains the payment hash, which is the hash of the * The *[HTLC](#HTLC-Hashed-Time-Locked-Contract)* contains the payment hash, which is the hash of the
*payment preimage*. *[payment preimage](#Payment-preimage)*.
* _See container: HTLC_ * _See container: [HTLC](#HTLC-Hashed-Time-Locked-Contract)_
* _See originator: payment preimage_ * _See originator: [Payment preimage](#Payment-preimage)_
* *Payment preimage*: * #### *Payment preimage*:
* Proof that payment has been received, held by * Proof that payment has been received, held by
the final recipient, who is the only person who knows this the final recipient, who is the only person who knows this
secret. The final recipient releases the preimage in order to secret. The final recipient releases the preimage in order to
release funds. The payment preimage is hashed as the *payment hash* release funds. The payment preimage is hashed as the *[payment hash](#Payment-hash)*
in the *HTLC*. in the *[HTLC](#HTLC-Hashed-Time-Locked-Contract)*.
* _See container: HTLC_ * _See container: [HTLC](#HTLC-Hashed-Time-Locked-Contract)_
* _See derivation: payment hash_ * _See derivation: [payment hash](#Payment-hash)_
* *Peers*: * #### *Peers*:
* Two *nodes* that are in communication with each other. * Two *[nodes](#node)* that are in communication with each other.
* Two peers may gossip with each other prior to setting up a channel. * Two peers may gossip with each other prior to setting up a channel.
* Two peers may establish a *channel* through which they transact. * Two peers may establish a *[channel](#channel)* through which they transact.
* _See related: node_ * _See related: [node](#node)_
* *Penalty transaction*: * #### *Penalty transaction*:
* A transaction that spends all outputs of a *revoked commitment * A transaction that spends all outputs of a *[revoked commitment
transaction*, using the *commitment revocation private key*. A *peer* uses this transaction](#revoked-commitment-transaction)*, using the *commitment revocation private key*. A *[peer](#peers)* uses this
if the other peer tries to "cheat" by broadcasting a *revoked if the other peer tries to "cheat" by broadcasting a *[revoked commitment
commitment transaction*. transaction](#revoked-commitment-transaction)*.
* _See related: closing transaction, commitment transaction, funding transaction_ * _See related: [closing transaction](#closing-transaction), [commitment transaction](#commitment-transaction), [funding transaction](#funding-transaction)_
* *Per-commitment secret*: * #### *Per-commitment secret*:
* Every *commitment transaction* derives its keys from a per-commitment secret, * Every *[commitment transaction](#commitment-transaction)* derives its keys from a per-commitment secret,
which is generated such that the series of per-commitment secrets which is generated such that the series of per-commitment secrets
for all previous commitments can be stored compactly. for all previous commitments can be stored compactly.
* _See container: commitment transaction_ * _See container: [commitment transaction](#commitment-transaction)_
* _See derivation: commitment revocation private key_ * _See derivation: [commitment revocation private key](#commitment-revocation-private-key)_
* *Processing node*: * #### *Processing node*:
* A *node* that is processing a packet that originated with an *origin node* and that is being sent toward a *final node* in order to route a payment. It acts as a _receiving peer_ to receive the message, then a _sending peer_ to send on the packet. * A *[node](#node)* that is processing a packet that originated with an *[origin node](#origin-node)* and that is being sent toward a *[final node](#final-node)* in order to route a payment. It acts as a *[receiving peer](#receiving-peer)* to receive the message, then a [sending peer](#sending-peer) to send on the packet.
* _See category: node_ * _See category: [node](#node)_
* _See related: final node, origin node_ * _See related: [final node](#final-node), [origin node](#origin-node)_
* *Receiving node*: * #### *Receiving node*:
* A *node* that is receiving a message. * A *[node](#node)* that is receiving a message.
* _See category: node_ * _See category: [node](#node)_
* _See related: sending node_ * _See related: [sending node](#sending-node)_
* *Receiving peer*: * #### *Receiving peer*:
* A *node* that is receiving a message from a directly connected *peer*. * A *[node](#node)* that is receiving a message from a directly connected *peer*.
* _See category: peer_ * _See category: [peer](#Peers)_
* _See related: sending peer_ * _See related: [sending peer](#sending-peer)_
* *Revoked commitment transaction*: * #### *Revoked commitment transaction*:
* An old *commitment transaction* that has been revoked because a new commitment transaction has been negotiated. * An old *[commitment transaction](#commitment-transaction)* that has been revoked because a new commitment transaction has been negotiated.
* _See category: commitment transaction_ * _See category: [commitment transaction](#commitment-transaction)_
* *Revoked transaction close*: * #### *Revoked transaction close*:
* An invalid close of a *channel*, accomplished by broadcasting a *revoked * An invalid close of a *[channel](#channel)*, accomplished by broadcasting a *revoked
commitment transaction*. Since the other *peer* knows the commitment transaction*. Since the other *peer* knows the
*commitment revocation secret key*, it can create a *penalty transaction*. *commitment revocation secret key*, it can create a *[penalty transaction](#penalty-transaction)*.
* _See related: mutual close, unilateral close_ * _See related: [mutual close](#mutual-close), [unilateral close](#unilateral-close)_
* *Route*: A path across the Lightning Network that enables a payment * #### *Route*:
from an *origin node* to a *final node* across one or more * A path across the Lightning Network that enables a payment
*hops*. from an *origin node* to a *[final node](#final-node)* across one or more
* _See related: channel_ *[hops](#hop)*.
* _See related: [channel](#channel)_
* *Sending node*: * #### *Sending node*:
* A *node* that is sending a message. * A *[node](#node)* that is sending a message.
* _See category: node_ * _See category: [node](#node)_
* _See related: receiving node_ * _See related: [receiving node](#receiving-node)_
* *Sending peer*: * #### *Sending peer*:
* A *node* that is sending a message to a directly connected *peer*. * A *[node](#node)* that is sending a message to a directly connected *peer*.
* _See category: peer_ * _See category: [peer](#Peers)_
* _See related: receiving peer_. * _See related: [receiving peer](#receiving-peer)_.
* *Unilateral close*: * #### *Unilateral close*:
* An uncooperative close of a *channel*, accomplished by broadcasting a * An uncooperative close of a *[channel](#channel)*, accomplished by broadcasting a
*commitment transaction*. This transaction is larger (i.e. less *[commitment transaction](#commitment-transaction)*. This transaction is larger (i.e. less
efficient) than a *closing transaction*, and the *peer* whose efficient) than a *[closing transaction](#closing-transaction)*, and the *[peer](#peers)* whose
commitment is broadcast cannot access its own outputs for some commitment is broadcast cannot access its own outputs for some
previously-negotiated duration. previously-negotiated duration.
* _See related: mutual close, revoked transaction close_ * _See related: [mutual close](#mutual-close), [revoked transaction close](#revoked-transaction-close)_
## Theme Song ## Theme Song
@ -299,7 +300,7 @@ See [BOLT #11: Invoice Protocol for Lightning Payments](11-payment-encoding.md)
Then kaboom: we'll hit the moon -- release Lightning! Then kaboom: we'll hit the moon -- release Lightning!
(Go, go, go, go; go, go, go, go, go, go) (Go, go, go, go; go, go, go, go, go, go)
We'll have QR codes, and smartphone apps, oh yeah. We'll have QR codes, and smartphone apps, oh yeah.
(Ooo ooo ooo ooo ooo ooo ooo) (Ooo ooo ooo ooo ooo ooo ooo)
P2P messaging, and passive incomes, oh yeah. P2P messaging, and passive incomes, oh yeah.