Author: toad
Date: 2008-09-26 11:58:27 +0000 (Fri, 26 Sep 2008)
New Revision: 22843
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1165: mandatory 3 October 0:00
ipAddressOverride:
- Really fix the NPE on startup bug.
- Include override dns addresses in noderefs even if we haven't resolved them.
Appears to fix a problem with override address not appearing in noderefs.
Web interface:
- Change the skip-the-wizard text to make it more obvious that it's a bad idea.
- Improve some strings for some forms and page headings.
- Improve descriptions for some options.
- Improve the upload a file form to make it more obvious that uploading through
the browser or browsing files on disk are alternatives.
- Rename networkSizeEstimate to darknetSizeEstimate, since only darknet nodes
swap now.
- Update bookmark editions.
- Remove development flogs from bookmarks.
Bug #2582 : lots of CHK offer replies not going away, causing collapse in
bandwidth usage
- Fix various places where we might not have unlocked a UID for an offer reply.
- Hopefully this will fix this serious and fairly widely reported bug.
L10n:
- English: Fix typo, update documentation for some store options, minor changes
(promiscuous mode -> insecure mode), , improve the strings for some forms (add
a friend, insert a file), improve title string at top of download page, remove
OpennetUserAlert.*, remove a reference to insecure mode.
- Italian: Updated translation from Luke771,
- Finnish: Updated translation from Smar.
- Chinese: Updated translation from yongjhen.
Low level: sending and throttling packets:
- Largish refactoring, some optimisations. Get rid of alreadyReportedBytes,
don't use DoubleTokenBucket, move message queue to PeerMessageQueue. The below
may cost some CPU.
- Some counting accuracy fixes when determining whether to send a packet.
- Round-robin between peers: send *one* packet to a given peer, then move on to
the next. If there are more packets to send, immediately loop around again.
This will prevent the node from using all its bandwidth/time/etc to send
packets to a single node with a big backlog, especially if sending packets is
taking a long time.
- Resolve MessageItem's on creation, as doing it lazily doesn't save any memory
in practice and complicates the code.
- Implement hard bandwidth limiting of all packets at the PacketSender level.
- Bucket size for bandwidth limiter is 500ms at full speed (as it was) or 2KB,
whichever is larger.
- Within a priority, round-robin between different message groups (a group is a
bunch of messages with the same ID). We more or less did this before with the
old throttling system; this restores it in a different implementation.
Salted hash datastore:
- Make the store type option be always written to disk, regardless of whether
it is the default or not. So changing the default will not cause costly
migrations.
- Eliminate lock contention: no need to add the key to the primary filter when
rebuilding the bloom filter. Don't sleep when rebuilding bloom filter,
apparently not necessary now. Do need to lock the forked filter when merging
however.
- Format change: one .hd file for both headers and data. There is
auto-migration, one store at a time (there are 6), but it will take some disk
space. Sorry, this shouldn't happen in future; it's a fairly big gain, reducing
the number of seeks from 3 to 2.
- Preallocate data (fill with random bytes) by default to ensure predictable
disk usage, and avoid long unkillable disk-thrashing CPU-thrashing (if
encrypted) syscalls. Off on non-mac unixes if physical security is LOW. This
happens on initial creation (1G so won't take long), on-line after changing
size in config, or offline on restart if changing size didn't complete.
- Timeout locks after 20 seconds, and poll for shutdown every 2 seconds, to
avoid causing unclean shutdowns.
Plugins:
- Fix removing plugins from cache for unofficial plugins.
- Fix loading unofficial plugins on node restart.
Opennet:
- Let the user change connectToSeednodes by restarting the node.
Internal: (fix possible bugs, but not immediately obvious where they would be):
- Synchronization in SortedLongSet.
Misc:
- Feed blocks to the client layer even if we can't store them (e.g. because the
datastore is being resized).
Dev stuff:
- Logging.
- Comments.
- Delete dead code.
- Use an enum for the store contents type (CHK/PUBKEY/SSK).
- More minor refactoring.
- Generics, ArrayList, imports, autoboxing, more specific return/variable
types, for(:) loops.
Unit tests:
- Complete the test case for UpdatableSortedLinkedList.
Installer:
- Browse Freenet script was broken, opening a firefox window pointing to the
current directory instead of the node. Fixed.
- Make the auto-start setting a top-level option, and strengthen the wording
about it.
UPnP:
- Set thread names.
Website:
- Fix link to offline installer.
- Get rid of reddit/digg links on the 0.7.0 announcement.
- Mention seclevel normal/low on the download page, not insecure mode.
- Mention the cronjob/service on the download page, and explain.
- Rewrite the post-install section on the download page to be up to date and
clearer.
- Mention nested routers on the NAT entry on the FAQ.
luke771
toad
tommy
sdiz
smar
xor
yongjhen
WoT: (batosai, xor)
- Re-enable the config class and add a config page.
- Locking fixes.
- Move some code around so WoT builds both in eclipse and with ant.
- Tidyups.
- Move exceptions and unit tests to packages.
- Fix build.xml. (toad)
- Javadocs.
db4o branch:
- Merged all changes up to 1164 into the branch.
- It should work again now... hopefully.
- It will of course have its own bugs, plus any introduced in merging...
- Inserts are not properly tested, optimised or debugged.
- Persistent requests should however work rather well.
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-09-25 23:08:36 UTC (rev
22842)
+++ trunk/freenet/src/freenet/node/Version.java 2008-09-26 11:58:27 UTC (rev
22843)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1164;
+ private static final int buildNumber = 1165;
/** Oldest build of Fred we will talk to */
- private static final int oldLastGoodBuild = 1163;
- private static final int newLastGoodBuild = 1164;
+ private static final int oldLastGoodBuild = 1164;
+ private static final int newLastGoodBuild = 1165;
static final long transitionTime;
static {
final Calendar _cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
// year, month - 1 (or constant), day, hour, minute, second
- _cal.set( 2008, Calendar.SEPTEMBER, 22, 0, 0, 0 );
+ _cal.set( 2008, Calendar.OCTOBER, 3, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}