LoginSignup
1
1

More than 5 years have passed since last update.

centos7でbitcoin cash 0.16をコンパイルする

Last updated at Posted at 2018-03-09

0.17においてはコンパイルエラーは修正されていますのでパッチは必要ないです。

gcc7、boostのバージョン、コンパイルエラーがあって罠だらけなのでメモっておきます

yum install "@Development Tools" centos-release-scl epel-release
yum install python-devel openssl-devel libevent-devel libdb-cxx libdb-cxx-devel zlib zlib-devel bzip2-libs bzip2-devel lz4 lz4-devel cmake make devtoolset-7
curl https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.bz2 > /tmp/boost_1_66_0.tar.bz2
tar jxvf /tmp/boost_1_66_0.tar.bz2
cd /tmp/boost_1_66_0
scl enable devtoolset-7 "./bootstrap.sh" 
scl enable devtoolset-7 "./b2 -j 2 install --prefix=/usr/local"

boostがstatic buildではない場合はldconfig必須

ソースコードのパッチを当てる

src/miner.h
--- ../src/miner.h      2017-12-30 18:31:55.000000000 +0000
+++ ./miner.h   2018-03-09 09:29:44.084040666 +0000
@@ -71,7 +71,7 @@
 // TODO: refactor to avoid duplication of this logic.
 struct CompareModifiedEntry {
     bool operator()(const CTxMemPoolModifiedEntry &a,
-                    const CTxMemPoolModifiedEntry &b) {
+                    const CTxMemPoolModifiedEntry &b) const {
         double f1 = double(b.nSizeWithAncestors *
                            a.nModFeesWithAncestors.GetSatoshis());
         double f2 = double(a.nSizeWithAncestors *
src/txmempool.h
--- ../src/txmempool.h  2017-12-30 18:31:55.000000000 +0000
+++ ./txmempool.h   2018-03-09 09:29:49.255970379 +0000
@@ -245,7 +245,7 @@
  */
 class CompareTxMemPoolEntryByDescendantScore {
 public:
-    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) {
+    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) const {
         bool fUseADescendants = UseDescendantScore(a);
         bool fUseBDescendants = UseDescendantScore(b);

@@ -272,7 +272,7 @@
     }

     // Calculate which score to use for an entry (avoiding division).
-    bool UseDescendantScore(const CTxMemPoolEntry &a) {
+    bool UseDescendantScore(const CTxMemPoolEntry &a) const {
         double f1 = double(a.GetSizeWithDescendants() *
                            a.GetModifiedFee().GetSatoshis());
         double f2 =
@@ -287,7 +287,7 @@
  */
 class CompareTxMemPoolEntryByScore {
 public:
-    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) {
+    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) const {
         double f1 = double(b.GetTxSize() * a.GetModifiedFee().GetSatoshis());
         double f2 = double(a.GetTxSize() * b.GetModifiedFee().GetSatoshis());
         if (f1 == f2) {
@@ -299,14 +299,14 @@

 class CompareTxMemPoolEntryByEntryTime {
 public:
-    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) {
+    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) const {
         return a.GetTime() < b.GetTime();
     }
 };

 class CompareTxMemPoolEntryByAncestorFee {
 public:
-    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) {
+    bool operator()(const CTxMemPoolEntry &a, const CTxMemPoolEntry &b) const {
         double aFees = double(a.GetModFeesWithAncestors().GetSatoshis());
         double aSize = a.GetSizeWithAncestors();

issueには上がっているが直す気がないみたいなので。
プルリクはおくらずここにメモっておく。
https://github.com/Bitcoin-ABC/bitcoin-abc/issues/173

scl enable devtoolset-7 "./autogen.sh"
scl enable devtoolset-7 "./configure --disable-wallet --program-transform-name=s/bitcoin/bitcoincash/g"
scl enable devtoolset-7 "make -j 2"
scl enable devtoolset-7 "make install"
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1