[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[minion-cvs] Most of documentation updates for 0.0.7rc1. Still need...
Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv21755
Modified Files:
HACKING LICENSE README TODO setup.py
Log Message:
Most of documentation updates for 0.0.7rc1. Still need to do a manpage
Index: HACKING
===================================================================
RCS file: /home/minion/cvsroot/src/minion/HACKING,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- HACKING 12 Dec 2003 22:37:12 -0000 1.23
+++ HACKING 7 Mar 2004 06:33:56 -0000 1.24
@@ -1,14 +1,20 @@
$Id$
Hacking Mixminion
-Requirements:
+HOW TO CONTRIBUTE PATCHES:
+ - Send them to the list mixminion-dev@freehaven.net, or to me
+ (nickm@freehaven.net).
+ - Include a statement saying that you give permission for me to
+ redistribute your work under any FSF-approved license Mixminion
+ may use in the future, including (but not limited to) LGPL, GPL,
+ modified (3-clause) BSD, X11, or MIT.
+
+System requirements:
Python >= 2.0 (see PORTING NOTES below)
OpenSSL 0.9.7 (If you don't have it, the Makefile knows how to
download it for you.)
- A working /dev/urandom (see PORTING NOTES below)
-
NON-HACKING PROJECTS:
- We need documentation.
@@ -49,16 +55,7 @@
configurable via some kind of generic boilerplate mechanism, and stored in
separate files. (Difficulty: easy. Invasiveness: slight.)
-- We should throttle bandwidth under high load. To implement this, every
- connection needs to keep track of how many bytes it's sent or received,
- and stop trying to read or write after a certain threshold is passed.
- Every timeslice (say, 1 or 2 seconds), we reset the quota and restart the
- connections. A good implementation would support:
- - Per-connection limits
- - Total-bandwidth limits
- - Noticing multiple connections from the same IP.
- - Throttling delivery as well as MMTP
- - Throttling CPU usage in the processing thread.
+- We could use some way to cap total disk usage, and handle full disks sanely.
(Difficulty: moderate. Invasiveness: moderate.)
- If you have access to a multiprocessor machine, it would be nice to make
@@ -69,17 +66,15 @@
one-per-connection). (Difficulty: easy/moderate, depending on your
knowledge of writing multithreaded code. Invasiveness: slight.)
+- We have a specification for multiple exit addresses, but it needs to be
+ implemented... (Difficulty: easy. Invasiveness: slight.)
+
THINGS TO THINK ABOUT AND HACK: (Introductory projects that will take some
specification work. Please, get your spec discussed on mixminion-dev and
checked into CVS *before* you submit an implementation for any of these!
[See spec-issues.txt for more open issues].)
-- Maybe, there should be support for multiple exit addresses (cc, bcc, etc.)
- This is prone to abuse... (Spec difficulty: easy, once you've figured out
- how to limit abuse. Implementation difficulty: easy. Invasiveness:
- slight.)
-
- We should have an incoming email gateway for users to use reply blocks to
send messages anonymously without using Mixminion software. (Spec
difficulty: easy. Implementation difficulty: moderate. Invasiveness:
@@ -87,8 +82,8 @@
- Want a real challenge? We have an allusive description for how to do
K-of-N fragmentation in our E2E-spec documentation. Go flesh out the
- description. (Spec difficulty: moderate. Implementation difficulty: hard.
- Invasiveness: some.)
+ description. (Spec difficulty: moderate. Implementation difficulty:
+ already implemented.)
- Right now, we never generate link padding or dummy messages. The code is
there, but it never gets triggered. Specify when it gets triggered (and
@@ -204,11 +199,6 @@
run under gnutls/libgcrypt as well, but I think in the long term
we should migrate to libnss entirely.
-PORTING TO NON-LINUX PLATFORMS:
- - If you need to run on a system without an acceptable /dev/*random,
- you'll need to write an acceptable fallback for mixminion.Crypto.trng()
- to use.
-
CAVEATS:
- If I haven't got a test for it in tests.py, assume it doesn't work.
- The code isn't threadsafe. It will become so only if it must.
@@ -224,24 +214,20 @@
Received in MMTPServer;
V
- Stored in an 'Incoming' queue, implemented in ServerMain and Queue.
+ Stored in an 'Incoming' queue, implemented in ServerMain and Queue.
V
Validated, decrypted, padded by code in PacketHandler.
V
- Stored in a 'Mix' pool, implemented in ServerMain and Queue.
- V
+ Stored in a 'Mix' pool, implemented in ServerMain and Queue.
+ V
A batch of messages is selected by the 'Mix pool' for delivery.
- V
- ---Some are placed in an 'Outgoing' queue...
- I V
- I ... and delivered to other Mixminion servers via MMTPServer
- V
- ---Others are queued and delivered by other exit methods,
- implemented and selected by ModuleManager.
-
-CONTRIBUTING PATCHES:
- - Send them to the list mixminion-dev@freehaven.net, or to me
- (nickm@freehaven.net).
+ V
+ ---Some are placed in an 'Outgoing' queue...
+ I V
+ I ... and delivered to other Mixminion servers via MMTPServer
+ V
+ ---Others are queued and delivered by other exit methods,
+ implemented and selected by ModuleManager.
--Nick
Index: LICENSE
===================================================================
RCS file: /home/minion/cvsroot/src/minion/LICENSE,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- LICENSE 6 Mar 2004 00:04:37 -0000 1.7
+++ LICENSE 7 Mar 2004 06:33:56 -0000 1.8
@@ -2,9 +2,8 @@
Currently, it is licensed under the Lesser GNU General Public License. This
is not yet a final decision; under future versions, it is very possible that
-I'll relicense the server components under the GPL. It is remotely possible,
-but quite unlikely, that I'll relicense the client components under an
-X11-style license.
+I'll relicense the server components under the GPL. It is also possible
+that I'll relicense the client components under an X11-style license.
Note: Because of the advertising clause of its license, OpenSSL is not
compatible with the GPL. Thus, we license Mixminion under an amended LGPL: we
Index: README
===================================================================
RCS file: /home/minion/cvsroot/src/minion/README,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- README 21 Feb 2004 01:04:48 -0000 1.73
+++ README 7 Mar 2004 06:33:56 -0000 1.74
@@ -1,6 +1,6 @@
$Id$
======================================================================
-This is Mixminion version 0.0.7alpha, from the Mixminion CVS repository.
+This is Mixminion version 0.0.7rc1, from the Mixminion CVS repository.
CONTENTS:
I. Overview
@@ -37,6 +37,50 @@
II. WHAT'S NEW IN THIS VERSION?
===============================
+
+NEW IN 0.0.7rc1:
+
+ - USER FUNCTIONALITY
+ - Ability to delete or transmit queued messages to selected mixes,
+ instead of all mixes.
+ - Configuration options to block servers from path generation.
+ - New "mixminiond FOO" script as alternate starting point for
+ "mixminion server-FOO" functions.
+ - CLI interface for client-side fragment reassembly.
+ - Command shell (on Windows) supports filenames with spaces much
+ better.
+
+ - INFRASTRUCTURE
+ - Allow servers to download and use directories (necessary for
+ dummy/pinging work in future versions.)
+ - Display server nicknames in log instead of just IP addresses.
+ - Servers check recommended-version, complain when server is obsolete.
+ - Put timezones in log.
+ - Refactor RFC822 header generation logic (original patch from
+ bfordham).
+
+ - NETWORKING
+ - Rewrite MMTP logic to implement protocol correctly and transfer
+ packets more quickly, without waiting for round-trip acknowledgments
+ after each before sending the next.
+ - Unify client and server MMTP sending implementations.
+ - Use IP TOS flags where available to request optimization for
+ bandwidth.
+ - Configurable limits for bandwidth.
+ - Configurable limits on number of outgoing network connections.
+ - New --reply-block-fd option to read reply-blocks from a file
+ descriptor.
+ - New --passphrase-fd option to read passphrase from a file
+ descriptor.
+ - The --quiet option works for clients as well as servers.
+ - "mixminion ping" supports addr:port syntax as well as nicknames.
+
+ - MISC
+ - Call shred more efficiently when calling shred
+ - Other bugfixes too numerous to mention
+ - Remove some deprecated functionality
+ - Better windows build
+
<See HISTORY file for changes in earlier versions.>
STILL NOT IN THIS VERSION:
@@ -46,31 +90,21 @@
- No support for distributed directories.
- Other stuff too numerous to mention; see TODO.
-III. HOW TO UPGRADE FROM MIXMINION 0.0.5
+III. HOW TO UPGRADE FROM MIXMINION 0.0.6
========================================
First, follow the installation instructions from section IV to install the
new version of the software.
-If you aren't running a server, you are done. (Compatibility note: SURB
-keyrings used by version 0.0.5 are _not_ compatible with keyrings used by
-0.0.6!)
+If you aren't running a server, you are done.
If you're running a server, you may need to upgrade your configuration file.
Follow these steps:
- 1. Your configuration file may be out of date. You will need to add
- a 'Hostname' entry to the 'Incoming/MMTP' section of your
- configuration. It _must_ contain a valid DNS name for your server.
- (You can use a static IP instead, if your server's IP will never
- change.)
-
- The 'IP' configuration entry is still required, too, in order to
- support older clients.
+ 1. Your configuration file may be out of date. Here's what has changed:
- (If you control your own DNS, you may want to consider creating a
- separate entry for your Mixminion server, so that you could move to a
- different host in the future as needed.)
+ A. The "Contact-Email" setting is no longer optional. You must
+ provide a contact email address if you haven't already.
2. Start your server as usual ('mixminion server-start') and try sending
some messages through it. Check your configuration log for warnings.
@@ -80,9 +114,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.6.tar.gz>
+ <download and unpack http://www.mixminion.net/dist/Mixminion-0.0.7rc1.tar.gz>
- % cd Mixminion-0.0.6
+ % cd Mixminion-0.0.7rc1
% make download-openssl
% make build-openssl
% make
@@ -149,24 +183,18 @@
First, make sure that you're running Win98 or later.
- Download 'Mixminion-0.0.6.win32.zip", and unpack it anywhere you like.
+ Download 'Mixminion-0.0.7rc1.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.
- NOTE TO ALL WINDOWS USERS: This is the first version of Mixminion to
- support native Win32 operations. As such, you should consider it even
- more experimental than usual. If you find any bugs, or any places where
- its behavior is stupid for a Windows environment, please let me know.
- (See section VII below for information on how to report bugs.)
-
The slightly harder version: For Windows with Python 2.3
--------------------------------------------------------
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-0.0.6.win32-py2.3.exe". It will unpack
+ Download and run "Mixminion-0.0.7rc1.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.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- TODO 6 Mar 2004 06:39:44 -0000 1.200
+++ TODO 7 Mar 2004 06:33:56 -0000 1.201
@@ -140,8 +140,6 @@
incompatible changes. Target: first half of 2004. (No guarantees!)]
- Security
- Upgrade packet format as necessary.
- - Perhaps, increased or configurable DH parameter size,
- or fixed DH parameters.
- Modules and module support
- Use STARTTLS as available, if it's not too hard.
- Real SMTP module
@@ -282,7 +280,6 @@
- Only pick from the directory when picking
random servers.
- Notice Allow/Deny.
- - Notice MMTP protocol versions.
- UI issues
- Notice when out of disk space, die more cleanly.
(support max-disk-usage).
Index: setup.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/setup.py,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- setup.py 6 Mar 2004 06:39:44 -0000 1.91
+++ setup.py 7 Mar 2004 06:33:56 -0000 1.92
@@ -6,9 +6,9 @@
#
# Current Mixminion version
#
-VERSION = '0.0.7alpha0'
+VERSION = '0.0.7alpha2'
# System: 0==alpha, 50==beta, 98=pre, 99==release candidate, 100==release
-VERSION_INFO = (0,0,7,0,0)
+VERSION_INFO = (0,0,7,0,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.
@@ -508,11 +508,22 @@
define_macros=MACROS)
+EXTRA = {}
+
if 'py2exe' in sys.argv:
# Py2EXE wants numberic versions for Windows
VERSION = "." .join(map(str,VERSION_INFO))
- # XXXX WRONG!!!!
+ # XXXX WRONG!!!!
sys.path.append("./build/lib.win32-2.3")
+ EXTRA = {
+ 'console' : SCRIPTS,
+ 'zipfile' : r'lib\shared.zip',
+ 'options' : {'py2exe':
+ { 'compressed':1,
+ 'excludes': ['mixminion._textwrap','mixminion._unittest',
+ 'mixminion._zlibutil','coverage'] }
+ },
+ }
setup(name='Mixminion',
version=VERSION,
@@ -527,18 +538,9 @@
scripts=SCRIPTS,
ext_modules=[extmodule],
cmdclass={'run': runMMCommand},
-
-
- # for Py2EXE
- console=SCRIPTS,
data_files=[("",["README","TODO","LICENSE","HISTORY",
"etc/mixminiond.conf"])],
- zipfile=r'lib\shared.zip',
- options={'py2exe':
- { 'compressed':1,
- 'excludes': ['mixminion._textwrap','mixminion._unittest',
- 'mixminion._zlibutil','coverage'] }
- },
+ **EXTRA
)
try: