Author: toad
Date: 2007-03-29 00:59:06 +0000 (Thu, 29 Mar 2007)
New Revision: 12421

Modified:
   trunk/freenet/src/freenet/node/Version.java
Log:
1021:
- MANDATORY ON APRIL 28 DUE TO NEW LINK SETUP
- Remote security improvement: Implement (a form of) STS. Based on the current 
4-phase diffie-hellman, last 2 messages are signed, including g^x and g^y 
(currently the first two stages are simply g^x and g^y, followed by 2 stages of 
encrypted data including noderefs). auth.negTypes added to noderefs, this 
includes the supported negotiation types for the node (0 = old DH, 1 = new 
signed DH, so far).
- Local security improvements: (previously we relied on the node not 
overwriting files, this is not much of a protection)
-- Prevent symlink attacks by always writing to a tempfile (created by java 
with an unpredictable name) and then moving over the target.
-- {fproxy,fcp}.allowedHostsFullAccess - List of hosts which are allowed full 
access to the nodes. Full access includes reconfig, restart etc. Non-full 
access includes direct disk access as well as requests and queue access.
-- node.downloadAllowedDir/uploadAllowedDir options. List of dirs to where/from 
where downloads/uploads are allowed.
- Resource utilisation
-- Maybe fix the USK leak
-- Weak -> Soft : keep the cached encoded blocks if possible
-- Delete requests from their queues immediately when the request changes 
priority or is cancelled. (If they were low priority, they may not be freed for 
a long time with the old "leave them there and clear them when we get to them" 
tactic)
-- Single FEC encode/decode thread (per VM) runs all FEC jobs asynchronously. 
Saves 2 threads per FEC encode/decode. don't sleep in FEC decoding, the OS can 
deal with the cpu usage.
-- Close some InputStream's
-- Convert some maintenance threads to PacketSender scheduled jobs: NodePinger, 
throttle data persisters, aggressiveGC
- FCP
-- Minor error handling fixes to AddPeer
-- Progress towards full config over FCP
-- Stats changes (numberOfInserts -> numberOfInsertSenders etc)
-- New TestDDA command (disabled for now, needs more work)
- Refactoring
-- SendableRequest is now an abstract class
-- Split up stats from Node into NodeStats, PeerManager, separate node and 
client throttles (with separate files), factor out persistence to a fieldset to 
Persister/Persistable
-- NodeStats is node.load. moved some settings there e.g. 
aggressiveGCModificator, nodeThrottleFile. in future *BandwidthLimit may be 
moved there as well. added node.load.memoryChecker option to enable/disable 
memory usage logging.
-- Delete dead code etc
-- Minor stuff e.g. final declarations, moving variables around
-- Variables in node for inputBandwidthLimit, outputBandwidthLimit, use these 
rather than pulling from config or throttle
- Pre-emptive rejection, requests (need to allow a reasonable number of 
requests but not timeout when/if a group all succeed as occasionally happens)
-- Reject on low memory
-- Increase fetch timeout to 2 minutes
-- Remove arbitrary maximum on # requests/# inserts
-- Add upper limit on # threads (reject all requests if over limit), default 
500 (would be 300 but for frost...)
-- Increase max throttle delay from 1000/2000ms to 2000/3000ms
-- Track expected bandwidth if all pending requests succeed at once. Reject 
requests if this would cause timeouts.
-- Check for loop before checking for overload
- Stats
-- Separate throttle (for stats only) for CHKs vs SSKs and inserts vs requests
-- Track number of running CHK/SSK inserts/requests
-- Don't leak locked UIDs, and remove them only when the Handler or the 
real{Get,Put}{SSK,CHK} (not the Sender) completes.
-- Fixes to stats page wording
-- # inserts on stats page is more accurately # insert senders running, same 
for requests
-- Track average bytes used by each successful request for each type
-- Slightly more accurate in recent transfer rate
-- Don't give the first report after restart a massive weight in 
TimeDecayingRunningAverage
-- Show # transferring handlers as well as senders
-- Show # threads of each type on the stats page
-- Cosmetic changes to stats page
- Queued requests
-- FUQID-like promote-on-success: on every other request we try the last 
successful request group, but only if it is equal priority and retry count to 
the top request
-- Run splitfile.schedule() off-thread as it can take a very long time. Speeds 
up loading (and other stuff too probably) if there are many queued requests 
(not inserts).
-- Other minor fixes
-- Fix double block completion bug
-- Splitfile errors are not usually fatal
- Filter fixes
-- Minor filter bug fix ( "../" wasn't always detected )
-- Allow </form>
- Many synchronization fixes
-- Check removeFirst() inside lock in RequestStarter (prevents delays on race 
condition, allows us to wait(bignum) instead of (smallnum))
-- notify() -> notifyAll() in many places
- Store
-- Fix wrapper timeout when shrinking
-- Detect another indication of a corrupt secondary DB
-- Check for holes when reason to believe there are dupes
- Fix possible NPE in address detection
- Better error handling various places
- Fix infinite loop when offering to queue a download from fproxy when the file 
has been downloaded twice already.
- Fix the hash verification bug (hopefully!).
- TMCI
-- New FILTER command
-- Cleaner code
- Some rebranding - freenet is basically F2F, lets use this: Darknet peer -> 
Friend. Node name -> nickname.
- Trivial optimisations
- "UdpSocketManager sender thread" -> "UdpSocketManager packet receiver thread"
- trim extra spaces from FreenetURI's before parsing
- Some debug paranoia, assertions etc
- Comments
- Indenting
- Lots of logging
- Unit tests: MersenneTwisterTest and related code ScalarSampleStatisticsTest

Related changes:
- New UP&P plugin. Not yet functional. Based on heavily hacked SVN code from 
another project so let the huge commit mail through as-is. Will ultimately 
allow us to find our IP without resort to STUN servers, and set up port 
forwards, improving the fraction of nodes which are "open" significantly.
- New JabberLinker plugin. Will be useful for darknet stuff, notifications etc.
- Some improvements to JSTUN plugin. Add a web interface, remove sysout 
messages, some minor detection fixes.
- New dir for maintenance scripts, verify-patch.sh


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2007-03-29 00:16:28 UTC (rev 
12420)
+++ trunk/freenet/src/freenet/node/Version.java 2007-03-29 00:59:06 UTC (rev 
12421)
@@ -24,17 +24,17 @@
        public static final String protocolVersion = "1.0";

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

        /** Oldest build of Fred we will talk to */
-       private static final int oldLastGoodBuild = 1010;
-       private static final int newLastGoodBuild = 1016;
+       private static final int oldLastGoodBuild = 1016;
+       private static final int newLastGoodBuild = 1021;
        static final long transitionTime;

        static {
                final Calendar _cal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
                // year, month - 1 (or constant), day, hour, minute, second
-               _cal.set( 2007, Calendar.MARCH, 1, 0, 0, 0 );
+               _cal.set( 2007, Calendar.APRIL, 28, 0, 0, 0 );
                transitionTime = _cal.getTimeInMillis();
        }



Reply via email to