14 Commits

Author SHA1 Message Date
dash
139614317f Update blk 2021-05-22 15:21:08 +02:00
c0decave
1a793e0f6d blk update 2021-05-22 15:19:31 +02:00
lateminer
10bb345e7e Merge branch 'master' into 'master'
Bump version to v2.13.2.8

See merge request blackcoin/blackcoin-more!19
2021-02-24 04:46:54 +00:00
Michel van Kessel
38938f1474 Bump version to 2.13.2.8 2021-02-23 22:33:31 +01:00
Michel van Kessel
d1f9ea9757 bump nMinimumChainWork (main and test) 2021-02-23 22:09:07 +01:00
Michel van Kessel
f8b5826a83 update seeds nodes 2021-02-23 22:02:35 +01:00
lateminer
b8c24546fe Merge branch 'master' into 'master'
Atomic Swap fix and ban forked clients

See merge request blackcoin/blackcoin-more!18
2021-02-23 19:27:49 +00:00
Michel van Kessel
574f2ffd73 ban clients with forked chains 2021-02-23 16:28:28 +01:00
Michel van Kessel
08a4ccb614 switch policy to (txout.IsDust(::minRelayTxFee)) 2021-02-21 17:31:29 +01:00
lateminer
06c8783f51 Merge branch 'master' into 'master'
Compile for latest MacOS Catalina (10.15.7)

See merge request blackcoin/blackcoin-more!17
2021-02-19 10:37:45 +00:00
Jonas Schnelli
51cc2791a7 macOS deploy: use the new plistlib API
See https://docs.python.org/3/library/plistlib.html.
The new API was added in 3.4 and old removed in 3.9.
2021-02-18 21:15:08 +01:00
Andrew Chow
3b2c73113e Add missing QPainterPath include
This is needed to compile with Qt 5.15.
2021-02-18 21:13:28 +01:00
lateminer
e12fd35094 Merge branch 'master' into 'master'
update find_bdb62 to allow bdb5.3

See merge request blackcoin/blackcoin-more!16
2021-02-06 11:03:42 +00:00
Michel van Kessel
e0cc50fcdc update find_bdb62 to allow bdb5.3
--with-incompatible-bdb now looks correctly for bdb5.3
2021-02-05 19:29:03 +01:00
29 changed files with 328 additions and 694 deletions

3
.gitignore vendored
View File

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

View File

@@ -1,4 +1,10 @@
# 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
View File

@@ -1,11 +0,0 @@
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,68 +3,85 @@ 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_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}"
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
done
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)])
])
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
else
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb62path}],db_cxx)
bdbpath="${bdb62path}"
BDB_CPPFLAGS=${BDB_CFLAGS}
fi
AC_SUBST(BDB_CPPFLAGS)
# 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)])
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
fi
AC_SUBST(BDB_LIBS)
])
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
])

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, 7)
define(_CLIENT_VERSION_BUILD, 8)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2020)
define(_COPYRIGHT_YEAR, 2021)
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,15 +1,86 @@
#!/bin/bash
usage="Usage: blk [ info | stake | latest | dust ] \n \n
# 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
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"
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
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";
@@ -18,7 +89,33 @@ 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
@@ -35,14 +132,25 @@ latest )
dust )
IFS=$'\n';
/usr/local/bin/blackmore-cli -datadir=/var/lib/.blackmore/ listtransactions "*" 99999 | jq -r '.[] | select(.category != "send") | select(.amount < .0001) | .txid' | uniq >txid.txt
$blkc listtransactions "*" 99999 | jq -r '.[] | select(.category != "send") | select(.amount < .0001) | .txid' | uniq >txid.txt
while read line; do
echo $line
/usr/local/bin/blackmore-cli -datadir=/var/lib/.blackmore/ removeprunedfunds $(echo $line)
$blkc 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
;;

View File

@@ -1,7 +0,0 @@
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

View File

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

View File

@@ -1,77 +0,0 @@
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

@@ -1,22 +0,0 @@
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

@@ -1,74 +0,0 @@
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

@@ -1,22 +0,0 @@
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

View File

@@ -1,185 +0,0 @@
#!/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

@@ -1,74 +0,0 @@
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

@@ -1,23 +0,0 @@
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

@@ -0,0 +1,22 @@
[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

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

View File

@@ -1,31 +1,43 @@
# List of fixed seed nodes for main network
# IPv4 nodes
122.51.249.99
76.171.209.195
85.144.252.98
72.216.145.112
73.53.78.243
164.68.105.69
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
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
77.181.147.94
94.253.190.98
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
# 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,14 +1,9 @@
# List of fixed seed nodes for testnet
# IPv4 nodes
212.200.52.123
85.144.252.98
51.15.112.23
161.97.80.103
173.249.22.241
85.214.249.110
164.68.105.69
68.96.170.4
97.113.73.134
# 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.7
PROJECT_NUMBER = 2.13.2.8
# 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.2**):
BIPs disabled in Blackcoin More (up-to-date up to **v2.13.2.8**):
* [`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.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 | | |
| 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 | | |
| 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.2t](https://www.openssl.org/source) | | Yes | | |
| OpenSSL | [1.0.2u](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.4](https://www.python.org/downloads) | | | |
| Python (tests) | | [3.6](https://www.python.org/downloads) | | | |
| qrencode | [3.4.4](https://fukuchi.org/works/qrencode) | | No | | |
| Qt | [5.9.7](https://download.qt.io/official_releases/qt/) | [5.2](https://github.com/bitcoin/bitcoin/pull/14725) | No | | |
| Qt | [5.9.9](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,5 +31,7 @@ These are the dependencies currently used by Blackcoin More. You can find instru
Human help is also available from the following channels:
Keybase - https://keybase.io/team/blackcoin/
Gitter - https://gitter.im/BlackCoin_Hub/
Discord - https://discord.gg/hjNUgWD
Telegram - https://t.me/blackcoinnl
Keybase - https://keybase.io/team/blackcoin/

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("0x0000000000000000000000000000000000000000000002e39410b632f6e755fc");
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000002ef7a6c83f19a157178");
/**
* 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("0x000000000000000000000000000000000000000000000027eceae4ce45300bf6");
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000028afadd1049e589cf2");
/*
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;

View File

@@ -1,48 +1,55 @@
#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
#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

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 7
#define CLIENT_VERSION_BUILD 8
//! 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 2020
#define COPYRIGHT_YEAR 2021
#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(1, error("%s: forked chain older than max reorganization depth (height %d)", __func__, nHeight));
return state.DoS(100, 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.nValue == 0) {
else if (txout.IsDust(::minRelayTxFee)) {
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.nValue == 0) {
} else if (txout.IsDust(::minRelayTxFee)) {
reason = "dust";
return false;
}

View File

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