ukoehb / monero Goto Github PK
View Code? Open in Web Editor NEWThis project forked from monero-project/monero
Monero: the secure, private, untraceable cryptocurrency
Home Page: https://getmonero.org
License: Other
This project forked from monero-project/monero
Monero: the secure, private, untraceable cryptocurrency
Home Page: https://getmonero.org
License: Other
I think the majority of these are useful for wallet users.
If all implemented, we would be able to easily maintain compatibility between the Seraphis lib and wallet2 (can import a Seraphis lib-based wallet into a complete and consistent wallet2-based wallet).
key_offsets
of txs which include a received enote in their ringunlock_time
on spend origin contextkey_offsets
for spent enotesis_older_than
for pre-RCT enotes in the same block (#42 (comment))m_transfers
container from a Seraphis enote storecryptonote::transcaction
on_money_received
, on_money_spent
, on_skip_transaction
In some places (for example here), code specific to the ed25519 elliptic curve leaks into the Seraphis logic.
It would make sense to abstract that away. Makes more sense in the context of the proposal to switch to a different curve, but also would make it easier to check that the code matches the Seraphis specification.
Would be nice if the scanner picked up payment ID's for users who use and have used the feature in the past.
Looks like it could be well suited for LegacyBasicEnoteRecord
, LegacyIntermediateEnoteRecord
, and LegacyEnoteRecord
Here's the logic wallet2 uses to identify and decrypt payment ID's: https://github.com/monero-project/monero/blob/c8214782fb2a769c57382a999eaf099691c836e7/src/wallet/wallet2.cpp#L2699-L2761
When there is >1 tx pub key included in tx extra:
When the first additional pub keys vector in tx extra has unequal number of pub keys than there are enotes in the tx:
It is unsafe to use raw threadpool references everywhere. Instead, use std::shared_ptr
.
The actual threadpool constructor can be hidden and only usable by a wrapper class that stores a shared_ptr of the threadpool. Then overload operator*
/operator->
to dereference to the inner threadpool.
Continuing from point 2 in this comment in the async scanner: #23 (comment)
Ideally wallets minimize round trips to the daemon when loading. This was the idea behind returning pool txs in the /getblocks.bin
endpoint: monero-project#8076
The Seraphis lib scanner currently does 1) scan chain -> 2) scan pool -> 3) scan chain in a scan pass, which would require a minimum of 3 round trips to the daemon. @UkoeHB mentioned:
I intentionally added a follow-up pass because there is a race condition between chain scanning and pool scanning that can cause mined blocks to contain txs invisible to a wallet even after it claims to have scanned the pool.
Proposed solution to this problem: ensure that when the /getblocks.bin
endpoint returns pool txs, those pool txs correspond to the state of the pool at the top_block_hash
also returned by the endpoint (to be clear, this would be a change to the daemon RPC side). This way the scanner can be certain that once it has scanned up to chain tip, it knows the state of the pool at that time.
Some issues with the TXID calculation:
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.