From 582be1bf61145ac9a14d0587c918b397f27be403 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Sun, 21 May 2017 22:38:50 -0400 Subject: [PATCH 1/5] Add uasf and masf gloassary terms --- _data/glossary/en/masf.yaml | 29 +++++++++++++++++++++++++++++ _data/glossary/en/uasf.yaml | 28 ++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 _data/glossary/en/masf.yaml create mode 100644 _data/glossary/en/uasf.yaml diff --git a/_data/glossary/en/masf.yaml b/_data/glossary/en/masf.yaml new file mode 100644 index 00000000..ae14cbdf --- /dev/null +++ b/_data/glossary/en/masf.yaml @@ -0,0 +1,29 @@ +--- +# This file is licensed under the MIT License (MIT) available on +# http://opensource.org/licenses/MIT. + +required: + #-------------40 characters-------------# + title_max_40_characters_no_formatting: Miner Activated Soft Fork, MASF + + summary_max_255_characters_no_formatting: > + A Soft Fork activated by through miner signalling. + + synonyms_shown_in_glossary_capitalize_first_letter: + - Miner-activated soft fork + - MASF + +optional: + synonyms_and_pluralizations_not_shown_in_glossary: + + not_to_be_confused_with_capitalize_first_letter: + - User Activated Soft Fork (a soft fork activated by flag day or node enforcement instead of miner signalling.) + - Fork (a regular fork where all nodes follow the same consensus rules, so the fork is resolved once one chain has more proof of work than another) + - Hard fork (a permanent divergence in the block chain caused by non-upgraded nodes not following new consensus rules) + - Soft fork (a temporary divergence in the block chain caused by non-upgraded nodes not following new consensus rules) + - Software fork (when one or more developers permanently develops a codebase separately from other developers) + - Git fork (when one or more developers temporarily develops a codebase separately from other developers + + links_html_or_markdown_style_capitalize_first_letter: + +--- diff --git a/_data/glossary/en/uasf.yaml b/_data/glossary/en/uasf.yaml new file mode 100644 index 00000000..53e3295c --- /dev/null +++ b/_data/glossary/en/uasf.yaml @@ -0,0 +1,28 @@ +--- +# This file is licensed under the MIT License (MIT) available on +# http://opensource.org/licenses/MIT. + +required: + #-------------40 characters-------------# + title_max_40_characters_no_formatting: User Activated Soft Fork, UASF + + summary_max_255_characters_no_formatting: > + A Soft Fork activated by flag day or node enforcement instead of miner signalling. + + synonyms_shown_in_glossary_capitalize_first_letter: + - User-activated soft fork + - UASF + +optional: + synonyms_and_pluralizations_not_shown_in_glossary: + + not_to_be_confused_with_capitalize_first_letter: + - Fork (a regular fork where all nodes follow the same consensus rules, so the fork is resolved once one chain has more proof of work than another) + - Hard fork (a permanent divergence in the block chain caused by non-upgraded nodes not following new consensus rules) + - Soft fork (a temporary divergence in the block chain caused by non-upgraded nodes not following new consensus rules) + - Software fork (when one or more developers permanently develops a codebase separately from other developers) + - Git fork (when one or more developers temporarily develops a codebase separately from other developers + + links_html_or_markdown_style_capitalize_first_letter: + +--- From 2390680b5ded74ef54730664872aa41371ae9db4 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Sun, 21 May 2017 22:48:52 -0400 Subject: [PATCH 2/5] Add node glossary term and full node types in dev guide Added a node glossary term Added descriptions of full nodes, archival nodes, and pruned nodes to the dev guide. Linked the term "peer" to node instead of original location. --- _autocrossref.yaml | 2 -- _data/glossary/en/node.yaml | 31 +++++++++++++++++++++++++++ _data/glossary/en/uasf.yaml | 1 + _includes/devdoc/guide_p2p_network.md | 9 +++++--- _includes/references.md | 2 -- 5 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 _data/glossary/en/node.yaml diff --git a/_autocrossref.yaml b/_autocrossref.yaml index b338a1e5..10f5fe2c 100644 --- a/_autocrossref.yaml +++ b/_autocrossref.yaml @@ -95,8 +95,6 @@ output index: PaymentDetails: PaymentRequest: PaymentRequests: paymentrequest -peer: -peers: peer peer-to-peer: network peer-to-peer network: network '`ping` message': ping message diff --git a/_data/glossary/en/node.yaml b/_data/glossary/en/node.yaml new file mode 100644 index 00000000..f329f862 --- /dev/null +++ b/_data/glossary/en/node.yaml @@ -0,0 +1,31 @@ +--- +# This file is licensed under the MIT License (MIT) available on +# http://opensource.org/licenses/MIT. + +required: + #-------------40 characters-------------# + title_max_40_characters_no_formatting: Node + + summary_max_255_characters_no_formatting: > + A computer that connects to the Bitcoin network. + + synonyms_shown_in_glossary_capitalize_first_letter: + - Node + - Full node + - Archival node + - Pruned node + - Peer + +optional: + synonyms_and_pluralizations_not_shown_in_glossary: + - Nodes + - Peers + + not_to_be_confused_with_capitalize_first_letter: + - Lightweight node + - SPV node + + links_html_or_markdown_style_capitalize_first_letter: + - "[Full node](https://en.bitcoin.it/wiki/Full_node) --- Bitcoin Wiki" + +--- diff --git a/_data/glossary/en/uasf.yaml b/_data/glossary/en/uasf.yaml index 53e3295c..b47819f6 100644 --- a/_data/glossary/en/uasf.yaml +++ b/_data/glossary/en/uasf.yaml @@ -17,6 +17,7 @@ optional: synonyms_and_pluralizations_not_shown_in_glossary: not_to_be_confused_with_capitalize_first_letter: + - Miner Activated Soft Fork (a soft fork activated through miner signalling) - Fork (a regular fork where all nodes follow the same consensus rules, so the fork is resolved once one chain has more proof of work than another) - Hard fork (a permanent divergence in the block chain caused by non-upgraded nodes not following new consensus rules) - Soft fork (a temporary divergence in the block chain caused by non-upgraded nodes not following new consensus rules) diff --git a/_includes/devdoc/guide_p2p_network.md b/_includes/devdoc/guide_p2p_network.md index dad6774e..45f78bb9 100644 --- a/_includes/devdoc/guide_p2p_network.md +++ b/_includes/devdoc/guide_p2p_network.md @@ -10,10 +10,13 @@ http://opensource.org/licenses/MIT. {% autocrossref %} The Bitcoin network protocol allows full nodes -([peers][peer]{:#term-peer}{:.term}) to collaboratively maintain a +(peers) to collaboratively maintain a [peer-to-peer network][network]{:#term-network}{:.term} for block and -transaction exchange. Many SPV clients also use this protocol to connect -to full nodes. +transaction exchange. Full nodes download and verify every block and transaction +prior to relaying them to other nodes. Archival nodes are full nodes which +store the entire blockchain and can serve historical blocks to other nodes. +Pruned nodes are full nodes which do not store the entire blockchain. Many SPV +clients also use the Bitcoin network protocol to connect to full nodes. Consensus rules do not cover networking, so Bitcoin programs may use alternative networks and protocols, such as the [high-speed block relay diff --git a/_includes/references.md b/_includes/references.md index b581bbf2..a3ac2de1 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -33,8 +33,6 @@ http://opensource.org/licenses/MIT. [PaymentDetails]: /en/developer-examples#term-paymentdetails "The PaymentDetails of the payment protocol which allows the receiver to specify the payment details to the spender" [PaymentRequest]: /en/developer-examples#term-paymentrequest "The PaymentRequest of the payment protocol which contains and allows signing of the PaymentDetails" [PaymentRequests]: /en/developer-examples#term-paymentrequest "The PaymentRequest of the payment protocol which contains and allows signing of the PaymentDetails" -[peer]: /en/developer-guide#term-peer "Peer on the P2P network who receives and broadcasts transactions and blocks" -[peers]: /en/developer-guide#term-peer "Peers on the P2P network who receive and broadcast transactions and blocks" [PKI]: /en/developer-examples#term-pki "Public Key Infrastructure; usually meant to indicate the X.509 certificate system used for HTTP Secure (https)." [point function]: /en/developer-guide#term-point-function "The ECDSA function used to create a public key from a private key" [pp amount]: /en/developer-examples#term-pp-amount "Part of the Output part of the PaymentDetails part of a payment protocol where receivers can specify the amount of satoshis they want paid to a particular pubkey script" From 3472076be532a8c255f0d8ab12c2a59f588ca0ed Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Sun, 21 May 2017 22:54:44 -0400 Subject: [PATCH 3/5] Add block size limit glossary term --- _data/glossary/en/block-size-limit.yaml | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 _data/glossary/en/block-size-limit.yaml diff --git a/_data/glossary/en/block-size-limit.yaml b/_data/glossary/en/block-size-limit.yaml new file mode 100644 index 00000000..0dd4d456 --- /dev/null +++ b/_data/glossary/en/block-size-limit.yaml @@ -0,0 +1,28 @@ +--- +# This file is licensed under the MIT License (MIT) available on +# http://opensource.org/licenses/MIT. + +required: + #-------------40 characters-------------# + title_max_40_characters_no_formatting: Block Size Limit + + summary_max_255_characters_no_formatting: > + The maximum size in bytes that the consensus rules allow a block to be. + The current block size limit is 1000000 bytes. + + synonyms_shown_in_glossary_capitalize_first_letter: + - Maximum Block Size + +optional: + synonyms_and_pluralizations_not_shown_in_glossary: + + not_to_be_confused_with_capitalize_first_letter: + - Block + - Blockchain + - Blockchain size + + links_html_or_markdown_style_capitalize_first_letter: + - "[Serialized Blocks](/en/developer-reference#serialized-blocks) --- Bitcoin.org Developer Guide" + - "[Block](https://en.bitcoin.it/wiki/Block) --- Bitcoin Wiki" + +--- From 8619bded76b91df3c82002c059def63ee090e1aa Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 22 May 2017 14:06:29 -0400 Subject: [PATCH 4/5] Fix CI with node term in code block --- _includes/devdoc/bitcoin-core/rpcs/rpcs/listbanned.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/devdoc/bitcoin-core/rpcs/rpcs/listbanned.md b/_includes/devdoc/bitcoin-core/rpcs/rpcs/listbanned.md index ba33c7da..5832d021 100644 --- a/_includes/devdoc/bitcoin-core/rpcs/rpcs/listbanned.md +++ b/_includes/devdoc/bitcoin-core/rpcs/rpcs/listbanned.md @@ -48,7 +48,7 @@ The `listbanned` RPC {{summary_listBanned}} - n: "→ →
`ban_reason`" t: "string" p: "Required
(exactly 1)" - d: "Set to one of the following reasons:
• `node misbehaving` if the node was banned by the client because of DoS violations
• `manually added` if the node was manually banned by the user" + d: "Set to one of the following reasons:
• `node misbehaving` if the node was banned by the client because of DoS violations
• `manually added` if the node was manually banned by the user" {% enditemplate %} @@ -85,4 +85,4 @@ Result: * [SetBan][rpc setban]: {{summary_setBan}} * [ClearBanned][rpc clearbanned]: {{summary_clearBanned}} -{% endautocrossref %} \ No newline at end of file +{% endautocrossref %} From f2d403fcd4dd77f0be0a8a8969041c82585505d7 Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 23 May 2017 11:04:50 -0400 Subject: [PATCH 5/5] Add paragraphs for UASF and MASF --- _includes/devdoc/guide_block_chain.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/_includes/devdoc/guide_block_chain.md b/_includes/devdoc/guide_block_chain.md index 451cf242..9c178b23 100644 --- a/_includes/devdoc/guide_block_chain.md +++ b/_includes/devdoc/guide_block_chain.md @@ -317,6 +317,22 @@ a hard or soft fork. For example, "increasing the block size above 1 MB requires a hard fork." In this example, an actual block chain fork is not required---but it is a possible outcome. +Consensus rule changes may be activated in various ways. During Bitcoin's +first two years, Satoshi Nakamoto performed several soft forks by just +releasing the backwards-compatible change in a client that began immediately +enforcing the new rule. Multiple soft forks such as BIP30 have +been activated via a flag day where the new rule began to be enforced at a +preset time or block height. Such forks activated via a flag day are known as +[User Activated Soft Forks][/en/glossary/uasf]{:#term-uasf}{:.term} (UASF) as +they are dependent on having sufficient users (nodes) to enforce the new rules +after the flag day. + +Later soft forks waited for a majority of of hash rate (typically 75% or 95%) +to signal their readiness for enforcing the new consensus rules. Once the signalling +threshold has been passed, all nodes will begin enforcing the new rules. Such +forks are known as [Miner Activated Soft Forks][/en/glossary/masf]{:#term-masf}{:.term} (MASF) +as they are dependent on miners for activation. + **Resources:** [BIP16][], [BIP30][], and [BIP34][] were implemented as changes which might have lead to soft forks. [BIP50][] describes both an accidental hard fork, resolved by temporary downgrading the capabilities