elements/README.md

100 lines
4.8 KiB
Markdown
Raw Normal View History

2019-03-21 13:00:41 +00:00
Elements Project blockchain platform
====================================
2025-07-07 10:24:29 +03:00
[![Release](https://img.shields.io/github/v/release/ElementsProject/elements?label=latest%20release&link=https%3A%2F%2Fgithub.com%2FElementsProject%2Felements%2Freleases%2Flatest)](https://github.com/ElementsProject/elements/releases)
2019-03-21 13:00:41 +00:00
https://elementsproject.org
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.
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.
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
* [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.
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
Testing and code review is the bottleneck for development; we get more pull
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
lots of money.
### Automated Testing
2011-09-26 22:22:19 -04: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
(assuming they weren't disabled during the generation of the build system) with: `ctest`. Further details on running
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
There are also [regression and integration tests](/test), written
in Python.
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).
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.
2019-03-21 13:00:41 +00:00
License
-------
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.
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.
2019-03-21 13:00:41 +00:00
Learn more on the [Elements Project website](https://elementsproject.org)
2019-03-21 13:00:41 +00:00
https://github.com/ElementsProject/elementsproject.github.io
Secure Reporting
------------------
2019-03-21 13:00:41 +00:00
See [our vulnerability reporting guide](SECURITY.md)