diff --git a/appb_errata.adoc b/appb_errata.adoc index aab37272..75288d5d 100644 --- a/appb_errata.adoc +++ b/appb_errata.adoc @@ -27,7 +27,7 @@ check for the "the longest chain" but rather "the chain demonstrating the most PoW"; this is often shortened to "most-work chain." + The -https://github.com/bitcoin/bitcoin/commit/40cd0369419323f8d7385950e20342e998c994e1#diff-623e3fd6da1a45222eeec71496747b31R420[change] +https://oreil.ly/XYZzx[change] from checking for the longest chain to checking for the most-work chain occurred in July 2010, long after Bitcoin’s initial release: + @@ -197,7 +197,7 @@ toward paying Charlie and Dan than there is between just Alice contributing two of her inputs toward paying Charlie and Dan. + This technique is known today as -https://en.bitcoin.it/wiki/CoinJoin[CoinJoin] and software implementing +https://oreil.ly/UBEJX[CoinJoin] and software implementing it has been in use since 2015. === Calculations @@ -214,7 +214,7 @@ ____ public key shortly before the spender signs a transaction prevents the spender from preparing a chain of blocks ahead of time. Early Bitcoin user Hal Finney discovered this attack and -https://bitcointalk.org/index.php?topic=3441.msg48384#msg48384[described +https://oreil.ly/kg_Xe[described it]: "Suppose the attacker is generating blocks occasionally. In each block he generates, he includes a transfer from address A to address B, both of which he controls. @@ -235,9 +235,9 @@ identify any of the problems described here—he has merely collected them into a single document. *License:* This errata document is released under the -https://creativecommons.org/publicdomain/zero/1.0/[CC0] 1.0 Universal +https://oreil.ly/xZeBR[CC0] 1.0 Universal Public Domain Dedication For updates made after the publication of this book, please see the -https://gist.github.com/harding/dabea3d83c695e6b937bf090eddf2bb3[Original +https://oreil.ly/ygExa[Original document]. diff --git a/appc_bips.adoc b/appc_bips.adoc index c3b78d1b..ed904524 100644 --- a/appc_bips.adoc +++ b/appc_bips.adoc @@ -10,7 +10,7 @@ _Standard_ BIP:: Describes any change that affects most or all Bitcoin implement _Informational_ BIP:: Describes a Bitcoin design issue, or provides general guidelines or information to the Bitcoin community, but does not propose a new feature. Informational BIPs do not necessarily represent a Bitcoin community consensus or recommendation, so users and implementors may ignore informational BIPs or follow their advice. _Process_ BIP:: Describes a Bitcoin process, or proposes a change to (or an event in) a process. Process BIPs are like standard BIPs but apply to areas other than the Bitcoin protocol itself. They might propose an implementation, but not to Bitcoin's codebase; they often require community consensus; and unlike informational BIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Bitcoin development. Any meta-BIP is also considered a process BIP. -BIPs are recorded in a https://github.com/bitcoin/bips[versioned repository on GitHub]. +BIPs are recorded in a https://oreil.ly/jjO0R[versioned repository on GitHub]. An MIT-licensed document from the open source Bitcoin Core project, reproduced here in edited form, describes which BIPs it implements, including listing the Pull Request (PR) and version of Bitcoin Core where support for each BIP was added or diff --git a/ch01_intro.adoc b/ch01_intro.adoc index b3ac60eb..3ad742b0 100644 --- a/ch01_intro.adoc +++ b/ch01_intro.adoc @@ -99,7 +99,7 @@ Although these earlier digital currencies worked, they were centralized and, as Bitcoin was first described in 2008 with the publication of a paper titled "Bitcoin: A Peer-to-Peer Electronic Cash -System,"footnote:[https://bitcoin.org/bitcoin.pdf:["Bitcoin: A Peer-to-Peer Electronic Cash System,"] +System,"footnote:[https://oreil.ly/KUaBM["Bitcoin: A Peer-to-Peer Electronic Cash System,"] Satoshi Nakamoto.] written under the alias of Satoshi Nakamoto (see <>). Nakamoto combined several prior inventions such as digital signatures and Hashcash to create @@ -396,7 +396,7 @@ Bitcoin transactions are irreversible. Most electronic payment networks such as Here are some methods for acquiring bitcoin as a new user: -* Find a friend who has bitcoins and buy some from him or her directly. Many Bitcoin users start this way. This method is the least complicated. One way to meet people with bitcoins is to attend a local Bitcoin meetup listed at https://meetup.com[Meetup.com]. +* Find a friend who has bitcoins and buy some from him or her directly. Many Bitcoin users start this way. This method is the least complicated. One way to meet people with bitcoins is to attend a local Bitcoin meetup listed at pass:[Meetup.com]. * Earn bitcoin by selling a product or service for bitcoin. If you are a programmer, sell your programming skills. If you're a hairdresser, cut hair for bitcoins. * Use a Bitcoin ATM in your city. A Bitcoin ATM is a machine that accepts cash and sends bitcoins to your smartphone Bitcoin wallet. * Use a Bitcoin currency exchange linked to your bank account. Many countries now have currency exchanges that offer a market for buyers and sellers to swap bitcoins with local currency. Exchange-rate listing services, such as https://bitcoinaverage.com[BitcoinAverage], often show a list of Bitcoin exchanges for each currency. @@ -431,9 +431,9 @@ Bitcoin, like most other currencies, has a _floating exchange rate_. That means There are hundreds of applications and websites that can provide the current market rate. Here are some of the most popular: -https://bitcoinaverage.com/[Bitcoin Average]:: A site that provides a simple view of the volume-weighted-average for each currency. -https://coincap.io/[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of cryptocurrencies, including bitcoins. -https://www.cmegroup.com/markets/cryptocurrencies/cme-cf-cryptocurrency-benchmarks.html?redirect=/trading/cryptocurrency-indices/cf-bitcoin-reference-rate.html[Chicago Mercantile Exchange Bitcoin Reference Rate]:: A reference rate that can be used for institutional and contractual reference, provided as part of investment data feeds by the CME. +https://bitcoinaverage.com[Bitcoin Average]:: A site that provides a simple view of the volume-weighted-average for each currency. +https://coincap.io[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of cryptocurrencies, including bitcoins. +https://oreil.ly/ACieC[Chicago Mercantile Exchange Bitcoin Reference Rate]:: A reference rate that can be used for institutional and contractual reference, provided as part of investment data feeds by the CME. In addition to these various sites and applications, some bitcoin wallets will automatically convert amounts between bitcoin and other diff --git a/ch02_overview.adoc b/ch02_overview.adoc index 1a436c38..6e4e6b76 100644 --- a/ch02_overview.adoc +++ b/ch02_overview.adoc @@ -36,7 +36,7 @@ image::images/mbc3_0201.png["Bitcoin Overview"] Popular blockchain explorers include: -* https://blockstream.info/[Blockstream Explorer] +* https://blockstream.info[Blockstream Explorer] * https://mempool.space[Mempool.Space] * https://live.blockcypher.com[BlockCypher Explorer] @@ -393,7 +393,7 @@ that gets recorded on the blockchain. [[transaction-alice-url]] [TIP] ==== -View the https://blockstream.info/tx/466200308696215bbc949d5141a49a4138ecdfdfaa2a8029c1f9bcecd1f96177[transaction from Alice to Bob's Store]. +View the https://oreil.ly/GwBq1[transaction from Alice to Bob's Store]. ==== ==== Adding the Transaction to the Blockchain @@ -568,7 +568,7 @@ relied upon. [TIP] ==== You can see the block that includes -https://blockstream.info/block/000000000000000000027d39da52dd790d98f85895b02e764611cb7acf552e90[Alice's transaction]. +https://oreil.ly/7v_lH[Alice's transaction]. ==== Approximately 19 minutes diff --git a/ch03_bitcoin-core.adoc b/ch03_bitcoin-core.adoc index ed3890b4..afdb05ec 100644 --- a/ch03_bitcoin-core.adoc +++ b/ch03_bitcoin-core.adoc @@ -59,8 +59,8 @@ Although Bitcoin Core serves as a reference implementation for many major parts of the system, the Bitcoin whitepaper describes several early parts of the system. Most major parts of the system since 2011 have been documented in a set of -https://github.com/bitcoin/bips/tree/master[Bitcoin Improvement -Proposals] (BIPs). Throughout this book, we refer to BIP specifications +https://oreil.ly/BCXAQ[Bitcoin Improvement +Proposals (BIPs)]. Throughout this book, we refer to BIP specifications by their number; for example, BIP9 describes a mechanism used for several major upgrades to Bitcoin. @@ -79,11 +79,11 @@ next chapter, which is less technical. Bitcoin Core's source code can be downloaded as an archive or by cloning the -source repository from GitHub. On the https://bitcoincore.org/bin/[Bitcoin Core download +source repository from GitHub. On the https://oreil.ly/hN9g1[Bitcoin Core download page], select the most recent version and download the compressed archive of the source code. Alternatively, use the Git command line to create a local copy of the source code from the -https://github.com/bitcoin/bitcoin[GitHub bitcoin page]. +https://oreil.ly/BdOwl[GitHub bitcoin page]. [TIP] ==== @@ -376,7 +376,7 @@ internet connection is limited, has a low data cap, or is metered it, or run it in a way that constrains its bandwidth (see <>). You may connect your node instead to an alternative network, such as a free satellite data provider like -https://blockstream.com/satellite/[Blockstream Satellite]. +https://oreil.ly/cIwf3[Blockstream Satellite]. [TIP] ==== @@ -1135,31 +1135,31 @@ The following sections list some of the best libraries, clients, and toolkits, organized by programming languages. ==== C/C++ -https://github.com/bitcoin/bitcoin[Bitcoin Core] :: The reference implementation of Bitcoin +https://oreil.ly/BdOwl[Bitcoin Core] :: The reference implementation of Bitcoin ==== JavaScript -https://bcoin.io/[bcoin]:: A modular and scalable full-node implementation with API -https://bitcore.io/[Bitcore] :: Full node, API, and library by Bitpay -https://github.com/bitcoinjs/bitcoinjs-lib[BitcoinJS] :: A pure JavaScript Bitcoin library for node.js and browsers +https://bcoin.io[bcoin]:: A modular and scalable full-node implementation with API +https://bitcore.io[Bitcore] :: Full node, API, and library by Bitpay +https://oreil.ly/4iqf2[BitcoinJS] :: A pure JavaScript Bitcoin library for node.js and browsers ==== Java https://bitcoinj.github.io[bitcoinj]:: A Java full-node client library ==== Python -https://github.com/petertodd/python-bitcoinlib[python-bitcoinlib]:: A Python bitcoin library, consensus library, and node by Peter Todd -https://github.com/richardkiss/pycoin[pycoin]:: A Python bitcoin library by Richard Kiss +https://oreil.ly/xn_rg[python-bitcoinlib]:: A Python bitcoin library, consensus library, and node by Peter Todd +https://oreil.ly/wcpXP[pycoin]:: A Python bitcoin library by Richard Kiss ==== Go -https://github.com/btcsuite/btcd[btcd]:: A Go language full-node Bitcoin client +https://oreil.ly/h5MEI[btcd]:: A Go language full-node Bitcoin client ==== Rust -https://github.com/rust-bitcoin/rust-bitcoin[rust-bitcoin]:: Rust bitcoin library for serialization, parsing, and API calls +https://oreil.ly/me6gf[rust-bitcoin]:: Rust bitcoin library for serialization, parsing, and API calls ==== Scala -https://bitcoin-s.org/[bitcoin-s]:: A Bitcoin implementation in Scala +https://bitcoin-s.org[bitcoin-s]:: A Bitcoin implementation in Scala ==== C# -https://github.com/MetacoSA/NBitcoin[NBitcoin]:: Comprehensive bitcoin library for the .NET framework +https://oreil.ly/Qfjgq[NBitcoin]:: Comprehensive bitcoin library for the .NET framework Many more libraries exist in a variety of other programming languages and more are created all the time. diff --git a/ch04_keys.adoc b/ch04_keys.adoc index 1d03d7d5..7ff21505 100644 --- a/ch04_keys.adoc +++ b/ch04_keys.adoc @@ -372,7 +372,7 @@ geometric operation on the curve. [TIP] ==== Many Bitcoin implementations use -the https://github.com/bitcoin-core/secp256k1[libsecp256k1 crytographic +the https://oreil.ly/wD60m[libsecp256k1 crytographic library] to do the elliptic curve math. ==== @@ -419,7 +419,7 @@ better understand why certain features may have been added to the Bitcoin protocol. [[bitcoin_01_send]] -.Early send screen for Bitcoin via https://web.archive.org/web/20090722011820/https://bitcoin.org/[The Internet Archive] +.Early send screen for Bitcoin via https://oreil.ly/IDV1a[The Internet Archive] image::images/mbc3_0405.png["Early Bitcoin send screen"] If Alice entered Bob's IP address in Bitcoin 0.1, her full node would @@ -1051,7 +1051,7 @@ Address: bc1p9nh05ha8wrljf7ru236aw**n**4t2x0d5ctkkywm**v**9sclnm4t0av2vgs4k3au7 Detected errors shown in bold. Generated using the -https://bitcoin.sipa.be/bech32/demo/demo.html[bech32 address decoder demo]. +https://oreil.ly/paWIx[bech32 address decoder demo]. ==== - Bech32 is preferably written with only lowercase characters, but those @@ -1215,7 +1215,7 @@ Checksum:: Let's illustrate these rules by walking through an example of creating bech32 and bech32m addresses. For all of the following examples, we'll use the -https://github.com/sipa/bech32/tree/master/ref[bech32m reference code +https://oreil.ly/gpTT6[bech32m reference code for Python]. We'll start by generating four output scripts, one for each of the @@ -1593,7 +1593,7 @@ Vanity searches on GPU systems are many orders of magnitude faster than on a general-purpose CPU. Another way to find a vanity address is to outsource the work to a pool -of vanity miners. A https://bitcointalk.org/index.php?topic=84569.0[vanity pool] is a service that +of vanity miners. A https://oreil.ly/99K81[vanity pool] is a service that allows those with fast hardware to earn bitcoin searching for vanity addresses for others. For a fee, Eugenia can outsource the search for a seven-character pattern vanity address and get results in a few hours @@ -1669,10 +1669,6 @@ address, in the form of detachable stubs similar to ticket stubs, allowing you to store multiple copies to protect against fire, flood, or other natural disasters. -[[paper_wallet_spw]] -.An example of a paper wallet with additional copies of the keys on a backup "stub" -image::images/mbc3_0411.png[] - From the original public-key focused design of Bitcoin to modern addresses and scripts like bech32m and pay to taproot--and even addresses for future Bitcoin upgrades--you've learned how the Bitcoin protocol allows diff --git a/ch05_wallets.adoc b/ch05_wallets.adoc index b31d9e83..fe0e634c 100644 --- a/ch05_wallets.adoc +++ b/ch05_wallets.adoc @@ -257,7 +257,7 @@ most of the time, relying on memory alone is dangerous: them access to bitcoins, they may attempt to coerce you into disclosing that code. As of this writing, Bitcoin contributor Jameson Lopp has - https://github.com/jlopp/physical-bitcoin-attacks/blob/master/README.md[documented] + https://oreil.ly/aw5XM[documented] over 100 physical attacks against suspected owners of bitcoin and other digital assets, including at least three deaths and numerous occasions where someone was tortured, held hostage, or had their @@ -342,7 +342,7 @@ recovery codes to be stored in different places, specifying how many of them will be required in order to recover the seed. As a new proposal, details about Codex32 may change significantly before this book is published, so we encourage any readers interested in distributed -recovery codes to investigate its https://secretcodex32.com[current +recovery codes to investigate its https://oreil.ly/Xx_Zq[current status]. ==== diff --git a/ch06_transactions.adoc b/ch06_transactions.adoc index 5e76d550..3ce7e548 100644 --- a/ch06_transactions.adoc +++ b/ch06_transactions.adoc @@ -342,7 +342,7 @@ $ bitcoin-cli getrawtransaction \ ---- This odd behavior is probably an unintentional consequence of a -https://bitcoin.stackexchange.com/questions/116730/why-does-bitcoin-core-print-sha256-hashes-uint256-bytes-in-reverse-order[design +https://oreil.ly/01JH2[design decision in early Bitcoin software]. As a practical matter, it means developers of Bitcoin software need to remember to reverse the order of bytes in transaction and block identifiers that they show to users. @@ -894,7 +894,7 @@ mutation is called _unwanted second-party transaction malleability_. [[segwit]] ==== Segregated Witness -As early as https://bitcointalk.org/index.php?topic=40627.msg494697[2011], +As early as https://oreil.ly/---bp[2011], protocol developers knew how to solve the problems of circular dependence, third-party malleability, and second-party malleability. The idea was to avoid including the input script in the calculation that diff --git a/ch07_authorization-authentication.adoc b/ch07_authorization-authentication.adoc index eadccb4b..422839c5 100644 --- a/ch07_authorization-authentication.adoc +++ b/ch07_authorization-authentication.adoc @@ -164,7 +164,7 @@ numbers and putting the result on the stack, followed by the conditional operator +OP_EQUAL+, which checks that the resulting sum is equal to +5+. For brevity, the +OP_+ prefix may sometimes be omitted in examples in this book. For more details on the available script operators and -functions, see https://en.bitcoin.it/wiki/Script[Bitcoin Wiki's script +functions, see https://oreil.ly/21vH9[Bitcoin Wiki's script page]. Although most legacy output scripts refer to a public key hash (essentially, a @@ -209,7 +209,7 @@ value zero or an empty stack), the script execution is halted explicitly by an operator (such as +VERIFY+, +OP_RETURN+), or the script was not semantically valid (such as containing an +OP_IF+ statement that was not terminated by an +OP_ENDIF+ -opcode). For details, see https://en.bitcoin.it/wiki/Script[Bitcoin +opcode). For details, see https://oreil.ly/J2DXt[Bitcoin Wiki's script page]. ==== @@ -863,7 +863,7 @@ language, +OP_CLTV+ allows us to develop some very interesting complex scripts. The standard is defined in -https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki[BIP65 +https://oreil.ly/YmJGD[BIP65 (OP_CHECKLOCKTIMEVERIFY)]. [[op_csv]] @@ -892,9 +892,9 @@ the +OP_CHECKSEQUENCEVERIFY+ (+OP_CSV+) opcode. Relative timelocks are implemented according to the specifications in -https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki[BIP68, +https://oreil.ly/ZuANb[BIP68, Relative lock-time using consensus-enforced sequence numbers] and -https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki[BIP112, +https://oreil.ly/dLA2r[BIP112, +OP_CHECKSEQUENCEVERIFY+]. BIP68 and BIP112 were activated in May 2016 as a soft fork upgrade to @@ -935,7 +935,7 @@ parent transaction has been propagated, mined, and aged by the time specified in the relative timelock. One application of this use case is shown in <> and <>. +OP_CSV+ is defined in detail in -https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki[BIP112, +https://oreil.ly/z_Obw[BIP112, CHECKSEQUENCEVERIFY]. === Scripts with Flow Control (Conditional Clauses) diff --git a/ch08_signatures.adoc b/ch08_signatures.adoc index 642fb022..78ce3213 100644 --- a/ch08_signatures.adoc +++ b/ch08_signatures.adoc @@ -913,7 +913,7 @@ process seeded in part with the transaction data itself plus the private key being used to sign. This ensures that each transaction produces a different _k_. The industry-standard algorithm for deterministic initialization of _k_ for -ECDSA is defined in https://tools.ietf.org/html/rfc6979[RFC6979], published by +ECDSA is defined in https://oreil.ly/yuabl[RFC6979], published by the Internet Engineering Task Force. For schnorr signatures, BIP340 recommends a default signing algorithm. diff --git a/ch09_fees.adoc b/ch09_fees.adoc index 4b5a9862..1dca57e0 100644 --- a/ch09_fees.adoc +++ b/ch09_fees.adoc @@ -174,7 +174,7 @@ $ bitcoin-cli -named estimatesmartfee conf_target=144 ---- Many web-based services also provide fee estimation as an API. For a -current list, see https://www.lopp.net/bitcoin-information/fee-estimates.html. +current list, see https://oreil.ly/TB6IN. As mentioned, fee rate estimation can never be perfect. One common problem is that the fundamental demand might change, adjusting the @@ -289,7 +289,7 @@ whether or not that has happened yet. As a user, if you plan to use RBF fee bumping, you will first need to choose a wallet that supports it, such as one of the wallets listed as having "Sending support" on -https://bitcoinops.org/en/compatibility/#replace-by-fee-rbf. +https://oreil.ly/IhMzx. As a developer, if you plan to implement RBF fee bumping, you will first need to decided whether to perform opt-in RBF or full RBF. At the time @@ -525,7 +525,7 @@ Protocol developers have been working on mitigating problems with transaction pinning for several years. One partial solution is described in <>. Several other solutions have been proposed, and at least one solution is being actively developed as of -this writing—https://bitcoinops.org/en/topics/ephemeral-anchors[ephemeral anchors]. +this writing—https://oreil.ly/300dv[ephemeral anchors]. [[cpfp_carve_out]] === CPFP Carve Out and Anchor Outputs diff --git a/ch10_network.adoc b/ch10_network.adoc index 0225bed1..7eb367b7 100644 --- a/ch10_network.adoc +++ b/ch10_network.adoc @@ -235,7 +235,7 @@ be used on a private network where there's some level of trust and accountability between parties. The original -https://www.bitcoinrelaynetwork.org[Bitcoin Relay Network] was created by +https://oreil.ly/30ZKi[Bitcoin Relay Network] was created by developer Matt Corallo in 2015 to enable fast synchronization of blocks between miners with very low latency. The network consisted of several Virtual Private Servers (VPSes) hosted on diff --git a/ch11_blockchain.adoc b/ch11_blockchain.adoc index f31637c2..dc1a8507 100644 --- a/ch11_blockchain.adoc +++ b/ch11_blockchain.adoc @@ -188,7 +188,7 @@ point for the blockchain, a secure "root" from which to build a trusted blockchain. See the statically encoded genesis block inside the Bitcoin Core client -in https://github.com/bitcoin/bitcoin/blob/3955c3940eff83518c186facfec6f50545b5aab5/src/chainparams.cpp#L123[_chainparams.cpp_]. +in https://oreil.ly/FqPW5[_chainparams.cpp_]. The following identifier hash belongs to the genesis block: @@ -713,7 +713,7 @@ To use the command-line tool, you need to specify the +regtest+ flag too. Let's try the +getblockchaininfo+ command to inspect the regtest blockchain: ----- +----git comm $ bitcoin-cli -regtest getblockchaininfo { "chain": "regtest", diff --git a/ch12_mining.adoc b/ch12_mining.adoc index f16e8e25..63213150 100644 --- a/ch12_mining.adoc +++ b/ch12_mining.adoc @@ -1861,11 +1861,11 @@ consensus rules activated in two steps: After successful signaling and activation under the BIP34 rules, this mechanism was used twice more to activate soft forks: -- https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki[BIP66] +- https://oreil.ly/Xes2l[BIP66] Strict DER Encoding of Signatures was activated by BIP34 style signaling with a block version "3." -- https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki[BIP65] +- https://oreil.ly/pk8tz[BIP65] +CHECKLOCKTIMEVERIFY+ was activated by BIP34 style signaling with a block version "4." @@ -1968,7 +1968,7 @@ and associated BIPs (68, 112, 113). The proposal named "csv" was activated successfully in July of 2016. The standard is defined in -https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki[BIP9 +https://oreil.ly/FoCsz[BIP9 (Version bits with timeout and delay)]. === BIP8: Mandatory Lock-in with Early Activation diff --git a/ch14_applications.adoc b/ch14_applications.adoc index 5cef6719..ef1be591 100644 --- a/ch14_applications.adoc +++ b/ch14_applications.adoc @@ -300,7 +300,7 @@ The developers of RGB have described other uses for their protocol, such as creating identity tokens that can be periodically updated to protect against private key compromise. -For more information, see https://rgb.tech/[RGB's documentation]. +For more information, see https://rgb.tech[RGB's documentation]. ==== Taproot Assets @@ -353,7 +353,7 @@ translated forwarding. Taproot Assets is specifically designed around translated forwarding, whereas RGB has seen proposals to implement both. For more information, see -https://docs.lightning.engineering/the-lightning-network/taproot-assets[Taproot +https://oreil.ly/Ef4hb[Taproot Asset's documentation]. Additionally, the Taproot Asset developers are working on BIPs that may be available after this book goes into print. @@ -975,7 +975,7 @@ The Lightning Network is a proposed routed network of bidirectional payment channels connected end-to-end. A network like this can allow any participant to route a payment from channel to channel without trusting any of the intermediaries. The Lightning Network was -https://lightning.network/lightning-network-paper.pdf[first described by +https://oreil.ly/NM8LC[first described by Joseph Poon and Thadeus Dryja in February 2015], building on the concept of payment channels as proposed and elaborated upon by many others. @@ -983,7 +983,7 @@ of payment channels as proposed and elaborated upon by many others. channel network, which has now been implemented by at least five different open source teams. The independent implementations are coordinated by a set of interoperability standards described in the -https://github.com/lightning/bolts/blob/master/00-introduction.md[_Basics of Lightning Technology (BOLT)_ repository]. +https://oreil.ly/lIGIA[_Basics of Lightning Technology (BOLT)_ repository]. ==== Basic Lightning Network Example @@ -1138,7 +1138,7 @@ censorship, or blacklists. But how does Alice establish this payment path, without revealing anything to the intermediary nodes? The Lightning Network implements an onion-routed protocol based on a -scheme called https://cypherpunks.ca/~iang/pubs/Sphinx_Oakland09.pdf[Sphinx]. This routing protocol +scheme called https://oreil.ly/fuCiK[Sphinx]. This routing protocol ensures that a payment sender can construct and communicate a path through the Lightning Network such that: diff --git a/preface.asciidoc b/preface.asciidoc index 4405da68..f7e7a084 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -63,7 +63,7 @@ This book is here to help you get your job done. In general, if example code is We appreciate, but do not require, attribution. An attribution usually includes [.keep-together]#the title,# author, publisher, and ISBN. For example: “_Mastering Bitcoin_ by [.keep-together]#Andreas M.# Antonopoulos and David A. Harding (O’Reilly). Copyright 2024, ISBN 978-1-491-95438-6.” -Some editions of this book are offered under an open source license, such as https://creativecommons.org/licenses/by-nc/4.0/[CC-BY-NC], in which case the terms of that license apply. +Some editions of this book are offered under an open source license, such as https://oreil.ly/RzUHE[CC-BY-NC], in which case the terms of that license apply. If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at pass:[permissions@oreilly.com]. @@ -107,7 +107,7 @@ Please address comments and questions concerning this book to the publisher: ++++ -We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at link:$$https://www.oreilly.com/catalog/catalog_page$$[]. +We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at link:$$https://oreil.ly/MasteringBitcoin3e$$[]. ++++