Create a script to fully setup a HAF database server on Ubuntu 20
Add to root dir of haf repo a script setup_haf-block-log.sh
.
This is basic sequence (still needs work):
#get haf submodules
git submodule update --init --recursive
#install HAF dependencies
sudo apt-get update && \
sudo apt-get install -y \
systemd \
autoconf \
postgresql \
postgresql-contrib \
build-essential \
cmake \
libboost-all-dev \
postgresql-server-dev-12 \
git \
python3-pip \
libssl-dev \
libreadline-dev \
libsnappy-dev \
libpqxx-dev \
clang \
clang-tidy \
sudo apt-get update && \
sudo apt-get install -y git python3 build-essential gir1.2-glib-2.0 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libicu66 libxml2 python3-distutils python3-lib2to3 python3-pkg-resources shared-mime-info xdg-user-dirs ca-certificates
sudo apt-get update && \
sudo apt-get install -y autoconf automake cmake clang clang-tidy g++ git libbz2-dev libsnappy-dev libssl-dev libtool make pkg-config python3-jinja2 libboost-all-dev doxygen libncurses5-dev libreadline-dev perl ninja-build
#build haf components (hived and hive_fork_manager extension)
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
#install hive_fork_manager extension to postgres server
sudo make install
#create haf_block_log database with hive_fork_manager extension
sudo su - postgres
createdb -O $user haf_block_log
psql -d haf_block_log -c "create extension hive_fork_manager;"
# setup hived data-dir
mkdir ~/hived-data-dir
cd ~/hived_data_dir
download a hived config.ini file
cd blockchain
download a block_log and block_log.index
cd ~/hived_data_dir
ln -sf ~/haf/build/hive/programs/hived/hived ./hived
Create tmpfs for shared_memory.bin file
# replay hived to fill haf_block_log database
./hived --force-replay -d ~/hived-data-dir 2>&1 | tee -i replay.log