Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add forking terms to glossary #1018

Merged
merged 6 commits into from
Dec 10, 2019
Merged

Conversation

s-ben
Copy link
Contributor

@s-ben s-ben commented Oct 30, 2019

Adds definitions for Fork, Hard Fork and Soft Fork to glossary ( Closes #1001 ).

docs/glossary.md Outdated

A programming term for an open-source code modification. The modified code is considered a “fork” of the original code. Typically, forks contain modifications that significantly alter the original code. For example, the Bitcoin Cash fork of the Bitcoin blockchain raised the block size from 1Mb to 8 Mb. If the state of the blockchain is also forked, as was the case with Bitcoin Cash, it is also considered a “chain fork”. In this case, owners of coins on the original chain will have equivalent coins on the new chain when the chains diverge. Decred began its life as a source code fork of [btcd](https://github.com/btcsuite/btcd), an alternate full node implementation of Bitcoin. Significant changes were then made before launch, including modifications to the consensus rules, a Proof-of-Stake (PoS) layer to enable on-chain governance, a new hashing algorithm and other innovations. It is arguable whether Decred is a source code fork, considering the scope of modifications made. Decred is not a chain fork, as it did not copy the state of the Bitcoin blockchain, and instead started from its own genesis block.

It is also worth noting that chain forks can and do regularly occur without any code changes. This happens unintentionally when nodes in the network temporarily disagree on the state of the blockchain. Typically, these forks are short lived and resolve when the nodes reach consensus.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be valuable to add a line regarding sustained forks as they can cause a great deal of damage and decred is well protected from them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a line that defines a sustained chain split. Definition taken from @noahpierau's article that explains Decred's advantages here (which I also link to):

It is also worth noting that chain forks can and do regularly occur without any code changes. This happens unintentionally when nodes in the network temporarily disagree on the state of the blockchain. Typically, these forks are short lived and resolve when the nodes reach consensus. In sustained chain splits such as Bitcoin Cash, there is sufficient economic and hash power to support multiple competing versions of the blockchain for an extended period of time.

Copy link
Contributor Author

@s-ben s-ben left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zubairzia0 addressed your comment. Didn't intend for this to be a separate review of my own PR though....am I doing this wrong or is this a new GitHub thing?

docs/glossary.md Outdated

A programming term for an open-source code modification. The modified code is considered a “fork” of the original code. Typically, forks contain modifications that significantly alter the original code. For example, the Bitcoin Cash fork of the Bitcoin blockchain raised the block size from 1Mb to 8 Mb. If the state of the blockchain is also forked, as was the case with Bitcoin Cash, it is also considered a “chain fork”. In this case, owners of coins on the original chain will have equivalent coins on the new chain when the chains diverge. Decred began its life as a source code fork of [btcd](https://github.com/btcsuite/btcd), an alternate full node implementation of Bitcoin. Significant changes were then made before launch, including modifications to the consensus rules, a Proof-of-Stake (PoS) layer to enable on-chain governance, a new hashing algorithm and other innovations. It is arguable whether Decred is a source code fork, considering the scope of modifications made. Decred is not a chain fork, as it did not copy the state of the Bitcoin blockchain, and instead started from its own genesis block.

It is also worth noting that chain forks can and do regularly occur without any code changes. This happens unintentionally when nodes in the network temporarily disagree on the state of the blockchain. Typically, these forks are short lived and resolve when the nodes reach consensus.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a line that defines a sustained chain split. Definition taken from @noahpierau's article that explains Decred's advantages here (which I also link to):

It is also worth noting that chain forks can and do regularly occur without any code changes. This happens unintentionally when nodes in the network temporarily disagree on the state of the blockchain. Typically, these forks are short lived and resolve when the nodes reach consensus. In sustained chain splits such as Bitcoin Cash, there is sufficient economic and hash power to support multiple competing versions of the blockchain for an extended period of time.

Copy link
Member

@0xmzz 0xmzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good for now.

docs/glossary.md Outdated Show resolved Hide resolved
docs/glossary.md Outdated Show resolved Hide resolved
Copy link
Member

@davecgh davecgh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval as of commit 2eafab4.

docs/glossary.md Show resolved Hide resolved
docs/glossary.md Outdated Show resolved Hide resolved
docs/glossary.md Outdated Show resolved Hide resolved
@s-ben
Copy link
Contributor Author

s-ben commented Dec 4, 2019

@jholdstock, made a couple tweaks based on your suggestions. Lgtm

@jholdstock jholdstock merged commit 9232f33 into decred:master Dec 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add forking terms to Glossary
4 participants