SYMBOL ( NEM2, catpult, NIS2 ) のノードを docker-bootstrap からではなく構築してみる。

テストノードを運用するハードウェアの最低条件

  • CPU: 2コア以上
  • Memory: 4GB以上
  • HD: 20GB以上

ソースは nemtech ( コアデブ? ) の Github で公開されてます。
https://github.com/nemtech/catapult-server

ubuntu で構築するので以下の説明から。
linux building instructions

https://github.com/nemtech/catapult-server/blob/master/BUILDLIN.md

Ubuntu 18.04 (LTS) でビルド

以下の環境が必要。

  • cmake ( 3.14 以上 )
  • git
  • python 3.x
  • gcc 9.2
  • ninja-build - suggested

gcc ではなく、clang 9 でもビルド可能。

$ sudo apt install cmake git python gcc ninja-build autoconf libtool build-essential curl git xz-utils libatomic-ops-dev libunwind-dev g++ gdb libgflags-dev libsnappy-dev python3 python3-ply

Boost

$ curl -o boost_1_72_0.tar.gz -SL https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz
$ tar -xzf boost_1_72_0.tar.gz

$ mkdir boost-build-1.72.0
$ cd boost_1_72_0
$ ./bootstrap.sh --prefix=${HOME}/boost-build-1.72.0
$ ./b2 --prefix=${HOME}/boost-build-1.72.0 --without-python -j 4 stage release
$ ./b2 --prefix=${HOME}/boost-build-1.72.0 --without-python install

*注意:ホームディレクトリの指定は「${HOME}」で「~」は文字通りチルダとして扱われます。

Gtest

$ git clone https://github.com/google/googletest.git googletest.git
$ cd googletest.git
$ git checkout release-1.10.0

$ mkdir _build && cd _build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
$ make
$ sudo make install

Google benchmark

$ git clone https://github.com/google/benchmark.git google.benchmark.git
$ cd google.benchmark.git
$ git checkout v1.5.0

$ mkdir _build && cd _build
$ cmake -DCMAKE_BUILD_TYPE=Release -DBENCHMARK_ENABLE_GTEST_TESTS=OFF ..
$ make
$ sudo make install

Mongo

mongo-c

$ git clone https://github.com/mongodb/mongo-c-driver.git mongo-c-driver.git
$ cd mongo-c-driver.git
$ git checkout 1.16.1

$ mkdir _build && cd _build
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
$ sudo make install

mongocxx

git clone https://github.com/nemtech/mongo-cxx-driver.git mongo-cxx-driver.git
cd mongo-cxx-driver.git
git checkout r3.4.0-nem


mkdir _build && cd _build
cmake -DCMAKE_CXX_STANDARD=17 -DLIBBSON_DIR=/usr/local -DLIBMONGOC_DIR=/usr/local  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install

この警告が出てくる、、、
CMake Warning:
  Manually-specified variables were not used by the project:

    LIBBSON_DIR
    LIBMONGOC_DIR

make中にもnoteがたくさん、、、
 

ZMQ

libzmq

$ git clone git://github.com/zeromq/libzmq.git libzmq.git
$ cd libzmq.git
$ git checkout v4.3.2

$ mkdir _build && cd _build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
$ sudo make install

cppzmq

$ git clone https://github.com/zeromq/cppzmq.git cppzmq.git
$ cd cppzmq.git
$ git checkout v4.6.0

$ mkdir _build && cd _build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
$ sudo make install

Rocks

ubuntu 18.04 は gflags version 2.2.1 と snappy version 1.1.7 があるのでそれでOK。

$ git clone https://github.com/nemtech/rocksdb.git rocksdb.git
$ cd rocksdb.git
$ git checkout v6.2.4-nem

$ mkdir _build && cd _build
$ cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ..
$ make
$ sudo make install

CATAPULT

$ git clone https://github.com/nemtech/catapult-server.git
$ cd catapult-server

$ mkdir _build && cd _build
$ cmake -DBOOST_ROOT=~/boost-build-1.72.0 -DCMAKE_BUILD_TYPE=Release -G Ninja ..
$ ninja publish
$ ninja -j4

この後のドキュメントがまだないようなので、テックビューロのGithub catapult-service-bootstrap や NEM財団のGithub catapult-testnet-bootstrap を参考にする。

このスクリプトを参考にする。

https://github.com/IoDLT/cat-config-scripts

Comments