Skip to content

Instantly share code, notes, and snippets.

@layters
Last active May 4, 2024 06:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save layters/83efdef0c5ea3d8ff458bfc312d11be3 to your computer and use it in GitHub Desktop.
Save layters/83efdef0c5ea3d8ff458bfc312d11be3 to your computer and use it in GitHub Desktop.
neroshop todo
# CORE
-[ ] i2pd integration into neroshop daemon
-[ ] multi-signature escrow system implementation
-[ ] custom FTS5 tokenizer that supports special characters and symbols
-[ ] correct and have kademlia routing algorithm audited
-[ ] find a way to cache fetched keys and values
-[ ] ignore all keys (from mappings table) if already stored in cache to speed up `get` requests
-[ ] do not add node to providers until we can verify that the node holds the data being provided
-[ ] product ratings should expire when the corresponding listing expires
-[ ] add seller reputation/ratings functions to seller.cpp
-[ ] sellers can only be rated once by each unique user
-[ ] users can only rate sellers that they have purchased from
-[ ] rename `avatars` folder to `users` to reflect the metadata type/name
-[x] allow sellers to limit quantity per customer order
-[ ] allow users to change their pgp/rsa key pairs
-[ ] remove i2psam from dependencies as soon i2pd is fully integrated
-[-] lua is not needed so remove it as well? (but I'm a lua addict so I dunno, I want to keep it)
-[ ] extend wallet class to support multiple cryptocurrencies (e.g. Wownero)
-[ ] add polyseed support or wait for seraphis upgrade?
-[ ] complete all currencies in currency_map.hpp
-[ ] add monero-lws (lightweight wallet server) support
-[ ] support resolving and sending funds to openalias addresses
-[ ] block incoming put and get requests to hard-coded bootstrap nodes, with the exception of map and get_provider requests
-[ ] upgrade e2e encryption or improve with forward secrecy
-[ ] sort listings by monero price rather than fiat price
-[ ] explore other bootstrapping methods besides hardcoding bootstrap nodes' IP and ports
-[ ] allow sending out requests directly to specific b32.i2p addresses
-[ ] internal qr code scanner for reading wallet addresses and parsing uris embeded within the qr code
-[ ] create WalletTxResult struct with message, error code, tx hash, etc.
# DAEMON
-[ ] proper way to terminate daemon upon GUI client closing
-[ ] require a valid `tid` for local GUI client requests
# GUI
-[ ] add a rect around the whole inventory table listview and titles
-[ ] add shipping section to product dialog
-[ ] only support pricing listings in USD and XMR to reduce complexity or not?
-[ ] product code validator
-[x] prevent invalid locations (ship from) from being submitted
-[ ] improve color scheme - some look really ugly (like the profile page for example)
-[ ] work on CartPage.qml
-[ ] work on OrderCheckoutPage.qml
-[ ] add option to hide wallet balance
-[ ] add scrollbar to rateDialog's textfield
-[ ] most recent transactions should be at top (WalletPage)
-[ ] include date and time in transactions underneath the Receive/Send texts (WalletPage)
-[ ] add additional transaction info (txhash, receipient, etc.) that can be shown/hidden (WalletPage)
-[ ] add list of subaddresses in addition to the primary address (WalletPage)
-[ ] display payment address QR codes containing Monero URIs aside from normal subaddresses (WalletPage)
-[ ] freeze fiat price at the moment a monero transaction is created (WalletPage)
-[ ] limit the number of characters a product tag can have
-[ ] allow only alphanumeric product tags, no special symbols except dashes
-[ ] If a listing has an expiration date, replace the remove button with a clock/timer icon instead in the InventoryTab (StorePage)
-[ ] when GUI is being blocked for a few seconds (e.g. connecting to a remote node), display some circular loading icon at center of window
-[ ] show user online status indicator on ProfilePage and on hover, display all recent sessions (b32.i2p address) or just the last session
-[ ] integrate product rating system in GUI
-[ ] integrate wishlists in GUI
-[ ] add "Top Vendors" section to HomePage
-[ ] change addressField and amountField to TextArea or not?
-[ ] update node list every x hours
# EXTERNAL
- [ ] restore QR-Code-generator submodule index (unless the repo goes missing)
- [ ] restore linenoise submodule index (unless the repo goes missing)
_**lua and sqlite dont need to be submodules since their src files are fetched from their respective websites.**_
# OS + BUILDS
- [ ] focus on porting to mobile after desktop
- [ ] make Dockerfile (I have zero experience with Docker)
# ROADMAP
1. complete i2pd integration
2. implement multisignature escrow
3. find volunteers to become bootstrap nodes (b32 i2p addresses will be hardcoded into the software)
4. stress test the network by having people create listings and send messages, and rate sellers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment