creating2morrow / neveko Goto Github PK
View Code? Open in Web Editor NEWfull-stack privacy application with enciphered messaging, monero multisig and built-in i2p marketplace
License: MIT License
full-stack privacy application with enciphered messaging, monero multisig and built-in i2p marketplace
License: MIT License
always getting destination lease set not found
unless using i2pd http proxy
async background thread to send messages to user when back online. see message.rs
in the core module
add more wallet functionality (multisig, history etc.)
add instructions for neveko-market plugin to the man.md
show wallet height versus current known tip
support subaddress per jwp and change proof validation to check the subaddress exists instead using primary address
https://github.com/creating2morrow/nevmes/blob/main/nevmes-core/src/proof.rs#L127
pop-up like the connection manager. option to install monero, i2p, i2p-zero and verify hashes
Approve stays up on subsequent jwp creation although the fee estimator has not finished scanning. Check that transfer is possible on subsequent jwp creation requests before allowing the Approve button to appear.
add the ability to create a new i2p base 32 address with vanity option and new gpg key for the new identity
in progress
wip
edge case for when tx proof is generated but timeout before jwp is created. need to add a retry button. see address_book.rs
in the gui module
Using Monero keys implement the capability for users to broadcast encrypted messages to subscribers, or vendors to broadcast to multiple customers etc.
(1) Alice generates a random session key, K, and encrypts M using K.
E (M)
K(2) Alice gets Bob’s, Carol’s, and Dave’s public keys from the database.
(3) Alice encrypts K with Bob’s public key, encrypts K with Carol’s public key, and then
encrypts K with Dave’s public key.
E (K), E (K), E (K)
B C D(4) Alice broadcasts the encrypted message and all the encrypted keys to anybody who cares
to receive it.
E (K), E (K), E (K), E (M)
B C D K(5) Only Bob, Carol, and Dave can decrypt the key, K, each using his or her private key.
(6) Only Bob, Carol, and Dave can decrypt Alice’s message using K.
Reference:
Schneier, B. (2015). Front Matter. In Applied Cryptography, Second Edition, B. Schneier (Ed.). https://doi.org/10.1002/9781119183471.fmatter
existing async fn should call the new functions
Hi, just found this project. Looks very cool!
When I try to run the neveko app, it complains that it cannot find monerod. I am running monerod on a different machine on my network. Can you please implement an option to supply a remote monero node address? Thanks.
These neveko instances should have the ability to distribute more expensive JWP's and allow an archival system of encrypted messages while users are offline. They could also have secondary functionality of matching Monero address to i2p base 32 address. This should facilitate sending messages to any Monero address registered with these operator nodes.
filter by .b32.i2p address, inbound, outbound
if there errors on startup it is currently difficult to reset the password without using monero-wallet-rpc directly. see #23
currently neveko -> neveko traffic is over i2p but neveko -> monero-wallet-rpc is over clearnet. change --remote-node
flag to add the --proxy
flag to startup on monero-wallet-rpc
Would you welcome a PR to add support for MacOS?
After startup, the app seems to properly create the wallet file, but the rpc client cannot connect to it afterwards.
From the log output:
2023-06-21T20:26:54.973831Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:54.973832Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:54.974338Z DEBUG hyper::client::pool: reuse idle connection for ("http", localhost:38083)
2023-06-21T20:26:54.974339Z DEBUG hyper::client::pool: reuse idle connection for ("http", localhost:38083)
2023-06-21T20:26:54.974552Z DEBUG hyper::proto::h1::io: flushed 400 bytes
2023-06-21T20:26:54.974551Z DEBUG hyper::proto::h1::io: flushed 510 bytes
2023-06-21T20:26:54.974791Z DEBUG hyper::proto::h1::io: parsed 5 headers
2023-06-21T20:26:54.974810Z DEBUG hyper::proto::h1::conn: incoming body is content-length (103 bytes)
2023-06-21T20:26:54.974850Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:54.974971Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:54.975128Z DEBUG neveko_core::monero: get_version response: Ok(XmrRpcVersionResponse { result: XmrRpcVersionResult { version: 65562 } })
2023-06-21 20:26:58.707 E portable_storage: wrong binary format - signature mismatch
2023-06-21 20:26:58.707 E !r. THROW EXCEPTION: error::invalid_password
2023-06-21T20:26:58.710331Z DEBUG hyper::proto::h1::io: parsed 5 headers
2023-06-21T20:26:58.710366Z DEBUG hyper::proto::h1::conn: incoming body is content-length (115 bytes)
2023-06-21T20:26:58.710435Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:58.710605Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.711068Z DEBUG neveko_core::monero: open_wallet response: Ok("{\r\n \"error\": {\r\n \"code\": -1,\r\n \"message\": \"Failed to open wallet\"\r\n },\r\n \"id\": \"0\",\r\n \"jsonrpc\": \"2.0\"\r\n}")
2023-06-21T20:26:58.711764Z INFO neveko_core::monero: executing get_address
2023-06-21T20:26:58.791446Z DEBUG reqwest::connect: starting new connection: http://localhost:38083/
2023-06-21T20:26:58.791832Z DEBUG hyper::client::connect::dns: resolving host="localhost"
2023-06-21T20:26:58.792081Z DEBUG hyper::client::connect::http: connecting to 127.0.0.1:38083
2023-06-21T20:26:58.792512Z DEBUG hyper::client::connect::http: connected to 127.0.0.1:38083
2023-06-21T20:26:58.793137Z DEBUG hyper::proto::h1::io: flushed 193 bytes
2023-06-21T20:26:58.793553Z DEBUG hyper::proto::h1::io: parsed 7 headers
2023-06-21T20:26:58.793587Z DEBUG hyper::proto::h1::conn: incoming body is content-length (98 bytes)
2023-06-21T20:26:58.793662Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:58.793865Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.794507Z DEBUG hyper::client::pool: reuse idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.794776Z DEBUG hyper::proto::h1::io: flushed 429 bytes
2023-06-21T20:26:58.795047Z DEBUG hyper::proto::h1::io: parsed 5 headers
2023-06-21T20:26:58.795068Z DEBUG hyper::proto::h1::conn: incoming body is content-length (109 bytes)
2023-06-21T20:26:58.795113Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:58.795224Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.795378Z DEBUG neveko_core::monero: get_address response: Err(reqwest::Error { kind: Decode, source: Error("missing field `result`", line: 8, column: 1) })
2023-06-21T20:26:58.796207Z INFO neveko_core::monero: executing get_balance
2023-06-21T20:26:58.877866Z DEBUG reqwest::connect: starting new connection: http://localhost:38083/
2023-06-21T20:26:58.878008Z DEBUG hyper::client::connect::dns: resolving host="localhost"
2023-06-21T20:26:58.878342Z DEBUG hyper::client::connect::http: connecting to 127.0.0.1:38083
2023-06-21T20:26:58.878559Z DEBUG hyper::client::connect::http: connected to 127.0.0.1:38083
2023-06-21T20:26:58.879041Z DEBUG hyper::proto::h1::io: flushed 252 bytes
2023-06-21T20:26:58.879370Z DEBUG hyper::proto::h1::io: parsed 7 headers
2023-06-21T20:26:58.879405Z DEBUG hyper::proto::h1::conn: incoming body is content-length (98 bytes)
2023-06-21T20:26:58.879477Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:58.879636Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.880159Z DEBUG hyper::client::pool: reuse idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.880332Z DEBUG hyper::proto::h1::io: flushed 488 bytes
2023-06-21T20:26:58.880501Z DEBUG hyper::proto::h1::io: parsed 5 headers
2023-06-21T20:26:58.880524Z DEBUG hyper::proto::h1::conn: incoming body is content-length (109 bytes)
2023-06-21T20:26:58.880560Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-06-21T20:26:58.880658Z DEBUG hyper::client::pool: pooling idle connection for ("http", localhost:38083)
2023-06-21T20:26:58.880791Z DEBUG neveko_core::monero: get_balance response: Err(reqwest::Error { kind: Decode, source: Error("missing field `result`", line: 8, column: 1) })
2023-06-21T20:26:58.881707Z INFO neveko_core::monero: executing close_wallet
needs some tweaking and more options. see home.rs
in the gui module
screen locks while in use
build a one-click solution for p2pool mining in the neveko-gui. add it to the main toolbar
lots of missing and undocumented internal APIs in the admin/micro servers.
2023-06-29 08:37:59.573 E !ok || (res.txs.size() != 1 && res.txs_as_hex.size() != 1). THROW EXCEPTION: error::wallet_internal_error
Ability to connect to an external http proxy server without using i2p from neveko
need better documentation on fn
and struct
. also something to standardize code format
use the same logic as auth.rs
. after setting wallet password (#11) require the user to sign a random 32-byte message with the wallet password on subsequent logins
Investigate using some open source AI for multisig wallet.In the neveko-market 2/3 multisig wallets that are created for each order one participant should be a proven / trusted AI that
Should be able to:
in gui use the credential that is set on login / screen. add update_wallet_password rpc logic
takes too long with remote node
Seems it can only be enabled from cli for now. Will need to write a workaround or wait for it to become stable before completing kex automated orchestration.
for server controller tests, app startup, software installation, monero-rpc connectivity, etc.
currently gui allow clicking create jwp
even if there are not enough funds to create it. add estimated fee call + invoice amount to check and hide that button if transfer will fail.
trying to install wallet.
I received error sayin Daemon failed to start.
unknown error
please check your wallet and daemon log for errors. you can also try to start monerod.exe manually
what to do?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.