full-stack privacy application with enciphered messaging, monero multisig and built-in i2p marketplace
Find a file
2023-12-12 21:16:40 -05:00
.cargo update audit.toml 2023-05-06 01:42:31 -04:00
.github/workflows add workflow dispatch 2023-06-23 19:53:27 -04:00
assets update man.md 2023-06-12 11:17:04 -04:00
docs start msig parsing debug 2023-07-17 00:40:13 -04:00
neveko-auth tag release 0.4.8-alpha 2023-07-10 13:42:27 -04:00
neveko-contact tag release 0.4.8-alpha 2023-07-10 13:42:27 -04:00
neveko-core start prototyping customer txset release 2023-12-12 21:16:40 -05:00
neveko-gui add decrypted delivery info to gui 2023-12-12 21:15:59 -05:00
neveko-market start testing nasr implementation 2023-12-05 02:06:01 -05:00
neveko-message tag release 0.4.8-alpha 2023-07-10 13:42:27 -04:00
scripts enable experimental multisig on wallet creation 2023-10-07 18:38:22 -04:00
src increase server json limit for successful txset broadcast 2023-12-10 21:29:19 -05:00
.gitignore update monero version 2023-10-29 18:38:36 -04:00
.rustfmt.toml add rustfmt and fmtall.sh 2023-05-09 17:28:07 -04:00
Cargo.lock tag release 0.4.8-alpha 2023-07-10 13:42:27 -04:00
Cargo.toml tag release 0.4.8-alpha 2023-07-10 13:42:27 -04:00
LICENSE add license 2023-05-01 22:08:53 -04:00
README.md update mediator order injection and import multisig info 2023-11-17 03:54:35 -05:00

NEVEKO

NEVidebla-EKOnomia (invisible economy)

cargo-build cargo-audit

home

gpg and i2p made simple for E2EE marketplace, messaging and more

About

  • send messages over the invisible internet
  • vanity base32 addresses (advanced)
  • automated mandatory gpg key encryption
  • self-hosted i2p marketplace
  • xmr multisig / payment integration

Dev

  • stack - rust (egui, rocket), lmdb, i2p-zero, monero(rpc, daemon), gpg
  • install dependencies
    • ubuntu example: sudo apt update -y && sudo apt upgrade -y
    • sudo apt install -y libssl-dev build-essential libgpgme-dev
  • git clone https://github.com/creating2morrow/neveko
  • cd neveko && ./scripts/build_all_and_run.sh "-- -h"
  • Example to start neveko with remote stagenet node / i2p proxy remote for development:
    • ./scripts/build_all_and_run.sh "-- --monero-location monero-x86_64-linux-gnu-v0.18.3.1 --monero-rpc-host http://127.0.0.1:38083 --monero-rpc-daemon http://xmr3kaacphwkk4z2gp35bdl47lrrnzimmyqj4oliauqrjzqecofa.b32.i2p:38081 --monero-rpc-username user --monero-rpc-cred pass --remote-node --i2p-advanced --i2p-tunnels-json /home/user/neveko/i2p-manual/config --i2p-proxy-host http://x.x.x.x:xxxx --i2p-socks-proxy-host http://x.x.x.x:xxxx"
    • the --monero-location flag is needed even when using a remote node because neveko has its own monero-wallet-rpc instance
    • remote nodes are forced over the --i2p-proxy-host
  • Recommended neveko-core startup with full node and i2p-zero locally running:
    • ./scripts/build_all_and_run.sh "-- --monero-blockchain-dir=/home/user/.bitmonero --monero-location monero-x86_64-linux-gnu-v0.18.3.1 --i2p-zero-dir /home/user/i2p-zero-linux.v1.21/ --monero-blockchain-dir /home/user/.bitmonero"
    • monerod doesn't need to be running because neveko will start it and monero-wallet-rpc
    • gui will automatically detect monerod, rpc and i2p-zero if neveko core is started first
  • Neveko doesn't write logs to file. Use the command below to write to a log file:
      {NEVEKO_START_CMDS} > neveko.log 2>&1
    
  • gui built with rust egui

Installation Mananger

  • additional required software can be downloaded from the gui home or Binaries links below
  • hashes are in core lib.rs
  • download i2p-zero, put the path in the connection manager or cli --i2p-zero-dir flag
  • download monero, update connection manager or cli
    • --monero-blockchain-dir, where to put lmdb for monero (e.g. path/to/ssd)
    • --monero-location, path to monero download

Contributing and Releasing

| branch |                 |tag and release|
  dev     -----------------|-------------------------------------------->
  v0.1.0  -----------tag v0.1.0 (delete branch)
  v0.2.0                   |-------------------------------------------->
  main    -------------------------------------------------------------->
  • code on dev branch
  • run ./scripts/fmtall.sh before committing
  • pull request to dev branch
  • todo => TODO(name): detailed work
  • docs on all pub fn and pub struct
  • merge dev to vX.X.X
  • merge vX.X.X to main
  • tag release v.X.X.X every friday (if stable changes)
  • release binaries from the cargo-build-release workflow with notes
  • create next v.X.X+1.X branch and delete old release branch
  • release bug fixes as appropriate to v.X.X.X+1 branch when ready

Workflows

name branch purpose
cargo-build main,dev ensure code compilation and build success
cargo-audit main,dev run security audit against RustSec database
cargo-build-release v0.* publish production ready binaries

API

  • remote/programmatic access
  • secured by wallet signing
  • jwt and jwp
  • see curl.md

Binaries

  • neveko-auth - internal auth server
  • neveko-contact - internal add contacts server
  • neveko-gui - primary user interface
  • neveko-market - internal marketplace admin server
  • neveko-message - internal message tx/read etc. server
  • neveko - external primary server for contact share, payment, market, message rx etc.
  • monerod - (not included) monero-wallet-rpc needs this
    • can be overriden with remote node
    • use the --remote-node flag
  • monero-wallet-rpc - (not included) interface for xmr wallet ops
  • monero-wallet-cli - enable experimental multisig
  • i2p-zero - (not included) tunnel creation and http proxy

most of the complex logic stays in neveko-core, exported from lib.rs

Manual

the manual

Donations

This is just a hobby project but if anything here is useful donations are much appreciated! No need to send xmr, donating time is fine. Just test code if you can and open issues. Thanks!