forked from ethereum/aleth
-
Notifications
You must be signed in to change notification settings - Fork 0
TODO
subtly edited this page Jun 28, 2014
·
22 revisions
- Check VM unit tests are good.
- VM unit tests should include calls.
- Full state unit tests.
- Tests for trie ref counting.
- Include files in LLL.
- Compiler & code-gen library for LLL.
GUI
- Make address/block chain list model-based, JIT populated.
- Make everything else model-based.
- Qt/QML class.
Core
- Signalling for changes to State.
Thread-Safety
- BlockChain
- TransactionQueue
- State
Cleanups & caching
- All caches should flush unused data (I'm looking at you, BlockChain) to avoid memory overload.
Network:
- "Error sending: Broken pipe" should only display once before killing session.
- Genesis block to encode network/PoC version.
Crypto stuff:
- kFromMessage
- Check all the tweak instructions.
Network:
- *** Exponential backoff on bad connection.
- *** Handle exception when no network.
- *** Only download blocks from one peer at once.
- Parallelise block download.
- Better handling of bad blocks
- Track which peers passed which blocks and punish them.
- Don't pass on block until they're known good.
- NotInChain will be very bad for new peers - it'll run through until the genesis.
- Check how many it has first.
- Crypto on network - use id as public key?
- Make work with IPv6
- Peers rated.
- Useful/useless - new blocks/transactions or useful peers?
- Solid communications?
- Strategy for peer suggestion?
Cleanups & caching
- State DB should keep only last few N blocks worth of nodes (except for restore points - configurable, defaults to every 30000th block - all blocks that are restore points should be stored so their stateRoots are known good).
- Logger: cleanup windows-specific code, determine impact of Release vs Debug, settings
General:
- Better logging.
- Colours.
- Move over to new system.
Robustness
- Remove aborts
- Recover from all exceptions.
- Especially RLP & other I/O.
- RLP should never assert; only throw.
- Better handling of corrupt blocks.
- Kill DB & restart.
GUI:
- Turn on/off debug channels.
Trie on DB.
- Move the restore point stuff into block restore points
- i.e. keep all nodes from last 127 blocks with counter, at 128, kill but keep every (60247)th or so i.e. one per week as a restore point.
- maybe allow this to be configured.
- Building on Linux
- Building on MacOS
- Building on Windows
- Compatibility Info and Build Tips
- Serpent LLL Only Build
- LLL PoC 6
- [LLL Examples for PoC 6](LLL Examples for PoC 5)
- PoC 6 JS API
- Client Development with PoC 6
- MetaCoin API
- Exchange API
- Name Registration API
- Coins API