Skip to content

DonW16/testshop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

neroshop - WORK IN PROGRESS

banner

A P2P (peer-to-peer) marketplace for Monero users

Table of contents

Demo

Click to load images

Wallet Keys Generation Registration CatalogGrid Top CatalogGrid Bottom

Building neroshop

Dependencies

✔️ = Currently in use; ⭕ = Optional; ❌ = Not currently in use or removed; ❔ = Not yet in use, but up for consideration

Library Minimum Ver. Purpose Status
monero-cpp latest monero wallet and payment system ✔️
libbcrypt 1.3 password hashing
sqlite3 3.38.0 database management ✔️
QR Code generator ? qr code generation ✔️
json ? json parsing ✔️
curl ? currency conversion ✔️
openssl 1.1.1 for curl, sha256 sum and message encryption ✔️
Qt 5.12.8 graphical user interface ✔️
libuv ? networking and child process ✔️
raft ? consensus mechanism ✔️
stduuid ? order number generation ✔️
linenoise ? command line interface ✔️ ⭕
lua 5.1.5 configuration script ✔️
libpng 1.6.37 image exportation ✔️
zlib 1.2.12 for libpng ✔️
openpgp ? public-key encryption and digital signatures

Compiling neroshop from source

0. Clone neroshop (and its submodules)

git clone --recurse-submodules https://github.com/larteyoh/testshop.git
cd testshop

1. Install dependencies

Debian/Ubuntu

# prerequisites
sudo apt install build-essential cmake git
# neroshop
sudo apt install libcurl4-openssl-dev libssl-dev libuv1-dev qtdeclarative5-dev qml-module-qt-labs-platform qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-shapes
# monero-cpp (monero)
sudo apt update && sudo apt install pkg-config libssl-dev libzmq3-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler 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 python3 ccache

Arch (needs to be updated)

# prerequisites
sudo pacman -Sy --needed base-devel cmake git
# neroshop
sudo pacman -Sy --needed curl openssl libuv
# monero-cpp (monero)
sudo pacman -Syu --needed boost openssl zeromq libpgm libsodium libunwind xz readline gtest python3 ccache qt5-tools hidapi libusb protobuf systemd

Fedora (needs to be updated)

# prerequisites
sudo dnf install gcc gcc-c++ make cmake git
# neroshop
sudo dnf install libcurl-devel openssl-devel libuv-devel libuv-static
# monero-cpp (monero)
sudo dnf install boost-static libstdc++-static pkgconf boost-devel openssl-devel zeromq-devel openpgm-devel libsodium-devel libunwind-devel xz-devel readline-devel gtest-devel ccache qt5-linguist hidapi-devel libusbx-devel protobuf-devel protobuf-compiler systemd-devel

2. Update monero-cpp submodules

cd external/monero-cpp && ./bin/update_submodules.sh
cd external/monero-project

3. Install expat (dependency of unbound) and unbound:

wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2
tar -xf expat-2.4.8.tar.bz2
rm expat-2.4.8.tar.bz2
cd expat-2.4.8
./configure --enable-static --disable-shared
make
sudo make install
cd ../
wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.16.1.tar.gz
tar -xzf unbound-1.16.1.tar.gz
rm unbound-1.16.1.tar.gz
cd unbound-1.16.1
./configure --disable-shared --enable-static --without-pyunbound --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --with-pic
make
sudo make install
cd ../

For Fedora users, you may need to add this line under the "find_package(Boost .." in case of an "undefined reference to icu_*" error: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -licuio -licui18n -licuuc -licudata")

4. Build monero-project to create .a libraries

make release-static
cd ../../../../

5. Build neroshop

To build with CMake:

# Build external libraries
cd external/
cmake -G"Unix Makefiles"
make
cd ..

# Build neroshop
cd build
cmake ..
make

# Run neroshop
./neroshop

To build with Premake (experimental - broken for now):

# Build external libraries
cd external/
premake5 gmake
cd ../build && make

# Build neroshop
cd ..
premake5 gmake
cd build && make

# Run neroshop
./bin/Debug/neroshop

To build for Android (requires Android NDK):

Contact

[email protected]

About

A P2P marketplace for Monero users (testsuite)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.5%
  • QML 3.1%
  • CMake 1.2%
  • Lua 0.2%