Metaverse(MVS) is a decentralised system based on the blockchain technology, through which, a network of smart properties, digital identities and value intermediators are established.
Metaverse Features:
- Digital Assets Register/Transfering
- Digital Identity
- Oralces
- Decentralized Exchange
Compilier | Minimum Version | Recommanded Version |
---|---|---|
gcc/g++ | 5.0 | 9.0.0+ |
clang++ | 3.4 (8.0.0) | 10.0.0+ |
MSVC | 19.0 (VS2015) | VS2019 |
C++ compiler support C++14 standard or newer. Dependencies of MVS binaris are static linked (including libstdc++).
- cmake 3.0+
- git
- automake (speck256k1/ZeroMQ)
$ yum/brew/apt-get install git cmake
$ yum/brew/apt-get install autoconf automake libtool pkg-config
Installing ZeroMQ
secp256k1
automatically by:
$ sudo ./install_dependencies.sh
Installing boost
upnp
automatically by:
$ sudo ./install_dependencies.sh --build-boost --build-upnpc
$ sudo yum/brew/apt-get install libboost-all-dev
$ wget https://github.com/zeromq/libzmq/releases/download/v4.2.1/zeromq-4.2.1.tar.gz
$ tar -xzvf zeromq-4.2.1.tar.gz
$ cd zeromq-4.2.1
$ ./autogen.sh
$ ./configure
$ make -j4
$ sudo make install && sudo ldconfig
server/explorer
requires ZeroMQ.
$ git clone https://github.com/mvs-org/secp256k1
$ cd secp256k1
$ ./autogen.sh
$ ./configure --enable-module-recovery
$ make -j4
$ sudo make install && sudo ldconfig
Sometimes we may got the following compile error undefined reference to '__gmpn_sub_n' ...
See more details here #issue209
$ ./configure --enable-module-recovery --with-bignum=no
$ wget http://miniupnp.tuxfamily.org/files/miniupnpc-2.0.tar.gz
$ tar -xzvf miniupnpc-2.0.tar.gz
$ cd miniupnpc-2.0
$ make -j4
$ sudo INSTALLPREFIX=/usr/local make install && sudo ldconfig
blockchain/network
requires upnp if specified.
$ git clone https://github.com/mvs-org/metaverse.git
$ cd metaverse && mkdir build && cd build
$ cmake -DUSE_UPNP=OFF ..
$ make -j4
$ make install
To enable UPnP, use cmake ..
instead.
optional:
$ make test (should install boost_unit_test_framework)
$ make doc (should install doxygen and graphviz)
-
mvsd - server program
Runs a full metaverse node in the global peer-to-peer network. -
mvs-cli - client program
Sent your request to the server, the server will process it and return response to your client.
$ cd bin
$ ./mvsd
$ ./mvs-cli
$ ./mvs-cli getnewaccount -h
$ ./mvs-cli $command $params $options
Read More Command line usage and Configuration file.
Install Docker.
wget qO https://get.docker.com/ | sh
git clone https://github.com/mvs-org/metaverse.git
cd metaverse
docker build -t metaverse -f docker/Dockerfile .
Where is your built image? It’s in your machine’s local Docker image registry:
docker images
docker run -p 8820:8820 metaverse
curl -X POST --data '{"jsonrpc":"2.0","method":"getinfo","params":[],"id":25}' http://127.0.0.1:8820/rpc/v2
Run mvs-cli
commands via docker exec
command. Example:
docker exec metaverse mvs-cli getinfo
An example docker-compose file can be found at docker/docker-compose.yml
.
docker-compose -f docker/docker-compose.yml up
# OR
cd docker
docker-compose up -d
# Use CLI
docker-compose exec mvs-cli getheight
Cross compile mvs using Docker in ubuntu 16.04
you need to change to root when executing the flowing command.
check versin first, linux kerne and docker version:
host docker >= 17.05.0-ce
host kernel >= 4.8
install qemu:
apt-get install qemu-user-static
Clone the mvs source. then enter mvs source directory, then run:
// for arm 64 (eg: aarch64, armv8(and abover))
sudo bash ./cross-build.sh arm64
When everything ok, the binary file and .so/.a file will be found in output directory.