3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-01-31 15:22:16 +00:00
altcoinj/TODO
Mike Hearn 06ad3e5bb1 Patch 6 from Steves lazy parsing patchset:
Deduping related optimizations. This code will be removed later.
2011-10-14 12:27:16 +00:00

64 lines
2.4 KiB
Plaintext

Here is a brief list of things that still need to be done.
More unit tests:
- Create a MockNetworkConnection and use it to test the Peer.
API:
- Reorganize the package layout to be more modular.
- Support multiple active wallets.
- Allow sorting of transactions by time.
Protocol:
- Start up faster
- Store a block locator in the persisted chain
- Use the getheaders command to speed up the initial chain download
- Implement tx fees.
- Longer term potentially add a getmerklebranch protocol command so we can check 0-confirmation transactions.
- Support PeerGroups for holding open/using multiple connections at once.
Examples/documentation:
- Implement a simple Swing GUI payment app.
Cleanup:
- Find a way to avoid some horrid hacks when shutting down the network connection.
- Implement a BitCoin class that encapsulates a BigInteger and formatting.
- Make NetworkParameters use subclasses instead of static methods to construct.
==========
Impacts from Steves changes:
- Reformat affected files
- JavaDocs for the c'tors that take parseLazy/parseRetain
- Copyright header/correct author for EmptyMessage/ChildMessage
- Remove superfluous empty lines in ListMessage.java
- Remove VersionMessage check in Message serialization roundtrip checks
- Delete dead code in Message.checkParsed
- LazyParseByteCacheTest:
- copyright/comments/unused things
- debug prints
- some redundant asserts
- huge functions
- dead code
- Magic number 36 in ListMessage.parseLite
- Manipulator.java needs docs
- Assert in Message c'tor needs an English version.
- Spelling in PeerAddress.bitcoinSerializeToStream
- SpeedTest has a lot of unused fields, large functions. See if it can be simplified/densified.
- Caching immutable lists?
- Dead code in Transaction.parse
- javadocs on Transaction{Input,Output,} getters
- Delete the code related to deduping. The new network management code to be checked in later makes it unnecessary.
Also remove singleDigest as a result (it duplicates Sha256Hash).
Block.java:
- Reformat
- Replace magic number 80 with HEADER_SIZE_BYTES in Block.parseTransactions
- The parseLight stuff isn't clear without referring to superclass.
- Delete dead code in writeTransactions
- checkParse{Header,Transactions} should be maybeParse...
- immutableTransactions is misleading, it allows you to mutate the contents.
- Unit-test only getters should be package private.