Author: toad
Date: 2008-11-08 14:57:23 +0000 (Sat, 08 Nov 2008)
New Revision: 23423

Modified:
   trunk/freenet/src/freenet/node/Version.java
Log:
1170: (MANDATORY FRIDAY):
Client layer:
- Use gzip, bzip2, and lzma, for inserted files. Whichever is smallest.
- tar format containers (compressed with the above codecs). On by default, so 
freesites inserted with this build won't be retrievable by earlier builds. 
Should be a significant saving relative to zip's - maybe 50% - for typical 
freesites.
- Serialise compression. Allow a reasonable number to run simultaneously 
though, using semaphores. Refactoring, see RealCompressor.
- Run compression at low priority.
- Some minor fixes/improvements to the compression code.
- Move logging out of synchronized blocks in some places (minor optimisation).
- Compression: Limit the number of bytes read and written separately. Hence we 
can tell the compressor how big the smallest so far is, so it can abort early.
First time wizard:
- Redirect the user to the first-time wizard until they have completed/skipped 
it. Record to the config file when this has happened.
Web interface:
- Fix /darknet or /opennet (no slash).
- Queue page: fix sorting by progress.
- Emphasize open-in-thaw-index-browser option on opening a thaw index in fproxy.
- New theme by dieppe.
- Optimise existing themes' png's with optipng, save some space.
- Fix a bug preventing the config toadlet from being shown if wrapper.conf is 
writable but doesn't have a valid memory limit line.
Stats:
- Beginnings of support for a bandwidth graph.
- Group FEC codec threads on the threads list.
Mid level:
- Fix an off-by-one in PaddedEphemerallyEncryptedBucket.getInputStream().read().
IP detection:
- Assuming the IP is the same as it was last time does not give us a valid IP 
address. Don't let it prevent us from nagging the user.
- Warn the user if the IP address is not detected and there are no IP detection 
plugins loaded.
- Bugfix: failed to call onAddedValidIP/onNotAddedValidIP first time if not 
detected. Caused failure to notice a problem.
- When an IP detection plugin is added, reset the once-every-six-hours limit.
- Don't start the IP detection plugin code until after the plugins have been 
loaded.
L10n:
- Chinese update from yongjhen.
- Finnish update from Smar.
- Italian translation from Cooo.
- Fix typo in German (tommy)
Plugins:
- If a plugin fails to load, remember that we tried to load it, and attempt it 
again on next startup. Change the useralert so the button removes it 
(preventing it from being tried again on restart).
- Start plugins synchronously, in the startup completion thread. If not 
started, write the same plugin list we inherited. Avoid a race condition 
causing an incomplete list of plugins to be written.
- Start and register threadless plugins immediately during load, not later on a 
thread. Necessary for IP detection plugins timing fix.
- Remove Put method from HTTP interface.
Temp files:
- Fix a fd leak, don't leave a stream open when migrating buckets that have 
been open but are now closed; don't keep an OutputStream if it's not actually 
open.
- Avoid closing twice.
Misc:
- Allow changing fproxy port with a restart.
- Don't append in ArrayBucket, overwrite. All 0.7 buckets overwrite, not append.
Salted hash store:
- Config option for whether to complete resize blocking (and therefore fast) on 
node restart.
- Avoid timeout on padding on startup.
For the fools out there:
- Add a config option to turn off packet padding. Turn it on on low network 
security. Note that this is VERY DANGEROUS if widely adopted and the attacker 
can observe packet sizes over most of the network...
Statistics:
- Synchronization fix (nonsynched access to long's for byte counters in 
NodeStats).
Dev stuff:
- Specify target 1.5 as well as source 1.5 
- Delete some unused code.
- Get rid of redundant casts.
- Comments, javadocs.
- Indenting.
- Logging.
- Use enum's for compression types.
- Generics, autoboxing, for(:), Vector->ArrayList, Comparable<>, etc.
- Map's: Change loop on keys looking up value to loop on entries.
- Casting changes.
- Reduce class/member/constant permissions.
- Remove unused method setPossibleValues() on EnumerableOptionCallback.
- Some refactoring in the web interface code.
- Delete merged saltedhashstore branch.
- Delete unused 0.7.0 branch. (We didn't release from it).
- Singleton NullPersistentFileTracker.
- ArrayList not Vector, iterate over entries instead of keys and then looking 
up in collections.
- Imports.
- Fix MessageType.typeOf(), only used in logging.
- Avoid double-toLowerCase() in WelcomeToadlet.
- Make DoublyLinkedList and UpdatableSortedLinkedList implement Iterable, and 
add contains() to DoublyLinkedList, all for the FMS plugin.
- Extra logging to try to track down the ext updating bug that has recently 
caused some problems. I haven't been able to reproduce the bug, but hopefully 
next time...
- Delete lots of unused classes.
- Get rid of BookmarkItems, use List<BookmarkItem> instead. Same with 
BookmarkCategories.
- Remove unnecessary & 0xff's when write()ing a byte.
- Trivial optimisations/tidyups with Boolean.equals().
- Refactoring in FileLoggerHook.
- Skip tests when building in Eclipse.
Unit tests:
- Simple tests for Bucket's.
- Tests for temp buckets.

Installer:
- Fix clobbering ACLs in the update.cmd windows updater script: add permission 
for the freenet user, but don't revoke permissions for other users.
- Check for and run pre-update.sh in update.sh.
- Italian installer strings update from Luke771.
- Various tweaks to the tarball install script 1run.sh.

Firefox profile:
- Disable all extensions.
- Always show the homepage on starting.
- Don't check whether FF is the default browser.
- Disable history, form values memory, persistent downloads list.
- Various similar paranoia options.
- Get rid of some menu items/menus.

Website:
- Move press enquiries note to end of page.
- Minor improvements to donate page.
- Add some detail to the developer page about SVN and SVN integration etc.
- Add a paypal counter to the site. This uses the hourly-refreshed balance from 
paypal, plus a hardcoded bank balance, and a hardcoded currency conversion 
rate, to calculate how many days are remaining.
- Add a box to donate whatever you want, as well as the drop-down. Ugly, the 
HTML needs rewriting.

UPnP plugin:
- Fix an infinite loop.

Contrib: freenet-ext #24:
- Move various third party code to freenet-ext.jar: Mersenne Twisters, plus the 
new compression code: Apache tar, bzip2 libraries, LZMA/7zip. Including unit 
tests.
- Disentangle some code, eliminate dependancies on freenet/ code in contrib/, 
in some cases by incorporating code...
- Avoid duplicated files in ext jar, cut from 6.2M to 3.8M.
- Cleanup build script.

bombe
dieppe
j16sdiz
luke771
nextgens
smar
toad
tommy
xor
yongjhen

Other stuff going on: (NOT COMPLETELY UP TO DATE):

db4o branch: (toad)
- Merge up to build 1165 into branch.
- Make directory inserts work (fix various bugs breaking them).
- Fix some merge related bugs, including all buckets being persistent.
- Fix lots of activation etc bugs.
- Fix some comments.
- Various db4o 7.X-related fixes (newConfiguration, store(), etc).
- Fix various bugs.
- Various minor refactoring: Move getScheduler() to SendableRequest 
(interface), implement in SendableInsert, OfferedKeysList, already implemented 
in SendableGet. Add isSSK() to KeyListener.
- Startup KeyListener handling: only add to the correct 
ClientRequestSchedulerCore, move loadKeyListeners to a static method on CRS.
- Startup KeyListener handling: ensure we set finished=true and save the item 
in SplitFileFetcher and SingleFileFetcher.
- Get rid of canRemove(). The selections are now entirely in RAM so canRemove() 
is unnecessary and dangerous. Maybe this fixes the downloads stalling bug.
- PersistentChosenRequest: don't finish if there are live requests; in all 
cases where we do finish, remove from running requests.
- Activation bugfixes.
- NPE bugfixes.
- Fix not starting later blocks in DatastoreChecker for MINIMUM_PRIORITY 
requests.
- Debugging paranoia.
- Remove silly if(this.persistent) activate(this)'s.
- Remove some more useless code.
- Logging.
- countRequests.html now separately counts the waiting CHKs and the queued CHK 
requests, enabling us to quickly see whether there is a leak.
- PaddedEphemerallyEncryptedBucket : delete weak reference to Rijndael.
- Provide a means to queue database jobs to run at startup. Usually this will 
be used to clean up structures that had to be committed in multiple 
transactions, in the case of a crash obsoleting them.
- Buckets: specify -1 rather than a guess that might be less than the actual 
size if we don't know. The estimated size is now a hard limit, although this is 
only enforced when the size is exactly 32K.
- Store all block-sized (32K) temp files in a single big blob file in the 
temporary directory. Should dramatically reduce the number of files in the 
persistent temp dir and thereby prevent OOMs, also should reduce the number of 
fd's used by FEC decoding.
- Call bucket.storeTo, don't container.store(bucket).
- Work around a db4o bug related to storage depth with collections.
- Get rid of the SoftReference to the encoded block in SingleBlockInserter. It 
doesn't gain much, and it causes heavier GC and complicates profiling.
- Go straight to onDecodedSegment() if we have all the data blocks.
- Split up RGA's array into Block's when we have more than 1024 items. Activate 
each individually to save memory and disk I/O for big inserts and anything else 
that queues a vast number of requests for a single RGA.
- Don't store FEC codec on SplitFileFetcherSegment.
- Run RegisterMe's in priority order.

WoT plugin: (batosai, xor)
- Don't create identities from people we don't have a positive score for 
(prevent spam).
- Comments.
- Create a default OwnIdentity if none exists.
- Major refactoring on the web UI.
- Introduction puzzles (CAPTCHA) support. Architecture and simplecaptcha 
implementation.
- Randomize insert intervals.
- db4o-related refactoring.
- Store messages in db4o, query for them instead of having a hashtable.

FMS plugin: (xor)
- Divide into interfaces/abstract classes and implementations, so can support 
different trust providers.
- Implement for WoT.
- Lots of work on design.
- Use UpdatableSortedLinkedListWithForeignKey to keep track of messages.
- Thread decoding logic.

jSite:
- 0.6.2: add approximate insert speed to progress bar text


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-11-08 14:15:06 UTC (rev 
23422)
+++ trunk/freenet/src/freenet/node/Version.java 2008-11-08 14:57:23 UTC (rev 
23423)
@@ -24,7 +24,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 1169;
+       private static final int buildNumber = 1170;

        /** Oldest build of Fred we will talk to */
        private static final int oldLastGoodBuild = 1168;
@@ -34,7 +34,7 @@
        static {
                final Calendar _cal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
                // year, month - 1 (or constant), day, hour, minute, second
-               _cal.set( 2008, Calendar.NOVEMBER, 10, 0, 0, 0 );
+               _cal.set( 2008, Calendar.NOVEMBER, 14, 0, 0, 0 );
                transitionTime = _cal.getTimeInMillis();
        }



Reply via email to