[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] add a lot of todo entries, from today"s meeting



Update of /home/or/cvsroot/doc
In directory moria.mit.edu:/home2/arma/work/onion/cvs/doc

Modified Files:
	TODO rendezvous.txt tor-spec.txt 
Log Message:
add a lot of todo entries, from today's meeting


Index: TODO
===================================================================
RCS file: /home/or/cvsroot/doc/TODO,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- TODO	31 Aug 2003 00:11:01 -0000	1.16
+++ TODO	20 Sep 2003 06:56:15 -0000	1.17
@@ -11,7 +11,58 @@
         D Deferred
         X Abandoned
 
+Short-term:
+NICK    . routers have identity key, link key, onion key.
+                - link key certs are signed by identity key
+                  - not in descriptor
+                  - not in config
+                  - not on disk
+                - identity and onion keys are in descriptor (and disk?)
+NICK    - upon boot, if it doesn't find identity key, generate it and write it.
+NICK    - also write a file with the identity key fingerprint in it
+NICK    - router generates descriptor: flesh out router_get_my_descriptor()
+          - figure out what directory generation stuff can be moved out of main.c
+NICK    - Routers sign descriptors with identity key
+NICK    - routers put version number in descriptor
+NICK    - routers should maybe have `uname -a` in descriptor?
+NICK    . Give nicknames to routers
+                o in config
+                - in descriptors
+ARMA    - router posts descriptor
+                - when it boots
+                - when it changes
+NICK    - change tls stuff so certs don't get written to disk, or read from disk
+ARMA    - make directory.c threadsafe (or at least safe for multiple posts)
+NICK    ? dirserver parses descriptor
+        - dirserver checks signature
+        D client checks signature?
+NICK    - dirserver writes directory to file
+          - reads that file upon boot
+NICK    - directory includes all routers, up and down
+NICK    - add "up" line to directory, listing nicknames
+ARMA    - find an application that uses half-open connections, to test
+NICK    - instruments ORs to report stats
+          - average cell fullness
+          - average bandwidth used
+          - others?
+ARMA    - integrate rep_ok functions, see what breaks
+ARMA    - configure log files. separate log file, separate severities.
+ARMA    - what assumptions break if we fclose(0) when we daemonize?
+NICK    - make buffer struct elements opaque outside buffers.c
+ARMA    - Go through log messages, reduce confusing error messages.
+ARMA    - make the logs include more info (fd, etc)
+ARMA    - add log convention to the HACKING file
+        - make 'make install' do the right thing
+ARMA    - change binary name to tor
+ARMA    - change config files so you look at commandline, else look in
+          /etc/torrc. no cascading.
+ARMA    - have an absolute datadir with fixed names for files, and fixed-name
+          keydir under that with fixed names
+ARMA    - tor faq
+          list all other systems, why we're different.
 
+Mid-term:
+        - What happens when a circuit's length is 1? What breaks?
         . streams / circuits
                 o Implement streams
                 o Rotate circuits after N minutes?
@@ -41,17 +92,12 @@
                   when the AP get an extended cell.
 SPEC!!  D Non-clique topologies
         D Implement our own memory management, at least for common structs
-        . Appropriate logging
-                - Come up with convention for what log level means what
-                - Make code follow convention
         . Put CPU workers in separate processes
                 o Handle multiple cpu workers (one for each cpu, plus one)
                 o Queue for pending tasks if all workers full
                 o Support the 'process this onion' task
-NICK            - Support the 'decrypt this RSA blob' handshake1 task
-                        - Merge dnsworkers and cpuworkers to some extent
+                D Merge dnsworkers and cpuworkers to some extent
                 - Handle cpuworkers dying
-                D Support later handshake parts
         o Simple directory servers
                 o Include key in source; sign directories
                         o Signed directory backend
@@ -65,15 +111,6 @@
                         o Command-line option to override quit
                 o Add more information to directory server entries
                         o Exit policies
-        - More directory servers
-                - Add in long-term nicknames
-                - Give normal routers signing keys
-                - Let dirservers keep only {nickname, signingkey} in routers.or
-                        - dirport needs to accept 'post' requests
-                          for routers submitting (signed) new entries
-                        - routers submit new entries periodically
-                        - dirserver checks signature
-                        D client checks signature?
         D Advanced directory servers
                 D Automated reputation management
 SPEC!!          D Figure out how to do threshold directory servers
@@ -86,7 +123,7 @@
                 . Get socks4a support into Mozilla
         . Get tor to act like a socks server
                 o socks4, socks4a
-                D socks5
+ARMA            - socks5
 SPEC!!          - Handle socks commands other than connect, eg, bind?
         . Develop rendezvous points
                 o Design
@@ -115,7 +152,7 @@
                 o Teach it to fork and background
                 - Red Hat spec file
                 - Debian spec file equivalent
-        . Autoconf
+        . Portability
                 . Which .h files are we actually using?
                 . Port to:
                         o Linux
@@ -124,13 +161,14 @@
                         o Cygwin
                         o Win32
                         o OS X
+                - deal with pollhup / reached_eof on all platforms
                 o openssl randomness
                 o inet_ntoa
                 . stdint.h
                 - Make a script to set up a local network on your machine
-        D Move away from openssl
+        X Move away from openssl
                 o Abstract out crypto calls
-                D Look at nss, others? Just include code?
+                X Look at nss, others? Just include code?
         o Clearer bandwidth management 
                 o Do we want to remove bandwidth from OR handshakes?
                 o What about OP handshakes?
@@ -173,7 +211,7 @@
                         o An address doesn't resolve
                         o We have max workers running
                 o Consider taking the master out of the loop?
-        D Implement reply onions
+        X Implement reply onions
         o Total rate limiting
         o Look at OR handshake in more detail
                 o Spec it

Index: rendezvous.txt
===================================================================
RCS file: /home/or/cvsroot/doc/rendezvous.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- rendezvous.txt	22 Jun 2003 20:39:10 -0000	1.6
+++ rendezvous.txt	20 Sep 2003 06:56:15 -0000	1.7
@@ -17,7 +17,7 @@
    extra level of indirection also allows Bob to choose which requests
    to respond to, and which to ignore.
 
-   We also provide the necessary glue code so that Alice can view webpages
+   We provide the necessary glue code so that Alice can view webpages
    on a location-hidden webserver, and Bob can run a location-hidden
    server, with minimal invasive changes (see Section 3). Both Alice
    and Bob must run local onion proxies (OPs) -- software that knows

Index: tor-spec.txt
===================================================================
RCS file: /home/or/cvsroot/doc/tor-spec.txt,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- tor-spec.txt	5 Sep 2003 06:46:39 -0000	1.29
+++ tor-spec.txt	20 Sep 2003 06:56:15 -0000	1.30
@@ -194,10 +194,10 @@
       1. Create an onion skin, encrypting the RSA-encrypted part with
          R's public key.
 
-      2. Encrypt and send the onion skin in a RELAY_CREATE cell along
+      2. Encrypt and send the onion skin in a relay EXTEND cell along
          the circuit (see section 5).
 
-      3. When a RELAY_CREATED cell is received, calculate the shared
+      3. When a relay EXTENDED cell is received, calculate the shared
          keys.  The circuit is now extended.
 
    When an onion router receives an EXTEND relay cell, it sends a