mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-13 12:33:42 +02:00
99 lines
4.8 KiB
Markdown
99 lines
4.8 KiB
Markdown
Elements Project blockchain platform
|
|
====================================
|
|
|
|
[](https://github.com/ElementsProject/elements/releases)
|
|
|
|
https://elementsproject.org
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
* [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)
|
|
* [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.
|
|
|
|
Features of the Elements blockchain platform
|
|
----------------
|
|
|
|
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]
|
|
|
|
Previous elements that have been integrated into Bitcoin:
|
|
* Segregated Witness
|
|
* Relative Lock Time
|
|
|
|
Elements deferred for additional research and standardization:
|
|
* [Schnorr Signatures][schnorr-signatures]
|
|
|
|
Additional RPC commands and parameters:
|
|
* [RPC Docs](https://elementsproject.org/en/doc/)
|
|
|
|
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
|
|
|
|
Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to
|
|
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.
|
|
|
|
License
|
|
-------
|
|
Elements is released under the terms of the MIT license. See [COPYING](COPYING) for more
|
|
information or see http://opensource.org/licenses/MIT.
|
|
|
|
[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
|
|
|
|
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.
|
|
|
|
Learn more on the [Elements Project website](https://elementsproject.org)
|
|
|
|
https://github.com/ElementsProject/elementsproject.github.io
|
|
|
|
Secure Reporting
|
|
------------------
|
|
See [our vulnerability reporting guide](SECURITY.md)
|
|
|