[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[minion-cvs] Update TODO plans for 0.1.0; bump version to 0.0.6rc2; ...
Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv6461
Modified Files:
HACKING README TODO setup.py
Log Message:
Update TODO plans for 0.1.0; bump version to 0.0.6rc2; fix benchmark code
Index: HACKING
===================================================================
RCS file: /home/minion/cvsroot/src/minion/HACKING,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- HACKING 31 Aug 2003 19:22:21 -0000 1.22
+++ HACKING 12 Dec 2003 22:37:12 -0000 1.23
@@ -23,25 +23,6 @@
THINGS TO HACK: (Good introductory projects that I won't get to myself for
at least a version or two.)
-- Last time I checked, the client and server could run okay on Cygwin. More
- people should try it out, and see what needs to be done.
-
-- We need a native (non-Cygwin) windows port! (Right now, I can make the
- client work, but the server needs to be tested, and we need an installer.)
- Most of the code is in Python, and what C we have builds fine. Some known
- issues in the source are marked with comments labeled WWWW. Other areas of
- potential difficulty are:
- - Binaries and installer. (We should provide two versions: one that
- comes with a Python interpreter, and one that doesn't. They should
- both be easy to generate.)
- - The signal code may not be correct; Windows signals may work
- differently in subtle ways. [This is mostly a server issue, but the
- client code uses SIGALRM to timeout dead connections.]
- - The 'daemonize' code in ServerMain.py is almost certainly not
- right on windows.
- - There will be other, as-yet-unexpected issues. :)
- (Difficulty: moderate. Invasiveness: moderate)
-
- We need some distributed stress-test code. Ideally, it should use SSH to
build Mixminion on a number of machines and start servers on those
machines, then run a bunch of clients to send messages through the system.
Index: README
===================================================================
RCS file: /home/minion/cvsroot/src/minion/README,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -d -r1.64 -r1.65
--- README 8 Dec 2003 06:45:28 -0000 1.64
+++ README 12 Dec 2003 22:37:12 -0000 1.65
@@ -1,6 +1,6 @@
$Id$
======================================================================
-This is Mixminion version 0.0.6rc1, from the Mixminion CVS repository.
+This is Mixminion version 0.0.6rc2, from the Mixminion CVS repository.
CONTENTS:
I. Overview
@@ -38,6 +38,15 @@
II. WHAT'S NEW IN THIS VERSION?
===============================
+NEW IN VERSION 0.0.6rc2:
+ - Fixed a couple of bugs that would prevent Mixminion from running on
+ Python 2.0 or Python 2.1.
+
+ - Fixed a build problem with stand-alone Windows builds: the 'bsddb'
+ module was not included, so we were defaulting to the slow and
+ inefficient 'dumbdbm' module to store hash logs, SURB logs, and fragment
+ indexes.
+
NEW IN VERSION 0.0.6rc1:
- Windows support
- The Mixminion command-line interface now works on MS Windows, at
@@ -154,9 +163,9 @@
The quick version: For Unix-clones, Mac OS X, or Windows with Cygwin
---------------------------------------------------------------------
- <download and unpack http://www.mixminion.net/dist/Mixminion-0.0.6rc1.tar.gz>
+ <download and unpack http://www.mixminion.net/dist/Mixminion-0.0.6rc2.tar.gz>
- % cd Mixminion-0.0.6rc1
+ % cd Mixminion-0.0.6rc2
% make download-openssl
% make build-openssl
% make
@@ -223,7 +232,7 @@
First, make sure that you're running Win98 or later.
- Download 'mixminion-v006rc1-win32.zip", and unpack it anywhere you like.
+ Download 'mixminion-v0.0.6rc2-win32.zip", and unpack it anywhere you like.
It will create a directory named 'mixminion'.
Use mixminion.exe from that directory as your command-line client.
@@ -240,7 +249,7 @@
First, make sure that you have the latest official release of Python 2.3
installed. As of 5 Dec 2003, this is 2.3.2.
- Download and run "mixminion-v0.0.6rc1.win32-py2.3.exe". It will unpack
+ Download and run "mixminion-v0.0.6rc2.win32-py2.3.exe". It will unpack
its files into your Python directory.
The script to invoke Mixminion will be stored in the 'Scripts'
Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -d -r1.173 -r1.174
--- TODO 8 Dec 2003 04:55:43 -0000 1.173
+++ TODO 12 Dec 2003 22:37:12 -0000 1.174
@@ -158,24 +158,22 @@
D Tests for ServerInbox and Directory.py
D Tests for checkConsistency
o What happens when Overlap > Lifetime? (Test manually.)
- . Cleanup for release
+ o Cleanup for release
o Resolve all XXXX006 and DOCDOC items
o Resolve all pending bugzilla bugs
o Resolve all pending mail bugs
o Make README accurate again
- - Document new 'server-start' switches
+ o Document new 'server-start' switches
-For 0.0.7: [Incomplete list: right now, mostly contains 0.0.6 stuff.]
+For 0.0.7:
- Specification
- Clear up specification for payload versions.
- Clear up specification for NEWS
- - Clear up specification for multiple addrs on MAIL
- - Implement changes as needed, depending on migration
- plans.
- - Add versioning to payload format? (Migration code as
- needed.)
+ o Clear up specification for multiple addrs on MAIL
- Infrastructure -- high level
- Servers need to download and use directories
+ - Servers should use downloaded directories to print useful
+ nicknames for other servers rather than just IP addresses.
- Have callers of Packet/BuildMessage/DeliveryPacket
decide whether to look for a tag in the RI field.
- Make processing thread and module thread general
@@ -183,10 +181,6 @@
- UI improvements
- RFC822 interface and maildir-style exit module to help
integrators.
- - MMTP
- - Make MMTP bursty
- - There's no need to ever store MMTP keys to disk; we should
- also rotate them more often.
- Large reply messages and efwd messages
- Fragment-pool logic for client
- Manual pages
@@ -201,30 +195,17 @@
- Maybe add a page for Mixminion integration.
Require for "0.1.0" (the in-theory-as-good-as-type-II release):
-[Release criteria: Workable replacement for type II. At least as
-anonymous, usable, secure, and portable. Nymservers aren't in, so
-not yet ready to replace type I.]
-
+ [Release criteria: Workable replacement for type II. At least as
+ anonymous, usable, secure, and portable. Other than lack of nymservers,
+ also ready to replace type I. Interfaces are stable enough that
+ integrators can start building GUIs and nymservers without expecting large
+ incompatible changes. Target: first half of 2004. (No guarantees!)]
- Dummies and pinging
- - Key management
- - Document "DELKEYS"
- - Password-protected private identity keys
- - Password-protected private link/packet keys
- - Password-protected dirserver keys
- Security
- - Add ability to mark nodes as having same
- administrative domain.
- - Change pathgen to avoid two nodes with same domain
- in a row.
- - Change pathgen to avoid using same node for entry
- and exit?
- - Add jurisdictions to pathgen?
- Make createPrivateDirs gripe about group-writable parent
dirs
- Modules and module support
- - Use STARTTLS as available
- - Move boilerplate into outside files. Add some generic
- 'Boilerplate' functionality.
+ - Use STARTTLS as available, it it's not too hard.
- Real SMTP module
- Support multiple exit addresses. (cc, bcc, etc.)
Needs to be bandwidth-limited.
@@ -235,15 +216,12 @@
downloading directories.
- Make client-side pooling configurable and more
sophisticated.
- - Reload configuration on SIGHUP
- - Support for one-side-only MMTP configurations.
. Freak out properly on missing/unpublishable IP.
. Full validation function for client
. Full validation function for server
- Support for non-clique topologies (cliques with a few
missing links would be sufficient.)
- Client support
- - Support for sending multiple copies of a packet?
- Automatically remove old messages from client queue. (Add
'warn after' and 'delete after' configuration options'.)
- Flush messages to a single mix, or set of mixes.
@@ -264,20 +242,7 @@
o flock
- Installing to relative path
. An init.d script.
- - Testing
- - Test on other (non-redhat, non-linux) systems
- - COME UP WITH A REAL TESTING STRATEGY FOR PERFORMANCE AND
- CLI'S AND MULTI-SERVER SITUATIONS.
- - Integration tests
- - Automated tests for several servers running
- on one machine.
- - Tests for servers on several different
- machines.
- - Repeatable CLI tests.
- - For client
- - For server
- - Support for multiple directories, no automated agreement. [But do
- automated agreement if it's specified!]
+ - Support for multiple directories, with automated agreement.
- Configurable dirserver fingerprints and URLs.
- Full documentation
- Complete docs for all code, with comments and examples.
@@ -309,9 +274,26 @@
Other features for "1.0" (no research required):
- Full statistics
- Full statistics (ask Len what the list is.)
+ - Security
+ - Add ability to mark nodes as having same
+ administrative domain.
+ - Change pathgen to avoid two nodes with same domain
+ in a row.
+ - Change pathgen to avoid using same node for entry
+ and exit?
+ - Add jurisdictions to pathgen?
+ - Key management
+ - Document "server-DELKEYS"
+ - Password-protected private identity keys
+ - Password-protected private link/packet keys
+ - Password-protected dirserver keys
+ - There's no need to ever store MMTP keys to disk; we should
+ also rotate them more often. (Only if identity key is
+ unencrytped.)
- Better CLIs
- Add a --status-fd option similar to GPG's so that
we can be more easily embedded.
+ - Support for sending multiple copies of a packet?
- ClientAPI correctness
- Port ClientAPI from C API document.
- Move other functionality into ClientSupport module.
@@ -325,26 +307,26 @@
o Refactoring/cleanup
o Put 'address' someplace more reasonable.
- Configurability
- - Put pid and lock and key and queues in different
+ o Put pid and lock and key and queues in different
places; coalesce pid and lock.
- Make all filenames in server config relative to
server home, if not absolute.
+ - Support for one-side-only MMTP configurations.
X Make zlib bomb prevention configurable.
- Separate error/other log files.
+ - Move boilerplate into outside files. Add some generic
+ 'Boilerplate' functionality.
- Make SURB logging configurable.
- Add 'ALLOW' lines to blacklist.
- Client support
- Some way to read a reply block *and* a message from
stdin?
- - Directory support
- - Servers should download directories
- - Servers should use downloaded directories to print useful
- nicknames for other servers rather than just IP addresses.
- Port to Twisted, if reasonable (see HACKING)
- Send/receive large messages without having to suck them all
into RAM at once.
- Fragment and unfragment large messages on disk.
- MMTP / async
+ - Make MMTP bursty, at least on client side.
- Tests for all cases:
- Packet to server with bogus IP
- Junk
@@ -353,6 +335,18 @@
- Bad senders
- Bad recipients
- Hunt down leaks
+ - Testing
+ - Test on other (non-redhat, non-linux) systems
+ - COME UP WITH A REAL TESTING STRATEGY FOR PERFORMANCE AND
+ CLI'S AND MULTI-SERVER SITUATIONS.
+ - Integration tests
+ - Automated tests for several servers running
+ on one machine.
+ - Tests for servers on several different
+ machines.
+ - Repeatable CLI tests.
+ - For client
+ - For server
Features for "1.0" (some research/specification required):
- Nymservers
@@ -388,7 +382,6 @@
- Notice active attacks and block IPs dynamically.
- Abuse prevention of some undetermined kind.
-
WHEN WE GET THE CHANCE:
[This stuff could be for any version 1.0 or later; it's not a
requirement for 1.0.]
Index: setup.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/setup.py,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -d -r1.85 -r1.86
--- setup.py 8 Dec 2003 16:18:11 -0000 1.85
+++ setup.py 12 Dec 2003 22:37:12 -0000 1.86
@@ -6,9 +6,9 @@
#
# Current Mixminion version
#
-VERSION = '0.0.6rc1'
+VERSION = '0.0.6rc2'
# System: 0==alpha, 50==beta, 98=pre, 99==release candidate, 100==release
-VERSION_INFO = (0,0,6,99,1)
+VERSION_INFO = (0,0,6,99,2)
# Check the version. We need to make sure version_info exists before we
# compare to it: it was only added as of Python version 1.6.