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 を参考にする。
このスクリプトを参考にする。
Comments