2019-03-21 13:00:41 +00:00
Elements Project blockchain platform
====================================
2012-12-12 21:27:58 -05:00
2025-07-07 10:24:29 +03:00
[](https://github.com/ElementsProject/elements/releases)
2014-08-26 21:10:52 +12:00
2019-03-21 13:00:41 +00:00
https://elementsproject.org
2012-12-12 21:27:58 -05:00
2019-03-21 13:00:41 +00:00
This is the integration and staging tree for the Elements blockchain platform,
a collection of feature experiments and extensions to the Bitcoin protocol.
This platform enables anyone to build their own businesses or networks
pegged to Bitcoin as a sidechain or run as a standalone blockchain with arbitrary asset tokens.
2012-12-12 21:27:58 -05:00
2019-04-05 13:50:30 -04:00
Modes
-----
Elements supports a few different pre-set chains for syncing. Note though some are intended for QA and debugging only:
* Liquid mode: `elementsd -chain=liquidv1` (syncs with Liquid network)
* Bitcoin mainnet mode: `elementsd -chain=main` (not intended to be run for commerce)
* Bitcoin testnet mode: `elementsd -chain=testnet3`
* Bitcoin regtest mode: `elementsd -chain=regtest`
* Elements custom chains: Any other `-chain=` argument. It has regtest-like default parameters that can be over-ridden by the user by a rich set of start-up options.
2019-03-21 13:00:41 +00:00
Confidential Assets
----------------
The latest feature in the Elements blockchain platform is Confidential Assets,
the ability to issue multiple assets on a blockchain where asset identifiers
and amounts are blinded yet auditable through the use of applied cryptography.
2012-12-12 21:27:58 -05:00
2019-03-21 13:00:41 +00:00
* [Announcement of Confidential Assets ](https://blockstream.com/2017/04/03/blockstream-releases-elements-confidential-assets.html )
* [Confidential Assets Whitepaper ](https://blockstream.com/bitcoin17-final41.pdf ) to be presented [April 7th at Financial Cryptography 2017 ](http://fc17.ifca.ai/bitcoin/schedule.html ) in Malta
2019-10-23 11:34:04 -07:00
* [Confidential Assets Tutorial ](contrib/assets_tutorial/assets_tutorial.py )
2019-03-21 13:00:41 +00:00
* [Confidential Assets Demo ](https://github.com/ElementsProject/confidential-assets-demo )
* [Elements Code Tutorial ](https://elementsproject.org/elements-code-tutorial/overview ) covering blockchain configuration and how to use the main features.
2012-12-12 21:27:58 -05:00
2019-03-21 13:00:41 +00:00
Features of the Elements blockchain platform
----------------
2010-09-23 18:06:50 +00:00
2019-03-21 13:00:41 +00:00
Compared to Bitcoin itself, it adds the following features:
* [Confidential Assets][asset-issuance]
* [Confidential Transactions][confidential-transactions]
* [Federated Two-Way Peg][federated-peg]
* [Signed Blocks][signed-blocks]
* [Additional opcodes][opcodes]
2010-09-23 18:06:50 +00:00
2019-03-21 13:00:41 +00:00
Previous elements that have been integrated into Bitcoin:
* Segregated Witness
* Relative Lock Time
2010-12-19 10:39:36 -05:00
2019-03-21 13:00:41 +00:00
Elements deferred for additional research and standardization:
* [Schnorr Signatures][schnorr-signatures]
2015-09-24 14:28:07 +01:00
2020-02-04 13:12:42 -05:00
Additional RPC commands and parameters:
2020-03-17 14:27:39 -04:00
* [RPC Docs ](https://elementsproject.org/en/doc/ )
2020-02-04 13:12:42 -05:00
2012-12-12 21:27:58 -05:00
Testing and code review is the bottleneck for development; we get more pull
2014-05-23 09:49:01 +02:00
requests than we can review and test on short notice. Please be patient and help out by testing
other people's pull requests, and remember this is a security-critical project where any mistake might cost people
2012-12-12 21:27:58 -05:00
lots of money.
### Automated Testing
2011-09-26 22:22:19 -04:00
2016-11-02 18:16:32 +01:00
Developers are strongly encouraged to write [unit tests ](src/test/README.md ) for new code, and to
2015-11-18 00:26:07 +01:00
submit new unit tests for old code. Unit tests can be compiled and run
2024-07-24 11:55:19 +01:00
(assuming they weren't disabled during the generation of the build system) with: `ctest` . Further details on running
2016-11-02 18:16:32 +01:00
and extending unit tests can be found in [/src/test/README.md ](/src/test/README.md ).
2013-01-09 15:55:47 -05:00
2017-03-09 09:44:57 -05:00
There are also [regression and integration tests ](/test ), written
2021-02-17 09:19:26 +01:00
in Python.
2024-09-09 21:42:57 -06:00
These tests can be run (if the [test dependencies ](/test ) are installed) with: `build/test/functional/test_runner.py`
(assuming `build` is your build directory).
2015-06-30 09:40:44 -04:00
2020-12-17 10:54:37 +02:00
The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS,
and that unit/sanity tests are run automatically.
2013-01-09 15:55:47 -05:00
2019-03-21 13:00:41 +00:00
License
2012-12-12 21:27:58 -05:00
-------
2019-03-21 13:00:41 +00:00
Elements is released under the terms of the MIT license. See [COPYING ](COPYING ) for more
information or see http://opensource.org/licenses/MIT.
2012-12-12 21:27:58 -05:00
2019-03-21 13:00:41 +00:00
[confidential-transactions]: https://elementsproject.org/features/confidential-transactions
[opcodes]: https://elementsproject.org/features/opcodes
[federated-peg]: https://elementsproject.org/features#federatedpeg
[signed-blocks]: https://elementsproject.org/features#signedblocks
[asset-issuance]: https://elementsproject.org/features/issued-assets
[schnorr-signatures]: https://elementsproject.org/features/schnorr-signatures
2011-09-26 22:22:19 -04:00
2019-03-21 13:00:41 +00:00
What is the Elements Project?
-----------------
Elements is an open source, sidechain-capable blockchain platform. It also allows experiments to more rapidly bring technical innovation to the Bitcoin ecosystem.
2013-01-09 15:55:47 -05:00
2019-03-21 13:00:41 +00:00
Learn more on the [Elements Project website ](https://elementsproject.org )
2015-06-30 09:40:44 -04:00
2019-03-21 13:00:41 +00:00
https://github.com/ElementsProject/elementsproject.github.io
2019-03-06 09:08:32 -05:00
Secure Reporting
------------------
2019-03-21 13:00:41 +00:00
See [our vulnerability reporting guide ](SECURITY.md )