From 8a1c83659bd15a75d08646a0444d7e78d75aab1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa?= Date: Wed, 23 May 2018 15:07:29 +0200 Subject: [PATCH 01/25] fixed example in Table 5-6. HD wallet path examples --- ch05.asciidoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ch05.asciidoc b/ch05.asciidoc index ffe8db8d..3d2ce40c 100644 --- a/ch05.asciidoc +++ b/ch05.asciidoc @@ -453,10 +453,10 @@ The "ancestry" of a key is read from right to left, until you reach the master k |======= |HD path | Key described | m/0 | The first (0) child private key from the master private key (m) -| m/0/0 | The first grandchild private key from the first child (m/0) -| m/0'/0 | The first normal grandchild from the first _hardened_ child (m/0') -| m/1/0 | The first grandchild private key from the second child (m/1) -| M/23/17/0/0 | The first great-great-grandchild public key from the first great-grandchild from the 18th grandchild from the 24th child +| m/0/0 | The first (0) child private key from the first child (m/0) +| m/0'/0 | The first (0) normal child from the first _hardened_ child (m/0') +| m/1/0 | The first (0) child private key from the second child (m/1) +| M/23/17/0/0 | The first (0) child public key from the first child (M/23/17/0) from the 18th child (M/23/17) from the 24th child (M/23) |======= ===== Navigating the HD wallet tree structure From 32d597cf686b304b60d30f6e439122500cc853f6 Mon Sep 17 00:00:00 2001 From: Omar Boukli-Hacene Date: Fri, 1 Jun 2018 14:08:16 +0400 Subject: [PATCH 02/25] Revise URLs in Chapter 12 Use HTTPS scheme in URLs where applicable Replace http://www.openassets.org/ with https://github.com/OpenAssets Edit link title on line 86 to official one Fix two spaces after period to one space (lines 105 and 412) Remove duplicate URL on line 500 as it is appears at line 502 --- ch12.asciidoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ch12.asciidoc b/ch12.asciidoc index 4923bbc2..f89f9f28 100644 --- a/ch12.asciidoc +++ b/ch12.asciidoc @@ -73,7 +73,7 @@ Payment Channels:: ((("payment (state) channels", "building blocks (primitives) More recent implementations of colored coins use the +OP_RETURN+ script opcode to store metadata in a transaction, in conjunction with external data stores that associate the metadata to specific assets. -((("Open Assets")))The two most prominent implementations of colored coins today are http://www.openassets.org/[_Open Assets_] and http://coloredcoins.org[_Colored Coins by Colu_]. These two systems use different approaches to colored coins and are not compatible. Colored coins created in one system cannot be seen or used in the other system. +((("Open Assets")))The two most prominent implementations of colored coins today are https://github.com/OpenAssets[_Open Assets_] and https://coloredcoins.org/[_Colored Coins by Colu_]. These two systems use different approaches to colored coins and are not compatible. Colored coins created in one system cannot be seen or used in the other system. ==== Using Colored Coins @@ -83,9 +83,9 @@ Colored coins are also not visible to most general-purpose blockchain explorers. An Open Assets-compatible wallet application and blockchain explorer can be found at https://www.coinprism.info[coinprism]. -A Colu Colored Coins-compatible wallet application and blockchain explorer can be found at http://coloredcoins.org/explorer/[Blockchain Explorer]. +A Colu Colored Coins-compatible wallet application and blockchain explorer can be found at https://coloredcoins.org/explorer/[Colored Coins Block Explorer]. -A Copay wallet plug-in can be found at http://coloredcoins.org/colored-coins-copay-addon/[Colored Coins Copay Addon]. +A Copay wallet plug-in can be found at https://coloredcoins.org/colored-coins-copay-addon/[Colored Coins Copay Addon]. ==== Issuing Colored Coins @@ -102,7 +102,7 @@ The metadata that gives meaning to a colored coin transaction is usually stored The order of the outputs and position of the marker output may have special meaning in the colored coins protocol. In Open Assets, for example, any outputs before the marker output represent asset issuance. Any outputs after the marker represent asset transfer. The marker output assigns specific values and colors to the other outputs by referencing their order in the transaction. In Colored Coins (Colu), by comparison, the marker output encodes an opcode that determines how the metadata is interpreted. Opcodes 0x01 through 0x0F indicate an issuance transaction. An issuance opcode is usually followed by an asset ID or other identifier that can be used to retrieve the asset information from an external source (e.g., bittorrent). -Opcodes 0x10 through 0x1F represent a transfer transaction. Transfer transaction metadata contain simple scripts that transfer specific amounts of assets from inputs to outputs, by reference to their index. Ordering of inputs and outputs is therefore important in the interpretation of the script. +Opcodes 0x10 through 0x1F represent a transfer transaction. Transfer transaction metadata contain simple scripts that transfer specific amounts of assets from inputs to outputs, by reference to their index. Ordering of inputs and outputs is therefore important in the interpretation of the script. If the metadata is too long to fit in +OP_RETURN+, the colored coins protocol may use other "tricks" to store metadata in a transaction. Examples include putting metadata in a redeem script, followed by +OP_DROP+ opcodes to ensure the script ignores the metadata. Another mechanism used is a 1-of-N multisig script where only the first public key is a real public key that can spend the output and subsequent "keys" are replaced by encoded metadata. @@ -409,7 +409,7 @@ As before, these commitment transactions are asymmetric so that the commitment t Importantly, the revocation doesn't happen automatically. While Hitesh has the ability to punish Irene for cheating, he has to watch the blockchain diligently for signs of cheating. If he sees a prior commitment transaction broadcast, he has 1000 blocks to take action and use the revocation key to thwart Irene's cheating and punish her by taking the entire balance, all 10 bitcoin. -Asymmetric revocable commitments with relative time locks (+CSV+) are a much better way to implement payment channels and a very significant innovation in this technology. With this construct, the channel can remain open indefinitely and can have billions of intermediate commitment transactions. In prototype implementations of Lightning Network, the commitment state is identified by a 48-bit index, allowing more than 281 trillion (2.8 x 10^14^) state transitions in any single channel!((("", startref="PSCaymetric12"))) +Asymmetric revocable commitments with relative time locks (+CSV+) are a much better way to implement payment channels and a very significant innovation in this technology. With this construct, the channel can remain open indefinitely and can have billions of intermediate commitment transactions. In prototype implementations of Lightning Network, the commitment state is identified by a 48-bit index, allowing more than 281 trillion (2.8 x 10^14^) state transitions in any single channel!((("", startref="PSCaymetric12"))) ==== Hash Time Lock Contracts (HTLC) @@ -449,7 +449,7 @@ This is a basic implementation of an HTLC. This type of HTLC can be redeemed by ((("blockchain applications", "routed payment channels", seealso="Lightning Network", id="BCAlightning12")))((("routed payment channels", see="Lightning Network")))((("Lightning Network", "defined")))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 Joseph Poon and Thadeus Dryja in February 2015], building on the concept of payment channels as proposed and elaborated upon by many others. -"Lightning Network" refers to a specific design for a routed payment channel network, which has now been implemented by at least five different open source teams. ((("Basics of Lightning Technology (BOLT)")))The independent implementations are coordinated by a set of interoperability standards described in the http://bit.ly/2rBHeoL[_Basics of Lightning Technology (BOLT)_ paper]. +"Lightning Network" refers to a specific design for a routed payment channel network, which has now been implemented by at least five different open source teams. ((("Basics of Lightning Technology (BOLT)")))The independent implementations are coordinated by a set of interoperability standards described in the https://bit.ly/2rBHeoL[_Basics of Lightning Technology (BOLT)_ paper]. Prototype implementations of the Lightning Network have been released by several teams. For now, these implementations can only be run on testnet because they use segwit, which is not activated on the main bitcoin blockchain (mainnet). @@ -497,7 +497,7 @@ Alice has paid Eric 1 bitcoin without opening a channel to Eric. None of the int ==== Lightning Network Transport and Routing -((("Lightning Network", "transport and routing")))All communications between LN nodes are encrypted point-to-point. In addition, nodes have a long-term public key that they http://bit.ly/2r5TACm[use as an identifier and to authenticate each other]. +((("Lightning Network", "transport and routing")))All communications between LN nodes are encrypted point-to-point. In addition, nodes have a long-term public key that they use as an identifier and to authenticate each other. Whenever a node wishes to send a payment to another node, it must first construct a _path_ through the network by connecting payment channels with sufficient capacity. Nodes advertise routing information, including what channels they have open, how much capacity each channel has, and what fees they charge to route payments. The routing information can be shared in a variety of ways and different routing protocols are likely to emerge as Lightning Network technology advances. Some Lightning Network implementations use the IRC protocol as a convenient mechanism for nodes to announce routing information. Another implementation of route discovery uses a P2P model where nodes propagate channel announcements to their peers, in a "flooding" model, similar to how bitcoin propagates transactions. Future plans include a proposal called http://bit.ly/2r5TACm[Flare], which is a hybrid routing model with local node "neighborhoods" and longer-range beacon nodes. @@ -507,7 +507,7 @@ Importantly, this path is only known to Alice's node. All other participants in This is a critical feature of the Lightning Network, because it ensures privacy of payments and makes it very difficult to apply surveillance, 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 http://bit.ly/2q6ZDrP[Sphinx]. This routing protocol ensures that a payment sender can construct and communicate a path through the Lightning Network such that: +The Lightning Network implements an onion-routed protocol based on a scheme called https://bit.ly/2q6ZDrP[Sphinx]. This routing protocol ensures that a payment sender can construct and communicate a path through the Lightning Network such that: * Intermediate nodes can verify and decrypt their portion of route information and find the next hop. From 6599228da5b851e884ddd4151e360daa08594fb8 Mon Sep 17 00:00:00 2001 From: Gus Date: Thu, 10 Oct 2019 08:35:27 -0600 Subject: [PATCH 03/25] Removes sentence structure error: "outputs" --- ch07.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch07.asciidoc b/ch07.asciidoc index 4989c9b5..1c00e3c9 100644 --- a/ch07.asciidoc +++ b/ch07.asciidoc @@ -788,7 +788,7 @@ While P2SH uses the 20-byte +RIPEMD160(SHA256(script))+ hash, the P2WSH witness ==== -Mohammed's company can spend outputs the P2WSH output by presenting the correct redeem script and sufficient signatures to satisfy it. Both the redeem script and the signatures would be segregated _outside_ the spending transaction as part of the witness data. Within the transaction input, Mohammed's ((("", startref="mohamappd")))wallet would put an empty +scriptSig+: +Mohammed's company can spend the P2WSH output by presenting the correct redeem script and sufficient signatures to satisfy it. Both the redeem script and the signatures would be segregated _outside_ the spending transaction as part of the witness data. Within the transaction input, Mohammed's ((("", startref="mohamappd")))wallet would put an empty +scriptSig+: .Decoded transaction showing a P2WSH output being spent with separate witness data ---- From 15d2ec3e3761b40db700271c2b80d139b3ddb03e Mon Sep 17 00:00:00 2001 From: Harry Moreno Date: Sat, 12 Oct 2019 00:47:57 -0400 Subject: [PATCH 04/25] Remove unneeded env var declaration The NODE_PATH is not needed to run these examples. Also this is an unreliable way to set the environment variable anyway (didn't work for me). --- appdx-bitcore.asciidoc | 1 - 1 file changed, 1 deletion(-) diff --git a/appdx-bitcore.asciidoc b/appdx-bitcore.asciidoc index 43848303..de60a160 100644 --- a/appdx-bitcore.asciidoc +++ b/appdx-bitcore.asciidoc @@ -32,7 +32,6 @@ If using NodeJS and the node REPL: [source,bash] ---- $ npm install -g bitcore-lib bitcore-p2p -$ NODE_PATH=$(npm list -g | head -1)/node_modules node ---- ==== Wallet Examples using bitcore-lib From ee79882eb85e46ac3e266487710ab371d0143c28 Mon Sep 17 00:00:00 2001 From: Stacie Waleyko Date: Mon, 28 Oct 2019 08:30:42 -0400 Subject: [PATCH 05/25] Fix typo in chapter 7 ("to" => "with") --- ch07.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch07.asciidoc b/ch07.asciidoc index 4989c9b5..d721f736 100644 --- a/ch07.asciidoc +++ b/ch07.asciidoc @@ -886,7 +886,7 @@ Even though Alice's wallet has no support for segwit, the payment it creates can Similarly, a P2WSH witness program for a multisig script or other complicated script can be embedded inside a P2SH script and address, making it possible for any wallet to make payments that are segwit compatible. -As we saw in <>, Mohammed's ((("use cases", "import/export")))company is using Segregated Witness payments to multisignature scripts. To make it possible for any client to pay his company, regardless of whether their wallets are upgraded for segwit, Mohammed's wallet can embed the P2WSH witness program inside a P2SH script. +As we saw in <>, Mohammed's ((("use cases", "import/export")))company is using Segregated Witness payments with multisignature scripts. To make it possible for any client to pay his company, regardless of whether their wallets are upgraded for segwit, Mohammed's wallet can embed the P2WSH witness program inside a P2SH script. First, Mohammed's wallet hashes the redeem script with SHA256 (just once). Let's use +bx+ to do that on the command-line: From 250b5dd84159fc6c593ef7414cc424d5fae5430f Mon Sep 17 00:00:00 2001 From: Nicholas Chen Date: Fri, 10 Jan 2020 13:31:31 -0500 Subject: [PATCH 06/25] small grammar corrections --- ch01.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch01.asciidoc b/ch01.asciidoc index c703f1ab..347b47d6 100644 --- a/ch01.asciidoc +++ b/ch01.asciidoc @@ -6,7 +6,7 @@ ((("bitcoin", "defined", id="GSdefine01")))Bitcoin is a collection of concepts and technologies that form the basis of a digital money ecosystem. Units of currency called bitcoin are used to store and transmit value among participants in the bitcoin network. Bitcoin users communicate with each other using the bitcoin protocol primarily via the internet, although other transport networks can also be used. The bitcoin protocol stack, available as open source software, can be run on a wide range of computing devices, including laptops and smartphones, making the technology easily accessible. -Users can transfer bitcoin over the network to do just about anything that can be done with conventional currencies, including buy and sell goods, send money to people or organizations, or extend credit. Bitcoin can be purchased, sold, and exchanged for other currencies at specialized currency exchanges. Bitcoin in a sense is the perfect form of money for the internet because it is fast, secure, and borderless. +Users can transfer bitcoin over the network to do just about anything that can be done with conventional currencies, including buying and selling goods, sending money to people or organizations, or extending credit. Bitcoin can be purchased, sold, and exchanged for other currencies at specialized currency exchanges. Bitcoin in a sense is the perfect form of money for the internet because it is fast, secure, and borderless. Unlike traditional currencies, bitcoin are entirely virtual. There are no physical coins or even digital coins per se. The coins are implied in transactions that transfer value from sender to recipient. Users of bitcoin own keys that allow them to prove ownership of bitcoin in the bitcoin network. With these keys they can sign transactions to unlock the value and spend it by transferring it to a new owner. Keys are often stored in a digital wallet on each user’s computer or smartphone. Possession of the key that can sign a transaction is the only prerequisite to spending bitcoin, putting the control entirely in the hands of each user. From 0e2256e39408fd405660c0a680a89059f364b03e Mon Sep 17 00:00:00 2001 From: JoWo Date: Wed, 5 Feb 2020 11:24:21 +0100 Subject: [PATCH 07/25] ensuring "constant width" of two references to nLocktime --- ch07.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ch07.asciidoc b/ch07.asciidoc index 4989c9b5..b3cb2801 100644 --- a/ch07.asciidoc +++ b/ch07.asciidoc @@ -329,7 +329,7 @@ More precisely, +CHECKLOCKTIMEVERIFY+ fails and halts execution, marking the tra After execution, if +CLTV+ is satisfied, the time parameter that preceded it remains as the top item on the stack and may need to be dropped, with +DROP+, for correct execution of subsequent script opcodes. You will often see +CHECKLOCKTIMEVERIFY+ followed by +DROP+ in scripts for this reason. -By using nLocktime in conjunction with +CLTV+, the scenario described in <> changes. Alice can no longer spend the money (because it's locked with Bob's key) and Bob cannot spend it before the 3-month locktime has expired.((("", startref="alicesseven"))) +By using +nLocktime+ in conjunction with +CLTV+, the scenario described in <> changes. Alice can no longer spend the money (because it's locked with Bob's key) and Bob cannot spend it before the 3-month locktime has expired.((("", startref="alicesseven"))) By introducing timelock functionality directly into the scripting language, +CLTV+ allows us to develop some very interesting complex scripts.((("", startref="cltv07"))) @@ -355,7 +355,7 @@ BIP-68 and BIP-112 were activated in May 2016 as a soft fork upgrade to the cons The +nSequence+ field was originally intended (but never properly implemented) to allow modification of transactions in the mempool. In that use, a transaction containing inputs with +nSequence+ value below 2^32^ - 1 (0xFFFFFFFF) indicated a transaction that was not yet "finalized." Such a transaction would be held in the mempool until it was replaced by another transaction spending the same inputs with a higher +nSequence+ value. Once a transaction was received whose inputs had an +nSequence+ value of 0xFFFFFFFF it would be considered "finalized" and mined. -The original meaning of +nSequence+ was never properly implemented and the value of +nSequence+ is customarily set to 0xFFFFFFFF in transactions that do not utilize timelocks. For transactions with nLocktime or +CHECKLOCKTIMEVERIFY+, the +nSequence+ value must be set to less than 2^31^ for the timelock guards to have an effect, as explained below. +The original meaning of +nSequence+ was never properly implemented and the value of +nSequence+ is customarily set to 0xFFFFFFFF in transactions that do not utilize timelocks. For transactions with +nLocktime+ or +CHECKLOCKTIMEVERIFY+, the +nSequence+ value must be set to less than 2^31^ for the timelock guards to have an effect, as explained below. ===== nSequence as a consensus-enforced relative timelock From f564e602261845c6c14de2015e3d9ead0351e7d2 Mon Sep 17 00:00:00 2001 From: Dan Nolan Date: Wed, 12 Feb 2020 16:53:32 -0500 Subject: [PATCH 08/25] Integer Typo --- ch10.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch10.asciidoc b/ch10.asciidoc index 2bc7e9a2..f8ded7e2 100644 --- a/ch10.asciidoc +++ b/ch10.asciidoc @@ -875,7 +875,7 @@ Let's look at a specific example. Assume a miner has purchased mining hardware w ++++ -...where 21240 is the number of blocks in four years. The miner has a 98% probability of finding a block over four years, based on the global hash rate at the beginning of the period. +...where 210240 is the number of blocks in four years. The miner has a 98% probability of finding a block over four years, based on the global hash rate at the beginning of the period. If the miner does find a single block in that timeframe, the payout of 12.5 bitcoin, at approximately $1,000 per bitcoin, will result in a single payout of $12,500, which will produce a net profit of about $7,000. However, the chance of finding a block in a 4-year period depends on the miner's luck. He might find two blocks in 4 years and make a very large profit. Or he might not find a block for 5 years and suffer a bigger financial loss. Even worse, the difficulty of the bitcoin Proof-of-Work algorithm is likely to go up significantly over that period, at the current rate of growth of hashing power, meaning the miner has, at most, one year to break even before the hardware is effectively obsolete and must be replaced by more powerful mining hardware. If this miner participates in a mining pool, instead of waiting for a once-in-four-years $12,500 windfall, he will be able to earn approximately $50 to $60 per week. The regular payouts from a mining pool will help him amortize the cost of hardware and electricity over time without taking an enormous risk. The hardware will still be obsolete in one or two years and the risk is still high, but the revenue is at least regular and reliable over that period. Financially this only makes sense at very low electricity cost (less than 1 cent per kW-hour) and only at very large scale. From 5dce134ebb410ce5f2623058e162447f22917a3f Mon Sep 17 00:00:00 2001 From: emag Date: Mon, 2 Mar 2020 19:09:17 +0900 Subject: [PATCH 09/25] Fix Alice's transaction URL --- ch02.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch02.asciidoc b/ch02.asciidoc index 15da9b8f..36dab0e3 100644 --- a/ch02.asciidoc +++ b/ch02.asciidoc @@ -262,7 +262,7 @@ Jing's winning block became part of the blockchain as block #277316, containing [TIP] ==== -You can see the block that includes https://blockchain.info/block-height/277316[Alice's transaction]. +You can see the block that includes https://blockchain.info/btc/block/277316[Alice's transaction]. ==== ((("confirmations", "role in transactions")))Approximately 19 minutes later, a new block, #277317, is mined by another miner. Because this new block is built on top of block #277316 that contained Alice's transaction, it added even more computation to the blockchain, thereby strengthening the trust in those transactions. Each block mined on top of the one containing the transaction counts as an additional confirmation for Alice's transaction. As the blocks pile on top of each other, it becomes exponentially harder to reverse the transaction, thereby making it more and more trusted by the network. From 16361241c83eac65c623b026e3248544290a1274 Mon Sep 17 00:00:00 2001 From: Nhan Vu Date: Thu, 30 Apr 2020 16:02:48 +0200 Subject: [PATCH 10/25] Replace OpenSSL with secp265k1 According to the tweet https://twitter.com/aantonop/status/1255853793805287429 I replaced OpenSSL with secp265k1 and point to the bitcoin core github repository. Feel free to generate your bit.ly url. My name is Tri Nhan Vu focussing on blockchain education for german speaking people https://chainist.de/. --- ch04.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch04.asciidoc b/ch04.asciidoc index 13538374..aa53910d 100644 --- a/ch04.asciidoc +++ b/ch04.asciidoc @@ -236,7 +236,7 @@ To visualize multiplication of a point with an integer, we will use the simpler [TIP] ==== -((("OpenSSL cryptographic library")))Most bitcoin implementations use the http://bit.ly/1ql7bn8[OpenSSL cryptographic library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.((("", startref="KAover04"))) +((("secp256k1 C library")))Bitcoin usees the https://github.com/bitcoin-core/secp256k1[secp256k1 C library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.((("", startref="KAover04"))) ==== [[ecc_illustrated]] From 52f39e19693638d8c3e2fc5d170d8af2971df03a Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 11:07:07 -0600 Subject: [PATCH 11/25] ch04: Fix typo and update link --- ch04.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch04.asciidoc b/ch04.asciidoc index aa53910d..c97f8c3a 100644 --- a/ch04.asciidoc +++ b/ch04.asciidoc @@ -236,7 +236,7 @@ To visualize multiplication of a point with an integer, we will use the simpler [TIP] ==== -((("secp256k1 C library")))Bitcoin usees the https://github.com/bitcoin-core/secp256k1[secp256k1 C library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.((("", startref="KAover04"))) +((("secp256k1 optimized C library")))Bitcoin uses the https://github.com/bitcoin-core/secp256k1[secp256k1 optimized C library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.((("", startref="KAover04"))) ==== [[ecc_illustrated]] From 24424fa54121174e7a03eeb8c512848cf3eebbbf Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 11:11:08 -0600 Subject: [PATCH 12/25] preface: Add contributor, Nhan Vu --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 8cc1e664..6f6b578e 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -234,6 +234,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Minh T. Nguyen (enderminh) * Nagaraj Hubli (nagarajhubli) * Nekomata (nekomata-3) +* Nhan Vu (jobnomade) * Philipp Gille (philippgille) * Robert Furse (Rfurse) * Richard Kiss (richardkiss) From 465eb1e986f581325ba5061a1e810f37b67e35c4 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 14:12:58 -0600 Subject: [PATCH 13/25] preface: Add contributor, Yoshimasa Tanabe --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 6f6b578e..4fb82b1c 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -254,4 +254,5 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * wjx * Wojciech Langiewicz (wlk) * Yancy Ribbens (yancyribbens) +* Yoshimasa Tanabe (emag) * yurigeorgiev4((("", startref="acknowledge0"))) From 3234b12cd392a3760b6853f889826fb76658316b Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 20:36:14 -0600 Subject: [PATCH 14/25] ch04: Drop incorrect reference to function --- ch04.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch04.asciidoc b/ch04.asciidoc index c97f8c3a..4f9e4199 100644 --- a/ch04.asciidoc +++ b/ch04.asciidoc @@ -236,7 +236,7 @@ To visualize multiplication of a point with an integer, we will use the simpler [TIP] ==== -((("secp256k1 optimized C library")))Bitcoin uses the https://github.com/bitcoin-core/secp256k1[secp256k1 optimized C library] to do the elliptic curve math. For example, to derive the public key, the function +EC_POINT_mul()+ is used.((("", startref="KAover04"))) +((("secp256k1 optimized C library")))Bitcoin uses the https://github.com/bitcoin-core/secp256k1[secp256k1 optimized C library] to do the elliptic curve math.((("", startref="KAover04"))) ==== [[ecc_illustrated]] From d851aa80045e47d3323325e52f326723be61bdbb Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 20:41:01 -0600 Subject: [PATCH 15/25] preface: Add contributor, Reproducibility Matters --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 4fb82b1c..47c9172f 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -236,6 +236,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Nekomata (nekomata-3) * Nhan Vu (jobnomade) * Philipp Gille (philippgille) +* Reproducibility Matters (TheCharlatan) * Robert Furse (Rfurse) * Richard Kiss (richardkiss) * Ruben Alexander (hizzvizz) From 6b7ac0501f6c070f3f5535b90781cdf41fbfc7a2 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 21:15:13 -0600 Subject: [PATCH 16/25] preface: Add contributors, Dan Nolan & Michael Newman --- preface.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/preface.asciidoc b/preface.asciidoc index 47c9172f..b46ca616 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -183,6 +183,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Cragin Godley (cgodley) * Craig Dodd (cdodd) * dallyshalla +* Dan Nolan (Dan-Nolan) * Darius Kramer (dkrmr) * David Huie (DavidHuie) * Diego Viola (diegoviola) @@ -230,6 +231,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Maximilian Reichel (phramz) * Michalis Kargakis (kargakis) * Michael C. Ippolito (michaelcippolito) +* Michael Newman (michaelbnewman) * Mihail Russu (MihailRussu) * Minh T. Nguyen (enderminh) * Nagaraj Hubli (nagarajhubli) From 46cd70c1aaace752839dad6c8cc90634ac1bd34c Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 21:28:10 -0600 Subject: [PATCH 17/25] preface: Add contributors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + Adán SDPC (aesedepece) + Jordan Baczuk (JBaczuk) + María Martín (mmartinbar) --- preface.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/preface.asciidoc b/preface.asciidoc index b46ca616..d414a4a7 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -169,6 +169,7 @@ Many contributors offered comments, corrections, and additions to the early-rele Following is a list of notable GitHub contributors, including their GitHub ID in parentheses: +* Adán SDPC (aesedepece) * Akira Chiku (achiku) * Alex Waters (alexwaters) * Andrew Donald Kennedy (grkvlt) @@ -214,6 +215,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Jameson Lopp (jlopp) * Jason Bisterfeldt (jbisterfeldt) * Javier Rojas (fjrojasgarcia) +* Jordan Baczuk (JBaczuk) * Jeremy Bokobza (bokobza) * JerJohn15 * Joe Bauers (joebauers) @@ -226,6 +228,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Magomed Aliev (30mb1) * Mai-Hsuan Chia (mhchia) * Marco Falke (MarcoFalke) +* María Martín (mmartinbar) * Marzig (marzig76) * Matt McGivney (mattmcgiv) * Maximilian Reichel (phramz) From 2b96dae992c62c2a53c306a6dbf3ff2526fde7a0 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 21:52:00 -0600 Subject: [PATCH 18/25] ch12: Revise URL reference --- ch12.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch12.asciidoc b/ch12.asciidoc index f89f9f28..d7ed938a 100644 --- a/ch12.asciidoc +++ b/ch12.asciidoc @@ -83,7 +83,7 @@ Colored coins are also not visible to most general-purpose blockchain explorers. An Open Assets-compatible wallet application and blockchain explorer can be found at https://www.coinprism.info[coinprism]. -A Colu Colored Coins-compatible wallet application and blockchain explorer can be found at https://coloredcoins.org/explorer/[Colored Coins Block Explorer]. +A Colu Colored Coins-compatible wallet application and blockchain explorer can be found at https://coloredcoins.org/explorer/[Colored Coins Blockchain Explorer]. A Copay wallet plug-in can be found at https://coloredcoins.org/colored-coins-copay-addon/[Colored Coins Copay Addon]. From 7a35d2c3f9d075d3ffbe9a563ab5d0d1c1adcdf4 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 21:53:54 -0600 Subject: [PATCH 19/25] preface: Add contributor, Omar Boukli-Hacene --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index d414a4a7..90845f36 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -240,6 +240,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Nagaraj Hubli (nagarajhubli) * Nekomata (nekomata-3) * Nhan Vu (jobnomade) +* Omar Boukli-Hacene (oboukli) * Philipp Gille (philippgille) * Reproducibility Matters (TheCharlatan) * Robert Furse (Rfurse) From 4cfe0a82733c8217839c0bc6fb0fdc49fe363c49 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 22:11:03 -0600 Subject: [PATCH 20/25] preface: Add contributor, Gus (netpoe) --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 90845f36..dec08fb8 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -206,6 +206,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Frank Höger (francyi) * Gaurav Rana (bitcoinsSG) * genjix +* Gus (netpoe) * halseth * Holger Schinzel (schinzelh) * Ioannis Cherouvim (cherouvim) From 2a2a5e93bed3c9788401de89968bcc89389b7da3 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 22:13:06 -0600 Subject: [PATCH 21/25] preface: Add contributor, Harry Moreno --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index dec08fb8..355f0ff9 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -208,6 +208,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * genjix * Gus (netpoe) * halseth +* Harry Moreno (morenoh149) * Holger Schinzel (schinzelh) * Ioannis Cherouvim (cherouvim) * Ish Ot Jr. (ishotjr) From 2b08f07c4741a49c9fc614b464df806387be62e4 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Thu, 30 Apr 2020 22:15:00 -0600 Subject: [PATCH 22/25] preface: Add contributor, Stacie (staciewaleyko) --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 355f0ff9..d14ddba7 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -253,6 +253,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Sergej Kotliar (ziggamon) * Seiichi Uchida (topecongiro) * Simon de la Rouviere (simondlr) +* Stacie (staciewaleyko) * Stephan Oeste (Emzy) * takaya-imai * Thiago Arrais (thiagoarrais) From 13da8927d365d8b3664749cc5c6dac9fe83c6a3a Mon Sep 17 00:00:00 2001 From: Will Binns Date: Fri, 1 May 2020 11:55:46 -0600 Subject: [PATCH 23/25] preface: Add contributor, Zheng Jia --- preface.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/preface.asciidoc b/preface.asciidoc index d14ddba7..7ed20a8e 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -265,4 +265,5 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Wojciech Langiewicz (wlk) * Yancy Ribbens (yancyribbens) * Yoshimasa Tanabe (emag) -* yurigeorgiev4((("", startref="acknowledge0"))) +* yurigeorgiev4 +* Zheng Jia (zhengjia)((("", startref="acknowledge0"))) From 3abff440896adf01d1ca9f8dbb68c91d3e9e0178 Mon Sep 17 00:00:00 2001 From: Will Binns Date: Fri, 1 May 2020 11:58:53 -0600 Subject: [PATCH 24/25] preface: Add contributor, Jo Wo --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index 7ed20a8e..ce945e34 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -220,6 +220,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Jordan Baczuk (JBaczuk) * Jeremy Bokobza (bokobza) * JerJohn15 +* Jo Wo (jowo-io) * Joe Bauers (joebauers) * joflynn * Johnson Lau (jl2012) From cd68df7dce67289a3ee6637e7c52475dcb2bb39b Mon Sep 17 00:00:00 2001 From: Will Binns Date: Fri, 1 May 2020 12:03:25 -0600 Subject: [PATCH 25/25] preface: Add contributor, Nicholas Chen --- preface.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/preface.asciidoc b/preface.asciidoc index ce945e34..5777e731 100644 --- a/preface.asciidoc +++ b/preface.asciidoc @@ -243,6 +243,7 @@ Following is a list of notable GitHub contributors, including their GitHub ID in * Nagaraj Hubli (nagarajhubli) * Nekomata (nekomata-3) * Nhan Vu (jobnomade) +* Nicholas Chen (nickycutesc) * Omar Boukli-Hacene (oboukli) * Philipp Gille (philippgille) * Reproducibility Matters (TheCharlatan)