-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
More detailed change log of 0.6.0:
The critical bugfix will still be disclosed later. This is only to document
the other changes from 0.5.12 to 0.6.0, as there are plenty of them.
The 0.5.x branch is really painful for me to work with, after getting used to
the fully refactored code in 0.6.x and 0.7.x. Therefore, I decided to stop
maintaining 0.5.x completely and move on to 0.6.x.
The last bugfix in 0.5.12 was not sufficient, and all forging users should
upgrade to 0.6.0 as soon as possible. 0.5.12 is broken and will not be fixed.
The 0.6.x branch still uses serialized object files, however those are not
backwards compatible with 0.5.x. Old blocks.nxt and transactions.nxt files
from 0.5.x will be imported automatically and converted to the new format
the first time 0.6.0 is run.
The blockchainStoragePath parameter in web.xml is no longer needed.
The code has been significantly refactored and is no longer a single java file.
All classes previously nested in Nxt have been moved out to their own files.
Everything is under a top level nxt package, and as a result the servlet-class
parameter in web.xml has to be changed to nxt.Nxt. Sorry that I forgot to
mention that when releasing 0.6.0:
Nxtnxt.NxtThere are three subpackages, nxt.user, nxt.peer, and nxt.http, with request
handlers in separate classes for all the UI, peer to peer, and http API
requests respectively. This completely replaces the old huge switch/case
statements in the servlet doGet and doPost methods.
All the business logic has been moved out of the Nxt servlet class.
A new Transaction.Type class hierarchy has been added to handle all logic
for transaction validation, transaction attachment handling, and transaction
application. This completely replaces the switch statements that used to
hold the transaction validation and processing logic.
Transaction undo, on block pop-off, has been implemented for transactions which
can be undone. For all others, an UndoNotSupportedException triggers a full
blockchain rescan.
A custom NxtException exception hierarchy is now used to help with block and
transaction validation. Most transaction and block parameters are now enforced
to be valid in the Transaction and Block constructors, which makes it sort of
difficult to forget to validate them.
Many minor and not so minor performance and memory optimizations, based on
actual profiling measurements, have been applied.
All field and method access modifiers have been reviewed. No java field or method
is more accessible than it needs to be. Everything that can be private, is now
private. Everything that should be final, is now final.
All JSON response and error handling has been cleaned up and optimized.
Unnecessary to and from ByteBuffer conversions in block and transaction processing
have been removed.
A deadline limit of not more than 1440 minutes for new transactions is now enforced.
Peers that submit invalid block or transaction data are automatically blacklisted.
Java API documentation is now available at
http://localhost:7874/doc/ , all APIs
are subject to change as it is work in progress.
Minor UI changes: added warnings to the unlock account dialog and message.html,
added sendMoney to admin.html.
New or improved APIs:
getAccount
parameter: account (the account id)
returns: publicKey (if known), balance, effectiveBalance, all asset balances
getAsset
parameter: asset (the asset id)
returns: accountId of the asset issuer, asset name, description and quantity
getAssetIds
returns: all existing asset id's.
getAskOrderIds and getBidOrderIds now require an asset parameter, and return
the order id's for that asset only.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBAgAGBQJS82bBAAoJEFOhyXc7+e2A9UYP/ignHYDkNQsl7mIEmtHjLXQL
Vnhk2qdpR4g1N9JS7Q7JjzlhW9XzMT5aCiEqWgl4hi2zq1ymPL6McO1zD5IxQz1N
tDy1MnjXYp3SrabqnOhPGF/VHqO7VACaCi2uboBHo9fTF+TzW8fu7UD/4oo9LTLl
EaHrKTmBBPjAXooTP7eHgGhUbKi3cc0adwDppK9m0XZKoo7igkt6Rn91p4TXNwYf
WKUY6cce4BdhdtlUsGXKNLPKXEBxIG74MzTyb+2KT4TqlREQkVWV5e4+wctdgj5+
Hrh0lTUvDomzoT+ohXVxgkSKILvGHanX8t1laTkNpjVMqFbSGI9ViJfazFq5heXw
rs/bi9IclFBQvSowz3pToCC8VVxQm6sYrjOj1k2+wVPIie2qWCDj+4WOOqnYf8P8
QNUqP0VncJ0n0RjlvBlX5LQRENekHIR4SaI5rCPcppwz/tNQGB6tDfbXqUT7V77m
Oxg869TOknszSaPu3M/D63Y0i2tn+R27fuaAcvBeKK5ArGlKAlwMSQgjpocoxRos
RJan41fv50YfenniyTjYkRAx0R3iXiFNrdMD3lqEntYyqSxfviZf1fSpUazheMNW
7JwTfOpcV2mTObPMr1ZKJWz2yl1CzPy/J4caA7SXGkzB1nc/onkjJWHYNSBRyGLr
+0/q4Hc0x3XYVvyHM4ng
=OQ1o
-----END PGP SIGNATURE-----