mirror of
https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
synced 2025-06-05 23:16:12 +00:00
fix chapter links
This commit is contained in:
parent
e2543d64b3
commit
933ed49f94
@ -43,7 +43,7 @@ If you have different levels of skill or want to learn different things, you mig
|
||||
* If you just want to read about using programming languages, jump to [Chapter Fifteen: Talking to Bitcoin](15_0_Talking_to_Bitcoind.md).
|
||||
* If you conversely don't want to do any programming, definitely skip chapters 15-17 while you're reading, and perhaps skip chapters 9-13. The rest of the course should still make sense without them.
|
||||
* If you are only interested in Lightning, zap over to [Chapter Eighteen: Understanding Your Lightning Setup](18_0_Understanding_Your_Lightning_Setup.md).
|
||||
* If you want to read the major new content added for v2 of the course (2020), following on v1 (2017), read [§3.5: Understanding the Descriptor](03_5_Understanding_the_Descriptor.md), [§4.6: Creating a SegWit Transaction](04_6_Creating_a_Segwit_Transaction.md), [Chapter 7: Expanding Bitcoin with PSBTs](07_0_Expanding_Bitcoin_Transactions_PSBTs.md), [§9.5: Scripting a P2WPKH](09_5_Scripting_a_P2WPKH.md), [§10.5: Scripting a SegWit Script](10_5_Scripting_a_Segwit_Script.md), [Chapter 14: Using Tor](14_0_Using_Tor.md), [Chapter 15: Talking to Bitcoind with C](15_0_Talking_to_Bitcoind.md), [Chapter 16: Programming with Libwally](16_0_Programming_with_Libwally.md), [Chapter Seventeen: Talking to Bitcoind with Other Languages](17_0_Talking_to_Bitcoind_Other.md), [Chapter Eighteen: Understanding ](18_0_Understanding_Your_Lightning_Setup.md), and [Chapter Nineteen: Using Lightning](19_0_Using_Lightning.md).
|
||||
* If you want to read the major new content added for v2 of the course (2020), following on v1 (2017), read [§3.5: Understanding the Descriptor](03_5_Understanding_the_Descriptor.md), [§4.6: Creating a SegWit Transaction](04_6_Creating_a_Segwit_Transaction.md), [Chapter 7: Expanding Bitcoin with PSBTs](07_0_Expanding_Bitcoin_Transactions_PSBTs.md), [§9.5: Scripting a P2WPKH](09_5_Scripting_a_P2WPKH.md), [§10.5: Scripting a SegWit Script](10_5_Scripting_a_Segwit_Script.md), [Chapter 14: Using Tor](14_0_Using_Tor.md), [Chapter 15: Using i2p], [Chapter 16: Talking to Bitcoind with C](16_0_Talking_to_Bitcoind.md), [Chapter 17: Programming with Libwally](17_0_Programming_with_Libwally.md), [Chapter 18: Talking to Bitcoind with Other Languages](18_0_Talking_to_Bitcoind_Other.md), [Chapter 19: Understanding ](19_0_Understanding_Your_Lightning_Setup.md), and [Chapter 20: Using Lightning](20_0_Using_Lightning.md).
|
||||
|
||||
## Why to Use this Course
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Chapter 15: Talking to Bitcoind with C
|
||||
# Chapter 16: Talking to Bitcoind with C
|
||||
|
||||
While working with Bitcoin Scripts, we hit the boundaries of what's possible with `bitcoin-cli`: it can't currently be used to generate transactions containing unusual scripts. Shell scripts also aren't great for some things, such as creating listener programs that are constantly polling. Fortunately, there are other ways to access the Bitcoin network: programming APIs.
|
||||
|
||||
@ -20,6 +20,6 @@ Supporting objectives include the ability to:
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Section One: Accessing Bitcoind in C with RPC Libraries](15_1_Accessing_Bitcoind_with_C.md)
|
||||
* [Section Two: Programming Bitcoind in C with RPC Libraries](15_2_Programming_Bitcoind_with_C.md)
|
||||
* [Section Three: Receiving Notifications in C with ZMQ Libraries](15_3_Receiving_Bitcoind_Notifications_with_C.md)
|
||||
* [Section One: Accessing Bitcoind in C with RPC Libraries](16_1_Accessing_Bitcoind_with_C.md)
|
||||
* [Section Two: Programming Bitcoind in C with RPC Libraries](16_2_Programming_Bitcoind_with_C.md)
|
||||
* [Section Three: Receiving Notifications in C with ZMQ Libraries](16_3_Receiving_Bitcoind_Notifications_with_C.md)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 15.1: Accessing Bitcoind in C with RPC Libraries
|
||||
# 16.1: Accessing Bitcoind in C with RPC Libraries
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -278,4 +278,4 @@ By linking to the `bitcoinrpc` RPC and `jansson` JSON libraries, you can easily
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoind with C" in [15.2: Programming Bitcoind in C with RPC Libraries](15_2_Programming_Bitcoind_with_C.md).
|
||||
Learn more about "Talking to Bitcoind with C" in [16.2: Programming Bitcoind in C with RPC Libraries](15_2_Programming_Bitcoind_with_C.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 15.2: Programming Bitcoind in C with RPC Libraries
|
||||
# 16.2: Programming Bitcoind in C with RPC Libraries
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -344,4 +344,4 @@ With access to a C library, you can create much more fully featured programs tha
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoind with C" in [15.3: Receiving Notifications in C with ZMQ Libraries](15_3_Receiving_Bitcoind_Notifications_with_C.md).
|
||||
Learn more about "Talking to Bitcoind with C" in [16.3: Receiving Notifications in C with ZMQ Libraries](15_3_Receiving_Bitcoind_Notifications_with_C.md).
|
||||
|
@ -1,8 +1,8 @@
|
||||
# 15.3 Receiving Notifications in C with ZMQ Libraries
|
||||
# 16.3 Receiving Notifications in C with ZMQ Libraries
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
[§15.1](15_1_Accessing_Bitcoind_with_C.md) and [§15.2](15_2_Programming_Bitcoind_with_C.md) introduced RPC and JSON libraries for C, and in doing so showed one of the advantages of accessing Bitcoin's RPC commands through a programming language: the ability to reasonably create much more complex programs. This chapter introduces a third library, for [ZMQ](http://zeromq.org/), and in doing so reveals another advantage: the ability to monitor for notifications. It will use that for coding a blockchain listener.
|
||||
[§16.1](16_1_Accessing_Bitcoind_with_C.md) and [§16.2](16_2_Programming_Bitcoind_with_C.md) introduced RPC and JSON libraries for C, and in doing so showed one of the advantages of accessing Bitcoin's RPC commands through a programming language: the ability to reasonably create much more complex programs. This chapter introduces a third library, for [ZMQ](http://zeromq.org/), and in doing so reveals another advantage: the ability to monitor for notifications. It will use that for coding a blockchain listener.
|
||||
|
||||
> :book: ***What is ZMQ?*** ZeroMQ (ZMQ)is a high-performance asynchronous messaging library that provides a message queue. ZeroMQ supports common messaging patterns (pub/sub, request/reply, client/server, and others) over a variety of transports (TCP, in-process, inter-process, multicast, WebSocket, and more), making inter-process messaging as simple as inter-thread messaging. You can find more details about ZMQ notifications and others kind of messages in [this repo](https://github.com/Actinium-project/ChainTools/blob/master/docs/chainlistener.md).
|
||||
|
||||
@ -151,7 +151,7 @@ By using the ZMQ framework, you can easily receive notifications by subscribing
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming with RPC" in [Chapter 16: Programming Bitcoin with Libwally](16_0_Programming_with_Libwally.md).
|
||||
Learn more about "Programming with RPC" in [Chapter 17: Programming Bitcoin with Libwally](17_0_Programming_with_Libwally.md).
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Chapter 16: Programming with Libwally
|
||||
# Chapter 17: Programming with Libwally
|
||||
|
||||
The previous chapter presented three C Libraries, for RPC, JSON, and ZMQ, all of which are intended to interact directly with `bitcoind`, just like you've been doing since the start. But, sometimes you might want to code without direct access to a `bitcoind`. This might be due to an offline client, or just because you want to keep some functionality internal to your C program. You also might want to get into deeper wallet functionality, like mnemonic word creation or address derivation. That's where Libwally comes in: it's a wallet library for C, C++, Java, NodeJS, or Python, with wrappers also available for other languages, such as Swift.
|
||||
|
||||
@ -20,10 +20,10 @@ Supporting objectives include the ability to:
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Section One: Setting Up Libwally](16_1_Setting_Up_Libwally.md)
|
||||
* [Section Two: Using BIP39 in Libwally](16_2_Using_BIP39_in_Libwally.md)
|
||||
* [Section Three: Using BIP32 in Libwally](16_3_Using_BIP32_in_Libwally.md)
|
||||
* [Section Four: Using PSBTs in Libwally](16_4_Using_PSBTs_in_Libwally.md)
|
||||
* [Section Five: Using Scripts in Libwally](16_5_Using_Scripts_in_Libwally.md)
|
||||
* [Section Six: Using Other Functions in Libwally](16_6_Using_Other_Functions_in_Libwally.md)
|
||||
* [Section Seven: Integrating Libwally and Bitcoin-CLI](16_7_Integrating_Libwally_and_Bitcoin-CLI.md)
|
||||
* [Section One: Setting Up Libwally](17_1_Setting_Up_Libwally.md)
|
||||
* [Section Two: Using BIP39 in Libwally](17_2_Using_BIP39_in_Libwally.md)
|
||||
* [Section Three: Using BIP32 in Libwally](17_3_Using_BIP32_in_Libwally.md)
|
||||
* [Section Four: Using PSBTs in Libwally](17_4_Using_PSBTs_in_Libwally.md)
|
||||
* [Section Five: Using Scripts in Libwally](17_5_Using_Scripts_in_Libwally.md)
|
||||
* [Section Six: Using Other Functions in Libwally](17_6_Using_Other_Functions_in_Libwally.md)
|
||||
* [Section Seven: Integrating Libwally and Bitcoin-CLI](17_7_Integrating_Libwally_and_Bitcoin-CLI.md)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.1: Setting Up Libwally
|
||||
# 17.1: Setting Up Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -192,6 +192,6 @@ So what precisely can you do now? That's what the rest of this chapter is about.
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming Bitcoin with Libwally" in [16.2: Using BIP39 in Libwally](16_2_Using_BIP39_in_Libwally.md).
|
||||
Learn more about "Programming Bitcoin with Libwally" in [17.2: Using BIP39 in Libwally](17_2_Using_BIP39_in_Libwally.md).
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.2: Using BIP39 in Libwally
|
||||
# 17.2: Using BIP39 in Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -103,4 +103,4 @@ BIP39 allows you generate a set of 12-24 Mnemonic words from a seed (and the Lib
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming Bitcoin with Libwally" in [16.3: Using BIP32 in Libwally](16_3_Using_BIP32_in_Libwally.md).
|
||||
Learn more about "Programming Bitcoin with Libwally" in [17.3: Using BIP32 in Libwally](17_3_Using_BIP32_in_Libwally.md).
|
||||
|
@ -1,8 +1,8 @@
|
||||
# 16.3: Using BIP32 in Libwally
|
||||
# 17.3: Using BIP32 in Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
In [§16.2](16_2_Using_BIP39_in_Libwally.md), you were able to use entropy to generate a seed and its related mnemonic. As you may recall from [§3.5: Understanding the Descriptor](03_5_Understanding_the_Descriptor.md), a seed is the basis of a Hierchical Deterministic (HD) Wallet, where that single seed can be used to generate many addresses. So how do you get from the seed to actual addresses? That's where [BIP32](https://en.bitcoin.it/wiki/BIP_0032) comes in.
|
||||
In [§17.2](17_2_Using_BIP39_in_Libwally.md), you were able to use entropy to generate a seed and its related mnemonic. As you may recall from [§3.5: Understanding the Descriptor](03_5_Understanding_the_Descriptor.md), a seed is the basis of a Hierchical Deterministic (HD) Wallet, where that single seed can be used to generate many addresses. So how do you get from the seed to actual addresses? That's where [BIP32](https://en.bitcoin.it/wiki/BIP_0032) comes in.
|
||||
|
||||
## Create an HD Root
|
||||
|
||||
@ -139,4 +139,4 @@ An HD wallet allows you to generate a vast number of keys from a single seed. Yo
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming Bitcoin with Libwally" in [16.4: Using PSBTs in Libwally](16_4_Using_PSBTs_in_Libwally.md).
|
||||
Learn more about "Programming Bitcoin with Libwally" in [17.4: Using PSBTs in Libwally](17_4_Using_PSBTs_in_Libwally.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.4: Using PSBTs in Libwally
|
||||
# 17.4: Using PSBTs in Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -373,4 +373,4 @@ This section could be an entire chapter, as working with PSBTs at a low level is
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming Bitcoin with Libwally" in [16.5: Using Scripts in Libwally](16_5_Using_Scripts_in_Libwally.md).
|
||||
Learn more about "Programming Bitcoin with Libwally" in [17.5: Using Scripts in Libwally](17_5_Using_Scripts_in_Libwally.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.5: Using Scripts in Libwally
|
||||
# 17.5: Using Scripts in Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -177,4 +177,4 @@ Creating transactions in Libwally is another topic that could take up a whole ch
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Programming Bitcoin with Libwally" in [§16.6: Using Other Functions in Libwally](16_6_Using_Other_Functions_in_Libwally.md).
|
||||
Learn more about "Programming Bitcoin with Libwally" in [§17.6: Using Other Functions in Libwally](17_6_Using_Other_Functions_in_Libwally.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.6: Using Other Functions in Libwally
|
||||
# 17.6: Using Other Functions in Libwally
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -122,6 +122,6 @@ There is much more that you can do with Libwally, more than can be covered in th
|
||||
|
||||
## What's Next?
|
||||
|
||||
Finish learning about "Programming Bitcoin with Libwally" in [§16.7: Integrating Libwally and Bitcoin-CLI](16_7_Integrating_Libwally_and_Bitcoin-CLI.md).
|
||||
Finish learning about "Programming Bitcoin with Libwally" in [§17.7: Integrating Libwally and Bitcoin-CLI](17_7_Integrating_Libwally_and_Bitcoin-CLI.md).
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 16.7: Integrating Libwally and Bitcoin-CLI
|
||||
# 17.7: Integrating Libwally and Bitcoin-CLI
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -327,4 +327,4 @@ With a foundational knowledge of Libwally, you can now complement all of the wor
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn about other sorts of programming in [Chapter 17: Talking to Bitcoind with Other Languages](17_0_Talking_to_Bitcoind_Other.md).
|
||||
Learn about other sorts of programming in [Chapter 18: Talking to Bitcoind with Other Languages](18_0_Talking_to_Bitcoind_Other.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Chapter 17: Talking to Bitcoind with Other Languages
|
||||
# Chapter 18: Talking to Bitcoind with Other Languages
|
||||
|
||||
You should now have a solid foundation for working with Bitcoin in C, not only using RPC, JSON, and ZMQ libraries to directly interact with `bitcoind`, but also utilizing the Libwally libraries to complement that work. And C is a great language for prototyping and abstraction — but it's probably not what you're programming in. This chapter thus takes a whirlwind tour of six other programming languages, demonstrating the barest Bitcoin functionality in each and allowing you to expand the lessons of the command line and C to the programming language of your choice.
|
||||
|
||||
@ -18,9 +18,9 @@ Supporting objectives include the ability to:
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Section One: Accessing Bitcoind with Go](17_1_Accessing_Bitcoind_with_Go.md)
|
||||
* [Section Two: Accessing Bitcoind with Java](17_2_Accessing_Bitcoind_with_Java.md)
|
||||
* [Section Three: Accessing Bitcoind with NodeJS](17_3_Accessing_Bitcoind_with_NodeJS.md)
|
||||
* [Section Four: Accessing Bitcoind with Python](17_4_Accessing_Bitcoind_with_Python.md)
|
||||
* [Section Five: Accessing Bitcoind with Rust](17_5_Accessing_Bitcoind_with_Rust.md)
|
||||
* [Section Six: Accessing Bitcoind with Swift](17_6_Accessing_Bitcoind_with_Swift.md)
|
||||
* [Section One: Accessing Bitcoind with Go](18_1_Accessing_Bitcoind_with_Go.md)
|
||||
* [Section Two: Accessing Bitcoind with Java](18_2_Accessing_Bitcoind_with_Java.md)
|
||||
* [Section Three: Accessing Bitcoind with NodeJS](18_3_Accessing_Bitcoind_with_NodeJS.md)
|
||||
* [Section Four: Accessing Bitcoind with Python](18_4_Accessing_Bitcoind_with_Python.md)
|
||||
* [Section Five: Accessing Bitcoind with Rust](18_5_Accessing_Bitcoind_with_Rust.md)
|
||||
* [Section Six: Accessing Bitcoind with Swift](18_6_Accessing_Bitcoind_with_Swift.md)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.1: Accessing Bitcoind with Go
|
||||
# 18.1: Accessing Bitcoind with Go
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -415,4 +415,4 @@ Although the `btcd` `rpcclient` has some limits, you can still perform the main
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [17.2: Accessing Bitcoin with Java](17_2_Accessing_Bitcoind_with_Java.md).
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [18.2: Accessing Bitcoin with Java](18_2_Accessing_Bitcoind_with_Java.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.2: Accessing Bitcoind with Java
|
||||
# 18.2: Accessing Bitcoind with Java
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -330,5 +330,5 @@ By using the javabitcoinrpc library, you can easily access bitcoind via RPC call
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [17.3: Accessing Bitcoin with NodeJS](17_3_Accessing_Bitcoind_with_NodeJS.md).
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [18.3: Accessing Bitcoin with NodeJS](18_3_Accessing_Bitcoind_with_NodeJS.md).
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.3: Accessing Bitcoind with NodeJS
|
||||
# 18.3: Accessing Bitcoind with NodeJS
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -271,4 +271,4 @@ Based on these examples you should be able to incorporate Bitcoin in a Node.js p
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [17.4: Accessing Bitcoin with Python](17_4_Accessing_Bitcoind_with_Python.md).
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [18.4: Accessing Bitcoin with Python](18_4_Accessing_Bitcoind_with_Python.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.4: Accessing Bitcoind with Python
|
||||
# 18.4: Accessing Bitcoind with Python
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.5: Accessing Bitcoind with Rust
|
||||
# 18.5: Accessing Bitcoind with Rust
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -358,5 +358,5 @@ b0eda3517e6fac69e58ae315d7fe7a1981e3a858996cc1e3135618cac9b79d1a
|
||||
|
||||
## What's Next?
|
||||
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [17.6: Accessing Bitcoin with Swift](17_6_Accessing_Bitcoind_with_Swift.md).
|
||||
Learn more about "Talking to Bitcoin in Other Languages" in [18.6: Accessing Bitcoin with Swift](18_6_Accessing_Bitcoind_with_Swift.md).
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 17.6: Accessing Bitcoind with Swift
|
||||
# 18.6: Accessing Bitcoind with Swift
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Chapter 18: Understanding Your Lighting Setup
|
||||
# Chapter 19: Understanding Your Lighting Setup
|
||||
|
||||
> :information_source: **NOTE:** This is a draft in progress, so that I can get some feedback from early reviewers. It is not yet ready for learning.
|
||||
|
||||
@ -20,7 +20,7 @@ Supporting objectives include the ability to:
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Section One: Verifying Your c-lightning Setup](18_1_Verifying_Your_Lightning_Setup.md)
|
||||
* [Section Two: Knowing Your c-lightning Setup](18_2_Knowing_Your_lightning_Setup.md)
|
||||
* [Interlude: Accessing a Second Lightning Node](18_2__Interlude_Accessing_a_Second_Lightning_Node.md)
|
||||
* [Section Three: Creating a Lightning Channel](18_3_Setting_Up_a_Channel.md)
|
||||
* [Section One: Verifying Your c-lightning Setup](19_1_Verifying_Your_Lightning_Setup.md)
|
||||
* [Section Two: Knowing Your c-lightning Setup](19_2_Knowing_Your_lightning_Setup.md)
|
||||
* [Interlude: Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md)
|
||||
* [Section Three: Creating a Lightning Channel](19_3_Setting_Up_a_Channel.md)
|
||||
|
@ -1,5 +1,4 @@
|
||||
|
||||
# 18.1: Creating a c-lightning Setup
|
||||
# 19.1: Creating a c-lightning Setup
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -288,5 +287,3 @@ $ cd /
|
||||
$ sudo tar xf ~/clightning-v0.9.1-Ubuntu-20.04.tar.xz
|
||||
```
|
||||
Warning: this will require you to have the precise same libraries as were used to create the binary. It's often easier to just recompile.
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 18.2: Knowing Your c-lightning Setup
|
||||
# 19.2: Knowing Your c-lightning Setup
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -336,4 +336,4 @@ The `~/.lightning` directory contains all of your files, while `lightning-cli he
|
||||
|
||||
You're going to need to have a second Linode node to test out the actual payment of invoices. If you need support in setting one up, read [Interlude: Accessing a Second Lightning Node](18_2__Interlude_Accessing_a_Second_Lightning_Node.md).
|
||||
|
||||
Otherwise, continue "Understanding Your Lightning Setup" with [§18.3: Setting Up_a_Channel](18_3_Setting_Up_a_Channel.md).
|
||||
Otherwise, continue "Understanding Your Lightning Setup" with [§19.3: Setting Up_a_Channel](19_3_Setting_Up_a_Channel.md).
|
||||
|
@ -322,4 +322,4 @@ You always need two Lightning nodes to form a channel. If you don't have someone
|
||||
|
||||
Though you've possibly created an LND, c-lightning will remain the heart of our examples until we need to start using both of them, in [Chapter 19](19_0_Understanding_Your_Lightning_Setup.md).
|
||||
|
||||
Continue "Understanding Your Lightning Setup" with [§18.3: Setting Up_a_Channel](18_3_Setting_Up_a_Channel.md).
|
||||
Continue "Understanding Your Lightning Setup" with [§19.3: Setting Up_a_Channel](19_3_Setting_Up_a_Channel.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 18.3: Creating a Lightning Channel
|
||||
# 19.3: Creating a Lightning Channel
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -182,5 +182,4 @@ You need to create a channel with a remote node to be able to receive and send m
|
||||
|
||||
## What's Next?
|
||||
|
||||
You're ready to go! Move on to [Chapter Nineteen: Using Lightning](19_0_Using_Lightning.md).
|
||||
|
||||
You're ready to go! Move on to [Chapter 20: Using Lightning](20_0_Using_Lightning.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Chapter Nineteen: Using Lightning
|
||||
# Chapter 20: Using Lightning
|
||||
|
||||
> :information_source: **NOTE:** This is a draft in progress, so that I can get some feedback from early reviewers. It is not yet ready for learning.
|
||||
|
||||
@ -19,7 +19,7 @@ Supporting objectives include the ability to:
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Section One: Generating a Payment Request](19_1_Generate_a_Payment_Request.md)
|
||||
* [Section Two: Paying an Invoice](19_2_Paying_a_Invoice.md)
|
||||
* [Section Three: Closing a Lightning Channel](19_3_Closing_a_Channel.md)
|
||||
* [Section Four: Expanding the Lightning Network](19_4_Lightning_Network_Review.md)
|
||||
* [Section One: Generating a Payment Request](20_1_Generate_a_Payment_Request.md)
|
||||
* [Section Two: Paying an Invoice](20_2_Paying_a_Invoice.md)
|
||||
* [Section Three: Closing a Lightning Channel](20_3_Closing_a_Channel.md)
|
||||
* [Section Four: Expanding the Lightning Network](20_4_Lightning_Network_Review.md)
|
||||
|
@ -1,9 +1,8 @@
|
||||
|
||||
# 19.1: Generating a Payment Request
|
||||
# 20.1: Generating a Payment Request
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
This section describes how payments work on the Lightning Network, how to create a payment request (or _invoice_), and finally how to make sense of it. Issuing invoices depends on your having a second Lightning node, as described in [Accessing a Second Lightning Node](18_2__Interlude_Accessing_a_Second_Lightning_Node.md). These examples will use an LND node as their secondary node, to further demonstrate the possibilities of the Lightning Network. To differentiate between the nodes in these examples, the prompts will be shown as `c$` for the c-lightning node and `lnd$` as the LND node. If you want to reproduce this steps, you should [install your own secondary LND node](18_2__Interlude_Accessing_a_Second_Lightning_Node.md#creating-a-new-lnd-node).
|
||||
This section describes how payments work on the Lightning Network, how to create a payment request (or _invoice_), and finally how to make sense of it. Issuing invoices depends on your having a second Lightning node, as described in [Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). These examples will use an LND node as their secondary node, to further demonstrate the possibilities of the Lightning Network. To differentiate between the nodes in these examples, the prompts will be shown as `c$` for the c-lightning node and `lnd$` as the LND node. If you want to reproduce this steps, you should [install your own secondary LND node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md#creating-a-new-lnd-node).
|
||||
|
||||
> :book: ***What is an Invoice?** Almost all payments made on the Lightning Network require an invoice, which is nothing more than a **request for payment** made by the recipient of the money and sent by variety of means to the paying user. All payment requests are single use. Lightning invoices use bech32 encoding, which is already used by Segregated Witness for Bitcoin.
|
||||
|
||||
@ -108,7 +107,7 @@ There are two crucial elements to check in the invoice. The first, obviously, is
|
||||
```
|
||||
You need to check that's the expected recipient.
|
||||
|
||||
Looking back at [§18.3](18_3_Setting_Up_a_Channel.md#opening-a-channel), you can see that's indeed the peer ID that you used when you created your channel. You could also verify it on the opposite node with the `getinfo` command.
|
||||
Looking back at [§19.3](19_3_Setting_Up_a_Channel.md#opening-a-channel), you can see that's indeed the peer ID that you used when you created your channel. You could also verify it on the opposite node with the `getinfo` command.
|
||||
```
|
||||
lnd$ lncli -n testnet getinfo
|
||||
{
|
||||
@ -182,4 +181,4 @@ In most cases you need to receive an invoice to use Lightning Network payments.
|
||||
|
||||
## What's Next?
|
||||
|
||||
Continue "Using Lightning" with [§19.2: Paying_a_Invoice](19_2_Paying_a_Invoice.md).
|
||||
Continue "Using Lightning" with [§20.2: Paying_a_Invoice](20_2_Paying_a_Invoice.md).
|
||||
|
@ -1,8 +1,8 @@
|
||||
# 19.2: Paying an Invoice
|
||||
# 20.2: Paying an Invoice
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
In this chapter you will learn how to pay an invoice using `lightning-cli pay` command. It assumes that you've already looked over the invoice, per [§19.1](19_1_Generate_a_Payment_Request.md) and determined it was valid.
|
||||
In this chapter you will learn how to pay an invoice using `lightning-cli pay` command. It assumes that you've already looked over the invoice, per [§20.1](20_1_Generate_a_Payment_Request.md) and determined it was valid.
|
||||
|
||||
## Check your Balance
|
||||
|
||||
@ -203,4 +203,4 @@ Once you've got an invoice, it's easy enough to pay with a single command in Lig
|
||||
|
||||
## What's Next?
|
||||
|
||||
Continue "Using Lighting" with [§19.3: Closing a Channel](19_3_Closing_a_Channel.md).
|
||||
Continue "Using Lighting" with [§20.3: Closing a Channel](20_3_Closing_a_Channel.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 19.3: Closing a Channel
|
||||
# 20.3: Closing a Channel
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
@ -257,4 +257,4 @@ When you close a channel you perform an on-chain transaction ending your financi
|
||||
|
||||
## What's Next?
|
||||
|
||||
Continue "Using Lightning" with [§19.4: Expanding the Lightning Network](19_4_Lightning_Network_Review.md).
|
||||
Continue "Using Lightning" with [§20.4: Expanding the Lightning Network](20_4_Lightning_Network_Review.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# 19.4: Expanding the Lightning Network
|
||||
# 20.4: Expanding the Lightning Network
|
||||
|
||||
> :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader.
|
||||
|
||||
|
@ -109,9 +109,9 @@ If you'd like to make your own translation, please see [Contributing](https://gi
|
||||
|
||||
**Status:** Finished.
|
||||
|
||||
* [16.0: Talking to Bitcoind with C](15_0_Talking_to_Bitcoind.md)
|
||||
* [16.1: Accessing Bitcoind in C with RPC Libraries](15_1_Accessing_Bitcoind_with_C.md)
|
||||
* [16.2: Programming Bitcoind in C with RPC Libraries](15_2_Programming_Bitcoind_with_C.md)
|
||||
* [16.0: Talking to Bitcoind with C](16_0_Talking_to_Bitcoind.md)
|
||||
* [16.1: Accessing Bitcoind in C with RPC Libraries](16_1_Accessing_Bitcoind_with_C.md)
|
||||
* [16.2: Programming Bitcoind in C with RPC Libraries](16_2_Programming_Bitcoind_with_C.md)
|
||||
* [16.3: Receiving Notifications in C with ZMQ Libraries](16_3_Receiving_Bitcoind_Notifications_with_C.md)
|
||||
* [17.0: Programming Bitcoin with Libwally](17_0_Programming_with_Libwally.md)
|
||||
* [17.1: Setting Up Libwally](17_1_Setting_Up_Libwally.md)
|
||||
|
Loading…
x
Reference in New Issue
Block a user