1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-12-26 16:38:31 +00:00
Commit Graph

4823 Commits

Author SHA1 Message Date
David A. Harding
0294abbcf1 CH12: Make timeless by removing mentions of block 277,315
Previously, the text went into a lot of detail about block 277,315,
which was a long time ago.  We generalize the text to make it
perpetually current (barring a hard fork).
2023-06-05 16:12:34 -10:00
David A. Harding
4fa8a1590c CH12: replace std tx policy with only consensus tx rules
The previous list mixed consensus rules that transaction must follow
with standard transaction policy, which I think was confusng for readers
and also a problem in a later reference where we claim that all
transactions in a block must follow the rules (true for consensus; false
for policy).
2023-06-05 16:11:46 -10:00
David A. Harding
cb15241574 CH12: mention BIP320-style header extension 2023-06-05 16:11:40 -10:00
David A. Harding
6613f367c4 CH12: Remove "other ways to soft fork"
This short subsection described segwit's use of always-true
scriptPubKeys as special.  It didn't mention the similar mechanism used
for BIP16 P2SH.  It also doesn't mention block-focused changes like
BIP32 and BIP34, or non-script changes like BIP66, BIP68, and BIP113.
I think it should either be greatly expanded or removed, and removing is
easier right now.  :-)
2023-06-05 16:11:26 -10:00
David A. Harding
0909808e82 CH12: Futureproof by removing table & graphics of hashrate changes 2023-06-05 16:11:21 -10:00
David A. Harding
9f94188e3c CH12: s/fingerprint/(digest|commitment)/
Makes the test more consistent with other changes made in previous
chapters.
2023-06-05 16:11:16 -10:00
David A. Harding
5d8c2c494d CH12: s/unlocking script/scriptSig/ 2023-06-05 16:11:10 -10:00
David A. Harding
2b4a4220e2 CH12: s/Smores signature/Foocoin/
"Smore" sounds like "Schnorr", which could be confusing.  Also, we
have upgraded signatures now without a soft fork, so the example is
confusing.  Although we could add another coin with a soft fork (sort
of), it seems a lot less likely to me, so I think it's a better cadidate
for this section.
2023-06-05 16:11:05 -10:00
David A. Harding
c10f5664a3 CH12: Add note about settlement being time-based not conf-based 2023-06-05 16:11:00 -10:00
David A. Harding
a0fc8f62eb CH12: Introduce versionbits as the replacement for version field 2023-06-05 16:10:55 -10:00
David A. Harding
d17edeaa18 CH12: s/transaction pool/mempool/ 2023-06-05 16:10:49 -10:00
David A. Harding
19107a26bc CH12: clarify that mining is not a race 2023-06-05 15:53:29 -10:00
David A. Harding
cf72b00e45 CH12: mining isn't a difficult problem
It's a simple problem whose solution requires many iterations.
2023-06-05 15:53:29 -10:00
David A. Harding
668827b1cb CH12: introduce the term "subsidy" 2023-06-05 15:53:29 -10:00
David A. Harding
1f8c932436 CH12: You can spend bitcoins even if they aren't confirmed 2023-06-05 15:53:29 -10:00
David A. Harding
db4de49491 CH12: miners don't necessary validate 2023-06-05 15:53:25 -10:00
David A. Harding
323922aef1 CH12: replace dated mining pool example with a timeless example 2023-06-05 15:53:25 -10:00
David A. Harding
2735c25bfa CH12: s/reconverge/(converge|reorganize)/
- When appropriate, use the current preferred technical term
  "reorganize" to describe what a node does when the block at the tip of
  the chain is removed.

- Otherwise, just use "converge".
2023-06-05 15:53:25 -10:00
David A. Harding
2866ffc9fb CH12: Drop mention of orphan blocks
- Orphan blocks are no longer a thing in Bitcoin Core since
  headers-first download was implemented (version 0.10).  Your peers
  know what blocks you have; if they send you any block that doesn't
  connect to one of those blocks, you just drop the connection to them.
2023-06-05 15:53:25 -10:00
David A. Harding
5cc6c4541d CH12: s/main blockchain/best blockchain/ 2023-06-05 15:53:25 -10:00
David A. Harding
561fe16041 CH12: style: s/BIP-/BIP/ 2023-06-05 15:53:25 -10:00
David A. Harding
0eb7cacd34 CH12: reflow text so that future diffs will be more readable 2023-06-05 15:28:41 -10:00
harding
ac428e7033 Updated atlas.json 2023-05-19 16:23:47 -07:00
David A. Harding
a04895d297 CH11: minor edits 2023-05-19 13:22:57 -10:00
David A. Harding
16c8376f77 CH11: update examples for modern Bitcoin Core 2023-05-19 13:22:57 -10:00
David A. Harding
a904ea4db9 CH11: described signets
- Describe the problem with testnet3
- BIP325 signet as a solution
- Using signet(s)
2023-05-19 13:22:57 -10:00
David A. Harding
670a780367 CH11: remove section about segnet (segwit test network)
Main advantage of describing this historic feature was the idea that it
might be used again, but I think signets have fully replaced the future
usage.
2023-05-19 13:22:57 -10:00
David A. Harding
b7387220da CH11: s/SPV node/SPV client/ 2023-05-19 13:22:57 -10:00
David A. Harding
94c9bd7c6e CH11: update para about height not being stored in blocks 2023-05-19 13:22:57 -10:00
David A. Harding
747d6c9b10 CH11: reflow text so that future diffs will be more readable 2023-05-19 13:22:57 -10:00
David A. Harding
f264bd6625 Meta: remove unused file (segwit_v1.asciidoc) 2023-05-19 13:22:57 -10:00
harding
f84fc54521 Updated atlas.json 2023-05-18 18:58:31 -07:00
David A. Harding
94c674a42e CH10: minor edits 2023-05-18 15:56:29 -10:00
David A. Harding
a4609f5680 CH10: transaction pools: use modern term "mempool" instead 2023-05-18 15:55:38 -10:00
David A. Harding
d850cc3414 CH10: network privacy: drop BIP150/151
Those particular BIPs are abandoned.  BIP324 takes the place of BIP151,
but a lot of this section refers to authentication, which is not in
BIP324.  Also, this section mentions implementation, but BIP324 has not
been deployed as of this writing.
2023-05-18 15:55:38 -10:00
David A. Harding
8b09a51b7b CH10: SPV privacy: update to account for compact block filters too
Previously assumed bloom filters would be used.  Only small updates
needed.
2023-05-18 15:55:38 -10:00
David A. Harding
1e2a2252b3 CH10: add section about compact block filters 2023-05-18 15:55:38 -10:00
David A. Harding
f75f6b83cc CH10: bloom filters: edits and introduce problems
- Introduce problems to provide context for the creation of compact
  block filters
2023-05-18 15:55:38 -10:00
David A. Harding
38f859fe3c CH10: SPV clients: edits and clarify misconceptions 2023-05-18 15:55:38 -10:00
David A. Harding
ad1fecb408 CH10: remove subhead before intro 2023-05-18 15:55:38 -10:00
David A. Harding
f1aea5e372 CH10: s/(SPV|lightweight) node/\1 client/ 2023-05-18 15:55:38 -10:00
David A. Harding
28cfc751c1 CH10: Inventory section
Update for headers-first sync rather than the old blocks-first sync.
2023-05-18 15:55:38 -10:00
David A. Harding
7d2ba06209 CH10: update Full Node section
- Drop everything that says a full node needs a complete copy of the
  blockchain
2023-05-18 15:55:38 -10:00
David A. Harding
cf750ecf4d CH10: update peer finding section
- Update example for Bitcoin Core 24
- Generalize language a bit
2023-05-18 15:55:38 -10:00
David A. Harding
9142816196 CH10: add compact block relay & update relay networks
- Describe BIP152 compact block relay
- Describe why we still need relay networks (what they do that BIP152
  can't)
- Drop FALCON relay (never used, AFAIK)
- Minor updates to relay section
2023-05-18 15:55:38 -10:00
David A. Harding
0ed5d4a199 CH10: edits to node roles sections
- Remove images: these are incorrect and (IMO) not very useful.  The
  first image is a legend.  The second image contains multiple errors or
  confusions, such as implying that a miner needs a full copy of the
  block chain or that a wallet is a routing node.  The third image is a
  very busy depiction of a network showing that clients connect to
  nodes, which I think is fine to just say in the text.

- Revise text to not reference images.

- Maintain distinction between nodes and peers by not using terms "full
  node client" or "SPV node"

- Update the count of reachable nodes

- Remove some dead full node implementations
2023-05-18 15:55:38 -10:00
David A. Harding
da1f8ee2ba CH10: intro edits
- We revise sentence about equality among peers to make it clear that
  the peers are full nodes.  Clients are not peers of a full node.

- Remove clause about "reciprocity" being the incentive for
  participation.  I think there are varied reasons for operating a full
  node, ranging from wanting to validate your own transactions
  (requiring only a pruning full node) to wanting to keep mining
  decentralized (e.g. by relaying transactions).

- Drop line about non-Bitcoin-P2P protocols being "extended Bitcoin
  network".  I think that's an unnecessary categorization.
2023-05-18 15:55:38 -10:00
David A. Harding
328c11c1ec CH10: s/bitcoin/Bitcoin/ 2023-05-18 15:55:38 -10:00
David A. Harding
e5dc7d86ab CH10: reflow text so that future diffs will be more readable 2023-05-18 15:55:38 -10:00
David A. Harding
c4007411b4 CH08: fix reference 2023-05-18 15:55:38 -10:00