Skip to content

Commit 7e84014

Browse files
Merge pull request #24 from absolute-community/v12.2.5PR13.4
V12.2.5 PR13.4
2 parents 1b69a15 + a89756d commit 7e84014

File tree

152 files changed

+2292
-1487
lines changed

Some content is hidden

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

152 files changed

+2292
-1487
lines changed

.travis.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ env:
4949
# No wallet
5050
- HOST=x86_64-unknown-linux-gnu PPA="ppa:bitcoin/bitcoin" PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
5151
# Cross-Mac
52-
- HOST=x86_64-apple-darwin11 PPA="ppa:bitcoin/bitcoin" PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" OSX_SDK=10.9 GOAL="deploy"
52+
- HOST=x86_64-apple-darwin11 PPA="ppa:bitcoin/bitcoin" PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" OSX_SDK=10.9 GOAL="deploy"
5353

5454
before_install:
55-
- travis_retry sudo apt-get install python-dev
55+
56+
- travis_retry sudo apt-get install python3-pip python3-dev
5657
- travis_retry sudo add-apt-repository ppa:ubuntu-wine/ppa -y
5758
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
5859
- chmod +rwx -R depends/
@@ -62,7 +63,7 @@ before_install:
6263
- chmod +rwx -R contrib/
6364
- chmod +rwx autogen.sh
6465
install:
65-
- if [ "$PYZMQ" = "true" ]; then pip install pyzmq --user ; fi
66+
- if [ "$PYZMQ" = "true" ]; then pip3 install pyzmq --user ; fi
6667
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
6768
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
6869
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi

CONTRIBUTING.md

+20-6
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ To contribute a patch, the workflow is as follows:
1717
- Create topic branch
1818
- Commit patches
1919

20-
The project coding conventions in [doc/developer-notes.md](doc/developer-notes.md) must be adhered to.
20+
The project coding conventions in the [developer notes](doc/developer-notes.md) must be adhered to.
2121

2222
In general [commits should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention) and diffs should be easy to read. For this reason do not mix any formatting fixes or code moves with actual code changes.
2323

2424
Commit messages should be verbose by default consisting of a short subject line (50 chars max), a blank line and detailed explanatory text as separate paragraph(s); unless the title alone is self-explanatory (like "Corrected typo in main.cpp") then a single title line is sufficient. Commit messages should be helpful to people reading your code in the future, so explain the reasoning for your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
2525

26-
If a particular commit references another issue, please add the reference, for example "refs #1234", or "fixes #4321". Using "fixes or closes" keywords will cause the corresponding issue to be closed when the pull request is merged.
26+
If a particular commit references another issue, please add the reference, for example `refs #1234`, or `fixes #4321`. Using the `fixes` or `closes` keywords will cause the corresponding issue to be closed when the pull request is merged.
2727

2828
Please refer to the [Git manual](https://git-scm.com/doc) for more information about Git.
2929

@@ -35,13 +35,27 @@ The title of the pull request should be prefixed by the component or area that t
3535
Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG
3636
Net: Automatically create hidden service, listen on Tor
3737
Qt: Add feed bump button
38-
Trivial: fix typo
38+
Trivial: Fix typo in validation.cpp
3939

40-
If a pull request is specifically not to be considered for merging (yet) please prefix the title with [WIP] or use [Tasks Lists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments) in the body of the pull request to indicate tasks are pending.
40+
If a pull request is specifically not to be considered for merging (yet) please prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists) in the body of the pull request to indicate tasks are pending.
4141

4242
The body of the pull request should contain enough description about what the patch does together with any justification/reasoning. You should include references to any discussions (for example other tickets or mailing list discussions).
4343

44-
At this stage one should expect comments and review from other contributors. You can add more commits to your pull request by committing them locally and pushing to your fork until you have satisfied all feedback. If your pull request is accepted for merging, you may be asked by a maintainer to squash and or rebase your commits before it will be merged. The length of time required for peer review is unpredictable and will vary from patch to patch.
44+
At this stage one should expect comments and review from other contributors. You can add more commits to your pull request by committing them locally and pushing to your fork until you have satisfied all feedback.
45+
46+
Squashing Commits
47+
---------------------------
48+
If your pull request is accepted for merging, you may be asked by a maintainer to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits before it will be merged. The basic squashing workflow is shown below.
49+
50+
git checkout your_branch_name
51+
git rebase -i HEAD~n
52+
# n is normally the number of commits in the pull
53+
# set commits from 'pick' to 'squash', save and quit
54+
# on the next screen, edit/refine commit messages
55+
# save and quit
56+
git push -f # (force push to GitHub)
57+
58+
The length of time required for peer review is unpredictable and will vary from pull request to pull request.
4559

4660

4761
Pull Request Philosophy
@@ -61,7 +75,7 @@ Refactoring is a necessary part of any software project's evolution. The followi
6175

6276
There are three categories of refactoring, code only moves, code style fixes, code refactoring. In general refactoring pull requests should not mix these three kinds of activity in order to make refactoring pull requests easy to review and uncontroversial. In all cases, refactoring PRs must not change the behaviour of code within the pull request (bugs must be preserved as is).
6377

64-
Project maintainers aim for a quick turnaround on refactoring pull requests, so where possible keep them short, uncomplex and easy to verify.
78+
Project maintainers aim for a quick turnaround on refactoring pull requests, so where possible keep them short, uncomplex and easy to verify.
6579

6680

6781
"Decision Making" Process

Makefile.am

+10-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py
2828
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
2929
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
3030
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
31-
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
31+
OSX_PLIST=$(top_srcdir)/share/qt/Info.plist #not installed
3232
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
3333

3434
DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md)
@@ -53,7 +53,16 @@ COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
5353
leveldb_baseline_filtered.info test_absolute_coverage.info test_absolute.info
5454

5555
dist-hook:
56+
-$(MAKE) -C $(top_distdir)/src/leveldb clean
57+
-$(MAKE) -C $(top_distdir)/src/secp256k1 distclean
5658
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -
59+
distcheck-hook:
60+
$(MKDIR_P) $(top_distdir)/_build/src/leveldb
61+
cp -rf $(top_srcdir)/src/leveldb/* $(top_distdir)/_build/src/leveldb/
62+
-$(MAKE) -C $(top_distdir)/_build/src/leveldb clean
63+
64+
distcleancheck:
65+
@:
5766

5867
$(BITCOIN_WIN_INSTALLER): all-recursive
5968
$(MKDIR_P) $(top_builddir)/release

README.md

+48-1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,51 @@ Absolute Coin gives you the access to the wide range of options created by two-t
3030

3131
For building please see INSTALL / proper files in the doc subfolder.
3232

33-
For more information please visit http://www.absolutecoin.net
33+
Development Process
34+
-------------------
35+
36+
The `master` branch is meant to be stable. Development is normally done in separate branches.
37+
[Tags](https://github.com/absolute-community/absolute/tags) are created to indicate new official,
38+
stable release versions of Dash Core.
39+
40+
The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).
41+
42+
Testing
43+
-------
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+
[Absolute Core's Transifex page](https://www.transifex.com/projects/p/absolute/).
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+

contrib/gitian-descriptors/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ Sanity checks:
1919

2020
Once you've got the right hardware and software:
2121

22-
git clone git://github.com/absolute-community/absolute/issues
23-
git clone git://github.com/devrandom/gitian-builder.git
22+
git clone git://github.com/absolute-community/absolute
23+
git clone git://github.com/devrandom/gitian-builder
2424
mkdir gitian-builder/inputs
2525
cd gitian-builder/inputs
2626

contrib/spendfrom/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ With arguments, sends coins received by the `FROMADDRESS` addresses to the `TOAD
1616
### Notes ###
1717

1818
- You may explicitly specify how much fee to pay (a fee more than 1% of the amount
19-
will fail, though, to prevent ABS-losing accidents). Spendfrom may fail if
19+
will fail, though, to prevent absolute-losing accidents). Spendfrom may fail if
2020
it thinks the transaction would never be confirmed (if the amount being sent is
2121
too small, or if the transaction is too many bytes for the fee).
2222

doc/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ The Absolute Core repo's [root README](/README.md) contains relevant information
5353
- [Shared Libraries](shared-libraries.md)
5454
- [BIPS](bips.md)
5555
- [Dnsseed Policy](dnsseed-policy.md)
56+
- [Benchmarking](benchmarking.md)
57+
58+
### Resources
59+
* Discuss on the Absolute Discord Server if advice is needed
5660

5761
### Miscellaneous
5862
- [Assets Attribution](assets-attribution.md)

doc/benchmarking.md

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Benchmarking
2+
============
3+
4+
Absolute Core has an internal benchmarking framework, with benchmarks
5+
for cryptographic algorithms such as SHA1, SHA256, SHA512 and RIPEMD160. As well as the rolling bloom filter.
6+
7+
After compiling absolute-core, the benchmarks can be run with:
8+
`src/bench/bench_absolute`
9+
10+
The output will look similar to:
11+
```
12+
#Benchmark,count,min,max,average
13+
RIPEMD160,448,0.001245033173334,0.002638196945190,0.002461894814457
14+
RollingBloom-refresh,1,0.000635000000000,0.000635000000000,0.000635000000000
15+
RollingBloom-refresh,1,0.000108000000000,0.000108000000000,0.000108000000000
16+
RollingBloom-refresh,1,0.000107000000000,0.000107000000000,0.000107000000000
17+
RollingBloom-refresh,1,0.000204000000000,0.000204000000000,0.000204000000000
18+
SHA1,640,0.000909024336207,0.001938136418660,0.001843086257577
19+
SHA256,256,0.002209486499909,0.008500099182129,0.004300644621253
20+
SHA512,384,0.001319904176016,0.002813005447388,0.002615700786312
21+
Sleep100ms,10,0.205592155456543,0.210056066513062,0.104166316986084
22+
Trig,67108864,0.000000014997003,0.000000015448112,0.000000015188842
23+
```
24+
25+
More benchmarks are needed for, in no particular order:
26+
- Script Validation
27+
- CCoinDBView caching
28+
- Coins database
29+
- Memory pool
30+
- Wallet coin selection

doc/build/build-unix.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,15 @@ Dependency Build Instructions: Fedora
126126
-------------------------------------
127127
Build requirements:
128128

129-
sudo dnf install libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
129+
sudo dnf install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel
130130

131131
Optional:
132132

133133
sudo dnf install miniupnpc-devel
134134

135135
To build with Qt 5 (recommended) you need the following:
136136

137-
sudo dnf install qt5-qttools-devel qtr5-qtbase-devel protobuf-devel
137+
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
138138

139139
libqrencode (optional) can be installed with:
140140

doc/developer-notes.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ Various coding styles have been used during the history of the codebase,
55
and the result is not very consistent. However, we're now trying to converge to
66
a single style, so please use it in new code. Old code will be converted
77
gradually.
8-
- Basic rules specified in src/.clang-format. Use a recent clang-format-3.5 to format automatically.
8+
- Basic rules specified in [src/.clang-format](/src/.clang-format).
9+
Use a recent clang-format to format automatically using one of the [dev scripts]
10+
(/contrib/devtools/README.md#clang-formatpy).
911
- Braces on new lines for namespaces, classes, functions, methods.
1012
- Braces on the same line for everything else.
1113
- 4 space indentation (no tabs) for every block except namespaces.

doc/gitian-building.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,8 @@ Then when building, override the remote URLs that gbuild would otherwise pull fr
451451
cd /some/root/path/
452452
git clone https://github.com/absolute-community/absolute.detached.signatures.git
453453
454-
BTCPATH=/some/root/path/absolute.git
455-
SIGPATH=/some/root/path/absolute-detached-sigs.git
454+
BTCPATH=/some/root/path/absolute
455+
SIGPATH=/some/root/path/absolute-detached-sigs
456456
457457
./bin/gbuild --url absolute=${BTCPATH},signature=${SIGPATH} ../absolute/contrib/gitian-descriptors/gitian-win-signer.yml
458458
```

doc/guide-startmany.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@
88
2. Click the Receive tab.
99
3. Fill in the form to request a payment.
1010
* Label: mn01
11-
* Amount: 1000 (optional)
11+
* Amount: 2500 (optional)
1212
* Click *Request payment* button
1313
5. Click the *Copy Address* button
1414

1515
Create a new wallet address for each Masternode.
1616

1717
Close your QT Wallet.
1818

19-
### Send 1000 ABS to New Addresses
19+
### Send 2500 ABS to New Addresses
2020

21-
Send exactly 1000 ABS to each new address created above.
21+
Send exactly 2500 ABS to each new address created above.
2222

2323
### Create New Masternode Private Keys
2424

@@ -64,8 +64,8 @@ alias ipaddress:port masternode_private_key collateral_output collateral_output_
6464
Example:
6565

6666
```
67-
mn01 127.0.0.1:8800 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0
68-
mn02 127.0.0.2:8800 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0
67+
mn01 127.0.0.1:18888 4gsWMR8PUAZdJ5Umhr4CXrEAQydBGmq3UJ7YR7NwewADRoeudrg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0
68+
mn02 127.0.0.2:18888 4hpnZ6zkx8mNEb5ga47MunVdthS5XhG6Jd5C5YaCvsWEh6eFqdM aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0
6969
```
7070

7171
## Update absolute.conf on server
@@ -74,7 +74,7 @@ If you generated a new masternode private key, you will need to update the remot
7474

7575
Shut down the daemon and then edit the file.
7676

77-
```vim .absolutecore/absolute.conf```
77+
```nano .absolutecore/absolute.conf```
7878

7979
### Edit the masternodeprivkey
8080
If you generated a new masternode private key, you will need to update the `masternodeprivkey` value in your remote `absolute.conf` file.
@@ -120,7 +120,7 @@ absolute-cli masternode status
120120
{
121121
"outpoint" : "<collateral_output>-<collateral_output_index>",
122122
"service" : "<ipaddress>:<port>",
123-
"pubkey" : "<1000 ABS address>",
123+
"pubkey" : "<2500 ABS address>",
124124
"status" : "Masternode successfully started"
125125
}
126126
```

doc/zmq.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ newer. Typically, it is packaged by distributions as something like
3838
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed.
3939

4040
In order to run the example Python client scripts in contrib/ one must
41-
also install *python-zmq*, though this is not necessary for daemon
41+
also install *python3-zmq*, though this is not necessary for daemon
4242
operation.
4343

4444
## Enabling

qa/README.md

+20-7
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,36 @@ Before running the tests, the following must be installed.
1111

1212
Unix
1313
----
14-
The python-zmq library is required. On Ubuntu or Debian it can be installed via:
14+
The python3-zmq library is required. On Ubuntu or Debian it can be installed via:
1515
```
16-
sudo apt-get install python-zmq
16+
sudo apt-get install python3-zmq
1717
```
1818

1919
Running tests
2020
=============
2121

22-
You can run any single test by calling `qa/pull-tester/rpc-tests.py <testname>`.
22+
You can run any single test by calling
2323

24-
Or you can run any combination of tests by calling `qa/pull-tester/rpc-tests.py <testname1> <testname2> <testname3> ...`
24+
qa/pull-tester/rpc-tests.py <testname>
2525

26-
Run the regression test suite with `qa/pull-tester/rpc-tests.py`
26+
Or you can run any combination of tests by calling
2727

28-
Run all possible tests with `qa/pull-tester/rpc-tests.py -extended`
28+
qa/pull-tester/rpc-tests.py <testname1> <testname2> <testname3> ...
2929

30-
Possible options:
30+
Run the regression test suite with
31+
32+
qa/pull-tester/rpc-tests.py
33+
34+
Run all possible tests with
35+
36+
qa/pull-tester/rpc-tests.py -extended
37+
38+
By default, tests will be run in parallel if you want to specify how many
39+
tests should be run in parallel, append `-paralell=n` (default n=4).
40+
41+
If you want to create a basic coverage report for the rpc test suite, append `--coverage`.
42+
43+
Possible options, which apply to each individual test run:
3144

3245
```
3346
-h, --help show this help message and exit

0 commit comments

Comments
 (0)