6 new FAQ entires.
Matt Pagan

Matt Pagan commited on 2013-12-13 21:12:11
Zeige 1 geänderte Dateien mit 204 Einfügungen und 1 Löschungen.

... ...
@@ -158,6 +158,20 @@ relay.</a></li>
158 158
     <li><a href="#ProvideAHiddenService">How do I provide a hidden service</a></li>
159 159
     </ul>
160 160
 
161
+    <p>Development</p>
162
+    <ul>
163
+    <li><a href="#WhoIsResponsible">Who is responsible for Tor?</a></li>
164
+    <li><a href="#VersionNumbers">What do these weird version numbers 
165
+    mean?</a></li>
166
+    <li><a href="#PrivateTorNetwork">How do I set up my own private
167
+    Tor network?</a></li>
168
+    <li><a href="#UseTorWithJava">How can I make my Java program use the 
169
+    Tor network?</a></li>
170
+    <li><a href="#WhatIsLibevent">What is Libevent?</a></li>
171
+    <li><a href="#MyNewFeature">What do I need to do to get a new feature 
172
+    into Tor?</a></li>
173
+    </ul>
174
+
161 175
     <p>Anonymity and Security:</p>
162 176
     <ul>
163 177
     <li><a href="#WhatProtectionsDoesTorProvide">What protections does Tor 
... ...
@@ -544,7 +558,7 @@ or the
544 558
     <a id="Forum"></a>
545 559
     <h3><a class="anchor" href="#Forum">Is there a Tor forum?</a></h3>
546 560
 
547
-    <p>We have <a href="https://tor.stackexchange.com/">a StackExchange 
561
+    <p>We have a <a href="https://tor.stackexchange.com/">StackExchange 
548 562
     page</a> that is currently in public beta.
549 563
     </p>
550 564
 
... ...
@@ -2742,6 +2756,195 @@ diversity,
2742 2756
 
2743 2757
     <hr>
2744 2758
     
2759
+    <a id="WhoIsResponsible"></a>
2760
+    <h3><a class="anchor" href="#WhoIsResponsible">Who is responsible 
2761
+    for Tor?</a></h3>
2762
+
2763
+    <p>
2764
+    <a href="http://www.freehaven.net/~arma/cv.html">Roger Dingledine</a> and 
2765
+    <a href="http://www.wangafu.net/~nickm/">Nick Mathewson</a> are the main 
2766
+    developers of Tor. You can read more at 
2767
+    <a href="https://www.torproject.org/about/corepeople">Tor's People 
2768
+    page</a>. 
2769
+    </p>
2770
+
2771
+    <hr>
2772
+
2773
+    <a id="VersionNumbers"></a>
2774
+    <h3><a class="anchor" href="#VersionNumbers">What do these weird 
2775
+    version numbers mean?</a></h3>
2776
+
2777
+    <p>
2778
+    Versions of Tor before 0.1.0 used a strange and hard-to-explain version scheme. Let's forget about those.
2779
+    </p>
2780
+    <p>
2781
+    Starting with 0.1.0, versions all look like this: 
2782
+    MAJOR.MINOR.MICRO(.PATCHLEVEL)(-TAG). The stuff in parenthesis is 
2783
+    optional. MAJOR, MINOR, MICRO, and PATCHLEVEL are all numbers. Only one 
2784
+    release is ever made with any given set of these version numbers. The 
2785
+    TAG lets you know how stable we think the release is: "alpha" is pretty 
2786
+    unstable; "rc" is a release candidate; and no tag at all means that we 
2787
+    have a final release. If the tag ends with "-cvs", you're looking at 
2788
+    a development snapshot that came after a given release. 
2789
+    </p>
2790
+    <p>
2791
+    So for example, we might start a development branch with (say) 
2792
+    0.1.1.1-alpha. The patchlevel increments consistently as the status 
2793
+    tag changes, for example, as in: 0.1.1.2-alpha, 0.1.1.3-alpha, 
2794
+    0.1.1.4-rc, 0.1.1.5-rc, etc. Eventually, we would release 0.1.1.6. 
2795
+    The next stable release would be 0.1.1.7.
2796
+    </p>
2797
+    <p>
2798
+    Why do we do it like this? Because every release has a unique 
2799
+    version number, it is easy for tools like package manager to tell 
2800
+    which release is newer than another. The tag makes it easy for users 
2801
+    to tell how stable the release is likely to be. 
2802
+    </p>
2803
+
2804
+    <hr>
2805
+
2806
+    <a id="PrivateTorNetwork"></a>
2807
+    <h3><a class="anchor" href="#PrivateTorNetwork">How do I set up my 
2808
+    own private Tor network?</a></h3>
2809
+    
2810
+    <p>
2811
+    If you want to experiment locally with your own network, or you're 
2812
+    cut off from the Internet and want to be able to mess with Tor still, 
2813
+    then you may want to set up your own separate Tor network. 
2814
+    </p>
2815
+    <p>
2816
+    To set up your own Tor network, you need to run your own authoritative 
2817
+    directory servers, and your clients and relays must be configured so 
2818
+    they know about your directory servers rather than the default public 
2819
+    ones. 
2820
+    </p>
2821
+    <p>
2822
+    Apart from the somewhat tedious method of manually configuring a couple 
2823
+    of directory authorities, relays and clients there are two separate 
2824
+    tools that could help. One is Chutney, the other is Shadow. 
2825
+    </p>
2826
+    <p>
2827
+    <a href="https://gitweb.torproject.org/chutney.git">Chutney</a> is a 
2828
+    tool for configuring, controlling and running tests on a 
2829
+    testing Tor network. It requires that you have Tor and Python (2.5 or 
2830
+    later) installed on your system. You can use Chutney to create a testing
2831
+    network by generating Tor configuration files (torrc) and necssary keys 
2832
+    (for the directory authorities). Then you can let Chutney start your Tor
2833
+    authorities, relays and clients and wait for the network to bootstrap.
2834
+    Finally, you can have Chutney run tests on your network to see which 
2835
+    things work and which do not. Chutney is typically used for running a 
2836
+    testing network with about 10 instances of Tor. Every instance of Tor 
2837
+    binds to one or two ports on localhost (127.0.0.1) and all Tor 
2838
+    communication is done over the loopback interface. The <a 
2839
+    href="https://gitweb.torproject.org/chutney.git/blob/HEAD:/README">Chutney 
2840
+    README</a> is a good starting point for getting it up and running. 
2841
+    </p>
2842
+    <p>
2843
+    <a href="https://github.com/shadow/shadow">Shadow</a> is a network 
2844
+    simulator that can run Tor through its Scallion plug-in. Although 
2845
+    it's typically used for running load and performance tests on 
2846
+    substantially larger Tor test networks than what's feasible with 
2847
+    Chutney, it also makes for an excellent debugging tool since you can 
2848
+    run completely deterministic experiments. A large Shadow network is on 
2849
+    the size of thousands of instances of Tor, and you can run experiments 
2850
+    out of the box using one of Shadow's several included scallion experiment 
2851
+    configurations. Shadow can be run on any linux machine without root, 
2852
+    and can also run on EC2 using a pre-configured image. Also, Shadow 
2853
+    controls the time of the simulation with the effect that 
2854
+    time-consuming tests can be done more efficiently than in an 
2855
+    ordinary testing network. The <a 
2856
+    href="https://github.com/shadow/shadow/wiki">Shadow wiki</a> and 
2857
+    <a href="http://shadow.github.io/">Shadow website</a> are 
2858
+    good places to get started. 
2859
+    </p>
2860
+
2861
+    <hr>
2862
+
2863
+    <a id="UseTorInJava"></a>
2864
+    <h3><a class="anchor" href="UseTorInJava">How can I make my Java 
2865
+    program use the Tor Network?</a></h3>
2866
+
2867
+    <p>
2868
+    The newest versions of Java now have SOCKS4/5 support built in. 
2869
+    Unfortunately, the SOCKS interface is not very well documented and 
2870
+    may still leak your DNS lookups. The safest way to use Tor is to 
2871
+    interface the SOCKS protocol directly or go through an application-level 
2872
+    proxy that speaks SOCKS4a. For an example and libraries that implement 
2873
+    the SOCKS4a connection, go to Joe Foley's TorLib in the <a 
2874
+    href="http://web.mit.edu/foley/www/TinFoil/">TinFoil Project</a>. 
2875
+    </p>
2876
+
2877
+    <p>
2878
+    A fully Java implementation of the Tor client is now available as <a 
2879
+    href="http://www.subgraph.com/orchid.html">Orchid</a>. We still consider 
2880
+    Orchid to be experimental, so use with care. 
2881
+    </p>
2882
+
2883
+    <hr>
2884
+
2885
+
2886
+    <a id="WhatIsLibevent"></a>
2887
+    <h3><a class="anchor" href="#WhatIsLibevent">What is Libevent?</a></h3>
2888
+    
2889
+    <p>
2890
+    When you want to deal with a bunch of net connections at once, you 
2891
+    have a few options: 
2892
+    </p>
2893
+    <p>
2894
+    One is multithreading: you have a separate micro-program inside the 
2895
+    main program for each net connection that reads and writes to the 
2896
+    connection as needed.This, performance-wise, sucks. 
2897
+    </p>
2898
+    <p>
2899
+    Another is asynchronous network programming: you have a single main 
2900
+    program that finds out when various net connections are ready to 
2901
+    read/write, and acts accordingly.
2902
+    </p>
2903
+    <p>
2904
+    The problem is that the oldest ways to find out when net connections 
2905
+    are ready to read/write, suck. And the newest ways are finally fast, 
2906
+    but are not available on all platforms. 
2907
+    </p>
2908
+    <p>
2909
+    This is where Libevent comes in and wraps all these ways to find 
2910
+    out whether net connections are ready to read/write, so that Tor 
2911
+    (and other programs) can use the fastest one that your platform 
2912
+    supports, but can still work on older platforms (these methods are 
2913
+    all different depending on the platorm) So Libevent presents a 
2914
+    consistent and fast interface to select, poll, kqueue, epoll, 
2915
+    /dev/poll, and windows select. 
2916
+    </p>
2917
+    <p>
2918
+    However, On the the Win32 platform (by Microsoft) the only good 
2919
+    way to do fast IO on windows with hundreds of sockets is using 
2920
+    overlapped IO, which is grossly unlike every other BSD sockets 
2921
+    interface. 
2922
+    </p>
2923
+    <p>Libevent has <a href="http://www.monkey.org/~provos/libevent/">its 
2924
+    own website</a>.
2925
+    </p>
2926
+    <hr>
2927
+
2928
+    <a id="MyNewFeature"></a>
2929
+    <h3><a class="anchor" href="#MyNewFeature">What do I need to do to get 
2930
+    a new feature into Tor?</a></h3>
2931
+    
2932
+    <p>
2933
+    For a new feature to go into Tor, it needs to be designed (explain what 
2934
+    you think Tor should do), argued to be secure (explain why it's better 
2935
+    or at least as good as what Tor does now), specified (explained at the 
2936
+    byte level at approximately the level of detail in tor-spec.txt), and 
2937
+    implemented (done in software). 
2938
+    </p>
2939
+
2940
+    <p>
2941
+    You probably shouldn't count on other people doing all of these steps 
2942
+    for you: people who are skilled enough to do this stuff generally 
2943
+    have their own favorite feature requests.
2944
+    </p>
2945
+
2946
+    <hr>
2947
+
2745 2948
     <a id="WhatProtectionsDoesTorProvide"></a>
2746 2949
     <h3><a class="anchor" href="#WhatProtectionsDoesTorProvide">What 
2747 2950
     protections does Tor provide?</a></h3>
2748 2951