Version 0.6.2

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Release 0.7.1

http://download.nxtcrypto.org/nxt-client-0.7.1.zip

sha256: 08f54b324ec4e644adc4864368e31c7ed14feb52918ca4522377c94d1f360f8a

Release 0.6.2

http://download.nxtcrypto.org/nxt-client-0.6.2.zip

sha256: cdb39d82e59aade4a0ea6b9f64fc9852fdab5d37a9a4ba755dffeaa96672aaf5

Change log:

Fixed a bug in the calculation of guaranteed balance which could in some
cases result in effective balance higher than the actual balance. Since
this change can produce a fork, a switch to the correct calculation will
happen at block 64000. Everyone should upgrade to either 0.7.1 or 0.6.2
before that block, or we will get forks.

Improved validation of peer addresses to prevent syntactically invalid or
unresolvable addresses from being included in the peers list.

Enabled logging of all debugging output to a log file. Everything printed
out to the console will also get logged to a file nxt.log. This should
help with submitting bug reports in case of crashes and errors, as it
doesn't matter anymore if your windows console just disappeared.
The nxt.log file is overwritten at every server restart.

Cleaned-up hallmark and authorization token processing. Added Token and
Hallmark classes, those can be now used by Java client developers to
generate and validate tokens and hallmarks without going through the http
interface.

Improved logging of block push failures and block pop-off events, those
will now print out the block id and the reason for block rejection.

Improved peer blacklisting and logging of reasons for blacklisting. Http
requests from blacklisted peers are now completely ignored.

Made all API request handling classes under the nxt.http package visible
in the javadoc documentation, to be used for documenting the parameters
and return values of the http API.

There haven't been any database related bugs in the 0.7 series. All the
above changes have been applied to both 0.6 and 0.7 branches. I encourage
more people to try the 0.7.1 version, there is no need to continue
maintaining the 0.6 branch very long if we don't encounter problems with
the database version.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJS9p7eAAoJEFOhyXc7+e2A44gP/iocZBytS+u/B2mpbcEAs0e2
VIpx8FLrAmSOX8Dwq+8O8PHdDVvbHeZuVpi9PZNmrZQnOlUfhqHF8MdGIBhEzRJw
f+koWWjSZTft5w/CKnM4PpvD1FzFh2XO/jMtkgI8nEu6YAXg6jwM6X2BqS6tSCNh
A65F+Juaw/na6n1HNCOt6SKj3tCdQf0xwNOeYCvqbkJL589n9WmHrqmPXhNmT52N
NvypwvY1uuNCG4Bd+rq6auw0tdCfFkxT82dIO2AlFWDjPQblBVKdg9PhNMtUaIDd
9/Go0YqC73+rIsRiLFWdxZqnJXprSMGVN5uUaHZ/eKBsROl5smuFsGODNcWK/+3k
p+35wI/ZG+fh9Lf5ALkJ3r0ZJh9JRLJrsOCnseTVFd6qMtvoxo6bWt/3kQgvBKNA
GFB01022UbPgPB5JwAF+adYDXOQ2MthGCIsb9y//smfHvsEXNahs9qYdhVhe2iIa
lmjqrSh34BrU3SMEGm6tsyYBTJ5akvrrm5JTBR6ujqR5VO5bjyWNxYIgewipzwJi
bvi6m5s06ldCggR5Yk1pLriOXjZUAFqTGUPFS6DMpUMezys+IJeCZ/Lh7M6dcCem
9E0H/Q0PpuMiZ7T5SccjyHr9ICT3jj805ERXvlc/YI+R0UGg6KPKijv/bU1pbf+/
BnqIfsUWg5zbkU6lkuja
=LewA
-----END PGP SIGNATURE-----
Merge branch 'experimental'
Version 0.7.4

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Release 0.7.4

http://download.nxtcrypto.org/nxt-client-0.7.4.zip

sha256: 847c70f734a3954159af99e0241d448369d4833067076570671324946a835245

Change log:

Another bugfix in the transition to Transparent Forging, starting from
block 67000. Upgrade before this block, because there will be a fork.

This release drops support for the old getMilestoneBlockIds protocol.
Clients older than 0.7.3 will not be able to request blocks from 0.7.4
nodes. Everybody needs to upgrade to 0.7.4 anyway, before block 67000.

Some optimizations in the database queries used during unlock account,
let's see if this helps Raspberry users.

Minor other improvements.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJS/ATQAAoJEFOhyXc7+e2Az3YQAM2i40MF7EvS0Snof0I2qGp4
Har6d7y8/ycesR2TRCHSsm6C/xor8Q3cutApFXqcZ2C1pPsRGS88nTpzrZakvRS2
nVWD9xwlPVUr3Z841w6YRR3e2bGVbTntbztgfnBjPuropnKwsL0HE3zYDx0c4Z8w
w/cpOT2g2lwWxdW3e2ogi30X0tzWK307tQujDDAFJAcHtONJOahQSxFY1nvH/Ggp
IiElFO2d0T/8BrBSHkc6wi1jcZuut+IeRZFfwFqE81ZGfvleMsmbkBypLlKEgX8i
vkRx/Q2pIEVvcTcPQn10fr8dzE6JMUCii6+UHRWg9TXYe0bmpqF6USMOz2UxB/u2
phWwRYT9xAmLRdxqXeWVdxs+v9UhWdTqvUSwoPykxiQoK3qJaOpkoG0Tbj8gQQFH
NaY21FigF6g/1HLXPan65eYW+WfpdeRzEAA2SHR6/7hS1eEyKrXTy0Dm321VrMrU
sbK4L/RFeWu/NoF09lhBMwaF/t1OoffMUHTMX2fMBRrWsA0sLmlc0HQXiyJ1sESO
RQ9vKOgAhvLz08JNNJ/8g8Tie5RJaEOOdHywECZVQjTRZSz9bYtywel9SHS1RE5w
jaYs5HfQjRWOsWegHSOtUo7XZCcR6QsPKDJvdX1L+WmubMxEt5Dya11K3o4pvFQt
oKUosIWGFNgStAGIgPgx
=fxzG
-----END PGP SIGNATURE-----
Version 0.7.5

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Release 0.7.5

http://download.nxtcrypto.org/nxt-client-0.7.5.zip

sha256: 66adc8379a8f6e3fba7797fbc94b8b62f3e486ea5b6e9877f064c4b0d1f2584d

Change log:

Various performance and memory usage improvements.

Improved validation of peer addresses and handling of peer connection
status changes. User interface improvements related to peer display.

Additional optimizations in getMilestoneBlockIds, backwards compatible.

Further clean up of the core nxt classes from all UI related parameters.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJS/kSlAAoJEFOhyXc7+e2ArxsP/ieUexCLGYB+4WiluLXbNEP5
uDOLcvm+gi3/d960TiINeUJ5uXdr8VDMx2MECsM4zyFBmL7ipE4c1/mWCTXyLHM9
6Vi9z32QyjGO8kLrsg1KxZ2TYIQyDdCqLAJUJ46Zrkk3x+nQRrhsewaJgWJkrKMD
c0vl1JPebNve6kSr2M8XErebO/jTFNzVSFW/dms0GdlEWmUKeImDXhPM3+8+B32c
q+2e64hu2onIrkhV/DyGOWkAj7v2OD9AGEbcVZDrKCfBZV2CDn1eUWSAke1lXHXr
X2o1KBCoOcDFL7Sy0zylTf8CIJgjUns8/nT6NCakNaSNVHtoAdQbrYZMYnPxA9Cb
kzfsVqdbUc3TWpnnRpa0w3FD8CY65/8+2IOvxV/w2DXiQpLTBLrvGGZ3ktg5wFT4
MInzJXF2x75fIL7Yo41oVw3WTeLgE6Mfbhpko08CL9v9NCCbKGEN08a0aBQshs/2
A3iky6EQqayQrsnpB4VCG63QNcLMQUSP4CedbkFTFczDkUa8TCUZfdopAawOz2iK
WfJAaA7Y47LhUhrhvcbcM5UQzK+4WwgEGcblgRKc7y9G7v6Iz5LpJqmdvUiF66Px
30HZZ5CgKDqo8tMzfI7qcmjPNUMQop3YhfstW/KZWL6xF6TrPE6Uc/cSoYqbTHwl
6OeSO2RI6cjevWQPl3iX
=PO6n
-----END PGP SIGNATURE-----
Version 0.7.6

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Release 0.7.6

http://download.nxtcrypto.org/nxt-client-0.7.6.zip

sha256: c219d6a13c870ea7f454fe1e91efe6c6098bed767156aa8921aad0bebe9fe79a

Change log:

Compact the database at every shutdown. This should help reduce the size
of the nxt_db directory after the first run, check the before and after
disk usage.

Prevent duplicate peer listings in the known peers and blacklisted peers
frames.

Prevent a potential duplicate account key attack, of the type described
here:
https://bitcointalk.org/index.php?topic=397183.msg4569817#msg4569817

Added Voting System, not yet enabled.

Some refactoring of the Block and Transaction classes.

Asset exchange bugfixes from the test network and more API requests.

Improved validation of transactions to prevent wrong blacklisting of
peers, and to better enforce transaction validity.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJTBNkwAAoJEFOhyXc7+e2AziEQAJuy9YMEnIfXjaEipm68EklP
XSMWVWBZt1bUsIMZiY7Gu20xV0OxZU68QBIhfFJqX/ZN+grn78pSdQeuOU/gMYdk
YIqZDh2qr7TAVd+On7cMJZ1a41V8av9Xqk/Uy1ydj3A+ZXb3jO0aNzb/f/VvlbGb
DWvO1s7KBA1yghdFQvy/0zxD7hYWcjm2rWe/3UvSTv+qhQCsPQDbdNTg+uUFwvof
SgnnW6NiOaKWrMDc0YFAFMbCDt7LjeY5+Ek1lW3Z0ZZtIJuTuMHWYRo7MoMj1aXO
zEIUOAYGxRbZLClBEFxtIwwF+Kfi75xYlK9pcchl7Wo0a9ooPG9EjqJy+H7f6bmk
xW3frfdIKPy5lZx0H05YnuU9ttUPr0snbWWuDtZQ9CeMzOSKyX/lYsiiUQdbNlGr
FrF4+uLIUXGhBULPNX7P88Om6FYNFVAbgtYxqZSLVIj+5ppZZJxo5rk1A+i2is3A
DKioarK9d7Vy2yMB+FGf3Se03cVmJsdPuqRylw66+PGj+48Ei1Uvzru7lbl8Rqag
guNN48NBm0xuXfBuakPfC7aa1+W2lllB3piJCW/hScbdHtEDsaBsDcYoDAC4CcBV
zpE60AgLClhAinwM4VEkZ7ntSTk83ImR3Ii5HRG7Ip0bzp/MdPcGZ4ifzI/VUH01
DeQ2cjfsCSNbOD61QK/W
=MadH
-----END PGP SIGNATURE-----
Version 0.8.0e

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Release 0.8.0e

http://download.nxtcrypto.org/nxt-client-0.8.0e.zip

sha256: 12ea7642953934b4b36cb833c500afefc9d1521776a298e3a6b6473cb0303a0c

Change log:

This release introduces a major change in the Nxt server architecture.
Instead of being a servlet run by Jetty, Nxt is now a standalone
application which itself launches Jetty servlets, when needed.
This should make it easier to use as a Java library, as it no longer
needs to be run inside a servlet container.

The Nxt configuration has been made more flexible, both for the end user
and for application developers. Nxt no longer uses web.xml, or any xml
files for that matter. Instead, a user-friendly properties file is used.

The layout of the distribution has been changed and simplified. Unpacking
the zip file will produce the following directory structure:

nxt/conf/
This is where the configuration files are kept. All default properties
are in conf/nxt-default.properties. You should never edit this file,
unless you are a packager or client developer who needs different
defaults for his distribution.
All default values are reasonable, so Nxt can just be started without
any configuration. If however the end user wants to customize some
parameters, the way to do that is to create another properties file,
conf/nxt.properties, containing ONLY the properties that need to be
different from the defaults. Nxt will read both nxt-default.properties
and nxt.properties, and the values in nxt.properties will override those
in nxt-default.properties.

nxt/html/
This contains the html files needed for the NRS javascript based client,
under html/nrs, the html-based tools such as admin.html and update.html
under html/tools, and the javadoc documentation for the Java API under
html/doc.

nxt/lib/
This is where all required Java libraries are kept - Jetty, H2 database,
and the JSON-simple library. All Jetty libraries that are not used by Nxt
are no longer included, which also results in a smaller distribution
package.

nxt/nxt.jar
This jar contains all compiled Nxt classes.

nxt/run.sh
This script is the simplest way to start Nxt, under Linux:
java -Xmx1024M -cp nxt.jar:lib/*:conf nxt.Nxt
As you can see, the classpath needs to include nxt.jar, all the jars under
lib, and the conf directory.

Notably missing are start.jar, webapps, and the Jetty configuration
directories, which are no longer needed.

In addition to the switch to embedded Jetty, significant refactoring of
the
code has been done, which may be of interest to users of the Java API. The
changes are too many to describe here, but can be easily seen by comparing
the javadoc of 0.8.0 with that of the 0.7 branch. Most notably, interfaces
have been defined for the Block and Transaction classes, the Blockchain
class has been split into several classes, and the Peer and User classes
have also seen some clean up.

Client developers using the Java API can override any of the default
properties by submitting a custom Properties object to Nxt.init().

The configurable properties in nxt-default.properties are all documented
in
the comments in that file. Some additional details about those:

Nxt will start up to three different Jetty servers, if needed.

The peer networking server accepts http requests from peers. It is only
started if nxt.shareMyAddress=true (which is the default). If you are
behind
a firewall and don't have an externally visible IP, you can set this to
false
to disable it.

The port and host interface of the peer server are configurable. If you
set
a non-default port in nxt.peerServerPort, this will be appended to the
address
you announce to peers (this address should be set in nxt.myAddress). Using
non-default peer networking port hasn't been tested much though.

For a machine with multiple network interfaces, now you can specify on
which
interface to bind each server. By default, nxt.peerServerHost=0.0.0.0 so
the
peer networking server listens on all interfaces.

There are no hardcoded nxt.wellKnownPeers in the default properties files.
You are supposed to set those to your own preferred peers in
nxt.properties.
However, if none are set, a random selection of nxtcrypto.org and
nxtbase.com
public nodes will be used.

The DoS Filter is enabled for the peer server only.

The API server accepts http/json API requests. By default, now it runs on
port
7876, and listens on the local 127.0.0.1 interface only. If you run a
public
node and want to accept API requests from anyone, set nxt.apiServerHost to
0.0.0.0, and nxt.allowedBotHosts to * (or empty).

The nxt.apiResourceBase points to a directory of static html files that
are
also served by the API server. Developers of clients using the http/json
API
will want to customize this to point to their client html and javascript
files.

The Jetty Cross Origin Filter can be enabled for the API server by setting
nxt.apiServerCORS=true (disabled by default).

The UI server is used for the NRS javascript client UI. By default it runs
on
port 7875 and accepts requests from localhost only. Client developers
using
the same API calls as the NRS client (not the http/json ones) should
customize
nxt.uiResourceBase to point to their client html and javascript files
instead.

SSL can be enabled for both the API server and the UI server (default
disabled).
If this is done, the corresponding ports will accept https requests only.
There
is no way currently to have both http and https supported at the same
time, but
this can be added, I just didn't see the need for it.
If you enable SSL, you need to set nxt.keyStorePath and
nxt.keyStorePassword,
and obviously you need to have your own SSL certificate (self-signed or
signed
by a CA) in a keystore file. I have only tested this with a self-signed
certificate.

Client developers using the Java API will probably want to disable both
the
API server and the UI server, and for users without a visible IP address
even the peer server.

Debugging output is now disabled by default, but can be enabled by setting
nxt.debug=true. Exception stack traces will still be logged, as long as
nxt.enableStackTraces=true. I hope there will be none of those.

The connection to the database can be completely customized, as the full
jdbc url used to connect to it is exposed in the properties file and can
be
modified. Client developers that insist on being able to access the
database
from a separate process, while Nxt is running, can do so by appending
;AUTO_SERVER=TRUE to the jdbc url, which will enable automatic mixed-mode.
This is disabled by default, but if you enable it and write to the
database
while Nxt is running, expect things to break.

It is also possible to have the database in a different location, not just
in the current working directory, if you change the jdbc url accordingly.

To change the amount of memory used for the database cache, use the
nxt.dbCacheKB parameter, in kilobytes. If set to 0, by default 50 % of the
memory available to the JVM is used for database cache.

There have been no changes to the database schema, you should use your
existing nxt_db directory with this release too, instead of downloading
the blockchain from scratch.

This release is labeled experimental, but please try it. In particular,
the
client developers and packagers should test it well, and if there are no
major issues, expect the 0.7 branch to become obsolete soon.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJTCIslAAoJEFOhyXc7+e2AnuoP/08xD1mjeNmv8/vBkSq39MhH
z+FToey65bbg2gQOSxMSdnr35C8oucS5kwBltCVvcXNyoyAEPZfsFfig3a1m5m2H
5TaJOywdH88ve9M1RouV2jdCo3Y7WAXC5uP8iHzp5YYVaR3XlhIwYW74uk62qQqn
NICuvmDhutDDcDGq+IkdR80x7XjqaReuXGZ44MHr2xNlQetkKLvB6kVcB7JhuZYt
KmufeCSC5qcFFdVsfZHN3xP5Mg+65VCGZayKDiJT0+uP5wfwlAPFqak25sLerfHn
fEi349W7afKw3FES1uvTIPBxnO4CShmhCzOvK4Yy3K5I4INSTWqQumEEDRL7STM2
wqhph5ewGEqJ0W+3yQN+j6AG33aawGoICLevkY2+g3+aaZ/cy1KjIiAns/ed33XB
nm2prnkvO2jNipNxcRUH5AP+o6+2k6LAfDxAzTHFWXboSQgr8RFWdwQP+R4Lvvbm
jaGiaqIvLzwyFboWgpkXwBZuhmVe1+L+icbUscUMW7gXm5XNpLgyOmPz3wuHUAe1
tqcpdW6EoiKIbHPgDkKyyRNugXuG18LdqHEW4RqpwuQIlBRoMkQ5Gzo7GSk7eLko
I+YNAktBiRv2W4dl1R1ngltwsoYCK4FBU4nWRhHjMzgjHrSCfaehi0rS42SbPfJE
cFUk+6MeaSGu+q35NOSD
=Zrbu
-----END PGP SIGNATURE-----