neveko

full-stack privacy application with enciphered messaging, monero multisig and built-in i2p marketplace

MIT License

Stars
21

NEVEKO

NEVidebla-EKOnomia (invisible economy)

i2p made simple for E2EE marketplace, messaging and more

About

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

Dev

  • stack - rust (egui, rocket), lmdb, i2p, monero(rpc, daemon)
  • install dependencies
    • ubuntu example: sudo apt update -y && sudo apt upgrade -y
    • sudo apt install -y libssl-dev build-essential
  • git clone --recursive 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.4 --monero-rpc-host http://127.0.0.1:18083 --monero-rpc-daemon http://xmr3kaacphwkk4z2gp35bdl47lrrnzimmyqj4oliauqrjzqecofa.b32.i2p:18081 --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-socks-proxy-host
  • Recommended neveko-core startup with full node:
    • ./scripts/build_all_and_run.sh "-- --monero-blockchain-dir=/home/user/.bitmonero --monero-location monero-x86_64-linux-gnu-v0.18.3.4 --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 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
  • copy the certificates directory from j4-i2p-rs to neveko root
  • see j4-i2p-rs for more information on embedded i2p
  • darknet release server links are located at: http://neveko.i2p/index.txt

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 - monero-wallet-rpc needs this
    • can be overriden with remote node
    • use the --remote-node flag
  • monero-wallet-rpc - interface for xmr wallet ops

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

Manual

the manual

Donations

This is a research project as of v0.1.0-beta but if anything here is useful donations are much appreciated! Features and bug fixes aren't guaranteed by donations but they will supply coffee for devs on sleepless nights!

87TzQS4g6mN4oAcEhcnEHGCxw9bFwMXR8WHJEEZoCd7tPHgcH3NsiCF5FSWSkKYVa7EYJjuosPZBiNAh9LqHaRSiBUhsAcC