3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-12 02:05:53 +00:00
altcoinj/TODO
Mike Hearn afef6bc029 Second part of Steves lazy parsing patchset:
1) Added getters and setters to many objects that lacked them.
2) Introduce a parseLite method that is called even in "lazy parse" mode. This calculates the length of the message so children can be skipped when parsing a container object.
3) Full serialization for AddressMessage
4) Added a (huge, standalone) SpeedTest.
5) Add unit tests for the matrix of lazy parsing modes.

A bunch of review comments are added to the TODO list for completion after the patch series is checked in. This is to avoid large numbers of merge conflicts as later parts of the patch-series are committed.
2011-10-11 17:24:50 +00:00

61 lines
2.2 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
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.