Sfoglia il codice sorgente

add a lot of todo entries, from today's meeting

svn:r474
Roger Dingledine 21 anni fa
parent
commit
7afe2adbaf
3 ha cambiato i file con 61 aggiunte e 23 eliminazioni
  1. 58 20
      doc/TODO
  2. 1 1
      doc/rendezvous.txt
  3. 2 2
      doc/tor-spec.txt

+ 58 - 20
doc/TODO

@@ -11,7 +11,58 @@ ARMA    - arma claims
         D Deferred
         D Deferred
         X Abandoned
         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
         . streams / circuits
                 o Implement streams
                 o Implement streams
                 o Rotate circuits after N minutes?
                 o Rotate circuits after N minutes?
@@ -41,17 +92,12 @@ ARMA    . Exit policies
                   when the AP get an extended cell.
                   when the AP get an extended cell.
 SPEC!!  D Non-clique topologies
 SPEC!!  D Non-clique topologies
         D Implement our own memory management, at least for common structs
         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
         . Put CPU workers in separate processes
                 o Handle multiple cpu workers (one for each cpu, plus one)
                 o Handle multiple cpu workers (one for each cpu, plus one)
                 o Queue for pending tasks if all workers full
                 o Queue for pending tasks if all workers full
                 o Support the 'process this onion' task
                 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
                 - Handle cpuworkers dying
-                D Support later handshake parts
         o Simple directory servers
         o Simple directory servers
                 o Include key in source; sign directories
                 o Include key in source; sign directories
                         o Signed directory backend
                         o Signed directory backend
@@ -65,15 +111,6 @@ NICK            - Support the 'decrypt this RSA blob' handshake1 task
                         o Command-line option to override quit
                         o Command-line option to override quit
                 o Add more information to directory server entries
                 o Add more information to directory server entries
                         o Exit policies
                         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 Advanced directory servers
                 D Automated reputation management
                 D Automated reputation management
 SPEC!!          D Figure out how to do threshold directory servers
 SPEC!!          D Figure out how to do threshold directory servers
@@ -86,7 +123,7 @@ SPEC!!          D Figure out how to do threshold directory servers
                 . Get socks4a support into Mozilla
                 . Get socks4a support into Mozilla
         . Get tor to act like a socks server
         . Get tor to act like a socks server
                 o socks4, socks4a
                 o socks4, socks4a
-                D socks5
+ARMA            - socks5
 SPEC!!          - Handle socks commands other than connect, eg, bind?
 SPEC!!          - Handle socks commands other than connect, eg, bind?
         . Develop rendezvous points
         . Develop rendezvous points
                 o Design
                 o Design
@@ -115,7 +152,7 @@ NICK    . Daemonize and package
                 o Teach it to fork and background
                 o Teach it to fork and background
                 - Red Hat spec file
                 - Red Hat spec file
                 - Debian spec file equivalent
                 - Debian spec file equivalent
-        . Autoconf
+        . Portability
                 . Which .h files are we actually using?
                 . Which .h files are we actually using?
                 . Port to:
                 . Port to:
                         o Linux
                         o Linux
@@ -124,13 +161,14 @@ NICK    . Daemonize and package
                         o Cygwin
                         o Cygwin
                         o Win32
                         o Win32
                         o OS X
                         o OS X
+                - deal with pollhup / reached_eof on all platforms
                 o openssl randomness
                 o openssl randomness
                 o inet_ntoa
                 o inet_ntoa
                 . stdint.h
                 . stdint.h
                 - Make a script to set up a local network on your machine
                 - 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
                 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 Clearer bandwidth management 
                 o Do we want to remove bandwidth from OR handshakes?
                 o Do we want to remove bandwidth from OR handshakes?
                 o What about OP handshakes?
                 o What about OP handshakes?
@@ -173,7 +211,7 @@ Older (done) todo stuff:
                         o An address doesn't resolve
                         o An address doesn't resolve
                         o We have max workers running
                         o We have max workers running
                 o Consider taking the master out of the loop?
                 o Consider taking the master out of the loop?
-        D Implement reply onions
+        X Implement reply onions
         o Total rate limiting
         o Total rate limiting
         o Look at OR handshake in more detail
         o Look at OR handshake in more detail
                 o Spec it
                 o Spec it

+ 1 - 1
doc/rendezvous.txt

@@ -17,7 +17,7 @@
    extra level of indirection also allows Bob to choose which requests
    extra level of indirection also allows Bob to choose which requests
    to respond to, and which to ignore.
    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
    on a location-hidden webserver, and Bob can run a location-hidden
    server, with minimal invasive changes (see Section 3). Both Alice
    server, with minimal invasive changes (see Section 3). Both Alice
    and Bob must run local onion proxies (OPs) -- software that knows
    and Bob must run local onion proxies (OPs) -- software that knows

+ 2 - 2
doc/tor-spec.txt

@@ -194,10 +194,10 @@ which reveals the downstream node.
       1. Create an onion skin, encrypting the RSA-encrypted part with
       1. Create an onion skin, encrypting the RSA-encrypted part with
          R's public key.
          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).
          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.
          keys.  The circuit is now extended.
 
 
    When an onion router receives an EXTEND relay cell, it sends a
    When an onion router receives an EXTEND relay cell, it sends a