37 Commits

Author SHA1 Message Date
danielclough
4dcc62a321 only build when src/* changes 2020-12-30 08:20:38 +01:00
danielclough
414105427b add Trash* 2020-12-27 17:26:03 +01:00
danielclough
ad13bb75d8 reorganize folders 2020-12-27 17:20:23 +01:00
danielclough
4bb08626b7 add platform support 2020-12-26 20:04:11 +01:00
danielclough
e644953647 make TIMEZONE env 2020-12-26 18:31:02 +01:00
danielclough
fcf76f934b make BRANCH an environment variable 2020-12-26 17:49:12 +01:00
danielclough
a97f82b3f9 fix context 2020-12-26 17:38:26 +01:00
danielclough
6cbd66206f branches other than master don't tag as latest 2020-12-26 17:30:42 +01:00
danielclough
c95700413a fix cp path 2020-12-26 17:12:26 +01:00
danielclough
1675e5ae47 fix BASE_DIR 2020-12-26 17:06:52 +01:00
danielclough
00f7f83ac8 test PWD 2020-12-26 17:01:41 +01:00
danielclough
b2ea24e4f3 fix typo 2020-12-26 16:59:15 +01:00
danielclough
917f2e28aa Jenkins BASE_DIR fix 2020-12-26 16:58:06 +01:00
danielclough
36fadd90a7 fix typo 2020-12-26 16:52:08 +01:00
danielclough
a6b73dda8c pass $WORKSPACE as $BASE_DIR 2020-12-26 16:50:55 +01:00
danielclough
c7642e1f18 if PWD change BASE_PATH 2020-12-26 16:38:03 +01:00
danielclough
b13663fad7 fix typo 2020-12-26 16:30:53 +01:00
danielclough
0d0ae1229f basepath for Jenkins 2020-12-26 16:27:54 +01:00
danielclough
0d6cc04d35 remove absolute path from minimal build 2020-12-26 16:16:16 +01:00
danielclough
7aba573321 try apt-get wget 2020-12-26 15:59:00 +01:00
danielclough
e780e7afd1 absolute path for wget 2020-12-26 15:52:05 +01:00
danielclough
f83cf7979a fix typo 2020-12-26 15:46:47 +01:00
danielclough
ac0c3be923 fix env and install script 2020-12-26 15:45:01 +01:00
danielclough
91b6717f0a add multi-arch support and build from shell script 2020-12-26 15:10:58 +01:00
danielclough
f916662d90 fix typo 2020-12-24 13:20:16 +01:00
danielclough
648ef4ee66 add net=host 2020-12-24 13:15:07 +01:00
danielclough
1f1aa556e1 move back 2020-12-09 13:48:35 -08:00
danielclough
fc380599f2 move Jenkinsfile to contrib 2020-12-09 13:38:14 -08:00
danielclough
1a00a68fbe change build test command 2020-12-09 12:05:03 -08:00
danielclough
687fa65b05 Merge branch 'add-jenkins' of github.com:CoinBlack/blackcoin-more into add-jenkins 2020-12-09 11:13:55 -08:00
Daniel Clough
e18cfb58a1 test Jenkins with Blue Ocean 2020-12-09 11:07:27 -08:00
danielclough
0390f1b8e6 exit 2020-12-09 10:14:10 -08:00
danielclough
0e6275c72f Merge branch 'master' of gitlab.com:DanielClough/blackcoin-more 2020-12-08 18:39:11 -08:00
danielclough
05b9e57000 add blackmored.service 2020-11-24 01:51:54 -08:00
danielclough
2bc89d5ad2 add blackmored.service 2020-11-24 00:35:05 -08:00
danielclough
404c175fa2 add blackmored.service 2020-11-24 00:27:27 -08:00
danielclough
5fbf64be58 add MALLOC_ARENA_MAX=1 and other small adjustments 2020-11-24 00:00:05 -08:00
29 changed files with 695 additions and 350 deletions

3
.gitignore vendored
View File

@@ -141,4 +141,5 @@ contrib/devtools/split-debug.sh
osx_volname
dist/
*.background.tiff
*.background.tiff
.Trash*

View File

@@ -1,10 +1,4 @@
# Changelog
## v2.13.2.8 (2021-02-24)
- Immediately ban clients operating on forked chains older than nMaxReorganizationDepth
- Fixed IsDust() policy to allow atomic swaps
- Updated fixed seeds for mainnet and testnet
- Updated dependencies for MacOS
## v2.13.2.7 (2020-11-24)
- Dust mitigation in mempool (by JJ12880 from Radium Core)
- Compile on MacOS Catalina

11
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,11 @@
pipeline {
agent { label 'master' }
stages {
stage('build') {
when { changeset pattern: "src/*", caseSensitive: true }
steps {
sh "contrib/docker/build.sh -o x86_64-linux-gnu blackcoinnl github CoinBlack" + env.GIT_LOCAL_BRANCH + " Etc/UTC"
}
}
}
}

View File

@@ -3,85 +3,68 @@ dnl Distributed under the MIT software license, see the accompanying
dnl file COPYING or http://www.opensource.org/licenses/mit-license.php.
AC_DEFUN([BITCOIN_FIND_BDB62],[
AC_ARG_VAR(BDB_CFLAGS, [C compiler flags for BerkeleyDB, bypasses autodetection])
AC_ARG_VAR(BDB_LIBS, [Linker flags for BerkeleyDB, bypasses autodetection])
if test "x$use_bdb" = "xno"; then
use_bdb=no
elif test "x$BDB_CFLAGS" = "x"; then
AC_MSG_CHECKING([for Berkeley DB C++ headers])
BDB_CPPFLAGS=
bdbpath=X
bdb62path=X
bdbdirlist=
for _vn in 6.2 62 6 5 5.3 ''; do
for _pfx in b lib ''; do
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
done
AC_MSG_CHECKING([for Berkeley DB C++ headers])
BDB_CPPFLAGS=
BDB_LIBS=
bdbpath=X
bdb62path=X
bdbdirlist=
for _vn in 6.2 62 6 ''; do
for _pfx in b lib ''; do
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
done
for searchpath in $bdbdirlist ''; do
test -n "${searchpath}" && searchpath="${searchpath}/"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !((DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR >= 2) || DB_VERSION_MAJOR < 6 || DB_VERSION_MAJOR > 6)
#error "failed to find bdb 6.2+"
#endif
]])],[
if test "x$bdbpath" = "xX"; then
bdbpath="${searchpath}"
fi
],[
continue
])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !(DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR == 2)
#error "failed to find bdb 6.2"
#endif
]])],[
bdb62path="${searchpath}"
break
],[])
done
if test "x$bdbpath" = "xX"; then
use_bdb=no
AC_MSG_RESULT([no])
AC_MSG_ERROR([libdb_cxx headers missing, ]AC_PACKAGE_NAME[ requires this library for BDB wallet support (--without-bdb to disable BDB wallet support)])
elif test "x$bdb62path" = "xX"; then
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 6.2])],[
AC_MSG_WARN([Found Berkeley DB other than 6.2; BDB wallets opened by this build will not be portable!])
],[
AC_MSG_ERROR([Found Berkeley DB other than 6.2, required for portable BDB wallets (--with-incompatible-bdb to ignore or --without-bdb to disable BDB wallet support)])
])
use_bdb=yes
else
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb48path}],db_cxx)
bdbpath="${bdb62path}"
use_bdb=yes
fi
done
for searchpath in $bdbdirlist ''; do
test -n "${searchpath}" && searchpath="${searchpath}/"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !((DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR >= 2) || DB_VERSION_MAJOR > 6)
#error "failed to find bdb 6.2+"
#endif
]])],[
if test "x$bdbpath" = "xX"; then
bdbpath="${searchpath}"
fi
],[
continue
])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !(DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR == 2)
#error "failed to find bdb 6.2"
#endif
]])],[
bdb62path="${searchpath}"
break
],[])
done
if test "x$bdbpath" = "xX"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([libdb_cxx headers missing,]AC_PACKAGE_NAME[ requires this library for wallet functionality (--disable-wallet to disable wallet functionality)])
elif test "x$bdb62path" = "xX"; then
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 6.2])],[
AC_MSG_WARN([Found Berkeley DB other than 6.2; wallets opened by this build will not be portable!])
],[
AC_MSG_ERROR([Found Berkeley DB other than 6.2, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
])
else
BDB_CPPFLAGS=${BDB_CFLAGS}
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb62path}],db_cxx)
bdbpath="${bdb62path}"
fi
AC_SUBST(BDB_CPPFLAGS)
if test "x$use_bdb" = "xno"; then
use_bdb=no
elif test "x$BDB_LIBS" = "x"; then
# TODO: Ideally this could find the library version and make sure it matches the headers being used
for searchlib in db_cxx db_cxx-6.2 db_cxx-5.3 db6_cxx db5_cxx; do
AC_CHECK_LIB([$searchlib],[main],[
BDB_LIBS="-l${searchlib}"
break
])
done
if test "x$BDB_LIBS" = "x"; then
AC_MSG_ERROR([libdb_cxx missing, ]AC_PACKAGE_NAME[ requires this library for BDB wallet support (--without-bdb to disable BDB wallet support)])
fi
# TODO: Ideally this could find the library version and make sure it matches the headers being used
for searchlib in db_cxx-6.2 db_cxx; do
AC_CHECK_LIB([$searchlib],[main],[
BDB_LIBS="-l${searchlib}"
break
])
done
if test "x$BDB_LIBS" = "x"; then
AC_MSG_ERROR([libdb_cxx missing, ]AC_PACKAGE_NAME[ requires this library for wallet functionality (--disable-wallet to disable wallet functionality)])
fi
if test "x$use_bdb" != "xno"; then
AC_SUBST(BDB_LIBS)
AC_DEFINE([USE_BDB], [1], [Define if BDB support should be compiled in])
use_bdb=yes
fi
])
AC_SUBST(BDB_LIBS)
])

View File

@@ -3,9 +3,9 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 2)
define(_CLIENT_VERSION_MINOR, 13)
define(_CLIENT_VERSION_REVISION, 2)
define(_CLIENT_VERSION_BUILD, 8)
define(_CLIENT_VERSION_BUILD, 7)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2021)
define(_COPYRIGHT_YEAR, 2020)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Blackcoin More]])
AC_INIT([Blackcoin More],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://gitlab.com/blackcoin/blackcoin-more],[blackcoin-more])

View File

@@ -1,107 +1,15 @@
#!/bin/bash
# original script from blackcoin.nl (https://blackcoin.nl/scripts-for-using-blackcoin-from-the-command-line-interface/)
# adjusted to my likes yikes!
# also i added several functions like setpassword, changepassword, balance and addr
# DONE
# ----
# * added unlock
# * added setpassword
# * added changepassword
# * added balance
# * added addr
# * added alladdr
# * added possiblity to use rpcuser/rpcpass
# * added fallback for default cookie usage
#
# FIXED
# -----
#
# TODO
#-----
# * change user/pass cmdline option
# * add cookie option
# * add datadir option
# ATTENTION, you need to adjust those values
# the directory the blackcoin-cli is located at
bin_home="/home/blk/bin/"
# the directory specified with --datadir, if not specified default is $HOME/.blackmore
data_dir="/home/blk/.blackmore/"
# username
rpc_user="EXAMPLE_USER"
# password for RPC access
rpc_password=""
usage="Usage: blk [ info | unlock | stake | latest | dust | past24 | setpassword | changepassword | acctbalance | acctaddr | addrbalance | alladdr ] \n \n
usage="Usage: blk [ info | stake | latest | dust ] \n \n
info: Check basic info. \n
unlock: Unlock the wallet for transfer; Passes password without storing it in memory. \n
stake: Enables staking; Passes password without storing it in memory. \n
latest: Compares latest block with the BlackcoinNL hosted block explorer. \n
dust: Prunes dust from wallet. Dust is defined as less than .0001BLK. Requires jq. \n
past24: Shows staking numbers from the past 24hrs. \n
setpassword: Set encryption password if wallet is *UNENCRYPTED*. \n
changepassword: change wallet password. \n
acctbalance: show balance of addresses derived from ACCOUNT name(using curl+cryptoid.info). \n
addrbalance: show balance of addresses derived from ADDRESS name(using curl+cryptoid.info). \n
alladdr: show all addr and balances \n
acctaddr: show addresses of wallet ACCOUNT name\n"
if [ $rpc_user = 'EXAMPLE_USER' ];then
echo 'No user given, using cookie.'
blkc="$bin_home/blackmore-cli"
else
echo 'Using rpc-user-authentication scheme'
blkc="$bin_home/blackmore-cli -rpcuser=$rpc_user -rpcpassword=$rpc_password -datadir=$data_dir"
fi
dust: Prunes dust from wallet. Dust is defined as less than .0001BLK. Requires jq. \n"
blkc='/usr/local/bin/blackmore-cli -datadir=/var/lib/.blackmore/'
case $1 in
addrbalance )
if [ $# -ne 2 ]; then
echo 'No address give.'
echo 'Abort.'
exit
fi
addr=$2
bal=`curl "https://chainz.cryptoid.info/blk/api.dws?q=getbalance&a=$addr" 2>/dev/null`
echo "Address Balance"
echo "$addr $bal BLK"
;;
acctbalance ) account=''
myaddr=''
if [ $# -ne 2 ]; then
echo 'No accountname given, using default'
myaddr=`$blkc getaddressesbyaccount ""| jq .|grep \"B|sed -e 's/[ ",]//g'`
else
account=$2
myaddr=`$blkc getaddressesbyaccount "$account"| jq .|grep \"B|sed -e 's/[ ",]//g'`
fi
echo "Address Balance"
for item in $myaddr; do
bal=`curl "https://chainz.cryptoid.info/blk/api.dws?q=getbalance&a=$item" 2>/dev/null`
echo "$item $bal BLK"
done
;;
acctaddr ) account=''
myaddr=''
if [ $# -ne 2 ]; then
echo 'No accountname given, using default'
myaddr=`$blkc getaddressesbyaccount ""| jq .|grep \"B|sed -e 's/[ ",]//g'`
else
account=$2
echo $account
myaddr=`$blkc getaddressesbyaccount "$account"| jq .|grep \"B|sed -e 's/[ ",]//g'`
fi
echo 'Address'
for i in `echo $myaddr`; do echo $i; done
;;
alladdr ) $blkc listaddressgroupings
;;
info )
$blkc getwalletinfo | egrep "balance|staked_balance|txcount|unconfirmed_balance|immature_balance|total_balance";
$blkc getnetworkinfo | egrep "subversion|connections";
@@ -110,33 +18,7 @@ info )
$blkc getstakinginfo | egrep "enabled|staking|netstakeweight|expectedtime";
;;
setpassword )
echo 'Set password for *UNENCRYPTED* wallet'
read -s BLKPW
$blkc encryptwallet $BLKPW
BLKPW=null
;;
changepassword )
echo 'Set new password, enter OLD password'
read -s BLKPWOLD
echo 'Set new password, enter NEW password'
read -s BLKPWNEW
$blkc walletpassphrasechange $BLKPWOLD $BLKPWNEW
BLKPWOLD=null
BLKPWNEW=null
;;
unlock )
echo 'ATTENTION! Unlocking Wallet!'
echo 'enter Blackcoin Password'
read -s BLKPW
$blkc walletpassphrase $BLKPW 99999999 false
BLKPW=null
;;
stake )
echo 'Change Wallet to STAKING ONLY'
echo 'enter Blackcoin Password'
read -s BLKPW
$blkc walletpassphrase $BLKPW 99999999 true
@@ -153,25 +35,14 @@ latest )
dust )
IFS=$'\n';
$blkc listtransactions "*" 99999 | jq -r '.[] | select(.category != "send") | select(.amount < .0001) | .txid' | uniq >txid.txt
/usr/local/bin/blackmore-cli -datadir=/var/lib/.blackmore/ listtransactions "*" 99999 | jq -r '.[] | select(.category != "send") | select(.amount < .0001) | .txid' | uniq >txid.txt
while read line; do
echo $line
$blkc removeprunedfunds $(echo $line)
/usr/local/bin/blackmore-cli -datadir=/var/lib/.blackmore/ removeprunedfunds $(echo $line)
done < "txid.txt"
;;
past24 )
latest=$($blkc getblockcount)
since=$(expr $latest - 1350)
hash=$($blkc getblockhash $since)
past24=$($blkc listsinceblock $hash | jq -r '.[] | .[] | select(.confirmations > 0) | select(.amount = 0) .confirmations' 2> /dev/null | wc -l)
total=$($blkc getwalletinfo | jq -r ' .total_balance | round')
per10k=$(echo "scale=2; $past24/($total/10000)" | bc -l)
echo $past24 stakes over the past 24hrs... "$per10k" per 10k BLK...
;;
*)
echo -e $usage
;;

7
contrib/docker/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
aarch64-linux-gnu/aarch64-linux-gnu/*
aarch64-linux-gnu/parts/*
arm-linux-gnueabihf/arm-linux-gnueabihf/*
arm-linux-gnueabihf/parts/*
x86_64-linux-gnu/x86_64-linux-gnu/*
x86_64-linux-gnu/parts/*
depends*.*xz

10
contrib/docker/README.md Executable file
View File

@@ -0,0 +1,10 @@
## To Build
#### Log in to [Docker Hub](https://hub.docker.com).
`docker login`
#### Build
`moreBuilder/build.sh`

View File

@@ -0,0 +1,77 @@
FROM ubuntu AS ubase-base-aarch64-linux-gnu
ARG BRANCH
ENV BRANCH=$BRANCH
ARG TIMEZONE
ENV TIMEZONE=$TZ
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -yqq \
git \
make \
file \
autoconf \
automake \
libtool \
libevent-dev \
build-essential \
autotools-dev \
pkg-config \
bsdmainutils \
python3 \
libevent-dev \
libboost-all-dev \
libminiupnpc-dev \
libzmq3-dev \
libssl-dev \
gperf \
wget \
# blk commandline utility
jq \
bc \
# cross compile arm
g++-arm-linux-gnueabihf \
binutils-arm-linux-gnueabihf \
# cross compile aarch64
g++-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
# cross compile macOS
curl \
librsvg2-bin \
libtiff-tools \
bsdmainutils \
cmake \
imagemagick \
libcap-dev \
libz-dev \
libbz2-dev \
python3-setuptools \
libtinfo5
FROM ubase-base-aarch64-linux-gnu AS ubase-aarch64-linux-gnu
RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git
COPY aarch64-linux-gnu ./aarch64-linux-gnu
WORKDIR /blackcoin-more
RUN (git clean -xf && \
./autogen.sh && \
./configure --prefix=/aarch64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \
make -j4 && \
make install && \
cd src/ && \
/usr/bin/aarch64-linux-gnu-strip blackmore*)
RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \
cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \
cp /blackcoin-more/contrib/blk /usr/local/bin/
WORKDIR /aarch64-linux-gnu/parts
RUN cp --parents /usr/local/bin/blk ./ && \
cp --parents /usr/local/bin/blackmored ./ && \
for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp --parents /usr/local/bin/blackmore-cli ./ && \
for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp /usr/bin/bc --parents ./ && \
cp /usr/bin/jq --parents ./
WORKDIR /
RUN ls /blackcoin-more/src | grep blackmore && ls /usr/local/bin && ls /aarch64-linux-gnu/parts/usr

View File

@@ -0,0 +1,22 @@
FROM ubase-aarch64-linux-gnu AS ubuntu-aarch64-linux-gnu
# Collect dependencies
FROM ubuntu
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && \
apt-get -yqq upgrade && \
apt-get -yqq install \
libboost-all-dev \
libzmq3-dev \
libminiupnpc-dev
# Copy the binaries to our new container
COPY --from=ubase-aarch64-linux-gnu /blackcoin-more/src/blackmored /usr/local/bin
COPY --from=ubase-aarch64-linux-gnu /blackcoin-more/src/blackmore-cli /usr/local/bin
COPY --from=ubase-aarch64-linux-gnu /usr/bin/bc /usr/bin
COPY --from=ubase-aarch64-linux-gnu /usr/bin/jq /usr/bin
# Expose the port for the RPC interface
EXPOSE 15714/tcp

View File

@@ -0,0 +1,74 @@
FROM ubuntu AS ubase-base-arm-linux-gnueabihf
ARG BRANCH
ENV BRANCH=$BRANCH
ARG TIMEZONE
ENV TIMEZONE=$TZ
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -yqq \
git \
make \
file \
autoconf \
automake \
libtool \
libevent-dev \
build-essential \
autotools-dev \
pkg-config \
bsdmainutils \
python3 \
libevent-dev \
libboost-all-dev \
libminiupnpc-dev \
libzmq3-dev \
libssl-dev \
gperf \
wget \
# blk commandline utility
jq \
bc \
# cross compile arm
g++-arm-linux-gnueabihf \
binutils-arm-linux-gnueabihf \
# cross compile aarch64
g++-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
# cross compile macOS
curl \
librsvg2-bin \
libtiff-tools \
bsdmainutils \
cmake \
imagemagick \
libcap-dev \
libz-dev \
libbz2-dev \
python3-setuptools \
libtinfo5
FROM ubase-base-arm-linux-gnueabihf AS ubase-arm-linux-gnueabihf
RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git
COPY arm-linux-gnueabihf ./arm-linux-gnueabihf
WORKDIR /blackcoin-more
RUN (git clean -xf && \
./autogen.sh && \
./configure --prefix=/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \
make -j4 && \
make install && \
cd src/ && \
/usr/bin/arm-linux-gnueabihf-strip blackmore*)
RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \
cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \
cp /blackcoin-more/contrib/blk /usr/local/bin/
WORKDIR /arm-linux-gnueabihf/parts
RUN cp --parents /usr/local/bin/blk ./ && \
cp --parents /usr/local/bin/blackmored ./ && \
for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp --parents /usr/local/bin/blackmore-cli ./ && \
for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp /usr/bin/bc --parents ./ && \
cp /usr/bin/jq --parents ./
WORKDIR /

View File

@@ -0,0 +1,22 @@
FROM ubase-arm-linux-gnueabihf AS ubuntu-arm-linux-gnueabihf
# Collect dependencies
FROM ubuntu
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && \
apt-get -yqq upgrade && \
apt-get -yqq install \
libboost-all-dev \
libzmq3-dev \
libminiupnpc-dev
# Copy the binaries from to our new container
COPY --from=ubase-arm-linux-gnueabihf /blackcoin-more/src/blackmored /usr/local/bin
COPY --from=ubase-arm-linux-gnueabihf /blackcoin-more/src/blackmore-cli /usr/local/bin
COPY --from=ubase-arm-linux-gnueabihf /usr/bin/bc /usr/bin
COPY --from=ubase-arm-linux-gnueabihf /usr/bin/jq /usr/bin
# Expose the port for the RPC interface
EXPOSE 15714/tcp

185
contrib/docker/build.sh Executable file
View File

@@ -0,0 +1,185 @@
#!/bin/bash
[[ -z `echo $PWD | grep jenkins_home` ]] && BASE_DIR=$(dirname $(realpath $0 )) || BASE_DIR="${WORKSPACE}/contrib/docker"
Alist="\n
\t \t \t \t aarch64-linux-gnu \t (eg. Raspi4 with Ubuntu) \n
\t \t \t \t arm-linux-gnueabihf \t (eg. Other Raspi) \n
\t \t \t \t x86_64-linux-gnu \t (aka. Linux AMD64) \n
\t \t \t \t all \t (only works in option mode) \n
"
usage="Usage: \n
\t option mode: \t \`build.sh -o <architecture> <DockerHub> <HubLab> <GitAccount> <BRANCH> <TIMEZONE>\` \n
\t interactive: \t \`build.sh -i\` \n
\t \t \t help: \t \`build.sh -h\` \n
\n Architectures: ${Alist} \n
"
h1="<architecture> \t Choose your architecture. ${Alist}"
h2="<DockerHub> \t \t Enter your Docker Hub Account name."
h3="<HubLab> \t \t \t Enter \"github\" or \"gitlab\"."
h4="<GitAccount> \t Enter the git account name. (eg. \"CoinBlack\" on GitHub, or \"blackcoin\" on GitLab)"
h5="<BRANCH> \t \t \t Enter the BRANCH name. (eg. master)"
h6="<TIMEZONE> \t \t Enter your timezone. (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
help=" \n
\t The defaults in interactive mode, written in for option mode: \n
build.sh -o x86_64-linux-gnu blackcoinnl github CoinBlack v2.13.2.7 America/Los_Angeles \n
\n $h1 \n
\n $h2 \n
\n $h3 \n
\n $h4 \n
\n $h5 \n
\n $h6 \n
"
case $1 in
-h)
echo -e ${help}
;;
-i|-o)
# Questions for Interactive Mode
defaultARCH=${2:-x86_64-linux-gnu}
defaultDockerHub=${3:-blackcoinnl}
defaultHubLab=${4:-github}
defaultRepo=${5:-CoinBlack}
defaultBranch=${6:-v2.13.2.7}
defaultTimezone=${7:-America/Los_Angeles}
if [[ $1 == -i ]]; then
echo -e ${Alist}
read -p "For what architecture would you like to build? ($defaultARCH): " architecture
read -p "What is your DockerHub Account Name? ($defaultDockerHub): " DockerHub
read -p "Github or Gitlab? ($defaultHubLab): " HubLab
read -p "What is your GitAccount name? ($defaultRepo): " GitAccount
read -p "What BRANCH/version? ($defaultBranch): " BRANCH
read -p "What is your TIMEZONE? (${defaultTimezone}): " TIMEZONE
echo "Architecture: ${architecture}"
echo "DockerHub Account: ${DockerHub}"
echo "Git Account: ${HubLab}.com/${GitAccount} ${BRANCH}"
echo "Timezone: ${TIMEZONE}"
else
echo -e "
Option Mode! \n
Architecture: $2
DockerHub Account: $3
Git Account: https://${4}.com/${5} ${6}
Timezone: ${7}
"
fi
# Architecture
architecture=${architecture:-${defaultARCH}}
if [[ ${architecture} == all ]]; then
bash ${BASE_DIR}/build.sh -o aarch64-linux-gnu $3 $4 $5 $6 $7
bash ${BASE_DIR}/build.sh -o arm-linux-gnueabihf $3 $4 $5 $6 $7
bash ${BASE_DIR}/build.sh -o x86_64-linux-gnu $3 $4 $5 $6 $7
exit 0
else
[[ ${architecture} != ${defaultARCH} ]] && sed -i "s/-x86_64-linux-gnu/-${architecture}/" $0
# Download Dependencies
if [[ -f ${BASE_DIR}/depends-${architecture}.tar.xz && -f ${BASE_DIR}/${architecture}/${architecture}/bin/fc-cache ]]; then
echo "Dependencies exist! Checking sha256sum!";
case $architecture in
aarch64-linux-gnu)
checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1
;;
arm-linux-gnueabihf)
checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1
;;
x86_64-linux-gnu)
checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK!" || exit 1
;;
esac
else
[[ -z `which wget` ]] && apt-get install wget
/usr/bin/wget -qO ${BASE_DIR}/depends-${architecture}.tar.xz https://admin.blackcoin.nl/static/depends-${architecture}.tar.xz
case $architecture in
aarch64-linux-gnu)
platform="linux/arm64, linux/arm/v8"
checkSUM=`echo "f6f1b099d876db90396d0d56eb5b3f366f14c90e077524e2b10bfdaaa1aa5805 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\
|| exit 1
;;
arm-linux-gnueabihf)
platform="linux/arm/v7"
checkSUM=`echo "339c1159adcccecb45155b316f1f5772009b92acb8cfed29464dd7f09775fb79 ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\
|| exit 1
;;
x86_64-linux-gnu)
platform="linux/amd64"
checkSUM=`echo "eed063b26f4c4e0fa35dc085fe09bafd4251cffa76cdabb26bf43077da03b84e ${BASE_DIR}/depends-${architecture}.tar.xz" | sha256sum --check | awk '{print $2}' 2> /dev/null`
[[ "${checkSUM}" == "OK" ]] && echo "The sha256sum is OK! You will need sudo to untar the dependencies." && sudo tar xJf ${BASE_DIR}/depends-${architecture}.tar.xz -C ${BASE_DIR}/\
|| exit 1
;;
esac
echo -e "
Dependencies SHA256SUM GOOD!
"
fi
# DockerHub Account
DockerHub=${DockerHub:-${defaultDockerHub}}
[[ $DockerHub != ${defaultDockerHub} ]] && sed -i "s/blackcoinnl/${DockerHub}/" $0
# Git Account
HubLab=${HubLab:-${defaultHubLab}}
[[ $HubLab != $defaultHubLab ]] && sed -i "s|github|${HubLab}|" $0
GitAccount=${GitAccount:-${defaultRepo}}
[[ ${GitAccount} != ${defaultRepo} ]] && sed -i "s|CoinBlack|$GitAccount|" $0
# BRANCH
BRANCH=${BRANCH:-${defaultBranch}}
[[ ${BRANCH} != ${defaultBranch} ]] && sed -i "s|v2.13.2.7|${BRANCH}|" $0
# TIMEZONE
TIMEZONE=${TIMEZONE:-${defaultTimezone}}
[[ ${TIMEZONE} != ${defaultTimezone} ]] && sed -i "s|America/Los_Angeles|${TIMEZONE}|" $0
# build ubase
ubase="ubase-${architecture}"
Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubase}"
docker build --network=host ${BASE_DIR}/${architecture} -t ${ubase} --build-arg BRANCH=${BRANCH} --build-arg TIMEZONE=${TZ} -f ${Dockerfile}
# build ubuntu
ubuntu="ubuntu-${architecture}"
Dockerfile="${BASE_DIR}/${architecture}/Dockerfile.${ubuntu}"
docker build --network=host -t ${ubuntu}:${BRANCH} - < ${Dockerfile}
[[ ${BRANCH} != master ]] || docker image tag ${ubuntu}:${BRANCH} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:latest && \
docker image tag ${ubuntu}:${BRANCH} ${DockerHub}/blackcoin-more-ubuntu-${architecture}:${BRANCH}
# build minimal
minimal="minimal-${architecture}"
rm -fr ${BASE_DIR}/${architecture}/parts
docker run -itd --network=host --name ${ubase} ${ubase} bash
docker cp ${ubase}:/${architecture}/parts ${BASE_DIR}/${architecture}/parts
cd ${BASE_DIR}/${architecture}
tar -C parts -c . | docker import - ${minimal}:${BRANCH}
docker container rm -f ${ubase}
[[ ${BRANCH} != master ]] || docker image tag ${minimal}:${BRANCH} ${DockerHub}/blackcoin-more-minimal-${architecture}:latest && \
docker image tag ${minimal}:${BRANCH} ${DockerHub}/blackcoin-more-minimal-${architecture}:${BRANCH}
fi
;;
*)
echo -e ${usage}
;;
esac

View File

@@ -0,0 +1,74 @@
FROM ubuntu AS ubase-base-x86_64-linux-gnu
ARG BRANCH
ENV BRANCH=$BRANCH
ARG TIMEZONE
ENV TIMEZONE=$TZ
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -yqq \
git \
make \
file \
autoconf \
automake \
libtool \
libevent-dev \
build-essential \
autotools-dev \
pkg-config \
bsdmainutils \
python3 \
libevent-dev \
libboost-all-dev \
libminiupnpc-dev \
libzmq3-dev \
libssl-dev \
gperf \
wget \
# blk commandline utility
jq \
bc \
# cross compile arm
g++-arm-linux-gnueabihf \
binutils-arm-linux-gnueabihf \
# cross compile aarch64
g++-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
# cross compile macOS
curl \
librsvg2-bin \
libtiff-tools \
bsdmainutils \
cmake \
imagemagick \
libcap-dev \
libz-dev \
libbz2-dev \
python3-setuptools \
libtinfo5
FROM ubase-base-x86_64-linux-gnu AS ubase-x86_64-linux-gnu
RUN git clone -b $BRANCH https://github.com/CoinBlack/blackcoin-more.git
COPY x86_64-linux-gnu ./x86_64-linux-gnu
WORKDIR /blackcoin-more
RUN (git clean -xf && \
./autogen.sh && \
./configure --prefix=/x86_64-linux-gnu --enable-glibc-back-compat --enable-reduce-exports --disable-tests --disable-bench --disable-gui-tests --enable-upnp-default LDFLAGS=-static-libstdc++ && \
make -j4 && \
make install && \
cd src/ && \
/usr/bin/strip blackmore*)
RUN cp /blackcoin-more/src/blackmored /usr/local/bin/ && \
cp /blackcoin-more/src/blackmore-cli /usr/local/bin/ && \
cp /blackcoin-more/contrib/blk /usr/local/bin/
WORKDIR /x86_64-linux-gnu/parts
RUN cp --parents /usr/local/bin/blk ./ && \
cp --parents /usr/local/bin/blackmored ./ && \
for i in `ldd /usr/local/bin/blackmored | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp --parents /usr/local/bin/blackmore-cli ./ && \
for i in `ldd /usr/local/bin/blackmore-cli | grep -v linux-vdso.so.1 | awk {' if ( $3 == "") print $1; else print $3 '}`; do cp --parents $i ./; done && \
cp /usr/bin/bc --parents ./ && \
cp /usr/bin/jq --parents ./
WORKDIR /

View File

@@ -0,0 +1,23 @@
FROM ubase-x86_64-linux-gnu AS ubuntu-x86_64-linux-gnu
# Collect dependencies
FROM ubuntu
ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && \
apt-get -yqq upgrade && \
apt-get -yqq install \
libboost-all-dev \
libzmq3-dev \
libminiupnpc-dev
# Copy the binaries to our new container
COPY --from=ubase-x86_64-linux-gnu /blackcoin-more/src/blackmored /usr/local/bin
COPY --from=ubase-x86_64-linux-gnu /blackcoin-more/src/blackmore-cli /usr/local/bin
COPY --from=ubase-x86_64-linux-gnu /usr/bin/bc /usr/bin
COPY --from=ubase-x86_64-linux-gnu /usr/bin/jq /usr/bin
# Expose the port for the RPC interface
EXPOSE 15714/tcp

View File

@@ -1,22 +0,0 @@
[Unit]
Description=Bitcoin's distributed currency daemon
After=network.target
[Service]
User=bitcoin
Group=bitcoin
Type=forking
PIDFile=/var/lib/bitcoind/bitcoind.pid
ExecStart=/usr/bin/bitcoind -daemon -pid=/var/lib/bitcoind/bitcoind.pid \
-conf=/etc/bitcoin/bitcoin.conf -datadir=/var/lib/bitcoind -disablewallet
Restart=always
PrivateTmp=true
TimeoutStopSec=60s
TimeoutStartSec=2s
StartLimitInterval=120s
StartLimitBurst=5
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,31 @@
[Unit]
Description=Blackmore daemon
After=network.target
[Service]
ExecStart=export MALLOC_ARENA_MAX=1 && /usr/local/bin/blackmored -daemon -conf=/var/lib/.blackmore/blackmore.conf -datadir=/var/lib/.blackmore
>>>>>>> 5fbf64be585767e86ad48dbd1dfb02141a8f23ab
ExecStop=/usr/local/bin/blackmored stop
User=blackmore
Group=blackmore
Restart=on-failure
# Because it's a daemon process
Type=forking
PIDFile=/var/lib/.bitmored/blackmored.pid
ProtectHome=true
ProtectSystem=full
PrivateTmp=true
PrivateDevices=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
TimeoutStopSec=60s
TimeoutStartSec=2s
StartLimitInterval=120s
StartLimitBurst=5
[Install]
WantedBy=multi-user.target

View File

@@ -552,8 +552,7 @@ if len(config.fancy) == 1:
sys.exit(1)
try:
with open(p, 'rb') as fp:
fancy = plistlib.load(fp, fmt=plistlib.FMT_XML)
fancy = plistlib.readPlist(p)
except:
if verbose >= 1:
sys.stderr.write("Error: Could not parse fancy disk image plist at \"%s\"\n" % (p))

View File

@@ -1,43 +1,31 @@
# List of fixed seed nodes for main network
# IPv4 nodes
85.144.252.98
72.216.145.112
122.51.249.99
76.171.209.195
73.53.78.243
164.68.105.69
116.203.82.109
166.70.54.40
103.243.173.210
37.72.70.152
94.130.176.201
178.254.1.135
76.171.209.195
78.56.242.6
89.142.77.30
95.217.78.81
89.22.251.238
178.254.32.145
207.148.13.250
67.193.26.71
108.173.237.207
84.254.43.119
203.213.94.242
175.36.186.152
83.78.240.202
94.226.129.128
76.17.131.175
188.126.6.32
202.142.52.235
46.10.52.145
24.245.110.168
82.217.127.4
144.91.84.145
68.96.170.4
93.176.164.83
85.214.249.110
94.130.176.201
95.217.78.81
78.56.242.6
89.177.211.141
84.254.43.119
91.194.120.162
151.224.20.79
116.203.82.109
85.144.252.98
92.255.253.149
60.108.92.175
108.173.237.207
77.181.147.94
94.253.190.98
# IPv6 nodes
[2a01:4f9:4a:1dee::2]
[2603:7000:ac40:1a6a:9535:aeeb:7135:eb4]
[2a01:d0:ffff:7094::2]
[2603:7000:ac40:1a6a:ec26:13df:e973:b124]
# Onion nodes
vtrlmv3zqqqnfwfy.onion

View File

@@ -1,9 +1,14 @@
# List of fixed seed nodes for testnet
# IPv4 nodes
212.200.52.123
85.144.252.98
51.15.112.23
97.113.73.134
161.97.80.103
173.249.22.241
85.214.249.110
164.68.105.69
68.96.170.4
# IPv6 nodes
[2a01:4f9:4a:1dee::2]

View File

@@ -34,7 +34,7 @@ PROJECT_NAME = "Blackcoin More"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 2.13.2.8
PROJECT_NUMBER = 2.13.2.7
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer

View File

@@ -33,7 +33,7 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.13.0**):
* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)).
* [`BIP 152`](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki): Compact block transfer and related optimizations are used as of **v0.13.0** ([PR 8068](https://github.com/bitcoin/bitcoin/pull/8068)).
BIPs disabled in Blackcoin More (up-to-date up to **v2.13.2.8**):
BIPs disabled in Blackcoin More (up-to-date up to **v2.13.2.2**):
* [`BIP 68`](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki)
* [`BIP 112`](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki)
* [`BIP 113`](https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki)

View File

@@ -5,8 +5,8 @@ These are the dependencies currently used by Blackcoin More. You can find instru
| Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library](https://doc.qt.io/qt-5/configure-options.html#third-party-libraries) |
| --- | --- | --- | --- | --- | --- |
| Berkeley DB | [6.2.38](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 6.2.x | No | | |
| Boost | [1.71.0](https://www.boost.org/users/download/) | [1.47.0](https://github.com/bitcoin/bitcoin/pull/8920) | No | | |
| Berkeley DB | [6.2.32.NC](https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html) | 6.2.x | No | | |
| Boost | [1.68.0](https://www.boost.org/users/download/) | [1.47.0](https://github.com/bitcoin/bitcoin/pull/8920) | No | | |
| Clang | | [3.3+](https://llvm.org/releases/download.html) (C++11 support) | | | |
| D-Bus | [1.12.12](https://cgit.freedesktop.org/dbus/dbus/tree/NEWS?h=dbus-1.12) | | No | Yes | |
| Expat | [2.2.7](https://libexpat.github.io/) | | No | Yes | |
@@ -18,12 +18,12 @@ These are the dependencies currently used by Blackcoin More. You can find instru
| libjpeg | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L75) |
| libpng | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L74) |
| MiniUPnPc | [2.0.20180203](http://miniupnp.free.fr/files) | | No | | |
| OpenSSL | [1.0.2u](https://www.openssl.org/source) | | Yes | | |
| OpenSSL | [1.0.2t](https://www.openssl.org/source) | | Yes | | |
| PCRE | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L66) |
| protobuf | [2.6.1](https://github.com/google/protobuf/releases) | | No | | |
| Python (tests) | | [3.6](https://www.python.org/downloads) | | | |
| Python (tests) | | [3.4](https://www.python.org/downloads) | | | |
| qrencode | [3.4.4](https://fukuchi.org/works/qrencode) | | No | | |
| Qt | [5.9.9](https://download.qt.io/official_releases/qt/) | [5.2](https://github.com/bitcoin/bitcoin/pull/14725) | No | | |
| Qt | [5.9.7](https://download.qt.io/official_releases/qt/) | [5.2](https://github.com/bitcoin/bitcoin/pull/14725) | No | | |
| XCB | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L87) (Linux only) |
| xkbcommon | | | | | [Yes](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/qt.mk#L86) (Linux only) |
| ZeroMQ | [4.3.1](https://github.com/zeromq/libzmq/releases) | 4.0.0 | No | | |
@@ -31,7 +31,5 @@ These are the dependencies currently used by Blackcoin More. You can find instru
Human help is also available from the following channels:
Discord - https://discord.gg/hjNUgWD
Telegram - https://t.me/blackcoinnl
Keybase - https://keybase.io/team/blackcoin/
Keybase - https://keybase.io/team/blackcoin/
Gitter - https://gitter.im/BlackCoin_Hub/

View File

@@ -121,7 +121,7 @@ public:
consensus.nStakeMinAge = 8 * 60 * 60; // 8 hours
// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000002ef7a6c83f19a157178");
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000002e39410b632f6e755fc");
/**
* The message start string is designed to be unlikely to occur in normal data.
@@ -220,7 +220,7 @@ public:
nDefaultPort = 25714;
// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000028afadd1049e589cf2");
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000027eceae4ce45300bf6");
/*
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;

View File

@@ -1,55 +1,48 @@
#ifndef BITCOIN_CHAINPARAMSSEEDS_H
#define BITCOIN_CHAINPARAMSSEEDS_H
/**
* List of fixed seed nodes for the bitcoin network
* AUTOGENERATED by contrib/seeds/generate-seeds.py
*
* Each line contains a 16-byte IPv6 address and a port.
* IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.
*/
static SeedSpec6 pnSeed6_main[] = {
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x90,0xfc,0x62}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x48,0xd8,0x91,0x70}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0x35,0x4e,0xf3}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa4,0x44,0x69,0x45}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x74,0xcb,0x52,0x6d}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa6,0x46,0x36,0x28}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x67,0xf3,0xad,0xd2}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x25,0x48,0x46,0x98}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x82,0xb0,0xc9}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x01,0x87}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0xab,0xd1,0xc3}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x38,0xf2,0x06}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x8e,0x4d,0x1e}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd9,0x4e,0x51}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x16,0xfb,0xee}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0xfe,0x20,0x91}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0x94,0x0d,0xfa}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x43,0xc1,0x1a,0x47}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xad,0xed,0xcf}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xfe,0x2b,0x77}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcb,0xd5,0x5e,0xf2}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xaf,0x24,0xba,0x98}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x53,0x4e,0xf0,0xca}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xe2,0x81,0x80}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0x11,0x83,0xaf}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0x7e,0x06,0x20}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xca,0x8e,0x34,0xeb}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x2e,0x0a,0x34,0x91}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x18,0xf5,0x6e,0xa8}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x52,0xd9,0x7f,0x04}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x5b,0x54,0x91}, 15714},
{{0x2a,0x01,0x04,0xf9,0x00,0x4a,0x1d,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 15714},
{{0x26,0x03,0x70,0x00,0xac,0x40,0x1a,0x6a,0x95,0x35,0xae,0xeb,0x71,0x35,0x0e,0xb4}, 15714},
{{0x2a,0x01,0x00,0xd0,0xff,0xff,0x70,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 15714},
{{0x26,0x03,0x70,0x00,0xac,0x40,0x1a,0x6a,0xec,0x26,0x13,0xdf,0xe9,0x73,0xb1,0x24}, 15714},
{{0xfd,0x87,0xd8,0x7e,0xeb,0x43,0xac,0xe2,0xb6,0x57,0x79,0x84,0x20,0xd2,0xd8,0xb8}, 15714}
};
static SeedSpec6 pnSeed6_test[] = {
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x90,0xfc,0x62}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x0f,0x70,0x17}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x61,0x71,0x49,0x86}, 25714},
{{0x2a,0x01,0x04,0xf9,0x00,0x4a,0x1d,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 25714}
};
#endif // BITCOIN_CHAINPARAMSSEEDS_H
#ifndef BITCOIN_CHAINPARAMSSEEDS_H
#define BITCOIN_CHAINPARAMSSEEDS_H
/**
* List of fixed seed nodes for the bitcoin network
* AUTOGENERATED by contrib/seeds/generate-seeds.py
*
* Each line contains a 16-byte IPv6 address and a port.
* IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.
*/
static SeedSpec6 pnSeed6_main[] = {
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x7a,0x33,0xf9,0x63}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4c,0xab,0xd1,0xc3}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x49,0x35,0x4e,0xf3}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa4,0x44,0x69,0x45}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x90,0x5b,0x54,0x91}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x60,0xaa,0x04}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5d,0xb0,0xa4,0x53}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0xf9,0x6e}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x82,0xb0,0xc9}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5f,0xd9,0x4e,0x51}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4e,0x38,0xf2,0x06}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0xb1,0xd3,0x8d}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x54,0xfe,0x2b,0x77}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5b,0xc2,0x78,0xa2}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x97,0xe0,0x14,0x4f}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x74,0xcb,0x52,0x6d}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x90,0xfc,0x62}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5c,0xff,0xfd,0x95}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x3c,0x6c,0x5c,0xaf}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6c,0xad,0xed,0xcf}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x4d,0xb5,0x93,0x5e}, 15714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0xfd,0xbe,0x62}, 15714},
{{0x2a,0x01,0x04,0xf9,0x00,0x4a,0x1d,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 15714},
{{0xfd,0x87,0xd8,0x7e,0xeb,0x43,0xac,0xe2,0xb6,0x57,0x79,0x84,0x20,0xd2,0xd8,0xb8}, 15714}
};
static SeedSpec6 pnSeed6_test[] = {
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xd4,0xc8,0x34,0x7b}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0x90,0xfc,0x62}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0x0f,0x70,0x17}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa1,0x61,0x50,0x67}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0x16,0xf1}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x55,0xd6,0xf9,0x6e}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa4,0x44,0x69,0x45}, 25714},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x44,0x60,0xaa,0x04}, 25714},
{{0x2a,0x01,0x04,0xf9,0x00,0x4a,0x1d,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02}, 25714}
};
#endif // BITCOIN_CHAINPARAMSSEEDS_H

View File

@@ -17,7 +17,7 @@
#define CLIENT_VERSION_MAJOR 2
#define CLIENT_VERSION_MINOR 13
#define CLIENT_VERSION_REVISION 2
#define CLIENT_VERSION_BUILD 8
#define CLIENT_VERSION_BUILD 7
//! Set to true for release, false for prerelease or test build
#define CLIENT_VERSION_IS_RELEASE true
@@ -26,7 +26,7 @@
* Copyright year (2009-this)
* Todo: update this when changing our copyright comments in the source
*/
#define COPYRIGHT_YEAR 2021
#define COPYRIGHT_YEAR 2020
#endif //HAVE_CONFIG_H

View File

@@ -3653,7 +3653,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
int nHeight = pindexPrev->nHeight+1;
if (chainActive.Height() - nHeight >= consensusParams.nMaxReorganizationDepth)
return state.DoS(100, error("%s: forked chain older than max reorganization depth (height %d)", __func__, nHeight));
return state.DoS(1, error("%s: forked chain older than max reorganization depth (height %d)", __func__, nHeight));
// Preliminary check difficulty in pos-only stage
if (chainActive.Height() > consensusParams.nLastPOWBlock && nHeight > consensusParams.nLastPOWBlock && block.nBits != GetNextTargetRequired(pindexPrev, &block, consensusParams, true))

View File

@@ -108,7 +108,7 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason)
if (whichType == TX_NULL_DATA)
nDataOut++;
else if (txout.IsDust(::minRelayTxFee)) {
else if (txout.nValue == 0) {
reason = "dust";
return false;
}
@@ -119,7 +119,7 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason)
else if ((whichType == TX_MULTISIG) && (!fIsBareMultisigStd)) {
reason = "bare-multisig";
return false;
} else if (txout.IsDust(::minRelayTxFee)) {
} else if (txout.nValue == 0) {
reason = "dust";
return false;
}

View File

@@ -6,7 +6,6 @@
#include "clientmodel.h"
#include <QPainter>
#include <QPainterPath>
#include <QColor>
#include <QTimer>