Skip to content

sugarchain-project/sugarchain

Repository files navigation

Sugarchain Yumekawa

Build Status GitHub All Releases

https://sugarchain.org

The Meaning of Yumekawa

Sugarchain's first node software is called Yumekawa (夢川). It can be translated in some ways.

  • "Yume (夢)" means dream and "Kawa (川)" means river. So its Dream River in japanese.
  • The second letter "Kawa" stands for "Kawaii (可愛い)". In this case the meaning is Dreamy Cute.
  • Also Yumekawa is replaces the word Core (ie: Bitcoin Core). We think it sounds a bit centralized.

License

Sugarchain Yumekawa is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.

  • Copyright (c) 2009-2010 Satoshi Nakamoto
  • Copyright (c) 2009-2018 The Bitcoin Core developers
  • Copyright (c) 2013-2019 Alexander Peslyak - Yespower 1.0.1
  • Copyright (c) 2016-2018 The Zcash developers - DigiShieldZEC
  • Copyright (c) 2018-2020 The Sugarchain Yumekawa developers

Minimum Requirement

  • CPU: 1 Core
  • RAM: 2048 MB (at least 3 GB swap)
  • DISK: HDD 5 GB

Depends on Bitcoin Core

Exactly the same as dependencies of Bitcoin Core v0.16.3.

  • Debian 10 (Recommended, No PPA)
sudo apt-get install -y \
software-properties-common build-essential libtool autotools-dev automake pkg-config \
libssl-dev libevent-dev bsdmainutils libboost-all-dev \
libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a \
libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev \
protobuf-compiler libqrencode-dev help2man
  • PPA is only for Ubuntu. No libdb4.8-dev and libdb4.8++-dev packages on Debian.

  • Old Ubuntu
    • Ubuntu 16.04
    sudo add-apt-repository -y ppa:bitcoin/bitcoin && \
    sudo apt-get update && \
    sudo apt-get install -y \
    libdb4.8-dev libdb4.8++-dev \
    software-properties-common build-essential libtool autotools-dev automake pkg-config \
    libssl-dev libevent-dev bsdmainutils libboost-all-dev \
    libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a \
    libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev \
    protobuf-compiler libqrencode-dev help2man
    • Ubuntu 18.04+
    sudo add-apt-repository -y ppa:luke-jr/bitcoincore && \
    sudo apt-get update && \
    sudo apt-get install -y \
    libdb4.8-dev libdb4.8++-dev \
    software-properties-common build-essential libtool autotools-dev automake pkg-config \
    libssl-dev libevent-dev bsdmainutils libboost-all-dev \
    libminiupnpc-dev libzmq3-dev libqt5gui5 libqt5core5a \
    libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev \
    protobuf-compiler libqrencode-dev help2man

Build

  • Debian 10+ (Recommended, No PPA)
./autogen.sh && \
./contrib/install_db4.sh `pwd` && \
export BDB_PREFIX=$PWD/db4 && \
./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" && \
make -j$(nproc) && \
make check -j$(nproc)
  • (optional) Following can be deleted rm -rf db4/ && rm -f db-4.8.30.NC.tar.gz

  • Old Ubuntu
    • Ubuntu 16.04+
    ./autogen.sh && \
    ./configure && \
    make -j$(nproc) && \
    make check -j$(nproc)

Options after Build

  • (optional) Reduce binary size using strip (about 90% file size reduction)
strip ./src/sugarchain-cli && \
strip ./src/sugarchaind && \
strip ./src/qt/sugarchain-qt && \
strip ./src/sugarchain-tx && \
strip ./src/test/test_sugarchain
  • (optional) After bump version on configure.ac, update binary docs (manpages) using help2man .1 files
make -j$(nproc) && ./contrib/devtools/gen-manpages.sh

Unit Test

All Sugarchain Yumekawa developers should execute this unit test. Some updates may break these tests in some occasions.

  • Test All
./src/test/test_sugarchain test_bitcoin --log_level=test_suite
  • (optional) Test Partially: ie blockencodings_tests
./src/test/test_sugarchain test_bitcoin --log_level=test_suite --run_test=blockencodings_tests
  • (optional) Test QT (GUI)
./src/qt/test/test_sugarchain-qt

Run

The options -rpcuser, -rpcpassword, and -printtoconsole are optional. server=1 needed by RPC servers or cpuminer when solo-mining.

CLI

  • -prunedebuglogfile: Prune (limit) filesize of debug.log

    ./src/qt/sugarchain-qt -prunedebuglogfile

    2020-09-15 19:41:34 DEBUG.LOG PRUNED at 10000063

Known Issues

  • Transaction too large:
    • This is a part of BTC, and hopefully will be fixed in next Taproot Softfork.
  • Slow update balance on wallet:
    • This slow is a part of BTC.
    • Update total balance every minute (12 blocks) interval.
    • A workaround at this moment. source
  • Poor performance on ARM CPUs (32/64-Bit):
    • No ARM optimization for Yespower yet.
  • Poor performance on 32-Bit OS:
    • No SSE2 optimization for Yespower yet. source
  • Slow startup on low memory machines:
    • Startup can take up to some hours on 1cpu 1024ram (+swap 3GB) VPS.
    • Workaround is just increase RAM at least 2 GB.

Release Process using GITIAN

  • All Sugarchain Yumekawa developers should do following GITIAN release process. It's the safest way to distribute binaries to people.
  • Please use GITIAN release with checking PGP signature, or compile it yourself on your own machine.

https://gist.github.com/cryptozeny/3501c77750541208b9dd1a9e9719fc53