Libbitcoin: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Evoskuil (talk | contribs)
m Add missing category Clients tag.
NotATether (talk | contribs)
Nobody should use bx seed after this.
 
(92 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Image:Libbitcoin-logo.png|250px|right|libbitcoin logo]]
[[Image:Libbitcoin-logo.png|250px|right|libbitcoin logo]]


[http://libbitcoin.org Libbitcoin] is a set of cross platform, open source C++ libraries for building bitcoin applications. The toolkit consists of libraries, examples, test and applications. The project was established on three principles<ref>[https://bitcointalk.org/index.php?topic=30646.msg384791#msg384791 Libbitcoin Values - Amir Taaki]</ref>:
[http://libbitcoin.info Libbitcoin] is a set of cross platform, open source C++ libraries for building bitcoin applications. The toolkit consists of libraries, examples, tests and applications. The project was established on three principles<ref>[https://bitcointalk.org/index.php?topic=30646.msg384791#msg384791 Libbitcoin Values - Amir Taaki]</ref>:


* Privacy: Bitcoin should always remain as private as possible for its users.
* Privacy: Bitcoin should always remain as private as possible for its users.
Line 9: Line 9:


==Status==
==Status==
Libbitcoin is actively maintained. Since version 2.0 the original projects of [[Libbitcoin_Common|Libbitcoin]], [[Libbitcoin_Sever|Obelisk]] and [[Libbitcoin_Explorer|SX]] have been rationalized under a common repository, taxonomy and build system<ref>[https://github.com/libbitcoin Libbitcoin Repository]</ref>.
Libbitcoin is actively maintained. Since version 2.0 the original projects of [[Libbitcoin_Common|Libbitcoin]], [[Obelisk]] and [[SubvertX|SubvertX (sx)]] have been rationalized under a common repository, taxonomy and build system<ref>[https://github.com/libbitcoin Libbitcoin Repository]</ref>.


Libbitcoin includes the dedicated consensus library [[Libbitcoin_Consensus|Libbitcoin Consensus]]. This library provides a clean interface to the 14 source files (and related headers) from Bitcoin Core considered consensus critical. It also includes Python and Java SWIG<ref>[http://www.swig.org SWIG Website]</ref> bindings. The use of this library is optional when building [[Libbitcoin_Blockchain|Libbitcoin Blockchain]].
Libbitcoin includes the dedicated consensus library [[Libbitcoin_Consensus|libbitcoin-consensus]]. This library provides a clean interface to the 34 source and header files from Bitcoin Core considered consensus critical. The use of this library is optional when building [[Libbitcoin_Blockchain|libbitcoin-blockchain]].


Signed single file binaries are available for Libbitcoin Explorer<ref>[https://github.com/libbitcoin/libbitcoin-explorer/wiki/Download-BX Download BX]</ref> and Libbitcoin Server<ref>[https://github.com/libbitcoin/libbitcoin-server/wiki/Download-BS Download BS]</ref> for '''Linux''', '''OSX''' and '''Windows''' platforms. Extensive end-user and developer documentation is provided for Libbitcoin Explorer<ref>[https://github.com/libbitcoin/libbitcoin-explorer/wiki BX Documentation]</ref>.
Signed single file application binaries are available for [[Bitcoin_Explorer|Bitcoin Explorer]]<ref>[https://github.com/libbitcoin/libbitcoin-explorer/wiki/Download-BX Download Bitcoin Explorer (bx)]</ref>, [[Bitcoin_Node|Bitcoin Node]]<ref>[https://github.com/libbitcoin/libbitcoin-node/wiki/Download-BN Download Bitcoin Node(bx)]</ref> and [[Bitcoin_Server|Bitcoin Server]]<ref>[https://github.com/libbitcoin/libbitcoin-server/wiki/Download-BS Download Bitcoin Server (bs)]</ref> for Linux, macOS and Windows platforms. Extensive end-user and developer documentation is provided for Bitcoin Explorer<ref>[https://github.com/libbitcoin/libbitcoin-explorer/wiki Bitcoin Explorer Documentation]</ref>.


Libbitcoin repositories include standard Autotools builds supporting '''GCC''' and '''Clang''' as well as robust '''Visual Studio''' solutions. Linux and OSX builds are regularly tested on Travis-CI<ref>[https://travis-ci.org/libbitcoin/ Libbitcoin Travis Build Status]</ref>. The libraries can be built on ARM. Single file install scripts for Linux/OSX can download and build all dependencies and repositories<ref>[https://github.com/libbitcoin/libbitcoin/blob/master/README.md Libbitcoin Repository Build Instructions]</ref>.
Libbitcoin repositories include standard Autotools builds supporting GCC and Clang as well as robust Visual Studio solutions. Single file install scripts for Linux/macOS can download and build all dependencies and repositories<ref>[https://github.com/libbitcoin/libbitcoin/blob/master/README.md Libbitcoin Repository Build Instructions]</ref>. Linux and macOS builds are regularly tested on Travis-CI<ref>[https://travis-ci.org/libbitcoin Libbitcoin Build Status Reports]</ref> and Windows builds on [https://ci.appveyor.com AppVeyor]. Tests are executed following each automated build and subsequent reports are published through Coveralls<ref>[https://coveralls.io/github/libbitcoin Libbitcoin Test Coverage Reports]</ref>.
 
There are a number of community Bitcoin Server deployments, including those maintained by Neill Miller and by Bitprim<ref>[https://github.com/libbitcoin/libbitcoin-server/wiki/Community-Servers Libbitcoin Community Servers]</ref>.


==Libbitcoin Libraries==
==Libbitcoin Libraries==
* [[Libbitcoin_Common|libbitcoin]]
* [[Libbitcoin_Common|libbitcoin-system]]
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]]
* [[Libbitcoin_Blockchain|libbitcoin-blockchain]]
* [[Libbitcoin_Build|libbitcoin-build]]
* [[Libbitcoin_Client|libbitcoin-client]]
* [[Libbitcoin_Client|libbitcoin-client]]
* [[Libbitcoin_Consensus|libbitcoin-consensus]]
* [[Libbitcoin_Consensus|libbitcoin-consensus]]
* [[Libbitcoin_Database|libbitcoin-database]]
* [[Libbitcoin_Explorer|libbitcoin-explorer]]
* [[Libbitcoin_Explorer|libbitcoin-explorer]]
* [[Libbitcoin_Network|libbitcoin-network]]
* [[Libbitcoin_Node|libbitcoin-node]]
* [[Libbitcoin_Node|libbitcoin-node]]
* [[Libbitcoin_Protocol|libbitcoin-protocol]]
* [[Libbitcoin_Protocol|libbitcoin-protocol]]
* [[Libbitcoin_Server|libbitcoin-server]]
* [[Libbitcoin_Server|libbitcoin-server]]
==Libbitcoin Applications==
* [[Bitcoin_Explorer|Bitcoin Explorer]] (bx) - Bitcoin command line tool
* [[Bitcoin_Node|Bitcoin Node]] (bn) - Bitcoin full node (only)
* [[Bitcoin_Server|Bitcoin Server]] (bs) - Blockchain query service (and full node)


==History==
==History==
Libbitcoin was created by a community of open source developers led by [[Amir_Taaki|Amir Taaki]] (genjix).<ref>[https://github.com/libbitcoin/libbitcoin/graphs/contributors GitHub Libbitcoin Contributors]</ref> It was the first full node re-implementation.
* Libbitcoin was the second full implementation of [https://bitcoin.org/bitcoin.pdf Bitcoin], after the [[Original_Bitcoin_client|original client]]. It was created by a community of open source developers led by [[Amir_Taaki|Amir Taaki]] (genjix).<ref>[https://github.com/libbitcoin/libbitcoin/graphs/contributors GitHub Libbitcoin Contributors]</ref>
 
* The first commits were by [[Patrick_Strateman|Patrick Strateman]] (phantomcircuit) on May 18, 2011<ref>[https://github.com/libbitcoin/libbitcoin/commit/9dea4682bf0e4247f3c4cb8a6c140ade61bf7df7 First Libbitcoin Commit by Patrick Strateman]</ref> and Libbitcoin was announced on July 21, 2011.<ref>[https://bitcointalk.org/index.php?topic=30646.0 Bitcoin Talk Libbitcoin Announcement]</ref>
'''Libbitcoin''' was announced on July 21, 2011.<ref>[https://bitcointalk.org/index.php?topic=30646.0 Bitcoin Talk Libbitcoin Announcement]</ref>
* The related command line application [[SubvertX|SubvertX (sx)]] was announced on November 2, 2011.<ref>[https://bitcointalk.org/index.php?topic=50721.0 Bitcoin Talk SubvertX Announcement]</ref>
 
* The related server [[Obelisk]] was first released on January 6, 2014, with an update to SubvertX (sx) and the second major release of Libbitcoin.<ref>[https://bitcointalk.org/index.php?topic=30646.msg4341812#msg4341812 Bitcoin Talk Libbitcoin, Obelisk and SubvertX Release Announcement]</ref>
The related command line utility '''SubvertX (SX)''' was announced on November 2, 2011.<ref>[https://bitcointalk.org/index.php?topic=50721.0 Bitcoin Talk SubvertX (SX) Announcement]</ref>
* SubvertX was redesigned by [[Eric_Voskuil|Eric Voskuil]] (evoskuil) and released as [[Bitcoin_Explorer|Bitcoin Explorer]] (bx 2.0) on December 13, 2014.<ref>[https://github.com/libbitcoin/libbitcoin-explorer/releases/tag/v2.0.0 Bitcoin Explorer Release]</ref>
 
* The privacy protocol design was the work product of a Libbitcoin team meeting in San Diego in August, 2014.<ref>[https://lists.dyne.org/lurker/message/20140906.221448.18997951.en.html Libbitcoin Update 2014-09-06]</ref>
'''Obelisk''' was first released on January 6, 2014, with an update to SX and the second major release of Libbitcoin.<ref>[https://bitcointalk.org/index.php?topic=30646.msg4341812#msg4341812 Bitcoin Talk Libbitcoin, Obelisk and SX Release Announcement]</ref>
* [[Bitcoin_Server|Bitcoin Server]] (bs 2.0) was released on On May 9th, 2015, replacing Obelisk. A blockchain redesign by genjix substantially improved query performance<ref>[http://www.reddit.com/r/Bitcoin/comments/2go7qm/devs_be_sure_to_test_your_bitcoin_apidata Reddit Post on Obelisk Performance]</ref>.
 
* [[Bitcoin_Node|Bitcoin Node]] (bn 2.2) achieved parity with Bitcoin Server on December 21st, 2015, as a release quality full node.
[[Eric_Voskuil|Eric Voskuil]] (evoskuil) redesigned SX in 2014 and released it as '''[[Libbitcoin_Explorer|Libbitcoin Explorer]] (BX 2.0)''' on December 13, 2014.<ref>[https://github.com/libbitcoin/libbitcoin-explorer/releases/tag/v2.0.0 Bitcoin Explorer (BX) Release]</ref>
* All repositories were updated to version 3.0 on March 7th, 2017, including substantial performance, quality and feature improvements <ref>[https://lists.dyne.org/lurker/message/20170308.080743.d893b7da.en.html Libbitcoin Update 2017-03-08]</ref>.
* Version 4 is in active development as of 2023.
* In August 2023, a [https://milksad.info/disclosure.html security advisory] for the usage of <code>bx seed</code> is published, after it was discovered that it uses a weak pseudo-random generator. The use of <code>bx seed</code> was mentioned in the book [[Mastering_Bitcoin|Mastering Bitcoin]], and users have also reported coin theft of mnemonics created with <code>bx seed</code>.


'''[[Libbitcoin_Server|Libbitcoin Server]] (BS 2.0)''' was released on On May 9th, 2015, replacing Obelisk. A blockchain redesign by genjix substantially improved query performance<ref>[http://www.reddit.com/r/Bitcoin/comments/2go7qm/devs_be_sure_to_test_your_bitcoin_apidata Reddit Post on Obelisk Performance]</ref>.
==Active Maintainers==
* [[Eric_Voskuil|Eric Voskuil]] (core development)
* Phillip Mienk (core development)
* Neill Miller (wallet development, hosting)
* Kulpreet Singh, PhD (store development)
* Skaht (bx operational test)


==Early Contributors==
==Early Contributors==
* [[Amir_Taaki|Amir Taaki]] (gengix)
* [[Amir_Taaki|Amir Taaki]] (genjix)
* Robert Williamson (bobalot)
* Robert Williamson (bobalot)
* [[Patrick_Strateman|Patrick Strateman]] (phantomcircuit)
* [[Patrick_Strateman|Patrick Strateman]] (phantomcircuit)
Line 49: Line 66:
==Projects Using Libbitcoin==
==Projects Using Libbitcoin==
* [[Airbitz]]
* [[Airbitz]]
* [http://bitswapr.com BitSwapr]
* [http://bitprim.org/ Bitprim]
* [http://www.darkwallet.is Darkwallet]
* [https://cancoin.co/wallet Cancoin]
* [https://chip-chap.com Chip-Chap]
* [https://github.com/darkwallet/darkleaks Darkleaks]
* [https://www.darkwallet.is Darkwallet]
* [https://github.com/darkwallet/darkmarket Darkmarket]
* [[Mastering_Bitcoin]]
* [https://github.com/mvs-live/metaverse Metaverse]
* [http://openbazaar.org OpenBazaar]
* [http://openbazaar.org OpenBazaar]
* [https://www.cs.cornell.edu/People/egs/papers/teechan.pdf Teechan]


==See Also==
==See Also==
* [https://bitcointalk.org/index.php?topic=30646.0 Bitcointalk]
* [http://libbitcoin.info libbitcoin.info]
* http://libbitcoin.org
* {{Freenode IRC|libbitcoin}}
* {{Freenode IRC|darkwallet}}
* [https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/libbitcoin Libbitcoin Mailing List]
* https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/libbitcoin
* [https://bitcointalk.org/index.php?topic=30646.0 Bitcointalk Topic]
* https://bitcoinmagazine.com/6234/what-libbitcoin-and-sx-are-and-why-they-matter
* https://bitcoinmagazine.com/articles/what-libbitcoin-and-sx-are-and-why-they-matter-1376064919
* http://blog.coinkite.com/post/97397052686/public-obelisk-server-for-the-community
* http://www.slideshare.net/swansontec/libbitcoin-slides
* http://www.slideshare.net/swansontec/libbitcoin-slides
* https://github.com/aantonop/bitcoinbook/blob/develop/appdx-bx.asciidoc
* https://github.com/aantonop/bitcoinbook/blob/develop/appdx-bx.asciidoc
* [https://libbitcoin.dyne.org/ Early Documentation]


==References==
==References==


[[Category:Clients‏‎]]
[[Category:Clients‏‎]]
[[Category:Nodes]]
[[Category:Open Source]]
[[Category:Software‏‎]]

Latest revision as of 10:07, 10 August 2023

libbitcoin logo
libbitcoin logo

Libbitcoin is a set of cross platform, open source C++ libraries for building bitcoin applications. The toolkit consists of libraries, examples, tests and applications. The project was established on three principles[1]:

  • Privacy: Bitcoin should always remain as private as possible for its users.
  • Scalability: Bitcoin built today with the future in mind.
  • Integrity: No individual or group should have enough power over the network to compromise its original aims.


Status

Libbitcoin is actively maintained. Since version 2.0 the original projects of Libbitcoin, Obelisk and SubvertX (sx) have been rationalized under a common repository, taxonomy and build system[2].

Libbitcoin includes the dedicated consensus library libbitcoin-consensus. This library provides a clean interface to the 34 source and header files from Bitcoin Core considered consensus critical. The use of this library is optional when building libbitcoin-blockchain.

Signed single file application binaries are available for Bitcoin Explorer[3], Bitcoin Node[4] and Bitcoin Server[5] for Linux, macOS and Windows platforms. Extensive end-user and developer documentation is provided for Bitcoin Explorer[6].

Libbitcoin repositories include standard Autotools builds supporting GCC and Clang as well as robust Visual Studio solutions. Single file install scripts for Linux/macOS can download and build all dependencies and repositories[7]. Linux and macOS builds are regularly tested on Travis-CI[8] and Windows builds on AppVeyor. Tests are executed following each automated build and subsequent reports are published through Coveralls[9].

There are a number of community Bitcoin Server deployments, including those maintained by Neill Miller and by Bitprim[10].

Libbitcoin Libraries

Libbitcoin Applications

History

  • Libbitcoin was the second full implementation of Bitcoin, after the original client. It was created by a community of open source developers led by Amir Taaki (genjix).[11]
  • The first commits were by Patrick Strateman (phantomcircuit) on May 18, 2011[12] and Libbitcoin was announced on July 21, 2011.[13]
  • The related command line application SubvertX (sx) was announced on November 2, 2011.[14]
  • The related server Obelisk was first released on January 6, 2014, with an update to SubvertX (sx) and the second major release of Libbitcoin.[15]
  • SubvertX was redesigned by Eric Voskuil (evoskuil) and released as Bitcoin Explorer (bx 2.0) on December 13, 2014.[16]
  • The privacy protocol design was the work product of a Libbitcoin team meeting in San Diego in August, 2014.[17]
  • Bitcoin Server (bs 2.0) was released on On May 9th, 2015, replacing Obelisk. A blockchain redesign by genjix substantially improved query performance[18].
  • Bitcoin Node (bn 2.2) achieved parity with Bitcoin Server on December 21st, 2015, as a release quality full node.
  • All repositories were updated to version 3.0 on March 7th, 2017, including substantial performance, quality and feature improvements [19].
  • Version 4 is in active development as of 2023.
  • In August 2023, a security advisory for the usage of bx seed is published, after it was discovered that it uses a weak pseudo-random generator. The use of bx seed was mentioned in the book Mastering Bitcoin, and users have also reported coin theft of mnemonics created with bx seed.

Active Maintainers

  • Eric Voskuil (core development)
  • Phillip Mienk (core development)
  • Neill Miller (wallet development, hosting)
  • Kulpreet Singh, PhD (store development)
  • Skaht (bx operational test)

Early Contributors

Projects Using Libbitcoin

See Also

References