Compiling and Running yoyow-core

Installation Dependence:

sudo apt-get update
sudo apt-get install autoconf cmake make automake libtool git libboost-all-dev libssl-dev g++ libcurl4-openssl-dev

Compile Script:

git clone https://github.com/yoyow-org/yoyow-core.git
cd yoyow-core
git checkout yy-mainnet # may substitute "yy-mainnet" with current release tag
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make yoyow_node
make yoyow_client

Running:

After the compilation is completed, two binary files are generated, yoyow_node and yoyow_client.

Yoyow_node is generally called a node program and is mainly used to connect to a blockchain network. The functions include synchronizing data on the chain, broadcasting transactions, and providing basic API, etc.

Yoyow_client is generally called a client program. It further encapsulates the API provided by the node program to provide users with a more friendly API. It also provides private key storage management and cryptographic signature function, so it is also called a wallet program.

Node Program

./programs/yoyow_node/yoyow_node

When the node program runs, it automatically creates a directory witness_node_data_dir that stores data and configuration files. It takes several hours to synchronize all the data. After the synchronization is completed, you can stop the operation with Ctrl+C.

It should be noted that after inputting Ctrl+C, the program will continue to run for a while. Do not type Ctrl+C again. Otherwise, the database will be inconsistent. It may take a long time to replay the next time you start the node.

After receiving Ctrl+C, the program will print out in the log

1553960ms asio       main.cpp:238                  operator()           ] Caught SIGINT attempting to exit cleanly
1553960ms th_a       main.cpp:251                  main                 ] Exiting from signal 2

At this point, wait patiently for the program to exit.

When the node program runs, the websocket interface is not opened by default, and you need to add parameters when executing.

./programs/yoyow_node/yoyow_node --rpc-endpoint 127.0.0.1:8090

You can also directly modify the configuration of rpc-endpoint in the configuration file witness_node_data_dir/config.ini.

Client Program (Wallet)

The client program needs to connect to the websocket interface of the node program at runtime. By default, it will try to connect to 127.0.0.1:8090. You can also use the -s parameter to specify other addresses.

./programs/yoyow_client/yoyow_client -s ws://47.52.155.181:10011

The client program provides a command line that can be interactive. You can perform some operations by typing the relevant commands through the command line.

As mentioned above, the client program saves the private key. For security reasons, in the operation of using the private key, you need to use the password to unlock the client. The password settings and unlock command are as follows:

>>> set_password <PASSWORD>
>>> unlock <PASSWORD>

Then you can import the private key

unlocked >>>  import_key <account> <private_key>

More supported commands can be viewed with the help command or by looking at the wallet api documentation.