Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
285 commits
Select commit Hold shift + click to select a range
48f4126
Add new ParseXXX methods to easily parse UniValue values (#2211)
codablock Aug 10, 2018
aca2034
De-duplicate "gobject vote-alias" and "gobject "vote-many" code (#2217)
codablock Aug 10, 2018
efe60a8
Masternode related refactorings in preparation of AIP3
codablock Aug 11, 2018
e03a43d
Refactor MN payee logic in preparation for AIP3
codablock Aug 12, 2018
7fd2c46
Backport Bitcoin bitcoin#11881: Remove Python2 support
codablock Aug 13, 2018
b1e5fac
Backport move to Ubuntu Bionic and GCC7 in Gitian builds
codablock Aug 13, 2018
014293c
Prepare for AIP3 operator reward payments and switch to array
codablock Aug 14, 2018
9c9e65d
Build bionic base image in Jenkinsfile.gitian & update docs
codablock Aug 14, 2018
c292b64
fix missed format parameter (#2229)
Aug 21, 2018
2644104
adds rpc calls for `setprivatesendrounds` and `setprivatesendamount` …
PastaPastaPasta Aug 21, 2018
a737b0b
add compressed option to `masternode genkey` (#2232)
nmarley Aug 21, 2018
6994863
Fix mninfo search by payee (#2233)
Aug 21, 2018
8fec950
Don't crash when formatting in logging throws exceptions (#2231)
codablock Aug 21, 2018
28f0a97
Revert CMasternodePayments::IsTransactionValid to the logic before th…
codablock Aug 27, 2018
838e15f
Move DIP1 transaction size checks out of ContextualCheckBlock and use…
codablock Aug 28, 2018
99bef66
Deployment of AIP0003
CryptoCentric Apr 25, 2019
8d67125
AIP2 CTransaction and CMutableTransaction
CryptoCentric Apr 25, 2019
c93fd5a
Validation of version 3 TXs CheckTransaction
CryptoCentric Apr 25, 2019
70078f5
Stubs for special TX validation and processing
codablock Feb 13, 2018
9308e3f
Add Get-/SetTxPayload helpers
codablock Feb 14, 2018
01e07d8
Support version 3 transaction serialization in mininode.py
codablock Feb 23, 2018
59c036a
Account for extraPayload when calculating fees in FundTransaction
codablock Feb 28, 2018
122a0cf
Add extraPayloadSize/extraPayload fields to RPC help
codablock Aug 28, 2018
e0d6722
Fix sync in regtest (again) (#2241)
UdjinM6 Aug 29, 2018
cb5b624
Fix caching issues in Jenkins
codablock Aug 29, 2018
efac117
Refactor `masternode` and `gobject` RPCs
Aug 29, 2018
47b7efa
Use previous block for CheckSpecialTx (#2243)
codablock Aug 29, 2018
fefd615
Add "immer" functional/immutable containers library (#2244)
codablock Aug 29, 2018
0dc7277
Implement CDBTransaction and CScopedDBTransaction
codablock Feb 14, 2018
a691baf
Raise the open fd limit to the maximum
CryptoCentric May 8, 2019
e8984ba
Use spork Address instead of Public key
codablock Mar 2, 2018
4b2cd78
Merge pull request #16 from absolute-community/v.12.3.1PR1SPK
CryptoCentric May 9, 2019
f482c08
AIP3 Formatting Changes
codablock Feb 14, 2018
72eab24
Validation AIP adjustments
CryptoCentric May 9, 2019
ffd177e
Deployment naming adjustments in specialtx
CryptoCentric May 9, 2019
2e4e98f
Removal of merge related issues with minning.cpp
CryptoCentric May 9, 2019
36dd31b
Set MN Collateral to header
CryptoCentric May 9, 2019
12f9003
Repoint sph_types header
CryptoCentric May 9, 2019
297b7f6
Introduce CEvoDB for all evo related things, e.g. DIP3
codablock May 24, 2018
8b29a06
Implementation of ProRegTx with basic validation (no processing)
codablock Feb 13, 2018
442a77a
Implement "protx register" RPC
codablock Feb 13, 2018
dbba08c
Conflict handling for ProRegTx in mempool
codablock Feb 14, 2018
df613ca
Automatically lock ProTx collaterals when TX is added/loaded to wallet
codablock Mar 2, 2018
075ab92
Implementation of deterministic MNs list
codablock Feb 14, 2018
4c8edc5
Add spork to control deterministic MN lists activation
codablock Feb 15, 2018
ade6a53
After AIP3, Don't allow non-ProTx masternode collaterals
codablock Feb 15, 2018
df610dd
Implement "protx list" RPC
codablock Mar 3, 2018
bb98df1
Fix typo in "penalty" (#2247)
codablock Aug 31, 2018
3661cc5
plit keyIDMasternode into keyIDOwner/keyIDOperator/keyIDVoting
codablock Aug 31, 2018
0ad9739
Include proTx data in json formatted transactions
codablock Feb 28, 2018
f6dce19
Classes and basic validation of ProUpServTx
codablock Mar 12, 2018
5f5d5f8
Implement CProUpServTx logic in CDeterministicMNManager
codablock Mar 13, 2018
bbbbbfb
Also check duplicate addresses for CProUpServTX in CTxMemPool
codablock Mar 19, 2018
69a484b
Implement "protx update_service" RPC
codablock Mar 14, 2018
918febb
Classes, validation and update logic for CProUpRegTX
codablock Mar 19, 2018
1dfcc91
Implement "protx update_registrar" RPC
codablock Mar 19, 2018
7d0dd2c
Classes, validation and update logic for CProUpRevTX
codablock Mar 19, 2018
2e1b784
Implement "protx revoke" RPC
codablock Mar 19, 2018
8eea7b0
Implement and enforce CbTx with correct block height and deprecate BIP34
codablock Apr 6, 2018
5dddc70
Calculate and enforce AIP4 masternodes merkle root in CbTx
CryptoCentric May 16, 2019
37d109e
Implement GETMNLISTDIFF and MNLISTDIFF P2P messages
codablock Apr 9, 2018
d8ba396
Fix nulldummy tests by creating correct AIP4 coinbase transactions
CryptoCentric May 16, 2019
b191cef
Ban peers that send us MNLISTDIFF messages
codablock Sep 3, 2018
a454d73
Try using cache in GetListForBlock before reading from disk (#2253)
codablock Sep 3, 2018
dca4e56
Implement CActiveDeterministicMasternodeManager
codablock Feb 15, 2018
f1c67e5
Skip initial masternode list sync if spork 15 is active
codablock Feb 15, 2018
bed37bc
Stop executing legacy MN list code when spork 15 is activated
codablock Feb 16, 2018
1422125
Add compatibility code to CMasternodeMan so that old code is still co…
codablock Feb 16, 2018
e8b63e9
Add methods to add/remove (non-)deterministic MNs
codablock Feb 23, 2018
f387585
Add compatibility code for FindRandomNotInVec and GetMasternodeScores
codablock Feb 19, 2018
dd7c9ff
Throw exception when trying to invoke start-xxx RPC in deterministic …
CryptoCentric May 16, 2019
31de994
Better "masternode status" for deterministic masternodes
codablock Feb 23, 2018
e71444f
Implement 'masternode info <proTxHash>' RPC
codablock Aug 31, 2018
f99ecd1
Forbid starting of legacy masternodes with non matching ProTx collate…
codablock Feb 26, 2018
3e879e3
Put all masternodes in MASTERNODE_ENABLED state when spork15 is active
codablock Mar 9, 2018
8c56c21
Split PS into Manager and Session and allow running multiple mixing s…
UdjinM6 Sep 4, 2018
dcff285
Revert Require all participants to submit equal number of input
CryptoCentric May 16, 2019
49aaec3
Absolute specific changes
CryptoCentric May 17, 2019
7402747
Save/load spork cache
Aug 13, 2018
14da851
Fix Consensus Typo
CryptoCentric May 17, 2019
9182ad6
RPC folder: Cleaned up brackets on if, while, for, BOOST_FOREACH. Som…
PastaPastaPasta Sep 5, 2018
61cbacb
add link for developer-notes in contributing (#2260)
PastaPastaPasta Sep 5, 2018
154f4ce
Implement new MN payments logic and add compatibility code
codablock Feb 15, 2018
169a309
Move cs_main lock from CMasternode::UpdateLastPaid to CMasternodeMan
codablock Mar 9, 2018
a242e29
Enforce MN and superblock payments in same block
codablock Mar 3, 2018
ff209e6
Implement projection of MN reward winners in "masternode winners"
codablock Apr 4, 2018
4c4dcba
Implement deterministic version of CMasternodePayments::IsScheduled
codablock Mar 9, 2018
47e49b6
Payout and enforce operator reward payments
codablock Mar 16, 2018
28916a1
Use refactored payment logic when spork15 is active
codablock Aug 27, 2018
47f63a7
Bump PROTOCOL_VERSION
CryptoCentric May 20, 2019
ab1398f
Add more variance to coin selection in PS mixing
UdjinM6 Sep 5, 2018
73bc663
Refactor TestChain100Setup to allow different test chain setups
codablock Jul 18, 2018
9bcd939
Update CbTx in TestChainSetup
codablock Aug 22, 2018
d023728
Add unit and format for tests of AIP3 and AIP4
CryptoCentric May 20, 2019
4ebbf5f
Repoint test_absolute in release notes
CryptoCentric May 20, 2019
1203b88
Bump Document versions
CryptoCentric May 20, 2019
39a82cf
Remove redundant check for unknown commands in masternode RPC (#2279)
codablock Sep 10, 2018
e7f74c9
Fix IsBlockValueValid/IsOldBudgetBlockValueValid (#2276)
UdjinM6 Sep 10, 2018
e0b8129
Identify PS collateral payments in transaction list a bit more accura…
UdjinM6 Sep 11, 2018
b072e3d
Include inputs with max rounds in SelectCoinsDark/SelectCoinsByDenomi…
UdjinM6 Sep 11, 2018
30e20e5
AIP3 integration tests
CryptoCentric May 20, 2019
fe3e1a5
Adjust AIP naming on testing.py
CryptoCentric May 20, 2019
6690ae0
After DIP3 activation, allow voting with voting keys stored in your w…
codablock Sep 11, 2018
1c6316a
Squash two logic branches in SubmitDenominate into one (#2270)
UdjinM6 Sep 11, 2018
946a14a
[ZMQ] Notify when an IS double spend is attempted (#2262)
PastaPastaPasta Sep 12, 2018
451393a
Fix locking issues in AIP3 unit tests
CryptoCentric May 20, 2019
3c93dd3
Call InitializeCurrentBlockTip and activeMasternodeManager
codablock Sep 12, 2018
928ec38
Only use dataDir in CEvoDB when not in-memory (#2291)
codablock Sep 14, 2018
7d7d922
Honor filterInventoryKnown for non-tx/non-block items (#2292)
codablock Sep 14, 2018
419ac6a
Add support for serialization of bitsets and tuples (#2293)
codablock Sep 14, 2018
2cb477c
Move heavy coin selection out of the loop in SubmitDenominate
UdjinM6 Sep 15, 2018
ca5241f
A couple of small fixes for mixing collaterals (#2294)
UdjinM6 Sep 15, 2018
267f06a
Drop (pre-)70209 compatibility code
UdjinM6 Sep 15, 2018
54b190f
Bump to 0.12.3.1
CryptoCentric May 20, 2019
8af1f5e
Drop Gov data size
UdjinM6 Sep 19, 2018
28e1bf6
Fix tx inv throughput
CryptoCentric May 20, 2019
53fdf15
Remove leftover RBF code from BTC
PastaPastaPasta Sep 20, 2018
e5cb43f
Update .clang-format to more accurately show the actual style (#2299)
PastaPastaPasta Sep 20, 2018
695dffa
Drop dummy copy constructors in CPrivateSend*Session (#2305)
UdjinM6 Sep 20, 2018
18881c7
Clean Remove unused vars, includes, functions
nmarley Sep 20, 2018
ba650a5
Add versioning to spork cache (#2312)
UdjinM6 Sep 26, 2018
7f56f3d
CSporkManager::Clear() should not alter sporkPubKeyID and sporkPrivKe…
UdjinM6 Sep 26, 2018
c74f956
Add instantlock field to getrawtransaction rpc output
CryptoCentric May 20, 2019
80d81c7
log `gobject prepare` params (#2317)
UdjinM6 Sep 26, 2018
a6b9178
InstantSend Auto lock for "simple" transaction
Sep 26, 2018
6768154
Warning fixes and trivial cleanups
UdjinM6 Sep 28, 2018
0190858
A bit more verbosity for some critical errors (#2316)
UdjinM6 Sep 28, 2018
63c63ec
Improve and update build instructions
codablock Sep 28, 2018
f27f925
Governance Cleanup
PastaPastaPasta Sep 28, 2018
2e181e9
Bump Copyright
CryptoCentric May 20, 2019
d3883c3
rename vars in mnsync to make more sense (#2308)
nmarley Sep 30, 2018
87198c0
Remove buildbsd as now obsolete instruction
UdjinM6 Sep 30, 2018
884cfd8
MN sporks
Sep 30, 2018
0b88d4e
document spork system with doxygen comments (#2301)
nmarley Oct 2, 2018
f7289a9
Don't use boost range adaptors in CDeterministicMNList (#2327)
codablock Oct 2, 2018
f22b970
Add ctpl header only library
codablock May 24, 2018
3a350a4
Add helper to rename all threads of a ctpl::thread_pool
codablock May 24, 2018
d8ae1d1
Add libgmp to depends
codablock Sep 18, 2018
8646496
Add Chia bls-signatures library to depends
codablock Sep 18, 2018
bf75035
Add simple helpers/wrappers for BLS+AES
codablock May 24, 2018
1e0b892
Add highly parallelized worker/helper for BLS/DKG calculations
CryptoCentric May 20, 2019
d09cbf0
Add BLS and DKG benchmarks
CryptoCentric May 20, 2019
36a61a5
Add ECDSA benchmarks
codablock Sep 14, 2018
9385583
Fix mnodeman.cs vs cs_vPendingMasternodes vs cs_main deadlock (#2200)
UdjinM6 Oct 11, 2018
2a2a7b7
Modernize Gov Methods (#2326)
PastaPastaPasta Oct 11, 2018
ebcca2f
Fix recently introduced PS bugs (#2330)
UdjinM6 Oct 11, 2018
4b87e3f
Trivial Codestyle fixes in InstantSend code
Oct 11, 2018
bdbe467
pack of small cleanup fixes / optimizations (#2334)
nmarley Oct 11, 2018
91ad8bf
Remove duplicated check (#2336)
Duality-CDOO Oct 11, 2018
1c97530
Amend SERIALIZATION_VERSION_STRING string for spork cache (#2339)
Duality-CDOO Oct 11, 2018
b3070b1
Move bls stuff from crypto/ to bls/
codablock Oct 12, 2018
bb74e0d
Review fixes
codablock Oct 12, 2018
cb0fb92
Minor build documentation updates (#2343)
InhumanPerfection Oct 15, 2018
446e254
Pick rounds with the most inputs available to mix first (#2278)
UdjinM6 Oct 15, 2018
9108b66
Fix auto-IS and tests (#2331)
UdjinM6 Oct 15, 2018
88667b5
Fix the issue with transaction amount precision in IS tests (#2353)
Oct 18, 2018
e29c27a
InstantSend-related tests refactoring (#2333)
Oct 20, 2018
34a5a4a
Fix qt configure to detect clang version correctly
CryptoCentric May 21, 2019
3f16cb9
Move handling of `size != SerSize` into SetBuf/GetBuf
CryptoCentric May 21, 2019
7aadac7
Update Chia BLS libs to latest master
CryptoCentric May 21, 2019
2b0edc5
Backport bitcoin bitcoin#13623 Migrate gitian-build.sh to python
charlesrocket Oct 21, 2018
7920569
Use BLS keys for the AIP3 operator key
CryptoCentric May 21, 2019
74bd001
mkdir -p to allow re-start of failed chia build
CryptoCentric May 21, 2019
4e8718f
Add cmake to non-mac gitian descriptors (#2360)
codablock Oct 23, 2018
fc141d8
GDB automation with Python script to measure memory usage in absoluted
CryptoCentric May 21, 2019
e6cf81b
Cleanup and include BLS
CryptoCentric May 21, 2019
b467612
Move to in-docker CI builds and add Jenkins support
codablock Jul 12, 2018
a7342a5
Add make to Dockerfile Builder
CryptoCentric May 21, 2019
31de4e0
Trivial Adjustment to Doxy
CryptoCentric May 21, 2019
142acf8
Erase mnListCache entry on UndoBlock (#2254)
UdjinM6 Sep 3, 2018
61454fd
Small Definition Changes
CryptoCentric May 21, 2019
90ca765
Bump Transaction Version
CryptoCentric May 21, 2019
8128673
Remove Misc Boost Ref
CryptoCentric May 21, 2019
80bf5eb
Lower Gov Protocol to include 70210
CryptoCentric May 21, 2019
20169b8
Cleanup of CC Validator
CryptoCentric May 21, 2019
3f46679
Remove boost dependency
nmarley Jul 12, 2018
5ec20d6
Add "Branch Name" to commit
CryptoCentric May 21, 2019
08806bf
Remove dip folder ready for recal
CryptoCentric May 21, 2019
c862fc6
Adjust Bench Hashes
CryptoCentric May 21, 2019
9fe2fac
Fix qt configure to detect clang version correctly (#2344)
UdjinM6 Oct 20, 2018
6000c9f
Remove OpenBSD Links
CryptoCentric May 21, 2019
f604950
Rename to AIP
CryptoCentric May 21, 2019
d3f86f0
Protect CSporkManager with critical section
codablock Aug 10, 2018
022bbf4
Merge branch 'v.12.3.1PR1C' of https://github.com/absolute-community/…
CryptoCentric May 22, 2019
0004e99
Extract sporkmanager from sporkmessage
nmarley Aug 22, 2018
1c8fdf9
Cleanup Spork 6 issues
CryptoCentric May 22, 2019
c3b0540
Remove aes_helper duplicate
CryptoCentric May 22, 2019
b189484
Remove old hashes from bench
CryptoCentric May 22, 2019
63b64f5
Remove OpenBSD ref
CryptoCentric May 24, 2019
b1b7537
Adjust guide for configure steps
CryptoCentric May 24, 2019
dbbaafd
Set Spork 10 Activation
CryptoCentric May 24, 2019
9ff43b6
Merge pull request #17 from absolute-community/v.12.3.1PR1C
CryptoCentric May 25, 2019
212aec4
MN Update old masternode cutoff date
CryptoCentric Jun 24, 2019
068aae5
Travis Update build process
CryptoCentric Aug 21, 2019
529f6f3
build_depends.sh executable
CryptoCentric Aug 21, 2019
dfd2631
build_src.sh executable
CryptoCentric Aug 21, 2019
4b8d363
matrix.sh executable
CryptoCentric Aug 21, 2019
e246c6d
test_integrationtests.sh executable
CryptoCentric Aug 21, 2019
b096a36
test_unittests.sh executable
CryptoCentric Aug 21, 2019
b28e232
Wallet Version image changes
CryptoCentric Jun 25, 2019
887fd20
Update build script for Gitian
CryptoCentric Jun 26, 2019
ac78c19
Repoint absolute_hash
CryptoCentric Jul 9, 2019
ddc2a13
Further Docker repoints
CryptoCentric Jul 9, 2019
20e7017
Travis Fix potential travis failures due to network
codablock Mar 22, 2019
98d6437
Update Build src fror ABS
CryptoCentric Jul 9, 2019
830db58
Travis Remove Linux 32bit tests
CryptoCentric Aug 21, 2019
e9ed9e2
Travis update test folder
CryptoCentric Aug 21, 2019
57f74a3
Travis binaries name update
CryptoCentric Aug 21, 2019
6892583
Remove linux32 and Win32 configurations
CryptoCentric Aug 21, 2019
e8db700
Travis Docker relink
CryptoCentric Aug 21, 2019
86b79f3
build-docker.sh executable
CryptoCentric Aug 21, 2019
fb14e1d
push-docker.sh executable
CryptoCentric Aug 21, 2019
74298c4
Cleanup Trusty refrences to Bionic
CryptoCentric Jun 25, 2019
aa2a743
Ccache tar changes and permission cleanup
CryptoCentric Jun 26, 2019
34e221a
Bump Ccache Version and Location
CryptoCentric Jun 27, 2019
3994696
Add CCache Checksum hash
CryptoCentric Jun 27, 2019
d26a8de
Configure Fix thread_local detection
CryptoCentric Jun 27, 2019
7e9073c
Fix Link References to Signatures
CryptoCentric Jun 29, 2019
2ac7059
Enable local threads regardless of glibc_compat
CryptoCentric Jun 29, 2019
a5421dd
Depends Add riscv qt depends support for cross compiling bitcoin-qt
ken2812221 Jul 19, 2018
3f89995
Qt Temp Adjust packages
CryptoCentric Aug 22, 2019
fe24875
Build Add risc-v support
ken2812221 Jul 14, 2018
c70645b
Remove no-alsa from package list
CryptoCentric Jul 2, 2019
a37a6d1
Depends Qt 5.9.6
CryptoCentric Jul 2, 2019
996623f
Tesntnet update block parameters
CryptoCentric Sep 19, 2019
28fbc78
Lower GLIB check on riscv
CryptoCentric Sep 19, 2019
a31cb47
Update Collateral Amount
CryptoCentric Jun 26, 2020
19bd4d1
Old masternode cut off
CryptoCentric Jun 26, 2020
56bd664
build: remove fdelt_chk backwards compatibility code
fanquake Apr 30, 2020
5e3bcd5
Push GLIBC_2.27 check
CryptoCentric Jun 26, 2020
7ad1131
Support ARM and RISC-V symbol check
ken2812221 Jul 20, 2018
8d6166f
GCC-7 and glibc-2.27 compat code
ken2812221 May 5, 2018
8caf7cb
Revert "GCC-7 and glibc-2.27 compat code"
CryptoCentric Jun 27, 2020
9022606
Remove glibc check
CryptoCentric Jun 28, 2020
8f8e5d1
Glibc compat
codablock Jul 12, 2018
b95c24d
GCC-7 and glibc-2.27 compat code
CryptoCentric Jun 28, 2020
12cbc26
32 Bit Removal
CryptoCentric Jun 28, 2020
a1a7597
32 Bit Removal from Gitian Linux
CryptoCentric Jun 28, 2020
5f556d1
Align Build requirements
CryptoCentric Jul 2, 2020
4d713db
Fix thread_local detection with glibc
hebasto Apr 16, 2020
9318da9
Undefine DOUBLE after include Chia BLS headers (#2400)
codablock Oct 31, 2018
d37e5c0
Backtrack on release inclusion notes
CryptoCentric Jul 5, 2020
085d82b
Prep 12.3.1 install scripts
CryptoCentric Jul 5, 2020
c574cbd
Revert MN to original figure
CryptoCentric Jul 5, 2020
5661d7c
Contrib: Set new seed nodes
CryptoCentric Jul 6, 2020
33c6ef7
Update CR for latest version
CryptoCentric Jul 6, 2020
df7edf7
Adjust testnet params
CryptoCentric Jul 6, 2020
5e6df10
Finalise MN Updates and Scripts
CryptoCentric Jul 6, 2020
fa2c78d
Set hardnodes to script
CryptoCentric Jul 6, 2020
7b0df55
Harden Chain and reset epoch
CryptoCentric Jul 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ config.log
config.status
configure
libtool
src/config/dash-config.h
src/config/dash-config.h.in
src/config/absolute-config.h
src/config/absolute-config.h.in
src/config/stamp-h1
share/setup.nsi
share/qt/Info.plist
Expand Down Expand Up @@ -82,6 +82,7 @@ libconftest.dylib*
Makefile
absolute-qt
Absolute-Qt.app
!/depends/Makefile

# Unit-tests
Makefile.test
Expand All @@ -108,7 +109,7 @@ linux-coverage-build
linux-build
win32-build
qa/pull-tester/tests_config.py

qa/pull-tester/tests_config.ini
qa/cache/*


Expand Down
175 changes: 98 additions & 77 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,101 +1,122 @@
# errata:
# - A travis bug causes caches to trample eachother when using the same
# compiler key (which we don't use anyway). This is worked around for now by
# replacing the "compilers" with a build name prefixed by the no-op ":"
# command. See: https://github.com/travis-ci/travis-ci/issues/4393
# - sudo/dist/group are set so as to get Blue Box VMs, necessary for [loopback]
# IPv6 support

sudo: required
dist: trusty
group: deprecated-2017Q3
dist: bionic

os: linux
language: generic

services:
- docker

cache:
apt: true
ccache: true
directories:
- depends/built
- depends/sdk-sources
- $HOME/.ccache
- $HOME/cache

env:
global:
- MAKEJOBS=-j5
- RUN_TESTS=false
- CHECK_DOC=0
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
- CCACHE_SIZE=400M
- CCACHE_TEMPDIR=/tmp/.ccache-temp
- CCACHE_COMPRESS=1
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
- PYTHON_DEBUG=1
- WINEDEBUG=fixme-all
# DOCKER_HUB_USER
- secure: "absolutetestuser"
# DOCKER_HUB_PASSWORD
- secure: "absolutetestuser"
- DOCKER_BUILD=false

stages:
- build depends
- build src
- run tests
- build docker

builddepends: &builddepends
stage: build depends
script:
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh

buildsrc: &buildsrc
stage: build src
script:
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh
- $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh

runtests: &runtests
stage: run tests
script:
- $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh
- $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh
- $DOCKER_RUN_IN_BUILDER ./ci/test_unittests.sh
- $DOCKER_RUN_IN_BUILDER ./ci/test_integrationtests.sh --jobs=3

matrix:
# ARM
- HOST=arm-linux-gnueabihf PPA="ppa:bitcoin/bitcoin" PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# Win32
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PPA="ppa:bitcoin/bitcoin" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.7 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" MAKEJOBS="-j4"
# 32-bit + absolute
- HOST=i686-pc-linux-gnu PPA="ppa:bitcoin/bitcoin" PACKAGES="g++-multilib bc python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/absolute" PYZMQ=true
# Win64
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PPA="ppa:bitcoin/bitcoin" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.7 bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" MAKEJOBS="-j4"
# absoluted
- HOST=x86_64-unknown-linux-gnu PPA="ppa:bitcoin/bitcoin" PACKAGES="bc python3-zmq" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports" CPPFLAGS="-DDEBUG_LOCKORDER -DENABLE_ABSOLUTE_DEBUG" PYZMQ=true
# No wallet
- 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"
# Cross-Mac
- 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.11 GOAL="deploy"
builddocker: &builddocker
stage: build docker
script:
# no need to run tests again here
- if [ "$DOCKER_BUILD" = "true" ]; then $DOCKER_RUN_IN_BUILDER ./ci/build_depends.sh && $DOCKER_RUN_IN_BUILDER ./ci/build_src.sh && BUILD_DIR=build-ci/absolutecore-$BUILD_TARGET ./docker/build-docker.sh; fi

jobs:
include:
# build depends
- <<: *builddepends
env: BUILD_TARGET=arm-linux
- <<: *builddepends
env: BUILD_TARGET=win64
- <<: *builddepends
env: BUILD_TARGET=linux64
- <<: *builddepends
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
- <<: *builddepends
env: BUILD_TARGET=mac
# build source
- <<: *buildsrc
env: BUILD_TARGET=arm-linux
- <<: *buildsrc
env: BUILD_TARGET=win64
- <<: *buildsrc
env: BUILD_TARGET=linux64
- <<: *buildsrc
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
- <<: *buildsrc
env: BUILD_TARGET=mac
# run tests (no tests for arm-linux and mac)
- <<: *runtests
env: BUILD_TARGET=win64
- <<: *runtests
env: BUILD_TARGET=linux64
- <<: *runtests
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true
# build docker
- <<: *builddocker
env: BUILD_TARGET=linux64_release DOCKER_BUILD=true

before_cache:
# Save builder image
- docker save absolute-builder-$BUILD_TARGET-$TRAVIS_JOB_NUMBER $(docker history -q absolute-builder-$BUILD_TARGET-$TRAVIS_JOB_NUMBER | grep -v \<missing\>) | gzip -2 > $HOME/cache/docker/absolute-builder-$BUILD_TARGET.tar.gz

before_install:
- travis_retry travis_apt_get_update
- travis_retry sudo apt-get -yq --no-install-suggests --no-install-recommends install docker-ce

- git clone https://github.com/absolute-community/absolute_hash
- travis_retry sudo apt-get install python3-pip python3-dev
- travis_retry sudo add-apt-repository ppa:ubuntu-wine/ppa -y
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
- chmod +rwx -R depends/
- chmod +rwx -R qa/
- chmod +rwx -R src/
- chmod +rwx -R share/
- chmod +rwx -R contrib/
- chmod +rwx autogen.sh
install:
- if [ "$PYZMQ" = "true" ]; then pip3 install pyzmq --user ; fi
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
- cd absolute_hash && python3 setup.py install --user && cd ..
before_script:
- unset CC; unset CXX
- unset DISPLAY
#- if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/check-doc.py; fi TODO reenable after all Bitcoin PRs have been merged and docs fully fixed
- mkdir -p depends/SDKs depends/sdk-sources
- if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
script:
# Our scripts try to be Travis agnostic
- export PULL_REQUEST="$TRAVIS_PULL_REQUEST"
- export JOB_NUMBER="$TRAVIS_JOB_NUMBER"
- export HOST_SRC_DIR=$TRAVIS_BUILD_DIR
- export HOST_CACHE_DIR=$HOME/cache
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
- mkdir build && cd build
- ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make distdir VERSION=$HOST
- cd absolutecore-$HOST
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
- if [ "$RUN_TESTS" = "true" ]; then travis_wait 30 make $MAKEJOBS check VERBOSE=1; fi
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.py --coverage; fi
- cd ../..
- if [ "$DOCKER_BUILD" = "true" ]; then BUILD_DIR=build/absolutecore-$HOST ./docker/build-docker.sh; fi
- source ./ci/matrix.sh
- mkdir -p $HOST_CACHE_DIR/docker && mkdir -p $HOST_CACHE_DIR/ccache && mkdir -p $HOST_CACHE_DIR/depends && mkdir -p $HOST_CACHE_DIR/sdk-sources
# Keep this as it makes caching related debugging easier
- ls -lah $HOST_CACHE_DIR && ls -lah $HOST_CACHE_DIR/depends && ls -lah $HOST_CACHE_DIR/ccache && ls -lah $HOST_CACHE_DIR/docker
# Load cached builder image
- if [ -f $HOST_CACHE_DIR/docker/absolute-builder-$BUILD_TARGET.tar.gz ]; then zcat $HOST_CACHE_DIR/docker/absolute-builder-$BUILD_TARGET.tar.gz | docker load || true; fi
- travis_retry docker pull ubuntu:bionic
- travis_retry docker build -t $BUILDER_IMAGE_NAME --build-arg=USER_ID=$UID --build-arg=GROUP_ID=$UID --build-arg=BUILD_TARGET=$BUILD_TARGET -f ci/Dockerfile.builder ci
before_script:
# Make sure stdout is in blocking mode. Otherwise builds will fail due to large writes to stdout
# See https://github.com/travis-ci/travis-ci/issues/4704. If this gets fixed, this line can also be removed.
- python3 -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
after_script:
- echo $TRAVIS_COMMIT_RANGE
- echo $TRAVIS_COMMIT_LOG
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ In general, all pull requests must:
the project (for example refactoring for modularisation);
- be well peer reviewed;
- have unit tests and functional tests where appropriate;
- follow code style guidelines;
- follow [code style guidelines](/doc/developer-notes.md);
- not break the existing test suite;
- where bugs are fixed, where possible, there should be unit tests
demonstrating the bug and also proving the fix. This helps prevent regression.
Expand Down
6 changes: 3 additions & 3 deletions COPYING
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
The MIT License (MIT)
Copyright (c) 2009-2019 The Bitcoin Core developers
Copyright (c) 2014-2019 The Dash Core developers
Copyright (c) 2019 The Absolute Core developers
Copyright (c) 2009-2020 The Bitcoin Core developers
Copyright (c) 2014-2020 The Dash Core developers
Copyright (c) 2020 The Absolute Core developers

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
92 changes: 92 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
// This Jenkinsfile will build a builder image and then run the actual build and tests inside this image
// It's very important to not execute any scripts outside of the builder container, as it's our protection against
// external developers bringing in harmful code into Jenkins.
// Jenkins will only run the build if this Jenkinsfile was not modified in an external pull request. Only branches
// which are part of the Absolute repo will allow modification to the Jenkinsfile.

def targets = [
'win32',
'win64',
'linux32',
'linux64',
'linux64_nowallet',
'linux64_release',
'mac',
]

def tasks = [:]
for(int i = 0; i < targets.size(); i++) {
def target = targets[i]

tasks["${target}"] = {
node {
def BUILD_NUMBER = sh(returnStdout: true, script: 'echo $BUILD_NUMBER').trim()
def BRANCH_NAME = sh(returnStdout: true, script: 'echo $BRANCH_NAME').trim()
def UID = sh(returnStdout: true, script: 'id -u').trim()
def HOME = sh(returnStdout: true, script: 'echo $HOME').trim()
def pwd = sh(returnStdout: true, script: 'pwd').trim()

checkout scm

// restore cache
try {
copyArtifacts(projectName: "absolute-community-absolute/${BRANCH_NAME}", optional: true, selector: lastSuccessful(), filter: "ci-cache-${target}.tar.gz")
} catch (Exception e) {
}
if (fileExists("ci-cache-${target}.tar.gz")) {
hasCache = true
echo "Using cache from absolute-community-absolute/${BRANCH_NAME}"
} else {
try {
copyArtifacts(projectName: 'absolute-community-absolute/develop', optional: true, selector: lastSuccessful(), filter: "ci-cache-${target}.tar.gz");
} catch (Exception e) {
}
if (fileExists("ci-cache-${target}.tar.gz")) {
hasCache = true
echo "Using cache from absolute-community-absolute/develop"
}
}

def env = [
"BUILD_TARGET=${target}",
"PULL_REQUEST=false",
"JOB_NUMBER=${BUILD_NUMBER}",
]
withEnv(env) {
def builderImageName="absolute-builder-${target}"

def builderImage
stage("${target}/builder-image") {
builderImage = docker.build("${builderImageName}", "--build-arg BUILD_TARGET=${target} ci -f ci/Dockerfile.builder")
}

if (hasCache) {
sh "cd ${pwd} && tar xzfv ci-cache-${target}.tar.gz"
} else {
sh "mkdir -p ${pwd}/ci-cache-${target}"
}

builderImage.inside("-t") {
stage("${target}/depends") {
sh './ci/build_depends.sh'
}
stage("${target}/build") {
sh './ci/build_src.sh'
}
stage("${target}/test") {
sh './ci/test_unittests.sh'
}
stage("${target}/test") {
sh './ci/test_integrationtests.sh'
}
}

// archive cache
sh "tar czfv ci-cache-${target}.tar.gz ci-cache-${target}"
archiveArtifacts artifacts: "ci-cache-${target}.tar.gz", fingerprint: true
}
}
}
}

parallel tasks
Loading