From 51e24a40bf187d762cabd0fc50677ec88fbaf1ee Mon Sep 17 00:00:00 2001 From: dsc Date: Wed, 27 Mar 2024 16:53:33 +0200 Subject: [PATCH] update readme --- README.md | 336 ++++++++++++++++++++++-------------------------------- 1 file changed, 134 insertions(+), 202 deletions(-) diff --git a/README.md b/README.md index 2f9a526a3..0429a63eb 100644 --- a/README.md +++ b/README.md @@ -1,217 +1,149 @@ -# ~~Mo~~Wownero - Such privacy! Many coins! Wow! 🐕 +# wownero-ng -Copyright (c) 2014-2023 The Monero Project. -Portions Copyright (c) 2012-2013 The Cryptonote developers. +This is a version of Wownero that is easier to integrate for third-party applications. -## Resources +Support: Linux only for now -- IRC: [OFTC #wownero](https://webchat.oftc.net/?channels=wownero) -- Web: [wownero.org](https://wownero.org) -- Twitter: [@w0wn3r0](https://twitter.com/w0wn3r0) -- Reddit: [/r/wownero](https://www.reddit.com/r/wownero) -- Mail: [wownero@wownero.org](mailto:wownero@wownero.org) -- Git: [git.wownero.com/wownero/wownero](https://git.wownero.com/wownero/wownero) -- Wownero Funding System: [funding.wownero.com](https://funding.wownero.com) -- Wownero Forum: [forum.wownero.com](https://forum.wownero.com) -- Discord: [discord.gg/ykZyAzJhDK](https://discord.com/invite/ykZyAzJhDK) -- Telegram: [t.me/wownero](https://t.me/wownero) -- Wowlet Desktop Wallet: [git.wownero.com/wowlet/wowlet](https://git.wownero.com/wowlet/wowlet/releases) -- Stack Wallet iOS & Android Mobile Wallet: [stackwallet.com](https://stackwallet.com) -- Wonerujo Android Mobile Wallet: [google store](https://play.google.com/store/apps/details?id=com.m2049r.wowwallet) -- Elite Wallet Android Mobile Wallet: [github](https://github.com/Elite-Labs/EliteWallet) -- Public Node Status: [monero.fail](https://monero.fail/?crypto=wownero) -- Wownero Memes: [suchwow.xyz](https://suchwow.xyz/posts/top) -- Market Info: [coinmarketcap.com](https://coinmarketcap.com/currencies/wownero), [coingecko.com](https://www.coingecko.com/en/coins/wownero/usd) +### Example -## Exchanges - -- [AltQuick](https://altquick.com/market/Wownero) -- [Majestic Bank](https://majesticbank.sc) -- [TradeOgre](https://tradeogre.com/exchange/BTC-WOW) - -### Blockchain Explorers - -- https://explore.wownero.com -- https://muchwow.lol - -## Introduction - -Wownero is a privacy-centric memecoin that was fairly launched on April 1, 2018 with no pre-mine, stealth-mine or ICO. Wownero has a maximum supply of around 184 million WOW with a slow and steady emission over 50 years. It is a fork of Monero, but with its own genesis block, so there is no degradation of privacy due to ring signatures using different participants for the same tx outputs on opposing forks. - -## Supporting the project - -Wownero is a 100% community-sponsored endeavor. Supporting services are also graciously provided by sponsors: - -[](https://www.macstadium.com) -[](https://www.jetbrains.com) - -Developers are volunteers doing this mostly for shits and giggles. If you would like to support our shenanigans and stimulant addictions, please consider donating to [WFS proposals](https://funding.wownero.com/proposals) or the dev slush fund. - -### Donation Addresses - -WOW: `Wo3MWeKwtA918DU4c69hVSNgejdWFCRCuWjShRY66mJkU2Hv58eygJWDJS1MNa2Ge5M1WjUkGHuLqHkweDxwZZU42d16v94mP` - -- view key: `e62e40bfd5ca7e3a7f199602a3c97df511780489e1c1861884b00c28abaea406` - -XMR: `44SQVPGLufPasUcuUQSZiF5c9BFzjcP8ucDxzzFDgLf1VkCEFaidJ3u2AhSKMhPLKA3jc2iS8wQHFcaigM6fXmo6AnFRn5B` - -- view key: `cb83681c31db0c79adf18f25b2a6d05f86db1109385b4928930e2acf49a3ed0b` - -BTC: `bc1qcw9zglp3fxyl25zswemw7jczlqryms2lsmu464` - -### Open Collective - -Open Collective is an online funding platform for open source software and collaborative communities. The platform brings together legal entities that act as a “Fiscal Host”, “Collectives” (unincorporated, community-based projects), and individuals interested in supporting projects with donations. Fiscal hosts hold donations for collectives in trust and handle all the taxes and legal stuff. - -Wownero is hosted by Open Collective Europe, a Brussels-based non-profit that hosts many other collectives, such as Manjaro, EndeavourOS, Xfce, and peertube.social. If you would like donate to the Wownero Project using this method, you can check out our [Wownero - Open Collective](https://opencollective.com/wownero) page. - -## Release staging and Contributing - -**Anyone is welcome to contribute to Wownero's codebase!** - -If you have a fix or code change, feel free to submit it as a pull request. Ahead of a scheduled software upgrade, a development branch will be created with the new release version tag. Pull requests that address bugs should be made to Master. Pull requests that require review and testing (generally, optimizations and new features) should be made to the development branch. All pull requests will be considered safe until the US dollar valuation of 1 Wownero equals $1000. After this valuation has been reached, more research will be needed to introduce experimental cryptography and/or code into the codebase. - -Things to Do, Work in Progress, and Help Wanted tasks are tracked in the [Meta](https://git.wownero.com/wownero/meta/issues) repo. - -Join `#wownero` on IRC OFTC to participate in development conversation. - -## Scheduled software upgrades - -Wownero uses a fixed-schedule software upgrade (hard fork) mechanism to implement new features. This means that users of Wownero (end users and service providers) should run current versions and upgrade their software on a regular schedule. The required software for these upgrades will be available prior to the scheduled date. Please check the repository prior to this date for the proper Wownero software version. Below is the historical schedule and the projected schedule for the next upgrade. -Dates are provided in the format YYYY-MM-DD. - -| Software upgrade block height | Date | Release Name | Minimum Wownero version | Recommended Wownero version | Details | -|-------------------------------|------------| ----------------- |-------------------------|-----------------------------| ---------------------------------------------------------------------------------- | -| 1 | 2018-04-01 | Awesome Akita | v0.1.0.0 | v0.1.0.0 | Cryptonight variant 1, ringsize >= 8, sorted inputs -| 69,69 | 2018-04-24 | Busty Brazzers | v0.2.0.0 | v0.2.0.0 | Bulletproofs, LWMA difficulty algorithm, ringsize >= 10, reduce unlock to 4 -| 53,666 | 2018-10-06 | Cool Cage | v0.3.0.0 | v0.3.1.3 | Cryptonight variant 2, LWMA v2, ringsize = 22, MMS -| 63,469 | 2018-11-11 | Dank Doge | v0.4.0.0 | v0.4.0.0 | LWMA v4 -| 81,769 | 2019-02-19 | Erotic EggplantEmoji | v0.5.0.0 | v0.5.0.2 | Cryptonight/wow, LWMA v1 with N=144, Updated Bulletproofs, Fee Per Byte, Auto-churn -| 114,969 | 2019-06-14 | F For Fappening | v0.6.1.0 | v0.6.1.2 | RandomWOW, new block weight algorithm, slightly more efficient RingCT format -| 160,777 | 2019-11-20 | Gaping Goatse | v0.7.0.0 | v0.7.1.0 | Only allow >= 2 outputs, change to the block median used to calculate penalty, rct sigs in coinbase forbidden, 4 unlock time as protocol rule -| - | 2020-06-28 | Hallucinogenic Hypnotoad | v0.8.0.0 | v0.8.0.2 | Dandelion++ support -| 253,999 | 2020-10-09 | Illiterate Illuminati | v0.9.0.0 | v0.9.3.3 | Dynamic coinbase unlock (up to 1 mo.), Deterministic unlock times, Enforce maximum coinbase amount, show_qr_code wallet command, CLSAG -| 331,170 | 2021-07-04 | Junkie Jeff | v0.10.0.0 | v0.10.2.0 | Bulletproofs+, Miner Block Header Signing, Vote by Block, Change coinbase unlock time to 1 day, Reset difficulty and switch back to Monero's difficulty algorithm -| 514,000 | 2023-04-01 | Kunty Karen | v0.11.0.0 | v0.11.1.0 | View tags, fee changes, adjusted dynamic block weight algorithm, multisig security fixes, RPC broadcast node donation sub-address, Limit tx_extra max size to ~1kb, 12-hour difficulty adjustment window - -X's indicate that these details have not been determined as of commit date. - -\* indicates estimate as of commit date - -## Installing from a package - -Packages are available for - -* Arch Linux/Manjaro - - yay -S wownero-git - -* Gentoo - Russian hacking tool - - emerge --noreplace eselect-repository - eselect repository enable monero - emaint sync -r monero - echo '*/*::monero ~amd64' >> /etc/portage/package.accept_keywords - emerge net-p2p/wownero - -* NixOS - - nix-shell -p wownero - -Packaging for your favorite distribution would be a welcome contribution! - -**DISCLAIMER: These packages are not part of this repository, and as such, do not go through the same review process to ensure their trustworthiness and security.** - - -## Building from Source - -* Docker - - git clone https://git.wownero.com/wownero/wownero && cd wownero - docker build -t git-wow:master -m 4g . - docker run -it -p 34567:34567 -p 34568:34568 -w /home/wownero/build/release/bin git-wow:master bash - -* Arch Linux/Manjaro - - sudo pacman -Syu && sudo pacman -S base-devel cmake boost openssl zeromq libpgm unbound libsodium git libusb systemd - git clone https://git.wownero.com/wownero/wownero && cd wownero - make -j2 - -* Debian/Ubuntu - - 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 libpgm-dev libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev git -y - git clone https://git.wownero.com/wownero/wownero && cd wownero - make -j2 - - -## Running Binaries - -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 the -foreground: - - ./bin/wownerod - -To list all available options, run `./bin/wownerod --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/wownerod --log-file wownerod.log --detach - -To run as a systemd service, copy -[wownerod.service](utils/systemd/wownerod.service) to `/etc/systemd/system/` and -[wow.conf](wow.conf) to `/etc/`. The [example -service](utils/systemd/wownerod.service) assumes that the user `wownero` exists -and its home is the data directory specified in the [example -config](wow.conf). - -Once node is synced to network, run the CLI wallet by entering: - - ./bin/wownero-wallet-cli - -Type `help` in CLI wallet to see standard commands (for advanced options, type `help_advanced`). +```bash +cmake -Bbuild . +make -Cbuild -j12 +sudo make -Cbuild install +``` -## Tor Anonymity Network +wownero-ng will be installed to `/usr/local/`, including a CMake config, which then allows: -### Ubuntu +```cmake +cmake_minimum_required(VERSION 3.25) +set(CMAKE_VERBOSE_MAKEFILE ON) -* `sudo apt-get update && sudo apt-get install tor -y` -* `sudo nano /etc/tor/torrc` +project(test) -add the following: -``` -HiddenServiceDir /var/lib/tor/wownero/ -HiddenServicePort 34569 127.0.0.1:34569 -HiddenServicePort 34566 127.0.0.1:34566 -HiddenServiceVersion 3 -``` -save and close nano +set(CMAKE_CXX_STANDARD 17) -* `sudo /etc/init.d/tor restart && sudo systemctl enable tor` -* copy [wow.conf](https://git.wownero.com/wownero/wownero/raw/branch/master/wow.conf) file and save it in same directory as `wownerod`. -* start wownerod like this: +find_package(Wownero 11.1.0 REQUIRED) +add_executable(test main.cpp) -``` -./wownerod --config-file=wow.conf +target_link_libraries(removeme PUBLIC wownero::mnemonics) ``` -* `sudo cat /var/lib/tor/wownero/hostname` - copy your onion address and share node with others [here](https://monero.fail/?crypto=wownero) and [here](https://forum.wownero.com/t/wownero-tor-onion-sites/623) +```cpp +#include "mnemonics/electrum-words.h" +#include "mnemonics/language_base.h" -To share your node over p2p, uncomment first line of wownerod.conf and add your onion address. - -More information on running Tor and i2p nodes is available [here](https://forum.wownero.com/t/how-to-setup-a-full-node-with-tor-i2p/588) - -### Access remote Tor node from CLI wallet +using namespace std; +int main() { + vector language_list; + crypto::ElectrumWords::get_language_list(language_list); + for(const auto &lang: language_list) { + cout << lang << "\n"; + } +} ``` -./wownero-wallet-cli --proxy 127.0.0.1:9050 --daemon-address iy6ry6uudpzvbd72zsipepukp6nsazjdu72n52vg3isfnxqn342flzad.onion:34568 -``` + +## Static builds + +Add `-DSTATIC=1` to the cmake command, as well as: + +- `-DOPENSSL_LIBRARIES=/usr/local/openssl/lib/` +- `-DOPENSSL_ROOT_DIR=/usr/local/openssl` +- `-DBOOST_ROOT=/usr/local` + +You'll need these dependencies in the static version: + +```bash +#!/bin/bash +#run as root/sudo + +export OPENSSL_ROOT_DIR=/usr/local/openssl/ +export CFLAGS="-fPIC" +export CPPFLAGS="-fPIC" +export CXXFLAGS="-fPIC" + +# boost +wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz +tar -xzf boost_1_73_0.tar.gz +pushd boost_1_73_0 +./bootstrap.sh +./b2 --with-atomic --with-system --with-filesystem --with-thread --with-date_time --with-chrono --with-regex --with-serialization --with-program_options --with-locale variant=release link=static runtime-link=static cflags="-fPIC" cxxflags="-fPIC" install -a --prefix=/usr/local/ +popd +rm -rf boost_1_73_0 + +# openssl +wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz +tar -xvf openssl-1.1.1i.tar.gz +rm -xvf openssl-1.1.1i.tar.gz +pushd openssl-1.1.1i +./config no-shared no-dso --prefix=/usr/local/openssl +make -j8 +make install +popd +rm -rf openssl-1.1.1i + +# expat +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 +pushd expat-2.4.8 +./configure --enable-static --disable-shared --prefix=/usr/local/expat/ +make -j8 +make -j8 install +popd +rm -rf expat-2.4.8 + +# libunbound +wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.16.2.tar.gz +tar -xzf unbound-1.16.2.tar.gz +rm unbound-1.16.2.tar.gz +pushd unbound-1.16.2 +./configure --disable-shared --enable-static --without-pyunbound --with-libexpat=/usr/local/expat/ --with-ssl=/usr/local/openssl/ --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --with-pic +make -j8 +make -j8 install +popd +rm -rf unbound-1.16.2 + +# zmq +git clone -b v4.3.2 --depth 1 https://github.com/zeromq/libzmq +pushd libzmq +git reset --hard a84ffa12b2eb3569ced199660bac5ad128bff1f0 +./autogen.sh +./configure --disable-shared --enable-static --disable-libunwind --with-libsodium +make -j8 +make -j8 install +popd +rm -rf libzmq + +# zlib +git clone -b v1.2.11 --depth 1 https://github.com/madler/zlib +pushd zlib +git reset --hard cacf7f1d4e3d44d871b605da3b647f07d718623f +./configure --static --prefix=/usr/local/zlib +make -j8 +make -j8 install +popd +rm -rf zlib + +# libusb +git clone -b v1.0.23 --depth 1 https://github.com/libusb/libusb +pushd libusb +git reset --hard e782eeb2514266f6738e242cdcb18e3ae1ed06fa +./autogen.sh --disable-shared --enable-static +make -j8 +make -j8 install +popd +rm -rf libusb + +# libsodium +# on ubuntu, `libsodium-dev` already comes with a static .a + +# miniupnp +git clone -b miniupnpc_2_2_1 --depth 1 https://github.com/miniupnp/miniupnp.git +pushd miniupnp/miniupnpc +git reset --hard 544e6fcc73c5ad9af48a8985c94f0f1d742ef2e0 +cmake -Bbuild -DUPNPC_BUILD_STATIC=1 -DUPNPC_BUILD_SHARED=OFF -DUPNPC_BUILD_TESTS=OFF -DUPNPC_BUILD_SAMPLE=OFF . +sudo make -Cbuild -j8 install +popd +rm -rf miniupnp +``` \ No newline at end of file