Jump to content

Bitcoin Core: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Development: This is true, other than the name being wrong, but is completely unsupported by the citation which contains no mention of MIT at all. It mentions the Bitcoin foundation (no relation to MIT), which is defunct and doesn't support developers, didn't support developers at the time of the article and isn't claimed to by the article (and except for a couple month period never did)
More complete analysis of funding.
Line 35: Line 35:
==Development==
==Development==
The original creator of the bitcoin client has described their approach to the software's authorship as it being written first to prove to themselves that the concept of purely peer-to-peer electronic cash was valid and that a paper with solutions could be written. The lead developer is Wladimir J. van der Laan, who took over the role on 8 April 2014.<ref name="hunt"/> [[Gavin Andresen]] was the former lead maintainer for the software client. Andresen left the role of lead developer for bitcoin to work on the strategic development of its technology.<ref name="hunt">{{cite book |title=Bitcoin: The Hunt of Satoshi Nakamoto |last=Preukschat |first=Alex |author2=Josep Busquet |year=2015 |publisher=Europe Comics |isbn=9791032800201 |page=87 |url=https://play.google.com/store/books/details?id=438FCwAAQBAJ |accessdate=16 November 2016}}</ref> Bitcoin Core developers have been in charge of bitcoin's development since [[Satoshi Nakamoto]] left the project.<ref name="wtbf">{{Cite news |url=https://www.forbes.com/sites/laurashin/2017/10/23/will-this-battle-for-the-soul-of-bitcoin-destroy-it/#62d19db23d3c |title=Will This Battle For The Soul Of Bitcoin Destroy It? |author=Laura Shin |accessdate=14 April 2018 |date=23 October 2017 |work=Forbes }}</ref> Bitcoin Core in 2015 was central to a dispute with [[Bitcoin XT]], a competing client that sought to increase the blocksize.<ref name="NewYorker">{{Cite news |url=https://www.newyorker.com/business/currency/inside-the-fight-over-bitcoins-future
The original creator of the bitcoin client has described their approach to the software's authorship as it being written first to prove to themselves that the concept of purely peer-to-peer electronic cash was valid and that a paper with solutions could be written. The lead developer is Wladimir J. van der Laan, who took over the role on 8 April 2014.<ref name="hunt"/> [[Gavin Andresen]] was the former lead maintainer for the software client. Andresen left the role of lead developer for bitcoin to work on the strategic development of its technology.<ref name="hunt">{{cite book |title=Bitcoin: The Hunt of Satoshi Nakamoto |last=Preukschat |first=Alex |author2=Josep Busquet |year=2015 |publisher=Europe Comics |isbn=9791032800201 |page=87 |url=https://play.google.com/store/books/details?id=438FCwAAQBAJ |accessdate=16 November 2016}}</ref> Bitcoin Core developers have been in charge of bitcoin's development since [[Satoshi Nakamoto]] left the project.<ref name="wtbf">{{Cite news |url=https://www.forbes.com/sites/laurashin/2017/10/23/will-this-battle-for-the-soul-of-bitcoin-destroy-it/#62d19db23d3c |title=Will This Battle For The Soul Of Bitcoin Destroy It? |author=Laura Shin |accessdate=14 April 2018 |date=23 October 2017 |work=Forbes }}</ref> Bitcoin Core in 2015 was central to a dispute with [[Bitcoin XT]], a competing client that sought to increase the blocksize.<ref name="NewYorker">{{Cite news |url=https://www.newyorker.com/business/currency/inside-the-fight-over-bitcoins-future
|title=Inside the Fight Over Bitcoin’s Future |author=Maria Bustillos |accessdate=29 June 2020 |date=25 August 2015 |work=New Yorker}}</ref> Blockstream has funded bitcoin core development.<ref name="FT05152018">{{cite news |last1=Kelly |first1=Jemima |title=Bitcoin cash is expanding into the void |url=https://ftalphaville.ft.com/2018/05/15/1526356800000/Bitcoin-cash-is-expanding-into-the-void/ |accessdate=3 June 2018 |newspaper=[[Financial Times]] |date=15 May 2018}}</ref> The MIT Digital Currency Initiative supported bitcoin core developers and paid them in Bitcoin.
|title=Inside the Fight Over Bitcoin’s Future |author=Maria Bustillos |accessdate=29 June 2020 |date=25 August 2015 |work=New Yorker}}</ref> Over a dozen different companies and industry groups fund the development of Bitcoin Core.{{cite web|url=https://blog.bitmex.com/who-funds-bitcoin-development/|title=Who Funds Bitcoin Development?|date=2020-03-28|publisher=BitMex Research|access-date=2020-06-30}}

{{cite news |last1=Kelly |first1=Jemima |title=Bitcoin cash is expanding into the void |url=https://ftalphaville.ft.com/2018/05/15/1526356800000/Bitcoin-cash-is-expanding-into-the-void/ |accessdate=3 June 2018 |newspaper=[[Financial Times]] |date=15 May 2018}}


{{external media| float =| width = | video1 = [https://www.youtube.com/watch?v=FIt7GLxxIpY Visualization of code changes during 2015]}}
{{external media| float =| width = | video1 = [https://www.youtube.com/watch?v=FIt7GLxxIpY Visualization of code changes during 2015]}}

Revision as of 02:06, 30 June 2020

Bitcoin Core
Original author(s)Satoshi Nakamoto
Initial release2009
Stable release27.0 (15 April 2024; 2 months ago (2024-04-15)) [±]
Repositorygithub.com/bitcoin/bitcoin
Written inC++
Operating systemLinux, Windows, macOS
TypeCryptocurrency
LicenseMIT License
Websitebitcoincore.org

Bitcoin Core is free and open-source software that serves as a bitcoin node (the set of which form the bitcoin network) and provides a bitcoin wallet which fully verifies payments. It is considered to be bitcoin's reference implementation.[1] Initially, the software was published by Satoshi Nakamoto under the name "Bitcoin", and later renamed to "Bitcoin Core" to distinguish it from the network.[2] For this reason, it is also known as the Satoshi client.[3]

The MIT Digital Currency Initiative funds some of the development of Bitcoin Core.[4] The project also maintains the cryptography library libsecp256k1.[5]

Features

Bitcoin Core includes a transaction verification engine and connects to the bitcoin network as a full node.[3] Moreover, a cryptocurrency wallet, which can be used to transfer funds, is included by default.[5] The wallet allows for the sending and receiving of bitcoins. It does not facilitate the buying or selling of bitcoin. It allows users to generate QR codes to receive payment.

The software validates the entire blockchain, which includes all bitcoin transactions ever. This distributed ledger which has reached more than 235 gigabytes in size as of Jan 2019, must be downloaded or synchronized before full participation of the client may occur.[3] Although the complete blockchain is not needed all at once since it is possible to run in pruning mode. A command line-based daemon with a JSON-RPC interface, bitcoind, is bundled with Bitcoin Core. It also provides access to testnet, a global testing environment that imitates the bitcoin main network using an alternative blockchain where valueless "test bitcoins" are used. Regtest or Regression Test Mode creates a private blockchain which is used as a local testing environment.[6] Finally, bitcoin-cli, a simple program which allows users to send RPC commands to bitcoind, is also included.

Checkpoints which have been hard coded into the client are used only to prevent Denial of Service attacks against nodes which are initially syncing the chain. For this reason the checkpoints included are only as of several years ago.[7][8][failed verification] A one megabyte block size limit was added in 2010 by Satoshi Nakamoto. This limited the maximum network capacity to about three transactions per second.[9] Since then, network capacity has been improved incrementally both through block size increases and improved wallet behavior. A network alert system was included by Satoshi Nakamoto as a way of informing users of important news regarding bitcoin.[10] In November 2016 it was retired. It had become obsolete as news on bitcoin is now widely disseminated.

Bitcoin Core includes a scripting language inspired by Forth that can define transactions and specify parameters.[11] ScriptPubKey is used to "lock" transactions based on a set of future conditions. scriptSig is used to meet these conditions or "unlock" a transaction. Operations on the data are performed by various OP_Codes. Two stacks are used - main and alt. Looping is forbidden.

Bitcoin Core uses OpenTimestamps to timestamp merge commits.[12]

Development

The original creator of the bitcoin client has described their approach to the software's authorship as it being written first to prove to themselves that the concept of purely peer-to-peer electronic cash was valid and that a paper with solutions could be written. The lead developer is Wladimir J. van der Laan, who took over the role on 8 April 2014.[13] Gavin Andresen was the former lead maintainer for the software client. Andresen left the role of lead developer for bitcoin to work on the strategic development of its technology.[13] Bitcoin Core developers have been in charge of bitcoin's development since Satoshi Nakamoto left the project.[14] Bitcoin Core in 2015 was central to a dispute with Bitcoin XT, a competing client that sought to increase the blocksize.[15] Over a dozen different companies and industry groups fund the development of Bitcoin Core."Who Funds Bitcoin Development?". BitMex Research. 2020-03-28. Retrieved 2020-06-30.

Kelly, Jemima (15 May 2018). "Bitcoin cash is expanding into the void". Financial Times. Retrieved 3 June 2018.

External videos
video icon Visualization of code changes during 2015

Version history

Bitcoin 0.1 was released on 9 January 2009 by Satoshi Nakamoto with only Windows supported.[citation needed] This was followed by some minor bug fixing versions. On 16 December 2009 Bitcoin 0.2 was released. It included a Linux version for the first time and made use of multi-core processors for mining. In version 0.3.2 Nakamoto included checkpoints as a safeguard. After the release of version 0.3.9, Satoshi Nakamoto left the project and shortly after stopped communicating on online forums.[citation needed]

Between 2011 and 2013 new versions of the software were released at Bitcoin.org.[16] Developers wanted to differentiate themselves as creators of software rather than advocates for bitcoin and so now maintain bitcoincore.org for just the software.

Bitcoin-Qt version 0.5.0 was released on 1 November 2011. It introduced a front end that uses the Qt user interface toolkit.[17] The software previously used Berkeley DB for database management. Developers switched to LevelDB in release 0.8 in order to reduce blockchain synchronization time.[citation needed] The update to this release resulted in a minor blockchain fork on the 11 March 2013. The fork was resolved shortly afterwards.[citation needed] Seeding nodes through IRC was discontinued in version 0.8.2. From version 0.9.0 the software was renamed to Bitcoin Core. Transaction fees were reduced again by a factor of ten as a means to encourage microtransactions.[citation needed] Although Bitcoin Core does not use OpenSSL for the operation of the network, the software did use OpenSSL for remote procedure calls. Version 0.9.1 was released to remove the network's vulnerability to the Heartbleed bug.[citation needed]

Release 0.10 was made public on 16 February 2015. It introduced a consensus library which gave programmers easy access to the rules governing consensus on the network. In version 0.11.2 developers added a new feature which allowed transactions to be made unspendable until a specific time in the future.[18] Bitcoin Core 0.12.1 was released on April 15, 2016 and enabled multiple soft forks to occur concurrently.[19] Around 100 contributors worked on Bitcoin Core 0.13.0 which was released on 23 August 2016.

In July 2016, the CheckSequenceVerify soft fork activated.[20]

In October 2016, Bitcoin Core’s 0.13.1 release featured the "Segwit" soft fork that included a scaling improvement aiming to optimize the bitcoin blocksize.[citation needed] The patch which was originally finalised in April, and 35 developers were engaged to deploy it.[citation needed] This release featured Segregated Witness (SegWit) which aimed to place downward pressure on transaction fees as well as increase the maximum transaction capacity of the network.[21][non-primary source needed] The 0.13.1 release endured extensive testing and research leading to some delays in its release date.[citation needed] SegWit prevents various forms of transaction malleability.[22][non-primary source needed]

In September 2018, a Bitcoin Cash developer discovered the vulnerability CVE-2018-17144 in the Bitcoin Core software that could allow an attacker to crash vulnerable Bitcoin Core nodes and exceed the 21 million coin limit.[23][non-primary source needed]

Bitcoin Improvement Proposals

A Bitcoin Improvement Proposal (BIP) is a design document, typically describing a new feature for Bitcoin with a concise technical specification of the feature and the rationale for it. Bitcoin Core implements some of these design documents.

See also

  • Bitcoin for more information on the network itself.

References

  1. ^ Antonopoulos, Andreas (2017). "3". Mastering Bitcoin: Programming the Open Blockchain (2nd ed.). O'Reilly Media. ISBN 978-1491954386. Bitcoin Core is the reference implementation of the bitcoin system, meaning that it is the authoritative reference on how each part of the technology should be implemented. Bitcoin Core implements all aspects of bitcoin, including wallets, a transaction and block validation engine, and a full network node in the peer-to-peer bitcoin network.
  2. ^ "Bitcoin Core version 0.9.0 released". Bitcoin Core. 19 Mar 2014. Retrieved 21 October 2018.
  3. ^ a b c Antonopoulos, Andreas M. (2014). Mastering Bitcoin: Unlocking Digital Cryptocurrencies. O'Reilly Media, Inc. pp. 31–32. ISBN 978-1491902646. Retrieved 6 November 2016.
  4. ^ "MIT Announces $900,000 Bitcoin Developer Fund". Inc. 29 Mar 2016. Retrieved 21 October 2018.
  5. ^ a b "About". Bitcoin Core. Retrieved 21 October 2018.
  6. ^ "Bitcoin Developer Examples". Bitcoin. Retrieved 21 Oct 2018.
  7. ^ "checkpoints.cpp". Repository source code. GitHub, Inc. Retrieved 13 November 2016.
  8. ^ "bitcoin/chainparams.cpp". GitHub. Retrieved 21 October 2018.
  9. ^ Mike Orcutt (19 May 2015). "Leaderless Bitcoin Struggles to Make Its Most Crucial Decision". MIT Technology Review. Retrieved 15 November 2016.
  10. ^ "Alert System Retirement". Bitcoin Project. 1 November 2016. Retrieved 16 November 2016.
  11. ^ Antonopoulos, Andreas (29 May 2013). "Bitcoin is a money platform with many APIs". Radar. O'Reilly. Retrieved 19 November 2016.
  12. ^ "Bitcoin Core devtools README - Create and verify timestamps of merge commits". GitHub. Retrieved May 5, 2018.
  13. ^ a b Preukschat, Alex; Josep Busquet (2015). Bitcoin: The Hunt of Satoshi Nakamoto. Europe Comics. p. 87. ISBN 9791032800201. Retrieved 16 November 2016.
  14. ^ Laura Shin (23 October 2017). "Will This Battle For The Soul Of Bitcoin Destroy It?". Forbes. Retrieved 14 April 2018.
  15. ^ Maria Bustillos (25 August 2015). "Inside the Fight Over Bitcoin's Future". New Yorker. Retrieved 29 June 2020.
  16. ^ "About bitcoin.org". Bitcoin Project. Retrieved 14 November 2016.
  17. ^ "Bitcoin-Qt version 0.5.0 released". Bitcoin Project. 1 November 2011. Retrieved 13 November 2016.
  18. ^ "Bitcoin Core version 0.11.2 released". Bitcoin Project. 13 November 2015. Retrieved 14 November 2016.
  19. ^ Kyle Torpey (15 April 2016). "Bitcoin Core 0.12.1 Released, Major Step Forward for Scalability". Bitcoin Magazine. NASDAQ.com. Retrieved 7 November 2016.
  20. ^ Antonopoulos, Andreas (2017). Mastering Bitcoin: Programming the Open Blockchain (2nd ed.). O'Reilly Media. ISBN 978-1491954386. BIP-68 and BIP-112 were activated in May 2016 as a soft fork upgrade to the consensus rules.
  21. ^ "Bitcoin Core 0.13.1". Bitcoin Core. Retrieved 25 October 2016.
  22. ^ "Segregated Witness Benefits". Bitcoin Core. January 26, 2016. Retrieved October 20, 2018.
  23. ^ "CVE-2018-17144 Full Disclosure". Bitcoin Core. Retrieved 2018-09-23.

External links