Skip to content

Commit edaaa8b

Browse files
authored
Merge pull request #107 from ElementsProject/refresh
Add Changes From Liquid, Bitcoin
2 parents 20a84b8 + 8736efe commit edaaa8b

File tree

300 files changed

+10039
-7597
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

300 files changed

+10039
-7597
lines changed

.gitignore

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
*.tar.gz
22

33
*.exe
4-
src/bitcoin
5-
src/bitcoind
6-
src/bitcoin-cli
7-
src/bitcoin-tx
8-
src/test/test_bitcoin
9-
src/qt/test/test_bitcoin-qt
4+
src/elements
5+
src/elementsd
6+
src/elements-cli
7+
src/elements-tx
8+
src/test/test_elements
9+
src/qt/test/test_elements-qt
1010

1111
# autoreconf
1212
Makefile.in
@@ -74,12 +74,12 @@ src/qt/test/moc*.cpp
7474
# Compilation and Qt preprocessor part
7575
*.qm
7676
Makefile
77-
bitcoin-qt
78-
Bitcoin-Qt.app
77+
elements-qt
78+
Elements-Qt.app
7979

8080
# Unit-tests
8181
Makefile.test
82-
bitcoin-qt_test
82+
elements-qt_test
8383
src/test/buildenv.py
8484

8585
# Resources cpp

CONTRIBUTING.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
Contributing to Bitcoin Core
1+
Contributing to Elements Core
22
============================
33

4-
The Bitcoin Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
5-
6-
Firstly in terms of structure, there is no particular concept of “Core developers” in the sense of privileged people. Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers.
4+
The Elements Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing.
75

6+
In Contrast to Bitcoin Core, this repository is property of Blockstream Inc. which means that acceptance of contributions comes down to one of the privelaged "maintainers" of the repository. These maintainers are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers. The intention is however to follow a very similar meritocratic model to Bitcoin Core's, meaning that all contributions are welcome, and a history of high-quality contributions will likely pull more weight than otherwise.
87

98
Contributor Workflow
109
--------------------
@@ -81,9 +80,9 @@ Project maintainers aim for a quick turnaround on refactoring pull requests, so
8180
"Decision Making" Process
8281
-------------------------
8382

84-
The following applies to code changes to the Bitcoin Core project (and related projects such as libsecp256k1), and is not to be confused with overall Bitcoin Network Protocol consensus changes.
83+
The following applies to code changes to the Elements Core project (and related projects such as libsecp256k1).
8584

86-
Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers and ultimately the project lead.
85+
Whether a pull request is merged into Elements Core rests with the project merge maintainers and ultimately the project lead.
8786

8887
Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors.
8988

@@ -96,8 +95,7 @@ In general, all pull requests must:
9695
- not break the existing test suite;
9796
- where bugs are fixed, where possible, there should be unit tests demonstrating the bug and also proving the fix. This helps prevent regression.
9897

99-
Patches that change Bitcoin consensus rules are considerably more involved than normal because they affect the entire ecosystem and so must be preceded by extensive mailing list discussions and have a numbered BIP. While each case will be different, one should be prepared to expend more time and effort than for other kinds of patches because of increased peer review and consensus building requirements.
100-
98+
Changes to the consensus ruleset will likely be denied unless it is a direct security issue. In this case the issue should be sent to one of the project maintainers in private using secure communication if possible. Blockstream reserves the right to include additional feature softforks to a currently-running network, and hardforking changes for new networks.
10199

102100
###Peer Review
103101

@@ -115,10 +113,9 @@ Project maintainers reserve the right to weigh the opinions of peer reviewers us
115113

116114
Where a patch set affects consensus critical code, the bar will be set much higher in terms of discussion and peer review requirements, keeping in mind that mistakes could be very costly to the wider community. This includes refactoring of consensus critical code.
117115

118-
Where a patch set proposes to change the Bitcoin consensus, it must have been discussed extensively on the mailing list and IRC, be accompanied by a widely discussed BIP and have a generally widely perceived technical consensus of being a worthwhile change based on the judgement of the maintainers.
119-
116+
Where a patch set proposes to change the Elements consensus, it must have been discussed extensively on the github thread, and receive a larger number of ACKs, including multiple tested ACKs from maintainers.
120117

121118
Release Policy
122119
--------------
123120

124-
The project leader is the release manager for each Bitcoin Core release.
121+
The project leader is the release manager for each Elements Core release.

Makefile.am

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS)
8383
$(MKDIR_P) $(@D)
8484
$(INSTALL_DATA) $< $@
8585

86-
$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(BITCOIN_QT_BIN)
86+
$(OSX_APP)/Contents/MacOS/Elements-Qt: $(BITCOIN_QT_BIN)
8787
$(MKDIR_P) $(@D)
8888
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@
8989

@@ -93,7 +93,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings:
9393

9494
OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \
9595
$(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \
96-
$(OSX_APP)/Contents/MacOS/Bitcoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
96+
$(OSX_APP)/Contents/MacOS/Elements-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
9797

9898
osx_volname:
9999
echo $(OSX_VOLNAME) >$@
@@ -111,7 +111,7 @@ $(APP_DIST_DIR)/Applications:
111111
@rm -f $@
112112
@cd $(@D); $(LN_S) /Applications $(@F)
113113

114-
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt
114+
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Elements-Qt
115115

116116
$(OSX_DMG): $(APP_DIST_EXTRAS)
117117
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist
@@ -126,7 +126,7 @@ $(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE): $(OSX_BACKGROUND_IMAGE_DPIF
126126
$(APP_DIST_DIR)/.DS_Store: $(OSX_DSSTORE_GEN)
127127
$(PYTHON) $< "$@" "$(OSX_VOLNAME)"
128128

129-
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
129+
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Elements-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
130130
INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) -translations-dir=$(QT_TRANSLATION_DIR) -add-qt-tr $(OSX_QT_TRANSLATIONS) -verbose 2
131131

132132
deploydir: $(APP_DIST_EXTRAS)

README.md

Lines changed: 40 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,57 @@
1-
Bitcoin Core integration/staging tree
2-
=====================================
1+
The Elements Project
2+
=================================
3+
This is the integration and staging tree for the Elements Project, a series of
4+
improvements and extensions to the Bitcoin protocol.
35

4-
[![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)
6+
What is the Elements Project?
7+
-----------------
8+
Elements is an open source collaborative project where we work on a collection
9+
of experiments to more rapidly bring technical innovation to Bitcoin. Elements
10+
are features that are proposed and developed in this technical community that in
11+
arbitrary combinations can be fashioned into sidechains.
512

6-
https://bitcoincore.org
13+
https://github.com/ElementsProject/elementsproject.github.io
14+
15+
Learn more on [the Elements Project website](https://www.elementsproject.org).
716

817
What is Bitcoin?
918
----------------
19+
https://www.bitcoin.org
1020

11-
Bitcoin is an experimental digital currency that enables instant payments to
21+
Bitcoin is an experimental new digital currency that enables instant payments to
1222
anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate
1323
with no central authority: managing transactions and issuing money are carried
14-
out collectively by the network. Bitcoin Core is the name of open source
24+
out collectively by the network. Elements Alpha is the name of open source
1525
software which enables the use of this currency.
1626

1727
For more information, as well as an immediately useable, binary version of
18-
the Bitcoin Core software, see https://bitcoin.org/en/download, or read the
19-
[original whitepaper](https://bitcoincore.org/bitcoin.pdf).
20-
21-
License
22-
-------
23-
24-
Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more
25-
information or see https://opensource.org/licenses/MIT.
28+
the Bitcoin Core software, see https://www.bitcoin.org/en/download.
2629

27-
Development Process
28-
-------------------
29-
30-
The `master` branch is regularly built and tested, but is not guaranteed to be
31-
completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created
32-
regularly to indicate new official, stable release versions of Bitcoin Core.
30+
What is Elements?
31+
----------------
3332

34-
The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).
33+
Compared to Bitcoin itself, it adds the following features:
34+
* [Confidential Transactions][confidential-transactions]
35+
* [Additional opcodes][opcodes]
36+
* [Deterministic Peg][deterministic-peg]
37+
* [Signed Blocks][signed-blocks]
3538

36-
The developer [mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev)
37-
should be used to discuss complicated or controversial changes before working
38-
on a patch set.
39+
Previous elements that have been integrated into Core:
40+
* [Segregated Witness][segregated-witness]
41+
* [Relative Lock Time][relative-lock-time]
3942

40-
Developer IRC can be found on Freenode at #bitcoin-core-dev.
43+
Elements deferred for additional research and standardization:
44+
* [Schnorr Signatures][schnorr-signatures]
4145

42-
Testing
46+
License
4347
-------
44-
45-
Testing and code review is the bottleneck for development; we get more pull
46-
requests than we can review and test on short notice. Please be patient and help out by testing
47-
other people's pull requests, and remember this is a security-critical project where any mistake might cost people
48-
lots of money.
49-
50-
### Automated Testing
51-
52-
Developers are strongly encouraged to write [unit tests](/doc/unit-tests.md) for new code, and to
53-
submit new unit tests for old code. Unit tests can be compiled and run
54-
(assuming they weren't disabled in configure) with: `make check`
55-
56-
There are also [regression and integration tests](/qa) of the RPC interface, written
57-
in Python, that are run automatically on the build server.
58-
These tests can be run (if the [test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
59-
60-
The Travis CI system makes sure that every pull request is built for Windows, Linux, and OS X, and that unit/sanity tests are run automatically.
61-
62-
### Manual Quality Assurance (QA) Testing
63-
64-
Changes should be tested by somebody other than the developer who wrote the
65-
code. This is especially important for large or high-risk changes. It is useful
66-
to add a test plan to the pull request description if testing the changes is
67-
not straightforward.
68-
69-
Translations
70-
------------
71-
72-
Changes to translations as well as new translations can be submitted to
73-
[Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/bitcoin/).
74-
75-
Translations are periodically pulled from Transifex and merged into the git repository. See the
76-
[translation process](doc/translation_process.md) for details on how this works.
77-
78-
**Important**: We do not accept translation changes as GitHub pull requests because the next
79-
pull from Transifex would automatically overwrite them again.
80-
81-
Translators should also subscribe to the [mailing list](https://groups.google.com/forum/#!forum/bitcoin-translators).
48+
Elements is released under the terms of the MIT license. See [COPYING](COPYING) for more
49+
information or see http://opensource.org/licenses/MIT.
50+
51+
[confidential-transactions]: https://www.elementsproject.org/elements/confidential-transactions
52+
[segregated-witness]: https://www.elementsproject.org/elements/segregated-witness
53+
[relative-lock-time]: https://www.elementsproject.org/elements/relative-lock-time
54+
[schnorr-signatures]: https://www.elementsproject.org/elements/schnorr-signatures
55+
[opcodes]: https://www.elementsproject.org/elements/opcodes
56+
[deterministic-peg]: https://www.elementsproject.org/elements/deterministic-pegs
57+
[signed-blocks]: https://www.elementsproject.org/elements/signed-blocks

configure.ac

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ define(_CLIENT_VERSION_REVISION, 1)
66
define(_CLIENT_VERSION_BUILD, 0)
77
define(_CLIENT_VERSION_IS_RELEASE, true)
88
define(_COPYRIGHT_YEAR, 2016)
9-
define(_COPYRIGHT_HOLDERS,[The %s developers])
10-
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
11-
AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/])
9+
AC_INIT([Elements Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION._CLIENT_VERSION_BUILD],[https://github.com/ElementsProject/elements/issues],[elements])
1210
AC_CONFIG_SRCDIR([src/main.cpp])
1311
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
1412
AC_CONFIG_AUX_DIR([build-aux])
@@ -227,9 +225,9 @@ AC_ARG_WITH([utils],
227225

228226
AC_ARG_WITH([libs],
229227
[AS_HELP_STRING([--with-libs],
230-
[build libraries (default=yes)])],
228+
[build libraries (default=no)])],
231229
[build_bitcoin_libs=$withval],
232-
[build_bitcoin_libs=yes])
230+
[build_bitcoin_libs=no])
233231

234232
AC_ARG_WITH([daemon],
235233
[AS_HELP_STRING([--with-daemon],
@@ -1109,11 +1107,12 @@ PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
11091107
unset PKG_CONFIG_LIBDIR
11101108
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
11111109

1110+
11121111
if test x$need_bundled_univalue = xyes; then
11131112
AC_CONFIG_SUBDIRS([src/univalue])
11141113
fi
11151114

1116-
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
1115+
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-experimental --enable-module-recovery --enable-module-schnorr --enable-module-ecdh --enable-module-rangeproof"
11171116
AC_CONFIG_SUBDIRS([src/secp256k1])
11181117

11191118
AC_OUTPUT

contrib/debian/watch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Run the "uscan" command to check for upstream updates and more.
22
version=3
33
# use qa.debian.org redirector; see man uscan
4-
opts=uversionmangle=s/(\d)(alpha|beta|rc)/$1~$2/,dversionmangle=s/~dfsg\d*// \
4+
opts=uversionmangle=s/(\d)(alpha|beta|core|rc)/$1~$2/,dversionmangle=s/~dfsg\d*// \
55
http://githubredir.debian.net/github/bitcoin/bitcoin v(.*).tar.gz

contrib/gitian-descriptors/gitian-linux.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ packages:
2828
- "ca-certificates"
2929
- "python"
3030
remotes:
31-
- "url": "https://github.com/bitcoin/bitcoin.git"
32-
"dir": "bitcoin"
31+
- "url": "https://github.com/ElementsProject/elements.git"
32+
"dir": "elements"
3333
files: []
3434
script: |
3535
@@ -83,6 +83,7 @@ script: |
8383
create_global_faketime_wrappers "2000-01-01 12:00:00"
8484
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
8585
export PATH=${WRAP_DIR}:${PATH}
86+
cd elements
8687
8788
EXTRA_INCLUDES_BASE=$WRAP_DIR/extra_includes
8889
mkdir -p $EXTRA_INCLUDES_BASE
@@ -113,7 +114,6 @@ script: |
113114
chmod +x ${WRAP_DIR}/${prog}
114115
done
115116
116-
cd bitcoin
117117
BASEPREFIX=`pwd`/depends
118118
# Build dependencies for each host
119119
for i in $HOSTS; do
@@ -135,13 +135,13 @@ script: |
135135
./autogen.sh
136136
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
137137
make dist
138-
SOURCEDIST=`echo bitcoin-*.tar.gz`
138+
SOURCEDIST=`echo elements-*.tar.gz`
139139
DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'`
140140
# Correct tar file order
141141
mkdir -p temp
142142
pushd temp
143143
tar xf ../$SOURCEDIST
144-
find bitcoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
144+
find elements-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
145145
popd
146146
147147
ORIGPATH="$PATH"

contrib/gitian-descriptors/gitian-osx-signer.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
---
2-
name: "bitcoin-dmg-signer"
2+
name: "elements-dmg-signer"
33
suites:
44
- "trusty"
55
architectures:
66
- "amd64"
77
packages:
88
- "faketime"
9+
reference_datetime: "2016-01-01 00:00:00"
910
remotes:
10-
- "url": "https://github.com/bitcoin-core/bitcoin-detached-sigs.git"
11+
- "url": "https://github.com/ElementsProject/gitian.sigs.ep.git"
1112
"dir": "signature"
1213
files:
13-
- "bitcoin-osx-unsigned.tar.gz"
14+
- "elements-osx-unsigned.tar.gz"
1415
script: |
1516
WRAP_DIR=$HOME/wrapped
1617
mkdir -p ${WRAP_DIR}
@@ -27,11 +28,11 @@ script: |
2728
chmod +x ${WRAP_DIR}/${prog}
2829
done
2930
30-
UNSIGNED=bitcoin-osx-unsigned.tar.gz
31-
SIGNED=bitcoin-osx-signed.dmg
31+
UNSIGNED=elements-osx-unsigned.tar.gz
32+
SIGNED=elements-osx-signed.dmg
3233
3334
tar -xf ${UNSIGNED}
3435
OSX_VOLNAME="$(cat osx_volname)"
3536
./detached-sig-apply.sh ${UNSIGNED} signature/osx
36-
${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "${OSX_VOLNAME}" -no-pad -r -dir-mode 0755 -apple -o uncompressed.dmg signed-app
37+
${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "Elements-Sidechain" -no-pad -r -apple -o uncompressed.dmg signed-app
3738
${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED}

0 commit comments

Comments
 (0)