URL shorten

develop
Clare Laylock 7 months ago
parent 52f0f08110
commit f792404a84

@ -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 Bitcoins 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].

@ -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

@ -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 <<satoshi_whitepaper>>). 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:[<a href="https://meetup.com" class="orm:hideurl">Meetup.com</a>].
* 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

@ -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

@ -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
<<constrained_resources>>). 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.

@ -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

@ -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].
====

@ -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

@ -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 <<state_channels>> and <<lightning_network>>.
+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)

@ -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.

@ -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 <<cpfp_carve_out>>. Several other solutions have been
proposed, and at least one solution is being actively developed as of
this writing&mdash;https://bitcoinops.org/en/topics/ephemeral-anchors[ephemeral anchors].
this writing&mdash;https://oreil.ly/300dv[ephemeral anchors].
[[cpfp_carve_out]]
=== CPFP Carve Out and Anchor Outputs

@ -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

@ -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",

@ -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

@ -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:

@ -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 (OReilly). 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:[<a href="mailto:permissions@oreilly.com">permissions@oreilly.com</a>].
@ -107,7 +107,7 @@ Please address comments and questions concerning this book to the publisher:
</ul>
++++
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$$[].
++++
<!--Don't forget to update the link above.-->

Loading…
Cancel
Save