Code Monkey home page Code Monkey logo

sumokoin's Introduction

Sumokoin

Copyright (c) 2017-2021, Sumokoin Projects

Portions Copyright (c) 2014-2021, The Monero Project

Portions Copyright (c) 2012-2013, The Cryptonote developers

Table of Contents

Development Resources

Please note that code is developed on the dev branch, if you want to check out the latest updates, before they are merged on main branch, please refer there. Master branch will always point to a version that we consider stable, so you can download the code by simply typing git clone https://github.com/sumoprojects/sumokoin.git

Coverage

Type Status
Workflows WorkFlow Status

Introduction

Sumokoin (スモコイン in Japanese) is a fork from Monero, one of the most respectable cryptocurrency well-known for security, privacy, untraceability and active development. Starting as an educational project, we found that it would be great to create a new coin with high level of privacy by (1) moving forward right away to Ring Confidential Transactions (RingCT), (2) setting minimum transaction mixin to 12 (current minimum mixin set at 48) that would greatly reduce chance of being attacked, traced or identified by (blockchain) statistical analysis.

Sumokoin, therefore, is a new Monero without its legacy, a truely fungible cryptocurrency among just a few ones in the market.

Coin Supply & Emission

  • Total supply: 88,888,888 coins in first 20 years, then 263,000 coins each year for inflation. About 10% (~8.8 million) was premined to reserve for future development, i.e. 80 million coins available for community mining.
  • Coin symbol: SUMO
  • Coin Units:
    • 1 Sumoshi  = 0.000000001 SUMO (10-9 - the smallest coin unit)
    • 1 Sumokun = 0.000001 SUMO (10-6)
    • 1 Sumosan = 0.001 SUMO (10-3)
  • Hash algorithm: CryptoNight R (cnR, CNv4) (Proof-Of-Work)
  • Emission scheme: Sumokoin's block reward changes every 6-months as the following "Camel" distribution* (inspired by real-world mining production like of crude oil, coal etc. that is often slow at first, accelerated in the next few years before declined and depleted). However, the emission path of Sumokoin is generally not far apart from what of Bitcoin (view charts below).

* The emulated algorithm of Sumokoin block-reward emission can be found in Python and C++ scripts at scripts directory.

About this Project

This is the core implementation of Sumokoin. It is open source and completely free to use without restrictions, except for those specified in the license agreement below. There are no restrictions on anyone creating an alternative implementation of Sumokoin that uses the protocol and network in a compatible manner.

As with many development projects, the repository on Github is considered to be the "staging" area for the latest changes. Before changes are merged into that branch on the main repository, they are tested by individual developers in their own branches, submitted as a pull request, and then subsequently tested by contributors who focus on testing and code reviews. That having been said, the repository should be carefully considered before using it in a production environment, unless there is a patch in the repository for a particular show-stopping issue you are experiencing. It is generally a better idea to use a tagged release for stability.

Anyone is welcome to contribute to Sumokoin's codebase! If you have a fix or code change, feel free to submit is as a pull request directly to the "master" branch. In cases where the change is relatively small or does not affect other parts of the codebase it may be merged in immediately by any one of the collaborators. On the other hand, if the change is particularly large or complex, it is expected that it will be discussed at length either well in advance of the pull request being submitted, or even directly on the pull request.

License

Please view LICENSE

License

Compiling Sumokoin from source

Dependencies

The following table summarizes the tools and libraries required to build. A few of the libraries are also included in this repository (marked as "Vendored"). By default, the build uses the library installed on the system, and ignores the vendored sources. However, if no library is found installed on the system, then the vendored source will be built and used. The vendored sources are also used for statically-linked builds because distribution packages often include only shared library binaries (.so) but not static library archives (.a).

Dep Min. version Vendored Debian/Ubuntu pkg Arch pkg Fedora Optional Purpose
GCC 5.4.0 NO build-essential base-devel gcc NO
CMake 3.5 NO cmake cmake cmake NO
pkg-config any NO pkg-config base-devel pkgconf NO
Boost 1.58 NO libboost-all-dev boost boost-devel NO C++ libraries
OpenSSL basically any NO libssl-dev openssl openssl-devel NO sha256 sum
libzmq 4.2.0 NO libzmq3-dev zeromq zeromq-devel NO ZeroMQ library
OpenPGM ? NO libpgm-dev libpgm openpgm-devel NO For ZeroMQ
libnorm[2] ? NO libnorm-dev YES For ZeroMQ
libunbound 1.4.16 YES libunbound-dev unbound unbound-devel NO DNS resolver
libevent ? NO libevent-dev libevent libevent-devel YES For unbound
libsodium ? NO libsodium-dev libsodium libsodium-devel NO cryptography
libunwind any NO libunwind8-dev libunwind libunwind-devel YES Stack traces
liblzma any NO liblzma-dev xz xz-devel YES For libunwind
libreadline 6.3.0 NO libreadline6-dev readline readline-devel YES Input editing
ldns 1.6.17 NO libldns-dev ldns ldns-devel YES SSL toolkit
expat 1.1 NO libexpat1-dev expat expat-devel YES XML parsing
GTest 1.5 YES libgtest-dev[1] gtest gtest-devel YES Test suite
Doxygen any NO doxygen doxygen doxygen YES Documentation
Graphviz any NO graphviz graphviz graphviz YES Documentation
libhidapi ? NO libhidapi-dev hidapi hidapi-devel YES Hardware wallet
libusb ? NO libusb-1.0-0-dev libusb libusbx-devel YES Hardware wallet
protoc ? NO protobuf-compiler protobuf protobuf-compiler YES Hardware wallet
libudev ? No libudev-dev systemd systemd-devel YES Hardware wallet

[1] On Debian/Ubuntu libgtest-dev only includes sources and headers. You must build the library binary manually. This can be done with the following command sudo apt-get install libgtest-dev && cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ [2] libnorm-dev is needed if your zmq library was built with libnorm, and not needed otherwise

Install all dependencies at once on Debian/Ubuntu:

sudo apt update && sudo apt install build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev ccache doxygen graphviz

Install all dependencies at once on macOS with the provided Brewfile: brew update && brew bundle --file=contrib/brew/Brewfile

FreeBSD one liner for required to build dependencies pkg install git gmake cmake pkgconf boost-libs libzmq4 libsodium

Cloning the repository

$ git clone https://github.com/sumoprojects/sumokoin

Build instructions

Sumokoin uses the CMake build system and a top-level Makefile that invokes cmake commands as needed.

On Linux and macOS

  • Install the dependencies (see the list above)

    - On Ubuntu, essential dependencies can be installed with the following command:

      sudo apt update && sudo apt install build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev libhidapi-dev libusb-dev
    
  • Change to the root of the source code directory and build:

    cd sumokoin
    make

    Optional: If your machine has several cores and enough memory, enable parallel build by running make -j<number of threads> instead of make. For this to be worthwhile, the machine should have one core and about 2GB of RAM available per thread.

    Note: The instructions above will compile the most stable release of the Sumokoin software. If you would like to use and test the most recent software, use git checkout master. The master branch may contain updates that are both unstable and incompatible with release software, though testing is always encouraged.

  • The resulting executables can be found in build/release/bin

  • Add PATH="$PATH:$HOME/sumokoin/build/release/bin" to .profile

  • Run Sumokoin with sumokoind --detach

  • Optional: build and run the test suite to verify the binaries:

    make release-test

    NOTE: core_tests test may take a few hours to complete.

  • Optional: to build binaries suitable for debugging:

    make debug
  • Optional: to build statically-linked binaries:

    make release-static

Dependencies need to be built with -fPIC. Static libraries usually aren't, so you may have to build them yourself with -fPIC. Refer to their documentation for how to build them.

  • Optional: build documentation in doc/html (omit HAVE_DOT=YES if graphviz is not installed):

    HAVE_DOT=YES doxygen Doxyfile

On the Raspberry Pi

Tested on a Raspberry Pi Zero with a clean install of minimal Raspbian Stretch (2017-09-07 or later) from https://www.raspberrypi.org/downloads/raspbian/. If you are using Raspian Jessie, please see note in the following section.

  • apt-get update && apt-get upgrade to install all of the latest software

  • Install the dependencies for Sumokoin from the 'Debian' column in the table above.

  • Increase the system swap size:

    sudo /etc/init.d/dphys-swapfile stop
    sudo nano /etc/dphys-swapfile
    CONF_SWAPSIZE=2048
    sudo /etc/init.d/dphys-swapfile start
  • If using an external hard disk without an external power supply, ensure it gets enough power to avoid hardware issues when syncing, by adding the line "max_usb_current=1" to /boot/config.txt

  • Clone sumokoin and checkout most recent release version:

    git clone https://github.com/sumoprojects/sumokoin.git
    cd sumokoin
    git checkout tags/v0.8.0.0
  • Build:

    make release
  • Wait 4-6 hours

  • The resulting executables can be found in build/release/bin

  • Add PATH="$PATH:$HOME/sumokoin/build/release/bin" to .profile

  • Run Sumokoin with sumokoind --detach

  • You may wish to reduce the size of the swap file after the build has finished, and delete the boost directory from your home directory

Note for Raspbian Jessie users:

If you are using the older Raspbian Jessie image, compiling Sumokoin is a bit more complicated. The version of Boost available in the Debian Jessie repositories is too old to use with Sumokoin, and thus you must compile a newer version yourself. The following explains the extra steps, and has been tested on a Raspberry Pi 2 with a clean install of minimal Raspbian Jessie.

  • As before, apt-get update && apt-get upgrade to install all of the latest software, and increase the system swap size

    sudo /etc/init.d/dphys-swapfile stop
    sudo nano /etc/dphys-swapfile
    CONF_SWAPSIZE=2048
    sudo /etc/init.d/dphys-swapfile start
  • Then, install the dependencies for Sumokoin except libunwind and libboost-all-dev

  • Install the latest version of boost (this may first require invoking apt-get remove --purge libboost* to remove a previous version if you're not using a clean install):

    cd
    wget https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2
    tar xvfo boost_1_64_0.tar.bz2
    cd boost_1_64_0
    ./bootstrap.sh
    sudo ./b2
  • Wait ~8 hours

    sudo ./bjam cxxflags=-fPIC cflags=-fPIC -a install
  • Wait ~4 hours

  • From here, follow the general Raspberry Pi instructions from the "Clone sumokoin and checkout most recent release version" step.

On Windows:

Binaries for Windows are built on Windows using the MinGW toolchain within MSYS2 environment. The MSYS2 environment emulates a POSIX system. The toolchain runs within the environment and cross-compiles binaries that can run outside of the environment as a regular Windows application.

Preparing the build environment

  • Download and install the MSYS2 installer, either the 64-bit or the 32-bit package, depending on your system.

  • Open the MSYS shell via the MSYS2 Shell shortcut

  • Update packages using pacman:

    pacman -Syu
  • Exit the MSYS shell using Alt+F4

  • Edit the properties for the MSYS2 Shell shortcut changing "msys2_shell.bat" to "msys2_shell.cmd -mingw64" for 64-bit builds or "msys2_shell.cmd -mingw32" for 32-bit builds

  • Restart MSYS shell via modified shortcut and update packages again using pacman:

    pacman -Syu
  • Install dependencies:

    To build for 64-bit Windows:

    pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-unbound

    To build for 32-bit Windows:

    pacman -S mingw-w64-i686-toolchain make mingw-w64-i686-cmake mingw-w64-i686-boost mingw-w64-i686-openssl mingw-w64-i686-zeromq mingw-w64-i686-libsodium mingw-w64-i686-hidapi mingw-w64-i686-unbound
  • Open the MingW shell via MinGW-w64-Win64 Shell shortcut on 64-bit Windows or MinGW-w64-Win64 Shell shortcut on 32-bit Windows. Note that if you are running 64-bit Windows, you will have both 64-bit and 32-bit MinGW shells.

Cloning

  • To git clone, run:

    git clone https://github.com/sumoprojects/sumokoin.git

Building

  • Change to the cloned directory, run:

    cd sumokoin
  • If you would like a specific version/tag, do a git checkout for that version. eg. 'v0.8.0.0'. If you don't care about the version and just want binaries from master, skip this step:

    git checkout v0.8.0.0
  • If you are on a 64-bit system, run:

    make release-static-win64
  • If you are on a 32-bit system, run:

    make release-static-win32
  • The resulting executables can be found in build/release/bin

  • Optional: to build Windows binaries suitable for debugging on a 64-bit system, run:

    make debug-static-win64
  • Optional: to build Windows binaries suitable for debugging on a 32-bit system, run:

    make debug-static-win32
  • The resulting executables can be found in build/debug/bin

On FreeBSD:

The project can be built from scratch by following instructions for Linux above(but use gmake instead of make). If you are running Sumokoin in a jail, you need to add sysvsem="new" to your jail configuration, otherwise lmdb will throw the error message: Failed to open lmdb environment: Function not implemented.

On OpenBSD:

You will need to add a few packages to your system. pkg_add cmake gmake zeromq libiconv boost.

The doxygen and graphviz packages are optional and require the xbase set. Running the test suite also requires py-requests package.

Build sumokoin: env DEVELOPER_LOCAL_TOOLS=1 BOOST_ROOT=/usr/local gmake release-static

Note: you may encounter the following error, when compiling the latest version of sumokoin as a normal user:

LLVM ERROR: out of memory
c++: error: unable to execute command: Abort trap (core dumped)

Then you need to increase the data ulimit size to 2GB and try again: ulimit -d 2000000

On NetBSD:

Check that the dependencies are present: pkg_info -c libexecinfo boost-headers boost-libs protobuf readline libusb1 zeromq git-base pkgconf gmake cmake | more, and install any that are reported missing, using pkg_add or from your pkgsrc tree. Readline is optional but worth having.

Third-party dependencies are usually under /usr/pkg/, but if you have a custom setup, adjust the "/usr/pkg" (below) accordingly.

Clone the sumokoin repository and checkout the most recent release as described above. Then build sumokoin: gmake BOOST_ROOT=/usr/pkg LDFLAGS="-Wl,-R/usr/pkg/lib" release. The resulting executables can be found in build/NetBSD/[Release version]/Release/bin/.

On Solaris:

The default Solaris linker can't be used, you have to install GNU ld, then run cmake manually with the path to your copy of GNU ld:

mkdir -p build/release
cd build/release
cmake -DCMAKE_LINKER=/path/to/ld -D CMAKE_BUILD_TYPE=Release ../..
cd ../..

Then you can run make as usual.

Building portable statically linked binaries

By default, in either dynamically or statically linked builds, binaries target the specific host processor on which the build happens and are not portable to other processors. Portable binaries can be built using the following targets:

  • make release-static-linux-x86_64 builds binaries on Linux on x86_64 portable across POSIX systems on x86_64 processors
  • make release-static-linux-i686 builds binaries on Linux on x86_64 or i686 portable across POSIX systems on i686 processors
  • make release-static-linux-armv8 builds binaries on Linux portable across POSIX systems on armv8 processors
  • make release-static-linux-armv7 builds binaries on Linux portable across POSIX systems on armv7 processors
  • make release-static-linux-armv6 builds binaries on Linux portable across POSIX systems on armv6 processors
  • make release-static-win64 builds binaries on 64-bit Windows portable across 64-bit Windows systems
  • make release-static-win32 builds binaries on 64-bit or 32-bit Windows portable across 32-bit Windows systems

Cross Compiling

You can also cross-compile static binaries on Linux for Windows and macOS with the depends system. Read more at contrib/depends/README.md

  • make depends target=x86_64-linux-gnu for 64-bit linux binaries.
  • make depends target=x86_64-w64-mingw32 for 64-bit windows binaries.
    • Requires: python3 g++-mingw-w64-x86-64 wine1.6 bc
  • make depends target=x86_64-apple-darwin14 for macOS binaries.
    • Requires: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python-pip, and pip install setuptools
  • make depends target=i686-linux-gnu for 32-bit linux binaries.
    • Requires: g++-multilib bc
  • make depends target=i686-w64-mingw32 for 32-bit windows binaries.
    • Requires: python3 g++-mingw-w64-i686
  • make depends target=arm-linux-gnueabihf for armv7 binaries.
    • Requires: g++-arm-linux-gnueabihf
  • make depends target=aarch64-linux-gnu for armv8 binaries.
    • Requires: g++-aarch64-linux-gnu
  • make depends target=riscv64-linux-gnu for RISC V 64 bit binaries.
    • Requires: g++-riscv64-linux-gnu
  • make depends target=x86_64-unknown-freebsd for FreeBSD 64-bit binaries.
    • Requires: clang-8
  • make depends target=arm-linux-android for 32bit android binaries
  • make depends target=aarch64-linux-android for 64bit android binaries

The required packages are the names for each toolchain on apt. Depending on your distro, they may have different names.

Using depends might also be easier to compile Sumokoin on Windows than using MSYS. Activate Windows Subsystem for Linux (WSL) with a distro (for example Ubuntu), install the apt build-essentials and follow the depends steps as depicted above.

The produced binaries still link libc dynamically. If the binary is compiled on a current distribution, it might not run on an older distribution with an older installation of libc. Passing -DBACKCOMPAT=ON to cmake will make sure that the binary will run on systems having at least libc version 2.17.

Running sumokoind

The build places the binary in bin/ sub-directory within the build directory from which cmake was invoked (repository root by default). To run in foreground:

./bin/sumokoind

To list all available options, run ./bin/sumokoind --help. Options can be specified either on the command line or in a configuration file passed by the --config-file argument. To specify an option in the configuration file, add a line with the syntax argumentname=value, where argumentname is the name of the argument without the leading dashes, for example log-level=1.

To run in background:

    ./bin/sumokoind --log-file sumokoind.log --detach

To run as a systemd service, copy sumokoind.service to /etc/systemd/system/ and sumokoind.conf to /etc/. The example service assumes that the user sumokoin exists and its home is the data directory specified in the example config.

If you're on Mac, you may need to add the --max-concurrency 1 option to sumo-wallet-cli, and possibly sumokoind, if you get crashes refreshing.

Using Tor

There is a new, still experimental, integration with Tor. The feature allows connecting over IPv4 and Tor simulatenously - IPv4 is used for relaying blocks and relaying transactions received by peers whereas Tor is used solely for relaying transactions received over local RPC. This provides privacy and better protection against surrounding node (sybil) attacks.

While Sumokoin isn't made to integrate with Tor, it can be used wrapped with torsocks, by setting the following configuration parameters and environment variables:

  • --p2p-bind-ip 127.0.0.1 on the command line or p2p-bind-ip=127.0.0.1 in sumokoind.conf to disable listening for connections on external interfaces.
  • --no-igd on the command line or no-igd=1 in sumokoind.conf to disable IGD (UPnP port forwarding negotiation), which is pointless with Tor.
  • DNS_PUBLIC=tcp or DNS_PUBLIC=tcp://x.x.x.x where x.x.x.x is the IP of the desired DNS server, for DNS requests to go over TCP, so that they are routed through Tor. When IP is not specified, sumokoind uses the default list of servers defined in src/common/dns_utils.cpp.
  • TORSOCKS_ALLOW_INBOUND=1 to tell torsocks to allow sumokoind to bind to interfaces to accept connections from the wallet. On some Linux systems, torsocks allows binding to localhost by default, so setting this variable is only necessary to allow binding to local LAN/VPN interfaces to allow wallets to connect from remote hosts. On other systems, it may be needed for local wallets as well.
  • Do NOT pass --detach when running through torsocks with systemd, (see utils/systemd/sumokoind.service for details).
  • If you use the wallet with a Tor daemon via the loopback IP (eg, 127.0.0.1:9050), then use --untrusted-daemon unless it is your own hidden service.

Example command line to start sumokoind through Tor:

DNS_PUBLIC=tcp torsocks sumokoind --p2p-bind-ip 127.0.0.1 --no-igd

Using Tor on Tails

TAILS ships with a very restrictive set of firewall rules. Therefore, you need to add a rule to allow this connection too, in addition to telling torsocks to allow inbound connections. Full example:

    sudo iptables -I OUTPUT 2 -p tcp -d 127.0.0.1 -m tcp --dport 19734 -j ACCEPT
    DNS_PUBLIC=tcp torsocks ./sumokoind --p2p-bind-ip 127.0.0.1 --no-igd --rpc-bind-ip 127.0.0.1 \
        --data-dir /home/amnesia/Persistent/your/directory/to/the/blockchain

Pruning

As of June 2021, The full Sumokoin blockchain file is on about 22 GB. One can store a pruned blockchain, which is less than one fourth in size from the full blockchain size (June 2020 4.6 GB). A pruned blockchain can only serve part of the historical chain data to other peers, but is otherwise identical in functionality to the full blockchain. To use a pruned blockchain, it is best to start the initial sync with --pruned-blockchain. However, it is also possible to prune an existing blockchain using the sumo-blockchain-prune tool or using the --pruned-blockchain sumokoind option with an existing chain. If an existing chain exists, pruning will temporarily require disk space to store both the full and pruned blockchains.

Debugging

This section contains general instructions for debugging failed installs or problems encountered with Sumokoin. First, ensure you are running the latest version built from the Github repo.

Obtaining stack traces and core dumps on Unix systems

We generally use the tool gdb (GNU debugger) to provide stack trace functionality, and ulimit to provide core dumps in builds which crash or segfault.

  • To use gdb in order to obtain a stack trace for a build that has stalled:

Run the build.

Once it stalls, enter the following command:

gdb /path/to/sumokoind `pidof sumokoind`

Type thread apply all bt within gdb in order to obtain the stack trace

  • If however the core dumps or segfaults:

Enter ulimit -c unlimited on the command line to enable unlimited filesizes for core dumps

Enter echo core | sudo tee /proc/sys/kernel/core_pattern to stop cores from being hijacked by other tools

Run the build.

When it terminates with an output along the lines of "Segmentation fault (core dumped)", there should be a core dump file in the same directory as sumokoind. It may be named just core, or core.xxxx with numbers appended.

You can now analyse this core dump with gdb as follows:

gdb /path/to/sumokoind /path/to/dumpfile

Print the stack trace with bt

  • If a program crashed and cores are managed by systemd, the following can also get a stack trace for that crash:
coredumpctl -1 gdb

To run sumokoin within gdb:

Type gdb /path/to/sumokoind

Pass command-line options with --args followed by the relevant arguments

Type run to run sumokoind

Analysing memory corruption

There are two tools available:

ASAN

Configure Sumokoin with the -D SANITIZE=ON cmake flag, eg:

cd build/debug && cmake -D SANITIZE=ON -D CMAKE_BUILD_TYPE=Debug ../..

You can then run the Sumokoin tools normally. Performance will typically halve.

valgrind

Install valgrind and run as valgrind /path/to/sumokoind. It will be very slow.

LMDB

Instructions for debugging suspected blockchain corruption as per @HYC

There is an mdb_stat command in the LMDB source that can print statistics about the database but it's not routinely built. This can be built with the following command:

cd ~/sumokoin/src/lmdb/db_drivers/liblmdb && make

The output of mdb_stat -ea <path to blockchain dir> will indicate inconsistencies in the blocks, block_heights and block_info table.

The output of mdb_dump -s blocks <path to blockchain dir> and mdb_dump -s block_info <path to blockchain dir> is useful for indicating whether blocks and block_info contain the same keys.

These records are dumped as hex data, where the first line is the key and the second line is the data.

Known Issues

Protocols

Socket-based

Because of the nature of the socket-based protocols that drive sumokoin, certain protocol weaknesses are somewhat unavoidable at this time. While these weaknesses can theoretically be fully mitigated, the effort required (the means) may not justify the ends. As such, please consider taking the following precautions if you are a sumokoin node operator:

  • Run sumokoind on a "secured" machine. If operational security is not your forte, at a very minimum, have a dedicated a computer running sumokoind and do not browse the web, use email clients, or use any other potentially harmful apps on your sumokoind machine. Do not click links or load URL/MUA content on the same machine. Doing so may potentially exploit weaknesses in commands which accept "localhost" and "127.0.0.1".
  • If you plan on hosting a public "remote" node, start sumokoind with --restricted-rpc. This is a must.

Blockchain-based

Certain blockchain "features" can be considered "bugs" if misused correctly. Consequently, please consider the following:

  • When receiving sumokoin, be aware that it may be locked for an arbitrary time if the sender elected to, preventing you from spending that sumokoin until the lock time expires. You may want to hold off acting upon such a transaction until the unlock time lapses. To get a sense of that time, you can consider the remaining blocktime until unlock as seen in the show_transfers command.

sumokoin's People

Contributors

aris-sumogr avatar atezerotwo avatar billaue2 avatar curie-kief avatar geekonjf avatar haruto-tanno avatar littlesand avatar maskys avatar mrheinen avatar plavirudar avatar quangvu3 avatar sumodevs avatar sumogr avatar sumoproject avatar sumoprojects avatar sumoshi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sumokoin's Issues

[upgrade to GUI]

Hello! Would it be possible to allow a custom installation path so that the whole wallet+db be put on another drive rather than c:\program data | c:\program files (x86)? Even using the Standalone ZIP, when running the wallet.exe it automagically loads most of the files to the c:\ location.

Thank you.

CMakeList.txt problem

Compiling last version of the repo give this error:

alebeta@sumod01:/opt/sumokoin$ sudo make
mkdir -p build/release
cd build/release && cmake -D CMAKE_BUILD_TYPE=Release ../..
CMake Error at CMakeLists.txt:505:
Parse error. Expected "(", got quoted argument with text "

  message(STATUS ".

-- Configuring incomplete, errors occurred!
Makefile:39: recipe for target 'cmake-release' failed
make: *** [cmake-release] Error 1

in line 503 is a comment, that has a jump to line 504 ending with a " and cause the crash:

#From Android 5: "only position independent executables (PIE) are
supported"

it should be
#From Android 5: "only position independent executables (PIE) are supported"

All the best

compilation error src/wallet/api/wallet.cpp

Hello friends,

I have couples of nodes running with the binaries listed in the website. Now I want to compile the last version of this code since the version I'm running (sapporo 0.2.0) is asking me to update asap.

OS: Ubuntu 16.04.3
I follow the instructions from the ReadMe file.

alebeta@sumokoin-node15:/opt/sumokoin$ sudo make
mkdir -p build/release
cd build/release && cmake -D CMAKE_BUILD_TYPE=Release ../..
-- Could not find DEVELOPER_LOCAL_TOOLS in env (not required)
-- BOOST_IGNORE_SYSTEM_PATHS defaults to OFF
-- Could not find DEVELOPER_LIBUNBOUND_OLD in env (not required)
-- Building for a 64-bit system
-- Building internal libraries as static
-- Could not find DATABASE in env (not required unless you want to change database type from default: lmdb)
-- Using LMDB as default DB type
-- looking for liblzma
-- Could not find libunwind (missing: LIBUNWIND_INCLUDE_DIR LIBUNWIND_LIBRARIES)
-- Stack trace on exception disabled
-- Could not find miniupnp
-- Using miniupnpc from local source tree (/external/miniupnpc)
-- Looking for libunbound
-- Using 64-bit LMDB from source tree
-- Building on x86_64 for native
-- AES support enabled
-- Found Boost Version: 105800
-- Found Git: /usr/bin/git
Doxygen: graphviz not found - graphs disabled
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/sumokoin/build/release
cd build/release && make
make[1]: Entering directory '/opt/sumokoin/build/release'
make[2]: Entering directory '/opt/sumokoin/build/release'
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 0%] Built target version
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 7%] Built target libminiupnpc-static
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 46%] Built target unbound
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 47%] Built target lmdb
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 50%] Built target otshell_utils
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 54%] Built target obj_common
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 64%] Built target obj_crypto
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 64%] Built target crypto
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 65%] Built target common
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 67%] Built target obj_ringct
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 68%] Built target ringct
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 73%] Built target obj_cryptonote_core
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 75%] Built target blocks
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 76%] Built target obj_blockchain_db
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 76%] Built target blockchain_db
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 77%] Built target cryptonote_core
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 77%] Built target obj_mnemonics
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 78%] Built target mnemonics
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 78%] Built target obj_rpc
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 78%] Built target obj_cryptonote_protocol
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 78%] Built target cryptonote_protocol
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
[ 78%] Built target rpc
make[3]: Entering directory '/opt/sumokoin/build/release'
make[3]: Leaving directory '/opt/sumokoin/build/release'
make[3]: Entering directory '/opt/sumokoin/build/release'
[ 78%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/wallet.cpp.o
In file included from /opt/sumokoin/contrib/epee/include/net/http_client.h:38:0,
from /opt/sumokoin/src/wallet/wallet2.h:46,
from /opt/sumokoin/src/wallet/api/wallet.h:35,
from /opt/sumokoin/src/wallet/api/wallet.cpp:32:
/opt/sumokoin/contrib/epee/include/net/net_helper.h: In member function ‘boost::asio::ip::tcp::socket& epee::net_utils::blocked_mode_client::get_socket()’:
/opt/sumokoin/contrib/epee/include/net/net_helper.h:556:3: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
/opt/sumokoin/src/wallet/api/wallet.cpp: In member function ‘virtual Monero::PendingTransaction* Monero::WalletImpl::createTransaction(const string&, const string&, Monero::optional, uint32_t, Monero::PendingTransaction::Priority, uint32_t, std::set)’:
/opt/sumokoin/src/wallet/api/wallet.cpp:805:222: error: no matching function for call to ‘tools::wallet2::create_transactions_2(std::vectorcryptonote::tx_destination_entry&, size_t&, int, Monero::PendingTransaction::Priority&, std::vector&, bool&, uint32_t&, std::set&, bool, float)’
/* unlock_time /, priority, extra, is_subaddress, subaddr_account, subaddr_indices, false / m_trusted_daemon /, 1.0f / tx_size_target_factor */);
^
In file included from /opt/sumokoin/src/wallet/api/wallet.h:35:0,
from /opt/sumokoin/src/wallet/api/wallet.cpp:32:
/opt/sumokoin/src/wallet/wallet2.h:475:38: note: candidate: std::vectortools::wallet2::pending_tx tools::wallet2::create_transactions_2(std::vectorcryptonote::tx_destination_entry, size_t, uint64_t, uint32_t, std::vector, uint32_t, std::set, bool, bool, float)
std::vectorwallet2::pending_tx create_transactions_2(std::vectorcryptonote::tx_destination_entry dsts, const size_t fake_outs_count, const ui
^
/opt/sumokoin/src/wallet/wallet2.h:475:38: note: no known conversion for argument 7 from ‘uint32_t {aka unsigned int}’ to ‘std::set’
src/wallet/CMakeFiles/obj_wallet.dir/build.make:134: recipe for target 'src/wallet/CMakeFiles/obj_wallet.dir/api/wallet.cpp.o' failed
make[3]: *** [src/wallet/CMakeFiles/obj_wallet.dir/api/wallet.cpp.o] Error 1
make[3]: Leaving directory '/opt/sumokoin/build/release'
CMakeFiles/Makefile2:1152: recipe for target 'src/wallet/CMakeFiles/obj_wallet.dir/all' failed
make[2]: *** [src/wallet/CMakeFiles/obj_wallet.dir/all] Error 2
make[2]: Leaving directory '/opt/sumokoin/build/release'
Makefile:138: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/sumokoin/build/release'
Makefile:43: recipe for target 'release' failed
make: *** [release] Error 2

Thanks and all the best

Failing to Build on Debian

I'm getting errors from unbound:

/root/sumo/external/unbound/validator/val_secalgo.c:291:11: error: dereferencing pointer to incomplete type 'ECDSA_SIG {aka struct ECDSA_SIG_st}'
  ecdsa_sig->r = BN_bin2bn(*sig, bnsize, ecdsa_sig->r);
           ^~
/root/sumo/external/unbound/validator/val_secalgo.c: In function 'setup_key_digest':
/root/sumo/external/unbound/validator/val_secalgo.c:348:19: warning: implicit declaration of function 'EVP_dss1' [-Wimplicit-function-declaration]
    *digest_type = EVP_dss1();
                   ^~~~~~~~
/root/sumo/external/unbound/validator/val_secalgo.c:348:17: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    *digest_type = EVP_dss1();
                 ^
/root/sumo/external/unbound/validator/val_secalgo.c: In function 'verify_canonrrset':
/root/sumo/external/unbound/validator/val_secalgo.c:509:13: error: storage size of 'ctx' isn't known
  EVP_MD_CTX ctx;
             ^~~
/root/sumo/external/unbound/validator/val_secalgo.c:560:5: warning: implicit declaration of function 'EVP_MD_CTX_cleanup' [-Wimplicit-function-declaration]
  if(EVP_MD_CTX_cleanup(&ctx) == 0) {
     ^~~~~~~~~~~~~~~~~~
make[3]: *** [external/unbound/CMakeFiles/unbound.dir/validator/val_secalgo.c.o] Error 1
external/unbound/CMakeFiles/unbound.dir/build.make:1334: recipe for target 'external/unbound/CMakeFiles/unbound.dir/validator/val_secalgo.c.o' failed
make[3]: Leaving directory '/root/sumo/build/release'
CMakeFiles/Makefile2:233: recipe for target 'external/unbound/CMakeFiles/unbound.dir/all' failed
make[2]: Leaving directory '/root/sumo/build/release'
make[2]: *** [external/unbound/CMakeFiles/unbound.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make[1]: Leaving directory '/root/sumo/build/release'
make[1]: *** [all] Error 2
make: *** [release-static-64] Error 2

Anybody know how I can fix?

FIXED: Use ssl1.0 instead of latest.... apt-get install libssl1.0-dev -y

Can't get transfer wallet rpc command to work

When I try to do a transfer command with the wallet rpc, I get this (monero works fine with the same parameters):

2018-Jan-06 19:13:56.928159 [RPC0]Exception: std::runtime_error
2018-Jan-06 19:13:56.928180 [RPC0]Unwound call stack:
2018-Jan-06 19:13:56.928917 [RPC0]     1                  0x77d400 __wrap___cxa_throw + 0x70
2018-Jan-06 19:13:56.929568 [RPC0]     2                  0x60939b epee::serialization::convert_to_integral<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, false>::convert(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long&) + 0x1eb
2018-Jan-06 19:13:56.930461 [RPC0]     3                  0x7cd1d8 bool epee::serialization::kv_serialization_overloads_impl_is_base_serializable_types<true>::kv_unserialize<unsigned long, epee::serialization::portable_storage>(unsigned long&, epee::serialization::portable_storage&, epee::serialization::portable_storage::hsection, char const*) [clone .constprop.1464] + 0x168
2018-Jan-06 19:13:56.931025 [RPC0]     4                  0x578b13 bool epee::serialization::unserialize_stl_container_t_obj<std::__cxx11::list<tools::wallet_rpc::transfer_destination, std::allocator<tools::wallet_rpc::transfer_destination> >, epee::serialization::portable_storage>(std::__cxx11::list<tools::wallet_rpc::transfer_destination, std::allocator<tools::wallet_rpc::transfer_destination> >&, epee::serialization::portable_storage&, epee::serialization::portable_storage::hsection, char const*) [clone .constprop.698] + 0xb7
2018-Jan-06 19:13:56.931582 [RPC0]     5                  0x578da9 bool epee::json_rpc::request<tools::wallet_rpc::COMMAND_RPC_TRANSFER::request>::load<epee::serialization::portable_storage>(epee::serialization::portable_storage&, epee::serialization::portable_storage::hsection) [clone .constprop.686] + 0x83
2018-Jan-06 19:13:56.932134 [RPC0]     6                  0x6f6e70 bool tools::wallet_rpc_server::handle_http_request_map<epee::net_utils::connection_context_base>(epee::net_utils::http::http_request_info const&, epee::net_utils::http::http_response_info&, epee::net_utils::connection_context_base&) [clone .constprop.642] + 0x2cb0
2018-Jan-06 19:13:56.932687 [RPC0]     7                  0x5a7201 tools::wallet_rpc_server::handle_http_request(epee::net_utils::http::http_request_info const&, epee::net_utils::http::http_response_info&, epee::net_utils::connection_context_base&) + 0x171
2018-Jan-06 19:13:56.933229 [RPC0]     8                  0x799551 epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base>::handle_request(epee::net_utils::http::http_request_info const&, epee::net_utils::http::http_response_info&) + 0x71
2018-Jan-06 19:13:56.933984 [RPC0]     9                  0x614dba epee::net_utils::http::simple_http_connection_handler<epee::net_utils::connection_context_base>::handle_request_and_send_response(epee::net_utils::http::http_request_info const&) + 0x21a
2018-Jan-06 19:13:56.934534 [RPC0]    10                  0x616a86 epee::net_utils::http::simple_http_connection_handler<epee::net_utils::connection_context_base>::handle_buff_in(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) + 0xd26
2018-Jan-06 19:13:56.935083 [RPC0]    11                  0x618a87 epee::net_utils::http::simple_http_connection_handler<epee::net_utils::connection_context_base>::handle_recv(void const*, unsigned long) + 0x27
2018-Jan-06 19:13:56.935626 [RPC0]    12                  0x687aae epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >::handle_read(boost::system::error_code const&, unsigned long) + 0xbbe
2018-Jan-06 19:13:56.936185 [RPC0]    13                  0x606075 void boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running>::operator()<boost::system::error_code, unsigned long>(boost::system::error_code const&, unsigned long const&) + 0xc5
2018-Jan-06 19:13:56.936751 [RPC0]    14                  0x606513 boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder2<boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running>, boost::system::error_code, unsigned long>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> > > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) + 0xe3
2018-Jan-06 19:13:56.937326 [RPC0]    15                  0x606d70 boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::detail::wrapped_handler<boost::asio::io_service::strand, boost::_bi::bind_t<void, boost::_mfi::mf2<void, epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >, boost::system::error_code const&, unsigned long>, boost::_bi::list3<boost::_bi::value<boost::shared_ptr<epee::net_utils::connection<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> > > >, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::asio::detail::is_continuation_if_running> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) + 0x700
2018-Jan-06 19:13:56.937894 [RPC0]    16                  0x590649 boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) + 0x1e9
2018-Jan-06 19:13:56.938444 [RPC0]    17                  0x7d7b74 boost::asio::detail::task_io_service::run(boost::system::error_code&) [clone .constprop.1827] + 0x444
2018-Jan-06 19:13:56.938994 [RPC0]    18                  0x5b2f7f epee::net_utils::boosted_tcp_server<epee::net_utils::http::http_custom_handler<epee::net_utils::connection_context_base> >::worker_thread() + 0x2af
2018-Jan-06 19:13:56.939532 [RPC0]    19                  0x814e55 thread_proxy + 0x125
2018-Jan-06 19:13:56.939714 [RPC0]    20                  0x7fd2ff6c36ba start_thread + 0xca
2018-Jan-06 19:13:56.939900 [RPC0]    21                  0x7fd2ff3f93dd clone + 0x6d
2018-Jan-06 19:13:56.940051 [RPC0]    22                  0x0
2018-Jan-06 19:13:56.940116 [RPC0]ERROR /home/quangvhg/sumokoin/contrib/epee/include/net/jsonrpc_structs.h:21 Exception on unserializing: WRONG DATA CONVERSION: from type=NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE to type m

What is type m?

Daemon hangs on LMDB memory resizing

a few days ado I have got in a daemon's log: LMDB memory map needs to be resized, doing that now and daemon hanging.

fresh ubuntu 16.04 with all updates and all dependings
monero is working perfect on the same server.

what caused this behaviour? and what to do?

regards

notify#1 build issue

/home/ubuntu/sumokoin/src/mnemonics/electrum-words.cpp:279:75: warning: ‘language’ may be used uninitialized in this function [-Wmaybe-uninitialized]
const std::vectorstd::string &word_list = language->get_word_list();
^
/home/ubuntu/sumokoin/src/mnemonics/electrum-words.cpp:274:23: note: ‘language’ was declared here
Language::Base *language;
^
/usr/bin/ld: /tmp/ccyALe6y.ltrans16.ltrans.o: undefined reference to symbol 'SSL_get_verify_callback@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:127: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: *** [bin/sumo-wallet-rpc] Error 1
make[3]: Leaving directory '/home/ubuntu/sumokoin/build/release'
CMakeFiles/Makefile2:1189: recipe for target 'src/wallet/CMakeFiles/wallet_rpc_server.dir/all' failed
make[2]: *** [src/wallet/CMakeFiles/wallet_rpc_server.dir/all] Error 2
make[2]: Leaving directory '/home/ubuntu/sumokoin/build/release'
Makefile:138: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ubuntu/sumokoin/build/release'
Makefile:43: recipe for target 'release' failed
make: *** [release] Error 2

Transfer issue...

{ "method": "transfer", "id": 3, "params": [ { "payment_id": 1516293365, "mixins": 6, "destinations ": [ { "amount": 500000000, "address": "censored" } ], "get_tx_key": true } ] } { "error": { "code": -4, "message": "destination amount is zero" }, "id": 3, "jsonrpc": "2.0" }
what i doing wrong? why no have client oriented documentation...

generate_from_json don't work for generate watch only wallet

I use "std::unique_ptrtools::wallet2 generate_from_json(const std::string& json_file, bool testnet, bool restricted)" to generate watch only wallet, there is no error, and the wallet is created successful, but when I use it to refresh balance, transfer and so on, there is no result found in my wallet. So how can get a correct wallet.

this is my json format file:
{
"version":1,
"filename":"/tmp/hd0",
"scan_from_height":0,
"password":"123456",
"viewkey":"d0426874488a02959ee3177a55cd7e7fe45f6b3424097ca7b517793a9dfe5509",
"address":"Sumoo2AiWRU8bzZgt5dmKL3xBHqkmtgy87djBcMusqw1MP1htwzabTCAuaRupYtQbg2w69dt1No2ydzRmEzKSfHNTq8RosECwrc"
}

after sometimes tries, I found, if I change the code, it works.
I only do this:
// if we have an addres but no spend key, we can deduce the spend public key
// from the address
/*
if (field_address_found)
{
cryptonote::account_public_address address2;
bool has_payment_id;
crypto::hash8 new_payment_id;
get_account_integrated_address_from_str(address2, has_payment_id, new_payment_id, testnet, field_address);
address.m_spend_public_key = address2.m_spend_public_key;
}
*/

Exception: cryptonote::TX_DNE

I see a lot of Exception: cryptonote::TX_DNE Unwound call stack: in my sumokoin.log when i use sumo-wallet-cli.
sumokoin.log

./sumokoind --version
Creating the logger system
Sumokoin 'Sapporo' (v0.2.0.0-release)

./sumokoind --os-version
Creating the logger system
OS: Linux #44~16.04.1-Ubuntu SMP Thu Nov 9 15:37:44 UTC 2017 4.10.0-40-generic

Minimal Dockerfile --- which packages are build deps?

Hey, I'm trying to make a minimal Dockerfile/container for Sumokoin... can I eliminate any of the apt-gets in this code:

FROM debian:stretch-slim as builder

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        cmake \
        doxygen \
        git \
        graphviz \
        g++ \
        libboost-all-dev \
        libdb-dev \
        libevent-dev \
        libexpat1-dev \
        libgtest-dev \
        libminiupnpc-dev \
        libreadline-dev \
        libsodium-dev \
        libssl1.0-dev \
        libunbound-dev \
        libunwind8-dev \
        libzmq3-dev \
        make \
        pkg-config \
    && git clone https://github.com/sumoprojects/sumokoin.git /root/sumo \
    && cd /root/sumo \
    && rm -rf build \
    && make release-static

FROM debian:stretch-slim

WORKDIR /opt/sumo

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
        curl \
        software-properties-common \
        gnupg \
    && curl -sL https://deb.nodesource.com/setup_9.x | bash \
    && apt-get install -y nodejs \
    && npm install -g pm2 \
    && apt-get autoclean \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/*
    
COPY --from=builder /root/sumo/build/release/bin/* /opt/sumo/

EXPOSE 19734 19735

CMD ["pm2-docker", "process.json"]

Cant compile from source

I get this error with the latest release

[ 80%] Linking CXX executable ../../bin/sumo-wallet-rpc
/usr/bin/ld: /tmp/cc1kJjQ7.ltrans18.ltrans.o: undefined reference to symbol 'SSL_get_verify_callback@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:127: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: *** [bin/sumo-wallet-rpc] Error 1

Any solutions?
Using this command "make CXXFLAGS="-ldl -lssl -lcrypto"" doesnt work also

sumo-wallet-rpc: tx verification failed

Hi Sumokoin Team!

I've faced this issue trying to send payments through sumo-wallet-rpc.
The result is the same on v0.1.2.0 and latest commit builds.

So, first I'm invoking store method:

{"jsonrpc":"2.0","id":"0","method":"store","params":[]}

With the response:

{"id":"0","jsonrpc":"2.0","result":{}}

Then trying to make the transaction:

{  
   "jsonrpc":"2.0",
   "id":"0",
   "method":"transfer",
   "params":{  
      "destinations":[  
         {  
            "amount":4032000209,
            "address":"ADDRESS_1"
         },
         {  
            "amount":3572000117,
            "address":"ADDRES_2"
         }
      ],
      "priority":0,
      "mixin":12
   }
}

And wallet-rpc is crashing with:

[RPC0]ERROR /usr/local/src/sumokoin/src/wallet/wallet2.cpp:3001 daemon_send_resp.status != CORE_RPC_STATUS_OK. THROW EXCEPTION: error::tx_rejected
[RPC0]/usr/local/src/sumokoin/src/wallet/wallet2.cpp:3001:N5tools5error11tx_rejectedE: transaction was rejected by daemon, status = Failed, tx:
[RPC0]Exception: tools::error::tx_rejected

While the sumokoin daemon says (and sometimes it crashes after this):

[RPC1]transaction with hash 3456178e90f7768838aff163a2eba7c361f75873bab587fe9b4da75603a6dabc not found in db
[RPC1]Key image already spent in blockchain: d6c8bb6a18ca9de4cc81eebf57c2243c998251604bfbb6f2eb9091a1dce7487b
[RPC1]tx used wrong inputs, rejected
[RPC1]Transaction verification failed: <3456178e90f7768838aff163a2eba7c361f75873bab587fe9b4da75603a6dabc>
[RPC1][on_send_raw_tx]: tx verification failed

Here are the full logs:
sumo-wallet-rpc.log
sumokoind.log

Here is system environment:
Ubuntu 16.04.3 LTS
GCC / build-essential / 12.1ubuntu2
CMake / cmake / 3.5.1-1ubuntu3
pkg-config / pkg-config / 0.29.1-0ubuntu1
Boost / libboost-all-dev / 1.58.0.1ubuntu1
BerkeleyDB / libdb{,++}-dev / NO
libevent / libevent-dev / 2.0.21-stable-2ubuntu0.16.04.1
libunbound / libunbound-dev / 1.5.8-1ubuntu1
libminiupnpc / libminiupnpc-dev / 1.9.20140610-2ubuntu2.16.04.1
libunwind / libunwind8-dev / 1.1-4.1
ldns / libldns-dev / 1.6.17-8
expat / libexpat1-dev / 2.1.0-7ubuntu0.16.04.3
GTest / libgtest-dev / 1.7.0-4ubuntu1
Doxygen / doxygen / NO
Graphviz / graphviz / NO

Am I missing something?
Thank you.

Change pool server

Hi,

I changed server for mining pool and I dont see statistics about found block,address,etc from old pool server. Where I will find these old data.My old server running now. I moved lmdb from old server to new server but it didnt help me...

Thanks for help.

Compiling 'SSL_get_verify_callback@@OPENSSL_1.0.0' error

Hi guys

Trying to compile and keep getting to 77% and it fails with the error below. Did some research and found some recommendations to try make LIBS="-lcrypto" but still same issue. Please advise how I can resolve?

undefined reference to symbol 'SSL_get_verify_callback@@OPENSSL_1.0.0'
//lib/x86_64-linux-gnu/libssl.so.1.0.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:127: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: *** [bin/sumo-wallet-rpc] Error 1
make[3]: Leaving directory '/home/podm/Sumo/build/release'
CMakeFiles/Makefile2:1161: recipe for target 'src/wallet/CMakeFiles/wallet_rpc_server.dir/all' failed
make[2]: *** [src/wallet/CMakeFiles/wallet_rpc_server.dir/all] Error 2
make[2]: Leaving directory '/home/podm/Sumo/build/release'
Makefile:138: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/podm/Sumo/build/release'
Makefile:43: recipe for target 'release' failed
make: *** [release] Error 2

Flood protection?

I'm struggling a bit with an issue here in regards to possible flood protection kicking in.
Unsure for now if its the linux OS (nothing in syslog/dmesg etc) or if its sumokoind that does this.
Running a pool which connects to a local sumo daemon, server has 32 cores (dual 8 core CPU with HT on) so pool spins up 32 threads.

Right away I start to get these errors:

[pool] (Thread 26) New block to mine at height 92077 w/ difficulty of 5494485236
2018-01-17 09:16:38 [pool] (Thread 22) New block to mine at height 92077 w/ difficulty of 5494485236
2018-01-17 09:16:39 [pool] (Thread 29) New block to mine at height 92077 w/ difficulty of 5494485236
2018-01-17 09:16:39 [pool] (Thread 19) Error polling getblockcount {"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"127.0.0.1","port":19734}
2018-01-17 09:16:39 [pool] (Thread 17) Error polling getblockcount {"code":"ETIMEDOUT","errno":"ETIMEDOUT","syscall":"connect","address":"127.0.0.1","port":19734}

Then after 15 seconds or so with this, everything becomes ok for another 15-20minutes or so before the cycle repeats.
I tried lowering the pool threads to 12 which in turn made it take quite a bit longer before the error came, but it did come.
I tried now to lower the number of pool threads to 8 which so far (20mins running) haven't given errors, but I guess it won't take too long before the error comes back.
sumo-wallet-cli isn't responding (can't connect to daemon) either during this, so I'm confident it's not only the pool having connection issues.

Anything in sumokoind that could cause this?

System info:
Debian Stretch (4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2)
Sumokoin bins cloned from git and compiled, also tried using the procompiled bins from sumokoin.org
Running cryptonote-sumokoin-pool (https://github.com/SadBatman/cryptonote-sumokoin-pool)
Compiled pool with gcc-5/c++-5

Despite running the latest version, daemon tells me that I need to update

I have compiled the Sumokoin from the latest Github release tag v0.2.0.0 and synchronized. Daemon immediately started show this message in red after synchronization finished:

Last scheduled hard fork time shows a daemon update is needed now.

When I check status, I see this:

Height: 82287/82287 (100.0%) on mainnet, not mining, net hash 6.50 MH/s, v2, update needed, 8+0 connections

Is there a newer version available? If there is, where can I get it?

I Can´t do transfers

Hi

I have installed the gui wallet 0.0.1 beta 2 on WIn 10 x64

-On 11/4/2017 i made one transfer to Cryptopia.
-The transfer run correctly and was registered in my wallet TX history, but checking on Cryptopia, the 15 SUMO coins dont appear.
-After check on cryptopia i make the folllowing: "rescan spent" + "rescan Blockchain"
-After the rescan the transfer dissapeared from my "TX history"

  • if I "rescan spent" the balance updates to: 13.204 sumo. (Before the transfer my balance was 28.424) and if i "rescan the blockchain" one more time the balance comes again to 28.424 Sumo.

After this problems i have try to make transfers to a nwe generated wallet and i get the error "Transaction was rejected by daemon" and if go to the log i get this:

[2017-11-04 23:19:36,875] [INFO] [sumokoind]>>> 2017-Nov-04 23:19:36.876957 [RPC0][on_send_raw_tx]: tx verification failed

Building for linux (ubuntu based, 4.4.0 generic kernel)

D.13396.m_timestamp’/home/anubis/git/sumokoin/src/wallet/wallet2.cpp: In member function ‘process_outgoing’:
/home/anubis/git/sumokoin/src/wallet/wallet2.h:203:12: warning:  is used uninitialized in this function [-Wuninitialized]
     struct confirmed_transfer_details
            ^
/tmp/ccBJFXkT.ltrans13.ltrans.o: In function `__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::re_detail::re_set_long<unsigned int> const*, boost::re_detail::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool)':
<artificial>:(.text+0x7093): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const'
<artificial>:(.text+0x7355): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'
collect2: error: ld returned 1 exit status
src/simplewallet/CMakeFiles/simplewallet.dir/build.make:126: recipe for target 'bin/sumo-wallet-cli' failed
make[3]: *** [bin/sumo-wallet-cli] Error 1
make[3]: Leaving directory '/home/anubis/git/sumokoin/build/release'
CMakeFiles/Makefile2:1547: recipe for target 'src/simplewallet/CMakeFiles/simplewallet.dir/all' failed
make[2]: *** [src/simplewallet/CMakeFiles/simplewallet.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
D.17619.m_timestamp’/home/anubis/git/sumokoin/src/wallet/wallet2.cpp: In member function ‘process_outgoing’:
/home/anubis/git/sumokoin/src/wallet/wallet2.h:203:12: warning:  is used uninitialized in this function [-Wuninitialized]
     struct confirmed_transfer_details
            ^
/tmp/ccHcJriT.ltrans2.ltrans.o: In function `__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::re_detail::re_set_long<unsigned int> const*, boost::re_detail::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool)':
<artificial>:(.text+0x5213): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const'
<artificial>:(.text+0x54d5): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:128: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: *** [bin/sumo-wallet-rpc] Error 1
make[3]: Leaving directory '/home/anubis/git/sumokoin/build/release'
CMakeFiles/Makefile2:1286: recipe for target 'src/wallet/CMakeFiles/wallet_rpc_server.dir/all' failed
make[2]: *** [src/wallet/CMakeFiles/wallet_rpc_server.dir/all] Error 2
/tmp/ccxclDqX.ltrans19.ltrans.o: In function `__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::re_detail::re_is_set_member<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::re_detail::re_set_long<unsigned int> const*, boost::re_detail::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool)':
<artificial>:(.text+0x4ae3): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const'
<artificial>:(.text+0x4da5): undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'
collect2: error: ld returned 1 exit status
src/daemon/CMakeFiles/daemon.dir/build.make:262: recipe for target 'bin/sumokoind' failed
make[3]: *** [bin/sumokoind] Error 1
make[3]: Leaving directory '/home/anubis/git/sumokoin/build/release'
CMakeFiles/Makefile2:1713: recipe for target 'src/daemon/CMakeFiles/daemon.dir/all' failed
make[2]: *** [src/daemon/CMakeFiles/daemon.dir/all] Error 2
make[2]: Leaving directory '/home/anubis/git/sumokoin/build/release'
Makefile:138: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/anubis/git/sumokoin/build/release'
Makefile:43: recipe for target 'release' failed
make: *** [release] Error 2

building debug version on Win64

Hello,

I am trying to build a debug version on Windows 64 bit but if fails

CMake Error at E:/msys64/mingw64/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
  OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
  E:/msys64/mingw64/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  E:/msys64/mingw64/share/cmake-3.7/Modules/FindOpenSSL.cmake:385 (find_package_handle_standard_args)
  external/unbound/CMakeLists.txt:42 (find_package)

do you have an idea of how to past this ?

Non-Default LMDB Location

In my increasing syncing of various blockchains, I've found disk space to be at a premium. Is there a way to get the Sumo wallet (Debian Linux) to sync the chain to an external drive?

Pool software unable to process payments, wallet-rpc throws error

Payments all of the sudden stopped processing. I have checked wallet balance and there all looks ok.
No code changes.

Pool reports:

2018-02-03 09:44:36 [payments] Error with transfer RPC request to wallet daemon {"code":-4,"message":"outs.size() < out_index + 1"}
2018-02-03 09:44:36 [payments] Payments failed to send to {"amount":1686000000,"address":"address"} { amount: 816000000,
  address: 'address' } { amount: 636000000,
  address: 'address' } { amount: 1686000000,
  address: 'address' } { amount: 796000000,
  address: 'address' } { amount: 2406000000,
  address: 'address' } { amount: 116000000,
  address: 'address' } { amount: 156000000,
  address: 'address' } { amount: 3026000000,
  address: 'address' } { amount: 906000000,
  address: 'address' } { amount: 4996000000,
  address: 'address' } { amount: 106000000,
  address: 'address' } { amount: 196000000,
  address: 'address' } { amount: 316000000,
  address: 'address' } { amount: 2186000000,
  address: 'address' } { amount: 946000000,
  address: 'address' } { amount: 13046000000,
  address: 'address' } { amount: 2656000000,
  address: 'address' }
2018-02-03 xx:xx:xx [payments] Payments splintered and 0 successfully sent, 1 failed

Wallet-rpc reports:

2018-Feb-03 09:44:28.730744 Loaded ok
2018-Feb-03 09:44:28.731067 Binding on 127.0.0.1:19735
2018-Feb-03 09:44:28.731220 Starting wallet rpc server
2018-Feb-03 09:44:28.731277 Run net_service loop( 1 threads)...
2018-Feb-03 09:44:35.746374 [RPC0]we could use 37 and 76
2018-Feb-03 09:44:35.746516 [RPC0]selected transfers:
2018-Feb-03 09:44:36.439298 [RPC0]amount=36.487042300, real_output=8, real_output_in_tx_index=0, indexes: 601690 659410 669570 712896 755794 801195 803831 804820 805357 806500 806865 807197 808453
2018-Feb-03 09:44:36.440083 [RPC0]amount=0.249682600, real_output=2, real_output_in_tx_index=0, indexes: 165115 463903 624465 713459 755981 792966 803592 804000 805894 807162 808038 808064 809037
2018-Feb-03 09:44:36.987527 [RPC0]selected transfers:
2018-Feb-03 09:44:36.987899 [RPC0]amount=36.487042300, real_output=8, real_output_in_tx_index=0, indexes: 601690 659410 669570 712896 755794 801195 803831 804820 805357 806500 806865 807197 808453
2018-Feb-03 09:44:36.988256 [RPC0]amount=0.249682600, real_output=2, real_output_in_tx_index=0, indexes: 165115 463903 624465 713459 755981 792966 803592 804000 805894 807162 808038 808064 809037
2018-Feb-03 09:44:36.988276 [RPC0]ERROR /home/sumo/sumokoin/src/wallet/wallet2.cpp:4003 outs.size() < out_index + 1. THROW EXCEPTION: error::wallet_internal_error
2018-Feb-03 09:44:36.988325 [RPC0]/home/sumo/sumokoin/src/wallet/wallet2.cpp:4003:N5tools5error21wallet_internal_errorE: outs.size() < out_index + 1

I have tried to recompile latest bins from github, but I'm unable to start sumokoind then with the following error:
2018-Feb-03 09:42:42.295264 ERROR /home/sumo/sumokoin/src/daemon/daemon.cpp:145 Uncaught exception! batch transactions not enabled

New difficulty algorithm can be a trap. Warning ! Be careful devs !

I see some peoples going around to promote the “new” difficulty algo. I’m not technical enough to understand it but my instinct telling me that it is a trap. If you guys use that new diffculty algo, be careful with copyright issue.
You MUST put “Portions Copyright 2017 Masari Project” at Readme and in difficulty.cpp for just some lines of codes which I’m not sure they are effective.
In the worst case, if you are careless, they can file a DCMA to put your repo down.

Unwound call stack (linux)

I'm getting this in ~/.sumokoin/sumokoin.log

Daemon is from https://github.com/sumoprojects/sumokoin/releases/download/v0.2.0.0/sumokoin.linux.x64.v0-2-0.tar.bz2 running on Centos 7.

**********************************************************************
2017-Dec-19 10:28:00.798032 [P2P7]
**********************************************************************
You are now synchronized with the network. You may now start sumo-wallet-cli.

Please note, that the blockchain will be saved only after you quit the daemon with "exit" command or if you use "save" command.
Otherwise, you will possibly need to synchronize the blockchain again.

Use "help" command to see the list of available commands.
**********************************************************************
2017-Dec-19 11:31:50.281191 [P2P8]WARNING: no two valid SumoPulse DNS checkpoint records were received
2017-Dec-19 12:27:56.667905 [P2P2]
**********************************************************************
Last scheduled hard fork time shows a daemon update is needed now.
**********************************************************************

2017-Dec-19 12:38:52.044216 [P2P3]WARNING: no two valid SumoPulse DNS checkpoint records were received
2017-Dec-19 12:54:21.039148 [RPC0]Exception: cryptonote::TX_DNE
2017-Dec-19 12:54:21.039237 [RPC0]Unwound call stack:
2017-Dec-19 12:54:21.090638 [RPC0]     1                  0x834730 __wrap___cxa_throw + 0x70
2017-Dec-19 12:54:21.093179 [RPC0]     2                  0x72eca9 cryptonote::BlockchainLMDB::get_tx(crypto::hash const&) const + 0x329
2017-Dec-19 12:54:21.095588 [RPC0]     3                  0x65e7d7 bool cryptonote::Blockchain::get_transactions<std::vector<crypto::hash, std::allocator<crypto::hash> >, std::__cxx11::list<cryptonote::transaction, std::allocator<cryptonote::transaction> >, std::__cxx11::list<crypto::hash, std::allocator<crypto::hash> > >(std::vector<crypto::hash, std::allocator<crypto::hash> > const&, std::__cxx11::list<cryptonote::transaction, std::allocator<cryptonote::transaction> >&, std::__cxx11::list<crypto::hash, std::allocator<crypto::hash> >&) const + 0x97
2017-Dec-19 12:54:21.097979 [RPC0]     4                  0x7ace48 cryptonote::core_rpc_server::on_get_transactions(cryptonote::COMMAND_RPC_GET_TRANSACTIONS::request const&, cryptonote::COMMAND_RPC_GET_TRANSACTIONS::response&) + 0x1d8
2017-Dec-19 12:54:21.100483 [RPC0]     5                  0x6bb177 bool cryptonote::core_rpc_server::handle_http_request_map<epee::net_utils::connection_context_base>(epee::net_utils::http::http_request_info const&, epee::net_utils::http::http_response_info&, epee::net_utils::connection_context_base&) [clone .constprop.681] + 0x2b27
2017-Dec-19 12:54:21.105824 [RPC0]     6                  0x59f023 cryptonote::core_rpc_server::handle_http_request(epee::net_utils::http::http_request_info const&, epee::net_utils::http::http_response_info&, epee::net_utils::connection_context_base&) + 0x173

Compiling issues "wallet2"

Hello,

Is there something that needs to be done to compile the new code...or are the changes a delay to avoid the monero conflict?

2018-Jan-31 23:08:32.884952 Sumokoin 'Sapporo' (v0.2.0.0-be01bb6)
2018-Jan-31 23:08:32.885252 Setting log level = 0
2018-Jan-31 23:08:32.885363 default_log: ./sumo-wallet-rpc.log
2018-Jan-31 23:08:32.885480 Logging at log level 0 to /home/ubuntu/sumokoin/build/release/bin/./sumo-wallet-rpc.log
2018-Jan-31 23:08:32.885810 Loading wallet...
2018-Jan-31 23:08:32.932777 Loaded wallet keys file, with public address: Sumoo"address removed"
2018-Jan-31 23:08:33.033588 ERROR /home/ubuntu/sumokoin/src/wallet/wallet2.cpp:1320 !r. THROW EXCEPTION: error::no_connection_to_daemon
2018-Jan-31 23:08:33.034845 /home/ubuntu/sumokoin/src/wallet/wallet2.cpp:1320:N5tools5error23no_connection_to_daemonE: no connection to daemon, request = gethashes.bin
2018-Jan-31 23:08:33.035904 ERROR /home/ubuntu/sumokoin/src/wallet/wallet_rpc_server.cpp:1635 Wallet initialization failed: no connection to daemon

Thanks Sumo Dev.

sumokoind high CPU Usage

I've complied Daemon from source, and have synched the blockchain fully.
My Server is running on high CPU Usage (73-100%), and it's the sumokoind process.

"Status" command shows:
Height: 103992/103992 (100.0%) on mainnet, not mining, net hash 19.26 MH/s, v2, update needed, 8+0 connections

Any ideas what may be causing this?

Sent From Cryptopia to Sub Address Wallet - Processing

I was messing around with sub addresses, and decided to do a small test of 0.1 Sumo from Cryptopia to my new sub address created via the OS X gui wallet. I didn't think of checking to see if Cryptopia was on the latest version release and if sub addresses were supported before trying.

It appears that Cryptopia hasn't implemented the sub addresses release, and my transfer is still in the processing state. Will this transfer be stuck in limbo until Cryptopia implements the newest release, or is it lost in the black hole? Just an FYI for anyone else thinking about trying this.

Build Error on Debian

I'm getting the following build error:

make[3]: Leaving directory '/root/sumo/build/release'
make[3]: Entering directory '/root/sumo/build/release'
[ 88%] Building CXX object src/wallet/CMakeFiles/wallet_rpc_server.dir/wallet_rpc_server.cpp.o
[ 89%] Linking CXX executable ../../bin/sumo-wallet-rpc
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_program_options.a(variables_map.o): In function `boost::program_options::abstract_variables_map::abstract_variables_map()':
(.text+0x383): undefined reference to `vtable for boost::program_options::abstract_variables_map'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libboost_program_options.a(variables_map.o): In function `boost::program_options::abstract_variables_map::abstract_variables_map(boost::program_options::abstract_variables_map const*)':
(.text+0x3a3): undefined reference to `vtable for boost::program_options::abstract_variables_map'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libunwind.a(elf64.o): In function `xz_uncompressed_size':
/tmp/buildd/libunwind-1.1/src/elfxx.c:194: undefined reference to `lzma_stream_footer_decode'
/tmp/buildd/libunwind-1.1/src/elfxx.c:201: undefined reference to `lzma_index_buffer_decode'
/tmp/buildd/libunwind-1.1/src/elfxx.c:205: undefined reference to `lzma_index_size'
/tmp/buildd/libunwind-1.1/src/elfxx.c:210: undefined reference to `lzma_index_end'
/tmp/buildd/libunwind-1.1/src/elfxx.c:207: undefined reference to `lzma_index_uncompressed_size'
/tmp/buildd/libunwind-1.1/src/elfxx.c:210: undefined reference to `lzma_index_end'
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libunwind.a(elf64.o): In function `_Uelf64_extract_minidebuginfo':
/tmp/buildd/libunwind-1.1/src/elfxx.c:278: undefined reference to `lzma_stream_buffer_decode'
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:131: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: Leaving directory '/root/sumo/build/release'
make[3]: *** [bin/sumo-wallet-rpc] Error 1
make[2]: *** [src/wallet/CMakeFiles/wallet_rpc_server.dir/all] Error 2
CMakeFiles/Makefile2:1286: recipe for target 'src/wallet/CMakeFiles/wallet_rpc_server.dir/all' failed
make[2]: Leaving directory '/root/sumo/build/release'
Makefile:138: recipe for target 'all' failed
make[1]: Leaving directory '/root/sumo/build/release

With this as my Docker script:

FROM debian:stretch-slim as builder

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        cmake \
        doxygen \
        git \
        graphviz \
        g++ \
        libboost-all-dev \
        libdb-dev \
        libevent-dev \
        libexpat1-dev \
        libgtest-dev \
        libminiupnpc-dev \
        libreadline-dev \
        libsodium-dev \
        libssl1.0-dev \
        libunbound-dev \
        libunwind8-dev \
        libzmq3-dev \
        make \
        pkg-config \
    && git clone https://github.com/sumoprojects/sumokoin.git /root/sumo \
    && cd /root/sumo \
    && rm -rf build \
    && make release-static

FROM debian:stretch-slim

WORKDIR /opt/sumo

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y --no-install-recommends \
        curl \
        software-properties-common \
        gnupg \
    && curl -sL https://deb.nodesource.com/setup_9.x | bash \
    && apt-get install -y nodejs \
    && npm install -g pm2 \
    && apt-get autoclean \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/*
    
COPY --from=builder /root/sumo/build/release/bin/* /opt/sumo/

EXPOSE 19734 19735

CMD ["pm2-docker", "process.json"]

Any idea how I can fix it?

[payments] Error with transfer RPC request to wallet daemon {"code":"ECONNRESET"}

Pool: https://github.com/billaue2/cryptonote-sumokoin-pool
Pool Config:

...
    "daemon": {
        "host": "10.42.8.83",
        "port": 19735
    },

    "wallet": {
        "host": "10.42.8.83",
        "port": 19734
    },
...

Pool Error: [payments] Error with transfer RPC request to wallet daemon {"code":"ECONNRESET"}

Daemon: https://github.com/sumoprojects/sumokoin
CMD: /daemon/sumokoind --log-level=0 --p2p-bind-ip=0.0.0.0 --p2p-bind-port=19734 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=19735 --data-dir=/daemon/data
Telnet OK from Pool to Daemon on Wallet port:

root@59fb45117d24:/usr/src/app/pool# telnet 10.42.8.83 19734
Trying 10.42.8.83...
Connected to 10.42.8.83.
Escape character is '^]'.

Both running on docker containers and communicating over a local docker network.
Is there any other security mechanism in the wallet that I have to consider when connecting remotely?

Complete Dockerfile:

FROM ubuntu:xenial

# Get needed packages
RUN apt-get update \
	&& apt-get install -y build-essential cmake libboost-all-dev libssl-dev pkg-config git g++ make libzmq3-dev

# Create app directory
RUN mkdir -p /daemon && mkdir -p /daemon/data && mkdir -p /daemon

# Install Daemon
WORKDIR /daemon/
RUN git clone https://github.com/sumoprojects/sumokoin.git src
WORKDIR /daemon/src/
RUN make -j 3

RUN mv /daemon/src/build/release/bin/* /daemon && rm -rf /daemon/src

ENV LOG_LEVEL 0
ENV P2P_BIND_IP 0.0.0.0
ENV P2P_BIND_PORT 19734
ENV RPC_BIND_IP 0.0.0.0
ENV RPC_BIND_PORT 19735
ENV DATA_DIR /daemon/data

EXPOSE 19734 19735

WORKDIR /daemon/
CMD /daemon/sumokoind --log-level=$LOG_LEVEL --p2p-bind-ip=$P2P_BIND_IP --p2p-bind-port=$P2P_BIND_PORT --rpc-bind-ip=$RPC_BIND_IP --rpc-bind-port=$RPC_BIND_PORT --data-dir=$DATA_DIR

Daemon netstats:

root@b903b67b4d9e:/daemon# netstat -luntp           
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:19734           0.0.0.0:*               LISTEN      12/sumokoind    
tcp        0      0 0.0.0.0:19735           0.0.0.0:*               LISTEN      12/sumokoind    

sumokoind synchronization message comes too early

2018-Jan-07 14:37:48.081165 [P2P1][74.111.100.10:19733 OUT]Synced 86332/88417
2018-Jan-07 14:37:57.367687 [P2P9]
**********************************************************************
You are now synchronized with the network. You may now start sumo-wallet-cli.

Please note, that the blockchain will be saved only after you quit the daemon with "exit" command or if you use "save" command.
Otherwise, you will possibly need to synchronize the blockchain again.

Use "help" command to see the list of available commands.
**********************************************************************

2018-Jan-07 14:38:07.397765 [P2P5][217.182.76.94:19733 OUT]Synced 86341/88644

As you can see above; somewhere in the code we think we're synchronized while in fact we are not.

Error while compiling under Ubuntu 14.04

/root/work/sumokoin/src/mnemonics/electrum-words.cpp: In function 'words_to_bytes':
/root/work/sumokoin/src/mnemonics/electrum-words.cpp:278:75: warning: 'language' may be used uninitialized in this function [-Wmaybe-uninitialized]
const std::vectorstd::string &word_list = language->get_word_list();
^
/root/work/sumokoin/src/mnemonics/electrum-words.cpp:273:23: note: 'language' was declared here
Language::Base language;
^
/tmp/ccYqXL4e.ltrans16.ltrans.o: In function tools::wallet2::load(std::string const&, std::string const&)': <artificial>:(.text+0x408f): undefined reference to boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::detail::copy_option, boost::system::error_code
)'
:(.text+0x4b3f): undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::detail::copy_option, boost::system::error_code*)'
collect2: error: ld returned 1 exit status

Build fails on RPi2

val_secalgo.c:258:8: error: dereferencing pointer to incomplete type DSA_SIG {aka struct DSA_SIG_st}
dsasig->r = R;

val_secalgo.c:291:11: error: dereferencing pointer to incomplete type ECSDA_SIG {aka struct ECDSA_SIG_st}
ecdsa_sig->r = BN_bin2bn(*sig, bnzise, ecdsa_sig->r);

val_secalgo.c:509:13: error: storage size of ctx isn't know
EVP_MD_CTX ctx;

GCC: 6.3.0

Typo on Sumokoin webpage

Under the heading "GUI Wallet", currently says:

Download one of the most intuitive GUI wallets in cryptocurrency world.

Should say

Download one of the most intuitive GUI wallets in the cryptocurrency world.

SUMOKOIN HARDWARE WALLET - DISCUSSION

@gustavoz will be taking up designing and prototyping Sumokoin's hardware wallet. He is an FPGA/ASIC (embedded hardware) designer with lots of experience on Trezor. He will present here his roadmap and progress (till this project gets its own space here). Everyone can contribute ideas and suggestions but please keep in mind that the main features of Sumokoin's H/W wallet will be absolute security and ease of use (So please avoid suggesting fancy features and help us focus on these two goals)

Genesis

Hello. How did you generated genesis block??

Wallet shows 0 balance

I downloaded and compiled the CLI tools. Ran the daemon until it synced completely. Opened up my wallet with the client and after hours of hanging on 2 blocks it finished, but now shows a balance of 0 and no transfers. Wallet should have transfers and some coins as well.

Edit. suddenly daemon shows this:
"Last scheduled hard fork time shows a daemon update is needed now."

I'm using the latest source from git.

Segmentation fault when sending sumo

Hi,

I tried to transfer some sumo to another address and this is what I get:

user@machine:~/crypto/sumokoin$ cd build/release/bin/    
user@machine:~/crypto/sumokoin/build/release/bin$ ./sumo-wallet-cli 
Sumokoin 'Sapporo' (v0.2.0.0-release)
Logging at log level 0 to /home/user/crypto/sumokoin/build/release/bin/./sumo-wallet-cli.log
Specify wallet file name (e.g., MyWallet). If the wallet doesn't exist, it will be created.
Wallet file name (or Ctrl-C to quit): idh-an
Wallet and key files found, loading...
Wallet password: ***************
Opened wallet: Sumoo6NgQzzDJ2oatX9o7YgVowuUk9mCEYeh8R7MshVp55AJpck7qyjKe52ijWheLJeJity4nymirNtpZmb43cquHn3bJsDA6YH
**********************************************************************
Use "help" command to see the list of available commands.
**********************************************************************
Starting refresh...
Refresh done, blocks received: 1                                
           Account               Balance      Unlocked balance                 Label
       0 Sumoo6NgQ          22.676000000          22.676000000       Primary account
-------------------------------------------------------------------------------------
             Total          22.676000000          22.676000000
Currently selected account: [0] Primary account
Balance: 22.676000000, unlocked balance: 22.676000000
Background refresh thread started
[wallet/0 Sumoo6NgQ]: transfer Sumonzivj7i8t15YwmptcXEn9btckE2pffYXr5zACi5jCNK9toBJDByehdvD7tWyBk44swbvLixGt1WAVqicuB4o58JKtixTSo5 20
Wallet password: ***************
** No mixin value specified, default mixin 12 will be used for this transaction.
No payment id is included with this transaction. Is this okay?  (Y/Yes/N/No): Y
Segmentation fault (core dumped)
user@machine:~/crypto/sumokoin/build/release/bin$

Here is a list of things to consider:

  • the machine has ubuntu 16.04 server as OS with all updates
  • the installed packages are just those stated by the readme
  • the daemon is running on the same machine
  • there are 3 wallets. I first sent sumo from address A (1st wallet) to the 2nd wallet's address (2nd Sumoo6NgQzzDJ2oatX9o7YgVowuUk9mCEYeh8R7MshVp55AJpck7qyjKe52ijWheLJeJity4nymirNtpZmb43cquHn3bJsDA6YH); after the new balance became unlocked I tried to transfer the same amount (ignoring fees) to the 3rd wallet's address (Sumonzivj7i8t15YwmptcXEn9btckE2pffYXr5zACi5jCNK9toBJDByehdvD7tWyBk44swbvLixGt1WAVqicuB4o58JKtixTSo5).

What happened and what can I do ?

Home dir under linux?

Hello, i'm using the precompiled version for ubuntu in debian.
So i'm using this on an external device, which is mounth in /media/blabla/ and the wallets are in /media/blabla/wallets. So each time i open a wallet, the ./wallet script keeps creating them in /home/user which i would not lile to happen.
Is there a way to specify to the ./wallet the home directory as /media/blabla/wallets?
Thanks guys

make debug fails

Trying to debug version tags/v0.2.0.0, I get the following error:

make debug
...
[ 88%] Linking CXX executable ../../bin/sumo-wallet-rpc
libwallet.so: undefined reference to Monero::TransactionHistoryImpl::label[abi:cxx11]() const' libwallet.so: undefined reference to Monero::TransactionHistoryImpl::subaddrAccount() const'
libwallet.so: undefined reference to `Monero::TransactionHistoryImpl::subaddrIndex() const'
collect2: error: ld returned 1 exit status
src/wallet/CMakeFiles/wallet_rpc_server.dir/build.make:122: recipe for target 'bin/sumo-wallet-rpc' failed
make[3]: *** [bin/sumo-wallet-rpc] Error 1
make[3]: Leaving directory '/home/jim/crypto/sumokoin/build/debug'
CMakeFiles/Makefile2:1251: recipe for target 'src/wallet/CMakeFiles/wallet_rpc_server.dir/all' failed
make[2]: *** [src/wallet/CMakeFiles/wallet_rpc_server.dir/all] Error 2
make[2]: Leaving directory '/home/jim/crypto/sumokoin/build/debug'
Makefile:138: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/jim/crypto/sumokoin/build/debug'
Makefile:36: recipe for target 'debug' failed
make: *** [debug] Error 2

Cryptonight algo tweak/ ASIC resistant algo

Since the need to fork to an asic resistant algo seems to be the only way to go atm, I am opening this for suggestions and discussion.
An integer division step is tried to be included but it seems to be killing GPUs as well.

Subaddresses vanish after rescan_bc

When you run rescan_bc you will lose the subaddresses.
You can see this in action below:

[wallet/0 Sumoo4yWx]: address new aloha
1  SuboQMHp8bocF86Xe9CHu4Gtkq5GbJvH9MbvfEqc3c5EcHYpgKJHUQUFNDnKbrL3kqa2cTc481F9WXZsiMh9kd7J5mwh2XzZmT  aloha 
[wallet/0 Sumoo4yWx]: address all
0  Sumoo4yWxpb88LRhrtZ4z2YKymG8nTnfnYPD65GcDmzZASWM4ohVUS1gTMe2cxrhDNTtqx41ULwsLNdF1z9YxAwvZEscipJTwCv  Primary address 
1  SuboQMHp8bocF86Xe9CHu4Gtkq5GbJvH9MbvfEqc3c5EcHYpgKJHUQUFNDnKbrL3kqa2cTc481F9WXZsiMh9kd7J5mwh2XzZmT  aloha 
[wallet/0 Sumoo4yWx]: rescan_bc
Starting refresh...
Refresh done, blocks received: 11                               
Currently selected account: [0] Primary account
Balance: 0.000000000, unlocked balance: 0.000000000
[wallet/0 Sumoo4yWx]: address all
0  Sumoo4yWxpb88LRhrtZ4z2YKymG8nTnfnYPD65GcDmzZASWM4ohVUS1gTMe2cxrhDNTtqx41ULwsLNdF1z9YxAwvZEscipJTwCv  Primary address 
[wallet/0 Sumoo4yWx]: 

sumo-wallet-rpc

HI,
I have problem with sumo-wallet-rpc
I don`t know start how daemon....

Can you help me , please.

Thank you.

Improve wallet API transaction error codes

The wallet API currently returns 3 different status codes:

      enum Status {                                                                
          Status_Ok,                                                               
          Status_Error,                                                            
          Status_Critical                                                          
      };   

This makes it very difficult for API users to understand what actually happened when a transaction cannot be executed. E.g. in the android wallet we can only tell the user that "The transaction failed" whereas it would be cooler if the API could return a Status_Insufficient_Funds so that we can provide more specific feedback to the user (or solve the issue in code).

Hope this makes sense. I'm happy to take this issue ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.