Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
bba2b3b
Typo in the text
egruper Jan 4, 2023
271eb49
Documentation: change c-lightning to core lightning to reflect recent…
nassersaazi Feb 8, 2023
c0e209a
Update
Jetro-Costa Feb 16, 2023
cab342d
Merge pull request #1 from Jetro-Costa/update
Jetro-Costa Feb 16, 2023
83cc8db
Update
Jetro-Costa Feb 16, 2023
0fafdfd
finalizado
Jetro-Costa Feb 16, 2023
e602991
nice
Jetro-Costa Feb 16, 2023
4865928
introdução ao bitcoin
Jetro-Costa Feb 16, 2023
653dd78
Update 11_1_Understanding_Timelock_Options.md
lazysatoshi Aug 15, 2023
c566c7e
Correción de Acento, Que -> Qué (interrogación)
ifuensan Oct 20, 2023
8a14acf
Corrección Transactors en español
ifuensan Oct 20, 2023
8629477
Añadiendo sigo de abrir interrogación
ifuensan Oct 20, 2023
e0e3a65
UPDATE TYPO
ifuensan Oct 28, 2023
d841f02
FIX Typo
ifuensan Nov 22, 2023
7c31d16
Fix Typos
ifuensan Nov 26, 2023
2118d06
Fix bc error with scientific numbers in txfee_calc
mccwdev Mar 25, 2024
5b4f7d7
Fix incorrect nSequence value
mccwdev Apr 19, 2024
dc9da02
Update 01_1_Introducing_Bitcoin.md
lvaiser May 9, 2024
c13b107
Fixed wrong txid value
luckyyang Jun 5, 2024
a412297
fix typo
victorabarros Feb 5, 2025
bba348c
Merge pull request #624 from victorabarros/patch-1
shannona Apr 1, 2025
69e5455
genhd: fix typo: Adress
eval-exec Apr 16, 2025
559aa39
Corrected rounding error and used mapfile to better handle the result…
muaawiyahtucker Jul 5, 2025
9e84ff0
Added the same 8 decimal to the btcin for consistency.
muaawiyahtucker Jul 5, 2025
4c81b3e
Corrected the use of nTimeLock to nLockTime, and deleted an erronious…
muaawiyahtucker Jul 5, 2025
bb15701
Edited the output to include the array brackets.
muaawiyahtucker Jul 10, 2025
d51c46b
Added missed step clarifying that what is desplayed is the digital v…
muaawiyahtucker Jul 11, 2025
aa35b3d
Made suggested corrections along with making an epub version of the e…
muaawiyahtucker Jul 29, 2025
2f40fbe
Update README.md
shannona Nov 12, 2025
83fd00c
Update README.md
shannona Dec 2, 2025
388f5e4
Merge pull request #595 from egruper/patch-1
shannona Jan 15, 2026
15c10c3
Merge pull request #597 from nassersaazi/core-lightning-update
shannona Jan 15, 2026
ed115e2
Merge pull request #599 from Jetro-Costa/portuguese-translation
shannona Jan 15, 2026
2ce84b0
Merge pull request #607 from lazysatoshi/lazysatoshi-patch-1
shannona Jan 15, 2026
30f564b
Merge pull request #608 from ifuensan/master
shannona Jan 15, 2026
259407d
Merge pull request #611 from 1200wd/master
shannona Jan 15, 2026
3a2bf21
Merge pull request #613 from lvaiser/patch-1
shannona Jan 15, 2026
cc683c9
Merge pull request #615 from luckyyang/patch-1
shannona Jan 15, 2026
6f0fbe1
Merge pull request #625 from eval-exec/exec/fix-typo
shannona Jan 15, 2026
167479b
Merge branch 'master' into AbuShafrah-review
shannona Jan 15, 2026
e862198
Merge pull request #626 from muaawiyahtucker/AbuShafrah-review
shannona Jan 15, 2026
7a9d9f4
Update 16_1_Accessing_Bitcoind_with_C.md
shannona Jan 15, 2026
3d10f3c
Update TODO-30.md
shannona Jan 15, 2026
f97f431
Update TODO-30.md
shannona Jan 15, 2026
0649608
Update 01_1_Introducing_Bitcoin.md
shannona Jan 15, 2026
e65dc59
fix on OP_CHECKMULTISIG per #606
shannona Jan 15, 2026
5cbfa18
Delete TODO-20.md
shannona Jan 16, 2026
24ed516
Update README.md
shannona Jan 16, 2026
abac2c5
Update README.md
shannona Jan 16, 2026
afcfa10
Merge pull request #630 from BlockchainCommons/update-30
shannona Jan 16, 2026
f869df0
Update 02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md
shannona Jan 22, 2026
8ed1d36
Slight updates for Current Standup.
shannona Jan 22, 2026
10e5ab0
added 2.2.2 to version history & note of upcoming updates
shannona Jan 22, 2026
5c25577
last 2.2.2 update
shannona Jan 22, 2026
84f6605
Create CLA.misterdelle.95471FFA0C364BB13618FE956197E47B27E98909.asc
Jan 24, 2026
adb8f99
Update README.md
shannona Feb 17, 2026
564e15b
Add files via upload
shannona Feb 20, 2026
493f5d8
Delete images/3-qraddress.jpg
shannona Feb 20, 2026
9b90756
Fix grammar in elliptic curve explanation
StephenChi-hi Mar 7, 2026
a333af6
Minor typo
everythingsats Mar 12, 2026
892918a
Merge pull request #631 from misterdelle/master
shannona Mar 12, 2026
8dea915
Merge pull request #633 from everythingsats/patch-1
shannona Mar 12, 2026
3233874
Merge pull request #632 from StephenChi-hi/StephenChi-hi-patch-1
shannona Mar 12, 2026
d308e77
Merge branch 'BlockchainCommons:italian-translation' into italian-tra…
misterdelle Mar 13, 2026
bd239c3
Corrected all the links between files
Mar 13, 2026
e689bd8
Re-added file 04_4__Interlude_Using_Curl.md delete for a mistake
Mar 13, 2026
6b7550e
Updates from master branch
Mar 13, 2026
c6949dd
Corrected typo
Mar 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 01_0_Introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The ways that we make payments for goods and services has been changing dramatic

These centralization risks were some of the prime catalysts behind the creation of cryptocurrencies, the first and most successful of which is Bitcoin. Bitcoin offers pseudonymity; it makes it difficult to correlate transactions; and it makes censorship by individual entities all but impossible. These advantages have made it one of the quickest growing currencies in the world. That growth in turn has made Bitcoin into a going concern among entrepreneurs and developers, eager to create new services for the Bitcoin community.

If you're one of those entrepreneurs or developers, then this course is for you, because it's all about learning to program Bitcoin. It's an introductory course that explains all the nuances and features of Bitcoin as it goes. It also takes a very specific tack, by offering lessons in how to work _directly_ with Bitcoin Core and with the c-lightning server using their RPC interfaces.
If you're one of those entrepreneurs or developers, then this course is for you, because it's all about learning to program Bitcoin. It's an introductory course that explains all the nuances and features of Bitcoin as it goes. It also takes a very specific tack, by offering lessons in how to work _directly_ with Bitcoin Core and with the core lightning server using their RPC interfaces.

Why not use some of the more fully featured libraries found in various programming languages? Why not create your own from scratch? It's because working with cryptocurrency is dangerous. There are no safety nets. If you accidentally overpay your fees or lose a signing key or create an invalid transaction or make any number of potential mistakes, then your cryptocurrency will be gone forever. Much of that responsibility will, of course, lie with you as a cryptocurrency programmer, but it can be minimized by working with the most robust, secure, and safe cryptocurrency interfaces around, the ones created by the cryptocurrency programming teams themselves: ``bitcoind`` and ``lightningd``.

Expand Down
6 changes: 3 additions & 3 deletions 01_1_Introducing_Bitcoin.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ ECC does not receive much attention in this tutorial. That's because this tutori

**_What is an Elliptic Curve?_** An elliptic curve is a geometric curve that takes the form `y`<sup>`2`</sup> = `x`<sup>`3`</sup>` + ax + b`. A specific elliptic curve is chosen by selecting specific values of `a` and `b`. The curve must then be carefully examined to determine if it works well for cryptography. For example, the secp256k1 curve used by Bitcoin is defined as `a=0` and `b=7`.

Any line that intersects an elliptic curve will do so at either 1 or 3 points ... and that's the basis of elliptic-curve cryptography.
Any line that intersects an elliptic curve will typically do so at 3 points (absent a few cases for infinity and intersections) ... and that's the basis of elliptic-curve cryptography.

**_What are Finite Fields?_** A finite field is a finite set of numbers, where all addition, subtraction, multiplication, and division is defined so that it results in other numbers also in the same finite field. One simple way to create a finite field is through the use of a modulo function.

Expand All @@ -80,7 +80,7 @@ Though you need to understand the basics of how a blockchain works to understand

**_Why Is It Called a Chain?_** Each block in the blockchain stores a hash of the block before it. This links the current block all the way back to the original "genesis block" through an unbroken chain. It's a way to create absolute order among possibly conflicting data. This also provides the security of blockchain, because each block is stacked atop an old one makes it harder to recreate the old block due to the proof-of-work algorithms used in block creation. Once several blocks have been built atop a block in the chain, it's essentially irreversible.

**_What is a Fork?_** Occasionally two blocks are created around the same time. This temporarily creates a one-block fork, where either if the current blocks could be the "real" one. Every once in a while, a fork might expand to become two blocks, three blocks, or even four blocks long, but pretty quickly one side of the fork is determined to be the real one, and the other is "orphaned". This is part of the stochastic process of block creation, and demonstrates why several blocks must be built atop a block before it can be considered truly trustworthy and non-repudiable.
**_What is a Fork?_** Occasionally two blocks are created around the same time. This temporarily creates a one-block fork, where either of the current blocks could be the "real" one. Every once in a while, a fork might expand to become two blocks, three blocks, or even four blocks long, but pretty quickly one side of the fork is determined to be the real one, and the other is "orphaned". This is part of the stochastic process of block creation, and demonstrates why several blocks must be built atop a block before it can be considered truly trustworthy and non-repudiable.

### Blockchain — In Short

Expand Down Expand Up @@ -123,7 +123,7 @@ Lightning is a layer-2 protocol that interacts with Bitcoin to allow users to ex

Lightning is also the secondary focus of this tutorial. Though it's mostly about interacting directly with Bitcoin (and the `bitcoind`), it pays some attention to Lightning because it's an upcoming technology that is likely to become a popular alternative to Bitcoin in the near future. This book takes the same approach to Lightning as to Bitcoin: it teaches how to interact directly with a trusted Lightning daemon from the command line.

Unlike with Bitcoin, there are actually several variants of Lightning. This tutorial uses the standard-compliant [c-lightning](https://github.com/ElementsProject/lightning) implementation as its trusted Lightning server.
Unlike with Bitcoin, there are actually several variants of Lightning. This tutorial uses the standard-compliant [core lightning](https://github.com/ElementsProject/lightning) implementation as its trusted Lightning server.

**_What is a Layer-2 Protocol?_** A layer-2 Bitcoin protocol works on top of Bitcoin. In this case, Lightning works atop Bitcoin, interacting with it through smart contracts.

Expand Down
Loading