Re: Multiple Proxies as service on windows based systems

"Floppus" <Floppus-YoKOdZtIZA5mR6Xm/[email protected]> Thu, 11 Dec 2003 07:38:04 +0100
Newsgroups gmane.comp.distributed-net.proxyper
Message-ID <003a01c3bfb1$54811c50$6402a8c0@floppus>
This is a multi-part message in MIME format.

------=_NextPart_000_0036_01C3BFB9.B6268AA0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0037_01C3BFB9.B6268AA0"


------=_NextPart_001_0037_01C3BFB9.B6268AA0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

aha...!

*Floppus cowlicks Jay Sea

I already made a small app that would hide it as a workaround, but it =
wasn't forwareded, probably because of the included executable.
Ofcourse I instantly checked the documentation included with the proxy, =
which doesn't mention this switch.
(ok,after knowing the switch, it can be found when searching =
disitributed.net for it)

I included the command line switch in the manual and attached it.

Floppus



  ----- Original Message -----=20
  From: Jay Sea=20
  To: Personal Proxy Discussion=20
  Sent: Friday, December 05, 2003 12:35 PM
  Subject: Re: [PROXYPER] Multiple Proxies as service on windows based =
systems


  It's true that you can't run it as a service in two folders, but you =
can run in hidden. Just add it to the startup folder and add the =
"-hidden" command behind it. Now there are two proxyper processes.

    ----- Original Message -----=20
    From: Floppus=20
    To: proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]=20
    Sent: Friday, December 05, 2003 12:24 AM
    Subject: [PROXYPER] Multiple Proxies as service on windows based =
systems


    Hi,

    As shown in the attached picture, I have managed to manually =
register more than one proxy as a service.
    All proxies are fully functional, and can be started via the service =
manager.

    The only problem that I can't figure out is: I cannot start 2 =
proxies as service simultaneously.
    I can start one, or another, but never both.

    When attempting to start a second proxy, service control manager =
replies that the service had been started, but terminated (which is =
normal if the application shuts itself down after execution).

    Things I have eliminated sofar:
    - proxies are in different folders
    - proxy .exe's (proxyper.exe) have different names
    - the name for the Service is different
    - dependencies are correct (any of the services will start, just not =
2 of them at the same time)
    - No LOG entry is written whatsoever
    - Ports on which the proxies listen are different
    - IP to flush from is different
    - IP to flush to is different


    I used a small VB-thingie to register the service:

    Private Declare Function CreateService _
    Lib "ADVAPI32.DLL" Alias "CreateServiceA" _
    (ByVal hSCManager As Long, ByVal lpServiceName As String, _
    ByVal lpDisplayName As String, ByVal dwDesiredAccess As Long, _
    ByVal dwServiceType As Long, ByVal dwStartType As Long, _
    ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, _
    ByVal lpLoadOrderGroup As String, ByVal lpdwTagId As String, _
    ByVal lpDependencies As String, ByVal lp As String, _
    ByVal lpPassword As String) As Long


    Thanks in advance!


-------------------------------------------------------------------------=
---


    _______________________________________________
    proxyper mailing list
    proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]
    http://lists.distributed.net/mailman/listinfo/proxyper



-------------------------------------------------------------------------=
-----


  _______________________________________________
  proxyper mailing list
  proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]
  http://lists.distributed.net/mailman/listinfo/proxyper

------=_NextPart_001_0037_01C3BFB9.B6268AA0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1226" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>aha...!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>*Floppus cowlicks Jay Sea</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I already made a small app that would =
hide it as a=20
workaround, but it wasn't forwareded, probably because of the included=20
executable.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Ofcourse I instantly checked the =
documentation=20
included with the proxy, which doesn't mention this switch.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>(ok,after knowing the switch, it can be =
found when=20
searching disitributed.net for it)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>I included the command line switch in =
the manual=20
and attached it.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Floppus</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV=20
  style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
  <A title=3Djaysea-1mbpWQn+QesL+hBr1Vu/[email protected] =
href=3D"mailto:jaysea-1mbpWQn+QesL+hBr1Vu/[email protected]">Jay=20
  Sea</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20
  title=3Dproxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]=20
  href=3D"mailto:proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]">Personal Proxy =
Discussion</A>=20
  </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Friday, December 05, 2003 =
12:35=20
  PM</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: [PROXYPER] =
Multiple Proxies=20
  as service on windows based systems</DIV>
  <DIV><BR></DIV>
  <DIV><FONT face=3DArial size=3D2>It's true that you can't run it as a =
service in=20
  two folders, but you can run in hidden. Just add it to the startup =
folder and=20
  add the "-hidden" command behind it. Now there are two proxyper=20
  processes.</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <BLOCKQUOTE=20
  style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
    <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
    <DIV=20
    style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
    <A title=3DFloppus-YoKOdZtIZA5mR6Xm/[email protected] =
href=3D"mailto:Floppus-YoKOdZtIZA5mR6Xm/[email protected]">Floppus</A>=20
</DIV>
    <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20
    title=3Dproxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]=20
    =
href=3D"mailto:proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]">[email protected]=
.net</A>=20
    </DIV>
    <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Friday, December 05, =
2003 12:24=20
    AM</DIV>
    <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> [PROXYPER] Multiple =
Proxies as=20
    service on windows based systems</DIV>
    <DIV><BR></DIV>
    <DIV><FONT face=3DArial size=3D2>Hi,</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>As shown in the attached picture, I =
have=20
    managed to manually register more than one proxy as a =
service.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>All proxies are fully functional, =
and can be=20
    started via the service manager.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>The only problem that I can't =
figure out is: I=20
    cannot start 2 proxies as service simultaneously.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>I can start one, or another, but =
never=20
    both.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>When attempting to start a second =
proxy,=20
    service control manager replies that the service had been started, =
but=20
    terminated (which is normal if the application shuts itself down =
after=20
    execution).</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>Things I have eliminated =
sofar:</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- proxies are in different =
folders</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- proxy .exe's (proxyper.exe) have =
different=20
    names</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- the name for the Service is=20
    different</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- dependencies are correct (any of =
the services=20
    will start, just not 2 of them at the same time)</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- No LOG entry is written=20
    whatsoever</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>-&nbsp;Ports on which the proxies =
listen are=20
    different</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- IP to flush from is =
different</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>- IP to flush to is =
different</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>I used a small VB-thingie to =
register the=20
    service:</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>Private Declare Function =
CreateService _<BR>Lib=20
    "ADVAPI32.DLL" Alias "CreateServiceA" _<BR>(ByVal hSCManager As =
Long, ByVal=20
    lpServiceName As String, _<BR>ByVal lpDisplayName As String, ByVal=20
    dwDesiredAccess As Long, _<BR>ByVal dwServiceType As Long, ByVal =
dwStartType=20
    As Long, _<BR>ByVal dwErrorControl As Long, ByVal lpBinaryPathName =
As=20
    String, _<BR>ByVal lpLoadOrderGroup As String, ByVal lpdwTagId As =
String,=20
    _<BR>ByVal lpDependencies As String, ByVal lp As String, _<BR>ByVal=20
    lpPassword As String) As Long</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
    <DIV><FONT face=3DArial size=3D2>Thanks in advance!</FONT></DIV>
    <P>
    <HR>

    <P></P>_______________________________________________<BR>proxyper =
mailing=20
    =
list<BR>proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]<BR>http://lists.distributed.net/ma=
ilman/listinfo/proxyper<BR></BLOCKQUOTE>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>proxyper =
mailing=20
  =
list<BR>proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]<BR>http://lists.distributed.net/ma=
ilman/listinfo/proxyper<BR></BLOCKQUOTE></BODY></HTML>

------=_NextPart_001_0037_01C3BFB9.B6268AA0--

------=_NextPart_000_0036_01C3BFB9.B6268AA0
Content-Type: text/html;
	name="manual.html"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="manual.html"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>distributed.net Personal Proxy Manual</title>
<style TYPE=3D"text/css"><!--
HTML {
        PADDING-RIGHT: 1cm; PADDING-LEFT: 1cm;
      	PADDING-BOTTOM: 1cm; MARGIN: 0px;
        BORDER-LEFT: #999999 1.5cm solid; LINE-HEIGHT: 1.3;
        PADDING-TOP: 1cm
}
BODY { margin: 0; font-family: Verdana,Helvetica,Arial; }
H1,H2,H3,H4 { font-family: Helvetica;
           text-transform: lowercase;
	   text-align: left; }
H2 { font-size: medium; }
A:link, A:active, A:visited { font-weight: bold; }
A:active { background-color: #eeeeee; text-decoration: none; }
TD { font-family: Verdana; }
--></style>
<meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Diso-8859-1">
</head>

<body bgcolor=3D"#eeeeee" text=3D"#111111" link=3D"#003366" =
vlink=3D"#663300" alink=3D"#999999" marginwidth=3D"0" marginheight=3D"0" =
topmargin=3D"0" leftmargin=3D"0">
<h1 align=3D"center">distributed.net Personal Proxy Manual</h1>
<p>&nbsp; </p>

<p>This document contains the neccesary instructions to set up your <a
  href=3D"http://www.distributed.net">distributed.net</a> personal proxy
  on both UNIX and Windows computers. If you have any additional
  questions, please refer to the <a
  href=3D"http://www.distributed.net/faq">FAQ-o-matic</a> or e-mail <a
  href=3D"mailto:[email protected]">[email protected]</a>.</p>

<p>&nbsp; </p>
<ul>
  <li><a href=3D"#introduction">Introduction</a></li>
  <li><a href=3D"#proxyver">Proxy build numbers and client versions =
supported</a></li>
  <li><a href=3D"#proxybuffer">Proxy buffer files</a></li>
  <li><a href=3D"#install">Installation and operation of the Personal =
Proxy</a></li>
  <li><a href=3D"#configure">Configuration</a></li>
    <ul>
      <li><a href=3D"#config-buffersizes">Buffer Sizes</a></li>
      <li><a href=3D"#config-dupechecking">Dupechecking</a></li>
      <li><a href=3D"#config-settings">Settings</a></li>
        <ul>
          <li><a href=3D"#config-settings-keyserver">upstream =
server</a></li>
          <li><a href=3D"#config-settings-ports">listing ports</a></li>
          <li><a href=3D"#config-settings-misc">miscellaneous</a></li>
          <li><a href=3D"#config-settings-console">console =
logging</a></li>
          <li><a href=3D"#config-settings-rc5-72">rc5-72 =
project</a></li>
          <li><a href=3D"#config-settings-other-projects">Other =
Projects</a></li>
          <li><a href=3D"#config-settings-access-control">Access =
Control</a></li>
        </ul>
      <li><a href=3D"#config-generic-proxy-mode">Generic proxy =
mode</a></li>
    </ul>
  <li> <a href=3D"#output">Consolelog and keyblocklog output</a></li>
  <li><a href=3D"#opsandsigs">Operations and signals</a></li>
  <li><a href=3D"#runonwin">Running on windows 95/98/NT</a></li>
  <li><a href=3D"#clioptions">Command line options</a></li>
  <li><a href=3D"#runonsolaris">Running on Solaris</a></li>
  <li><a href=3D"#cpuosnumbers">CPU/OS numbers</a></li>
  <li><a href=3D"#additionalsupport">Additional support</a></li>
</ul>

<a name=3D"introduction"><h3 align=3D"left">INTRODUCTION</h3></a>

<p>This release of the v2 Personal Proxy will allow you to serve all
  recent v2 distributed.net Bovine clients. It allows you to establish
  one of your own machines as a buffer between your clients and one of
  the "full servers" (keyservers) that are officially run by the
  distributed.net organizers. This will allow your clients to waste
  less time trying to connect to one of the main proxies, since the
  personal proxy will already have more key blocks waiting for your
  clients when they're ready and need more. Running a personal proxy
  is definitely not needed by everyone, nor is it recommended. You
  should only run a personal proxy if you are very confident of your
  abilities, and you have a very weak, unreliable, or intermittent
  connection to the Internet to directly contact one of the real
  proxies.</p>

<p>&nbsp;</p>

<a name=3D"proxyver"><h3 align=3D"left">PROXY BUILD NUMBERS AND CLIENT =
VERSIONS SUPPORTED</h3></a>

  <p>Personal proxies are distinguished by the "build number" that is
  associated with each new version. Starting with build 300 of the
  proxy, some very significant differences have been introduced in an
  attempt to begin work on supporting arbitrarily many different types
  of contests. Build 300 represents a complete rewrite of the previous
  proxy code, with attention paid to making the code modular and
  easily extensible to new contests or client differences.</p>

  <p>Although the first build 300 was very experimental, the current
  builds are stable. Everyone is encouraged to upgrade, pre-300 builds
  will not be able to connect to keyservers anymore in the very near
  future. Also, build 305 will start to have support for the upcoming
  OGR-capable clients and these clients will not be able to
  communicate with pre-300 proxies anymore at all.  These client will
  be able to flush rc5 and des blocks through a build 300 through 304
  proxy, but email/cpu/os/version information will be lost.</p>

<p align=3D"left">&nbsp;</p>
<a name=3D"proxybuffer"><h3 align=3D"left">PROXY BUFFER FILES</h3></a>

<p>The personal proxy uses buffer files to store all blocks that are
  pending distribution to client, or awaiting transfer to an upstream
  server. Every effort has been made to keep the format of these
  buffers consistent across proxy versions, platforms, and operating
  systems. There are currently 3 main types of proxy buffers that you
  need to keep in mind before you considering transporting
  buffers:</p>

<ul>
<li><strike>Format A: up to and inclusive of proxy build 283. =
</strike>(obsolete)</li>
<li><strike>Format B: proxy build 300 through 304, inclusive. =
</strike>(obsolete)</li>
<li>Format C: proxy build 305 to current, inclusive. (current)</li>
</ul>

<p>Format A is completely obsolete. Format B used an experimental
  filesystem-like buffering system, but was abandoned due to stability
  issues. Format C uses a less resource demanding buffering format
  more appropriate for personal proxy use.</p>

<p>Buffers from any operating system or cpu architecture
  from a proxy that creates the same "format" above should be
  transportable. Note that "transportable" does not mean that you can
  "share" buffers between two <i>simultaneously</i> running copies of =
the
  proxy!!</p>

<p>If you are upgrading to a new proxy version that uses a file format
  that is incompatible with the last version you were using, there is
  no way to convert them. You must flush all blocks from the existing
  proxy buffers. To do this, set maxkeysdone=3D1, then start the
  proxy. It should flush all blocks to the keyservers. If you don't
  want clients to connect to your proxy during this process, set the
  "acceptincoming"-flag in the [ports] section to 0 (zero).</p>

<p>After you see a logentry with "rc5-72 r=3Dx/x, d=3D0/1" you know your
  buffers are empty. Shutdown the proxy and delete all bufferfiles
  (ppdes*.des and pprc5*.rc5) It is safe to simply delete the inbuff
  files, even if they have keys left in them. They will eventually be
  reissued.</p>

<p>If you have blocks within an "out" buffer, and cannot flush them,
  please rename the file to something else or delete it.</p>

<p align=3D"left">&nbsp;</p>
<a name=3D"install"><h3 align=3D"left">INSTALLATION AND OPERATION OF THE =
PERSONAL PROXY</h3></a>

<p>Since you have this file, you probably have already downloaded and
  unpacked the proper distribution for your machine. If not, see <a
  =
href=3D"ftp://ftp.distributed.net/pub/dcti/proxyper/">ftp://ftp.distribut=
ed.net/pub/dcti/proxyper/</a>
  and download the proxy package for your machine. Once the proxy is
  unpacked, you will need to configure it. You may rename the binary
  to anything you like, but there must be a corresponding config file
  with ".ini" as a suffix. Then edit the .ini file with your favorite
  text editor (configuration options are listed in the next section),
  and then start the personal proxy in the directory you have
  installed it in. The log and dump files will be created in this
  directory.  Hint: If you specify a relative path for a logfile entry
  in the .ini, the logs will be created in a directory relative to the
  current directory.</p>
<p>&nbsp;</p>

<a name=3D"configure"><h3 align=3D"left">CONFIGURATION</h3></a>

<p>Edit the ini file with a standard text editor and verify the
  settings. Depending upon the number of clients you are serving, you
  may want to increase or decrease the number of keyblocks that are
  kept in memory. Note that the proxy uses a sliding average that
  prevents you from buffering more than 4 days worth of blocks.  These
  numbers will be adjusted according to your keyrate and should be
  reasonable stable after 30 minutes after you started the proxy.</p>

<p>Note that the ini file is only read once (as the proxy starts
  up). Modifications made to the ini file will not take effect until
  you terminate and restart the proxy. On most platforms, there is a
  method to trigger the ini file to be reloaded at will. See the
  "operations and signals" section to determine the method that is
  applicable for your operating system.</p>

<p>None of the settings in the ini file are actually required to be
  specified. All of the settings have default values that should work
  for most people. However, it is still recommended that you verify
  and explicitly set all of the options.</p>

<p>Although we try to keep the format of the ini file consistent
  between different builds of the proxy, there are occasionally
  changes made between builds that affect the options that are
  available. Build 300 of the proxy introduced a fair number of
  significant differences in the ini file, so be aware of these
  differences and compare your current ini to the one that comes with
  the new proxy-tarball.</p>

<p align=3D"left">&nbsp;</p>
<a name=3D"config-buffersizes"><h3 align=3D"left">CONFIGURATION: Buffer =
sizes</h3></a>
<p>The personal proxy requires you to specify the minimum and
  maximum number of "blocks" that it should try to keep ready at all
  times for clients. However, when you specify the numbers for these
  two values, please be certain that you only enter values that are
  reasonable for the number of clients that you are planning to
  support.</p>
<p>Specifying numbers that are too large may cause your proxy to
  buffer a more blocks than your installed client-base can use in a
  realistic amount of time. It is important to avoid fetching too many
  extra blocks to reduce the likelihood of a large number of blocks
  getting wasted if your proxy crashes, or you decide to discontinue
  running a proxy. Additionally by buffering a large number of blocks,
  you increase the number of outstanding blocks that must be tracked
  and managed by the key distribution system, which limits many
  aspects of distributed.net's performance. On the other hand,
  specifying too few blocks will make it more likely that your clients
  will run out of legitimate blocks should short-term network outages
  occur, forcing them to compute randomly generated blocks, which
  would have a greater possibility of being duplicated by other
  machines.</p>
<p>In general, it is recommended that you buffer no more than about 3
  or 4 days worth of blocks, so that you could potentially withstand a
  network outage that long in the worst case. There is typically no
  reason to want to buffer any more blocks than that. The appropriate
  number is of course dependent upon the number and speed of clients
  that you have connecting to your personal proxy, so you will have to
  determine this value experimentally.</p>
<p>Builds prior to 305 of the personal proxy placed somewhat
  restrictive maximum ready block limit of 10000, for the purpose of
  preventing people from accidentally specifying an extremely large
  number of blocks before realizing that it was too great to support
  their number of clients. Unfortunately, this also limited the
  effectiveness for people who were legitimately using the personal
  proxy to support an extremely large number of clients.</p>
<p>Starting with build 305, the maximum ready buffer limit has been
  increased to 200000 blocks, however additional logic has been added
  to prevent accidentally fetching an inappropriate number of
  blocks:</p>

    <ol>
	  <li>If you specify a buffer limit of 1000 or fewer, the
          proxy will respect this value, just like previous
          versions.</li>

          <li>For values larger than 1000, the proxy will internally
          treat the maximum ready value as if 1000 had been entered,
          until the proxy has been running for a period 30 minutes
          total.</li>
          <li>Beginning after 30 minutes of uptime, the proxy will
          periodically evaluate your average keyrate and allow
          maxready values as large as that sustained rate for 4 days
          to be specified. If the value entered within the ini file is
          less than the computed sustained usage count, then the value
          you specified will be obeyed.
        </ol>

<p>Additionally, when your maxready value is being suppressed by the
  proxy, it will simultaneously adjust the minready in an equivalent
  proportion so that the ratio that was originally specified is
  maintained. As you can see, the complexity has increased slightly,
  but the flexibility has also been improved at the same time. You
  should keep this behavior in mind when trying to configure your
  ready buffer thresholds.</p>
<p>This automatic behavior is recommended for almost all people.  The
  proxy will adjust its buffer so there's always enough blocks for a
  couple of days. People who use the proxies buffers to sneakernet
  need be to able to download large numbers of blocks. For this
  purpose a ini-setting [rc5-72]/expertmode and [desII]/expertmode is
  added. If this option is set to 1 (one), the proxy will obey your
  settings of maxkeysready and minkeysready.</p>
<p align=3D"left">&nbsp;</p>
<a name=3D"config-dupechecking"><h3 align=3D"left">CONFIGURATION: =
Dupechecking</h3></a>
<p>The proxy now does limited timespan dupechecking, to reduce the
  network-load of upstream servers a little bit. It works as
  follows:</p>
<ul>
  <li>A block is submitted, first it is looked up in the dupe-history
      queue. If it is found there, it's a triple dupe. Just increment
      the dupe-number (so it says: "block xx, 3 dupes" in the
      logs)</li>
  <li>If it's not found in the dupe-history, look it up in the
      "block-history" (explained later). If so, it a double dupe, log
      it as "block xx, 2 dupes".  Remove it from the
      block-history-queue en put it in the dupe-history-queue.</li>
  <li>If it's not found in the block-history, it's not a dupe. Add it
      to the "block-history", so we can compare subsequent blocks to
      it. </li>
</ul>

<p>This dupechecking can be turned off with a ini-option: Set
  [rc5-72]/checkduplicates or [desII]/checkduplicates to 0 (zero) and
  this mechanism will be disabled.  Note that this is not useful at
  all, since the fullproxies (or the keymaster) will filter them out
  eventually anyway!</p>

<p align=3D"left">&nbsp;</p>

<a name=3D"config-settings"><h3 align=3D"left">CONFIGURATION: =
Settings</h3></a>
<a name=3D"config-settings-keyserver"><h3 align=3D"center">The =
[KeyServer] Setting</h3></a>
<p> <b>[KeyServer]/ipaddress:</b> the IP address or hostname of the
  keyserver from which the proxy will retrieve and send keyblocks =
from.</p>
<p><strong>[KeyServer]/port:</strong> the port on the keyserver to
  communicate to.</p>
<p><strong>[KeyServer]/connectperiod:</strong> determines the minimum
  delay (in seconds) between sequential attempted network connections to =
the keyserver.
  This value should typically *not* be adjusted to more than a couple of =
minutes,
  but it should also not be made too short, or else your proxy might =
attempt to
  make a connection as frequently as this amount, which may prevent it =
from handling
  incoming client connections if your proxy is unable to successfully =
make outgoing
  server connections.</p>
<p><strong>[KeyServer]/connectivity:</strong> these modes are very
  much like the normal, offline, lurk, and lurkonly modes that are =
available on
  the windows clients. This option only has effect on the win32 version =
of the
  proxy.</p>
  <ul>
  <li>"normal" : The proxy will attempt to connect to a server as =
needed.
  <li>"offline" : The proxy will not attempt to make any connections to =
a
  server automatically.
  <li>"lurk" : The proxy will automaticly send/receive blocks
  when it detects a network connection, but it may also initiate =
connection by
  itself if it needs to send or receive blocks. If you have autodial =
configured,
  then your modem will auto-dial.
  <li>"lurkonly" : Same as lurk, however the proxy will not attempt to =
make connections
  unless it can explicitly detect that your modem is currently =
connected, so it
  won't ever cause auto-dial.
  </ul>
<p>If you are behind a firewall and must use a proxy to make a =
connection
  on either a telnet or http port, the following options will be =
useful.</p>
<p><strong>[KeyServer]/uuehttpmode:</strong> 0=3Dno special encoding,
  1=3Duue encoding (non 8-bit clean redirect proxies), 2=3Dhttp =
encoding, 3=3Duue+http
  encoding, 4=3Dsocks4 encoding, 5=3Dsocks5 encoding, 6=3Dgeneric proxy, =
7=3Dgeneric proxy
  with uue encoding.<br>
  For an explanation on generic proxy support, <a =
href=3D"#config-generic-proxy-mode">see
  below.</a></p>
<p><strong>[KeyServer]/httpproxy:</strong> The name of your site's
  http or telnet proxy.</p>
<p><strong>[KeyServer]/httpport:</strong> The port to connect to
  the above proxy on.</p>
<p><strong>[KeyServer]/httpid:</strong> User and password authentication
  needed to connect to the above proxy. This field must be set to the =
*encrypted*
  value of the username and password information. In order to get this =
value,
  use the client's configuration option to specify the username and =
password,
  then cut and paste that field from the client .ini to your proxy .ini. =
Remember
  to restore the client configuration when you are all done with this. =
For socks4
  httpid is the "username" in plaintext. For socks5 httpid is the =
"username:password"
  in plaintext. For generic proxy, this is the connection negotiation =
string.</p>
<p><strong>[KeyServer]/bindip:</strong> Specifies the local interface
  address that should be bound to when creating outgoing server =
connections. This
  might be useful if your machine has multiple interfaces and you wish =
to listen
  for incoming clients on an internal network, and make outgoing =
internet connections
  on a public network interface. If you leave this option unspecified, =
it allows
  the network stack to do default interface and routing rules to create =
connections.</p>
<p><strong>[KeyServer]/maxservers:</strong> Determines the maximum
  number of simultaneous upstream server connections will be used to =
fetch or
  flush. It might be useful to increase this number if you frequently =
need to
  upload or download a large number of blocks at a single time, and it =
seems that
  individual server connections are slow or have high latency. The =
default value
  is 1 and the maximum number you can specify is 4.</p>
<a name=3D"#config-settings-ports"><h3 align=3D"center">The [ports] =
Settings</h3></a>
<p><strong> [ports]/listenaddress:</strong> The IP address of the
  machine this personal proxy is running on. This is optional and only =
needed
  if the machine has multiple IP addresses. If you use one ip address =
for local
  connections, and you have a dialup account that you use to fetch and =
flush blocks,
  you do *not* need to set this.</p>
<p><strong>[ports]/port:</strong> the port on *your* machine to listen
  for incoming clients on.</p>
<p><strong>[ports]/port2, port3, port4:</strong> these allow you
  to specify additional listening ports on *your* machine to listen =
simultaneously
  for incoming clients on. Typically these additional ports aren't =
needed, but
  this ability is here if you need it.</p>
<p><strong>[ports]/testport:</strong> the port on *your* machine
  to listen for incoming clients on and distributed test blocks to. This =
value
  can be unspecified, or set to 0 to disable this functionality.</p>
<p><strong>[ports]/acceptincoming:</strong> if this is set to 0,
  clients will not be able to connect to the proxy at all. Defaults to =
1.</p>
<p><strong>[ports]/advertisedaddress:</strong> This value is normally
  not needed and is only needed if you are having problems serving HTTP =
clients
  and your personal proxy machine has a different address by which it is =
reached
  on than what it listens on. (This is usually the case when you are =
attempting
  to serve clients with a machine behind a NAT firewall, or a =
port-redirected
  environment.) This value should be the public IP address that is =
usuable by
  clients to connect back to your personal proxy with. If you do not =
specify this
  value, the value you specified for the listenaddress is used, =
otherwise no address
  is used.</p>
<p><strong>[ports]/timeout:</strong> This value can be used to set
  maximum idle timeout for client connections. Default is 30 seconds.
  Change of this value normally is not required. You can try to increase
  timeout if default value is not enough for your client (e.g. it having
  a long time-consuming benchmark on unknown cpu.)<p>


<a name=3D"#config-settings-misc"><h3 align=3D"center">The [misc] =
Settings</h3></a>

<p><strong>[misc]/statusperiod:</strong> this is the number of seconds =
between
  the status reports from each of the current contests are printed out =
to the
  console log. The contest status reports indicate the number of current =
ready
  and done blocks, their set values, and also the sliding window average =
keyrate,
  and total number of completed blocks since startup.</p>
<p><strong>[misc]/periodicperiod:</strong> this is the number of
  seconds between the rewriting of the proxy buffers to disk. If you =
have a machine
  with a very slow disk or has a bus with high I/O contention, you may =
want to
  increase this value to trigger writes only every few minutes. Note =
that when
  you allow the proxy to shutdown gracefully, it will automatically =
rewrite it
  buffers out again if necessary (regardless of when the last periodic =
write occurred).</p>
<p><strong>[misc]/logfilecompressor:</strong> the name of a script
  or program to run once per log file rotation with one parameter, the =
name of
  the just completed log file. This function is enabled since build =
305.</p>
<p><strong>[misc]/proxymessage:</strong> an optional text message
  displayed to all connecting clients. If you leave this value blank or =
unspecified,
  a default message including the build number will be displayed to =
clients.</p>
<p><strong>[misc]/pidfile:</strong> if specified, this is the filename
  that will have the process id (pid) of the proxy when it is started =
up. This
  is only for Unix perproxies.</p>
<p><strong>[misc]/scheduledupdate:</strong> this is an internal value
  is is automatically updated and maintained by the proxy itself each =
time it
  connects to the keyserver. You should not modify or adjust this =
value.</p>


<a name=3D"#config-settings-console"><h3 align=3D"center">The [console] =
Settings</h3></a>
<p> <strong>[console]/logfileconsole</strong>: name of console log =
file</p>
<p><strong>[console]/logfileconsolerotation:</strong> interval to
  rotate console log at, options are none, hourly, daily, monthly, =
yearly, or
  startup</p>
<p><strong>[console]/consoleverbosity:</strong> control verbosity
  of the console log output. It is specified with a list of =
space-separated keywords:</p>
<ul>
  <li>all : display all message types (default)<br>
  <li>none : no console output at all<br>
  <li>general : General logging (Status: Slot X LISTENING, and =
others)<br>
  <li>stats : Periodic statistics reports<br>
  <li>keyblock : Block numbers<br>
  <li>server : Upstream keyserver communications<br>
  <li>client : Downstream client communications<br>
  <li>buffers : statistics (ready=3DX/X, done=3DX, Xd XX:XX:XX, X.X =
Mkeys/sec)<br>
  <li>timestamp : Include UTC timestamps on each line (screen only)<br>
  <li>attention : Keyspace change, time change, dialup events<br>
  <li>errwarn : Unrecognized opcodes/version<br>
  <li>errlow : Invalid settings<br>
  <li>errsevere : Operation inhibiting problems
</ul>
<p>If the very first keyword is "not", the verbosity will be "all",
  minus the keywords specified. For example, "not keyblock client" will =
prevent
  messages in the keybload or in the client categories from displayed; =
all other
  messages are displayed.</p>
<p><strong>[console]/timestampflags:</strong> controls the format
  that is used to display timestamps on screen, logged in the console =
log, and
  logged in keyblock logs. Note that timestamps in the onscreen console =
log can
  be hidden entirely with the "consoleverbosity" option above. The =
integer that
  is specified for this value is actually the result of adding one of =
the format
  mode values, plus optionally one or more of the additional flags. The =
format
  mode values available are:</p>
<div align=3D"left">
<p>&nbsp;</p>
  <table width=3D"600" border=3D"0">
    <tr>
      <td width=3D"26">&nbsp;</td>
      <td width=3D"378">old-style MM/DD/YY HH:MM:SS</td>
      <td width=3D"182">1</td>
    </tr>
    <tr>
      <td width=3D"26">&nbsp;</td>
      <td width=3D"378">new-style YYYY-MM-DD HH:MM:SS</td>
      <td width=3D"182">2</td>
    </tr>
    <tr>
      <td width=3D"26">&nbsp;</td>
      <td width=3D"378">client-style Mmm DD HH:MM:SS</td>
      <td width=3D"182">3</td>
    </tr>
    <tr>
      <td colspan=3D"3">&nbsp;</td>
    </tr>
    <tr>
      <td colspan=3D"3">
        <p>And the multiple flags that you can choose are:</p>
      </td>
    </tr>
    <tr>
      <td width=3D"26">&nbsp;</td>
      <td width=3D"378">show timezone name</td>
      <td width=3D"182">64</td>
    </tr>
    <tr>
      <td width=3D"26">&nbsp;</td>
      <td width=3D"378">timestamps should be in UTC</td>
      <td width=3D"182">128</td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</div>
<p>Note that the "show timezone name (64)" only has an effect if
  timestamps are being "displayed in UTC format (128)". When that is the =
case,
  the letters "UTC" will be appended to all timestamps that are =
displayed on-screen
  (not in console log files, or keyblock files).</p>
<p>The default format is 193, and will provide output that is identical
  to that used by personal proxies before build 313.</p>
<p>Also notice that the timestampflags will not affect the numbering
  sequence used to generate filenames for automatically rotated =
logfiles. Rotated
  log filenames are always generated from the current UTC time.</p>
<p>Be aware that changing the timestamp format may affect your ability
  to use log parsing or log processing utilities. You should contact the =
authors
  of your utilities to obtain a version that is able to parse the new =
4-digit
  year format, and accomodate localtime timestamps.</p>

<a name=3D"#config-settings-rc5-72"><h3 align=3D"center">RC5-72 Related =
Settings.</h3></a>
<p><strong>[rc5-72]/logfilekeyblock:</strong> name of log file of all =
completed
  keyblocks</p>
<p><strong>[rc5-72]/logfilekeyblockrotation:</strong> interval to
  rotate keyblock log at, options are none, hourly, daily, monthly, =
yearly, or
  startup</p>
<p><strong>[rc5-72]/maxkeysready:</strong> approximate maximum number
  of keys to keep ready for serving clients.</p>
<p><strong>[rc5-72]/minkeysready:</strong> minimum number of keys
  to keep ready for serving clients. This differs from the maxkeysready =
in that
  once the available keys drops below this value, the proxy will "try =
harder"
  to fetch additional keys from the server.</p>
<p><strong>[rc5-72]/maxbufferdays:</strong> the personal proxy by
  default will buffer as much blocks needed for 4 days. If you want to =
change
  this default behavior, this option specifies the number of days the =
proxy should
  buffer blocks for.</p>
<p><strong>[rc5-72]/minkeysdone:</strong> number of completed key
  blocks that will always be kept resident and not transmitted. There is =
probably
  no reason for this to be anything other than 1.</p>
<p><strong>[rc5-72]/maxkeysdone:</strong> number of completed key
  blocks that must be done before an outgoing connection to the =
keyserver is made
  to flush the completed blocks.</p>
<p><strong>[rc5-72]/timeaverage:</strong> number of chunks to use
  for the sliding-average window. The default is 288 (1 week in 5 min =
chunks),
  the valid range is 6-2016 (5 hour - 1 weeks). </p>
<p><strong>[rc5-72]/timeavgchunk:</strong> number of seconds to use
  for a chuck in the sliding-average window. The default is 300 (5 =
minutes). Valid
  range is between 1 minute and 30 minutes. This option is added for =
people who
  desperately need a window bigger than 1 week. Beware that changing the =
defaults
  of "timeaverage" and "timeavgchunks" is not recommended. Too high =
values can
  lead to an increase in resources needed to track the stats.</p>
<p>&nbsp;</p>
<a name=3D"#config-settings-other-projects"><h3 align=3D"center">Other =
Projects</h3></a>
<p><strong><b>[desII]/[csc]/[ogr]</b></strong><b>/[rc564]</b><br>
  see the [rc5-72] section for the entries that you can put here, and =
what they
  do....</p>
<p>&nbsp;</p>
<a name=3D"#config-settings-access-control"><h3 align=3D"center">Access =
Control</h3></a>
<p><strong>[ignoredip]/[allowedip]</strong><br>
  These two sections provide functionality for allowing and denying =
certain ipaddresses
  or ipaddress ranges.<br>
  The rules are:<br>
  a. if there are entries in [allowedip], only allow clients in that =
section,
  else<br>
  b. if there are entries in [ignoredip], deny all clients in that =
section, else<br>
  c. allow the connection</p>
<p>This is equivalent with the behavior of the tcpd wrapper in Unix
  systems.</p>
<p>After the section header, ip(-ranges) are listed in the form:</p>
<div align=3D"left">
  <table width=3D"600" border=3D"0">
    <tr>
      <td width=3D"20">&nbsp;</td>
      <td><code>anything=3D1.2.3.4,maskbits</code></td>
    </tr>
  </table>
</div>
<p>one line for each block of IP addresses you want to ignore. To
  ignore a class C subnet (255 addresses, x.x.x.*, /24), maskbits will =
be 24.
  For an entire B network (65536 addresses, x.x.*.*, /16) you will want =
to use
  a maskbits of 16. Note that this format is different from the format =
that was
  used in build 280 and prior of the personal proxy.</p>
<p>Additionally, you can enter masks using any of these forms:</p>
<div align=3D"left">
  <table width=3D"600" border=3D"0">
    <tr>
      <td width=3D"20">&nbsp;</td>
      <td><code> anything=3D1.2.3.*<br>
          anything=3D1.2.*.*<br>
          anything=3D1.*.*.*</code></td>
    </tr>
  </table>
<p>&nbsp;</p></div>
<a name=3D"config-generic-proxy-mode"><h3 align=3D"left">CONFIGURATION: =
Generic proxy mode</h3></a>
<p>  Build 306 of the personal proxy introduced a new method of firewall =
compatibility
  communications, known as "generic proxy" (a name also used by the =
programs CRT
  and SecureCRT). This new method of communication allows you to =
establish redirected
  TCP/IP connections through an intermediate machine/proxy that requires =
a login
  or negotiation sequence. This includes connecting to a gateway machine =
to log
  in and then telnetting to the destination keyserver, and also =
connecting through
  a WinGate "telnet proxy" that requires you to specify the destination =
hostname
  and port.</p>
<p>In the generic proxy modes, the interpretation of the "httpid"
  value is changed to represent the login sequence string, which is =
merely a vertical-bar
  ("|") delimited string of alternating things to transmit, and things =
to wait
  for. Note that the first sequence in the string is assumed to be a =
send string,
  so if you don't need to send anything first just include a =
vertical-bar as the
  first thing in the httpid. The tags \n, \t, \r, \1 (keyserver =
address), and
  \2 (keyserver port) can only be used in send strings. Be aware that =
the maximum
  length of the entire httpid string is very limited, so you cannot =
include sequence
  strings that are too complicated currently. Also understand that since =
the sequence
  string is of course stored in plaintext in your ini file, if you =
include connection
  passwords, they could be compromised if you do not protect your ini =
file.</p>
<div align=3D"left">One example for connecting to a gateway machine =
is:<br>
  <table width=3D"600" border=3D"0">
    <tr>
      <td width=3D"20">&nbsp;</td>
      <td><code>"|login:|bovine\n|Password:|moocow\n|%|telnet \1 =
\2\n"</code></td>
    </tr>
  </table>
</div>

An example for a WinGate telnet proxy is:
<div align=3D"left">
  <table width=3D"600" border=3D"0">
    <tr>
      <td width=3D"20">&nbsp;</td>
      <td><code>"|WinGate>|\1 \2\r\n"</code></td>
    </tr>
  </table>
<p>&nbsp;</p></div>
<a name=3D"output"><h3 align=3D"left">OUTPUT: Console log</h3></a>
<p>While the proxy is running, it displays countless numbers of
  messages to indicate its current status. Because of the potentially
  large volume of messages that can be generated, a console verbosity
  option has been added to the proxy ini files to allow you to select
  only specific classifications of messages to be displayed.</p>
<p>There are also methods for causing the console output to be saved
  to a file, either for remote log viewing purposes or record
  keeping. Although there exist a number of third-party utilities that
  permit the user to analyze console logs to produce statistics
  regarding your proxy's operations, though console logs were not
  really intended for any type of mechanical analysis. The format and
  style of the console messages are purely intended to be human
  readable and will tend to be modified slightly between proxy
  builds.</p>
<p>Some messages explained:</p>
<ul>

<li><code>contest &lt;contest&gt; r=3D&lt;a&gt;/&lt;b&gt;, =
d=3D&lt;c&gt;/&lt;d&gt;, &lt;avg&gt;Mkeys/s,
  total=3D&lt;blocks&gt;</code>
  <p>a/b =3D a blocks currently in inbuffer, b is threshold.<br>
          c/d =3D c blocks done, d is threshold</p>
	  </li>

<li><code>Server xx.xx.xx.xx changed state from x to x</code>
   <p>state 0 is a no connection<br>
          state 1 is waiting for connection to be set up<br>
       state 50 is a connected connection<br>
          state 51 is a dead connection</p></li>

<li><code>Contesthandler &lt;contest&gt; didn't handle a packet </code>
<p>For some reason the proxy couldn't process a clientrequest for a
          packet (block). Most of the time due to empty =
proxybuffers</p></li>

<li><code>Client: rejecting unscrambled communication</code>
<p>Client tries to send a packet that doesn't comply. Most of the time
          due to too old clients</p>
</li>

<li><code>rc5-72-dupe: limits adjusted to historybuf xx, dupebuf xx
(and) Removing xxx rc5-72 blocks from [block|dup]-history </code>
<p>The proxy now does dupechecking. This is implemented by 2 queues,
the blockhistory and the dupehistory. The sizes of these queues are
dynamically adjusted and sometimes (if the queues are full) the proxies
purges some of this history.</p>
</li>

</ul>

<p>&nbsp;</p></div>
<h3 align=3D"left">OUTPUT: Keyblock log</h3>

<p>The personal proxy will also output so-called "key logs" which
  record details of each completed block that is reported to it by a
  client. These files are intended for automated processing and so
  they have a very regular, comma delimited formatting. Each line of a
  key log has the following fields, in order:</p>

<ol>
	<li>date/timestamp of format, such as "mm/dd/yy hh:mm:ss".
	The actual format can be changed via the [console]/timestampflags =
option</li>
       	<li>IP address of the reporting client</li>
      	<li>email address of the client</li>
       	<li>unique identifer representing the completed packet.  For
       	RC5-72, this is a hexadecimal string with embedded colons in
       	the format "xx:xxxxxxxx:xxxxxxxx".  For RC5-64/DES/CSC, this
       	is is a hexadecimal string (14 to 16 hexadecimal digits).  For
       	OGR, this is a variable-length string resembling the format
       	"dd/dd-dd-dd-dd-dd" </li>
      	<li>size of the packet.  For OGR, this is the number of nodes
        within the stub.  For RC5-72, this is the number of number of
        "blocks" in the packet (where each block is 2^32 keys).  For
        RC5-64/DES/CSC this was also the number of "blocks" in the
        packet, but each block was 2^28 keys.</li>
 	<li>operating system identifier of client (0=3Dunknown).</li>
        <li>cpu type of client (0=3Dunknown).</li>
       	<li>build/version number of client.  For clients released
       	before rc5-72, this is only the middle segment of version
       	number.  For rc5-72 enabled clients, this contains the full
       	fractional version number and build of the client.</li>
        <li>project cruncher core number.</li>
</ol>

<p><code>01/15/99 =
07:39:16,0.0.0.0,[email protected],6404AF4970000000,10,0,0,6400</code><=
/p>
  <p>See bottom of this document for a list of <a =
href=3D"#cpuosnumbers">OS and
    CPU types and numbers</a>.</p>
  <p>&nbsp;</p>

<a name=3D"opsandsigs"><h3>OPERATIONS AND SIGNALS</h3></a>
<p>On UNIX, sending a TERM or INT signal will cause the personal proxy =
to
shut down nicely, resaving all keyblocks that are still in memory to
disk, and closing all open network connections.</p>

<p>On UNIX, sending a HUP signal will cause the personal proxy to reload
its ini configuration file and reread most of the settings specified
within it.</p>

<p>On UNIX, sending an ALRM signal will trigger the personal proxy to
create an outgoing server connection. This is done even if your
connectivity mode is set to offline. This behavior is intentional, and
permits clever scripters to automate periodic dialups and forced server
flushes.</p>

<p>On Win95/98/NT, when running the proxy in a window you can press
Ctrl-Break at any time to perform the equivalent of a HUP+ALRM signal on
UNIX. To actually close the proxy, press Ctrl-C or close window.</p>

  <p>On OS/2 you can press Ctrl-C to force a reload of the ini file and =
create an
    outgoing server connection. Ctrl-Break is used to close the =
proxy.</p>
  <p>&nbsp;</p>

<a name=3D"runonwin">
  <h3>RUNNING ON WINDOWS 95/98/ME/NT/2000/XP</h3>
  </a>
<p>The personal proxy can run on successfully on a Windows 95/98/ME
    workstation, however it is discouraged that this be done on a
    machine that is being heavily used as a normal user workstation,
    due to the frequent crashes and relative instability of
    Win95/98/ME when it is actively being used. If you really need to
    run a proxy on a Windows machine, it is recommended that you use
    an NT machine, if possible.</p>

<p>On Windows NT, the proxy can be run either as a foreground console
    application or installed as a service and run transparently in the
    background, unaffected by user logins. (See the "command line
    options" section for instruction on service installation and
    removal).</p>

<p>Under Windows 95/98/ME, the proxy can only be run as a foreground
    console application. There are no plans to support running the
    proxy as a "hidden" or "service" application in this
    environment.</p>

<p>Please be aware that if you are running the proxy as a foreground
    console (and not as an NT Service), you should avoid simply
    closing the console window directly. Instead, when you want to
    shut down the proxy, you need to focus the window and press Ctrl-C
    to initiate a shutdown.  Failure to do this will cause the proxy
    to not have an opportunity to shutdown nicely, possibly corrupting
    your buffers or causing some blocks to be lost.</p>

<p>Notice that the personal proxy requires Winsock 2 services to be
    available.  Most original distributions of Windows 95 (but not
    Win98 or WinNT4) come with only Winsock 1.1, so you must install
    the update from Microsoft. You can download
    <a =
href=3D"http://www.microsoft.com/windows95/downloads/contents/wuadmintool=
s/s_wunetworkingtools/w95sockets2/default.asp">this
    update</a> from Microsoft's website.</p>
  <p></p>
  <p align=3D"center">&nbsp;</p>
<a name=3D"clioptions"><h3>COMMAND LINE OPTIONS</h3></a>
<p>The personal proxy allows several command line options that tell it
    to enter one of several exclusive and session-lasting modes of
    operation.</p>

<p>On Windows NT only, you can install the proxy as a service by first
running it with the "-install" option to register it as a service. You =
can
then start and stop the proxy from the standard Windows NT services
Control Panel. You can use the "-uninstall" option to remove it from the
services registry. It's also possible to run the proxy in a detached =
mode
using the "-hide" option. This also allows for multiple proxies running =
in
different directories. Note that proxies started with the "-hide" option =

are not started before logon, and will be shut down at logoff. </p>

  <p>Previously a detached mode option existed in the ini file to allow =
the proxy
    to be started as a daemon-like service on your UNIX machine. This =
has now
    been made available only as a command-line option, and must be =
invoked by
    starting the proxy with "-detach" on the command line.</p>
  <p>&nbsp;</p>

<a name=3D"runonsolaris"><h3>RUNNING ON SOLARIS</h3></a>
<p>The personal proxy requires Solaris 2.6 or greater to run.</p>

<p>Solaris 2.6 requires Sun Patch ID #105591-16 or newer which is
available from <a href=3D"http://sunsolve.sun.com/">
http://sunsolve.sun.com/</a> in order to run the personal proxy.
Other Solaris versions may require a similar patch. If you encounter
the error "ld.so.1: proxyper: fatal: libCrun.so.1: open failed:
No such file or directory", you must install the patch.</p>
<p>&nbsp;</p>

<a name=3D"cpuosnumbers"><h3>CPU/OS NUMBERS </h3>
  </a>
  <p>Here is the list of CPU and OS identifiers previously mentioned in =
the keyblock
    log section above.</p>
  <table border=3D"0">
    <tr>
      <td colspan=3D"3"><strong>CPU types:</strong></td>
      <td colspan=3D"2"><strong>OS types:</strong></td>
    </tr>
    <tr>
      <td width=3D"135">UNKNOWN</td>
      <td width=3D"25">0</td>
      <td width=3D"30">&nbsp;</td>
      <td width=3D"135">UNKNOWN</td>
      <td>0</td>
    </tr>
    <tr>
      <td>X86</td>
      <td>1</td>
      <td width=3D"30">&nbsp;</td>
      <td>WIN32</td>
      <td>1</td>
    </tr>
    <tr>
      <td>POWERPC</td>
      <td>2</td>
      <td width=3D"30">&nbsp;</td>
      <td>DOS</td>
      <td>2</td>
    </tr>
    <tr>
      <td>MIPS</td>
      <td>3</td>
      <td width=3D"30">&nbsp;</td>
      <td>FREEBSD</td>
      <td>3</td>
    </tr>
    <tr>
      <td>ALPHA</td>
      <td>4</td>
      <td width=3D"30">&nbsp;</td>
      <td>LINUX</td>
      <td>4</td>
    </tr>
    <tr>
      <td>PA_RISC</td>
      <td>5</td>
      <td width=3D"30">&nbsp;</td>
      <td>BEOS</td>
      <td>5</td>
    </tr>
    <tr>
      <td>68K</td>
      <td>6</td>
      <td width=3D"30">&nbsp;</td>
      <td>MACOS</td>
      <td>6</td>
    </tr>
    <tr>
      <td>SPARC</td>
      <td>7</td>
      <td width=3D"30">&nbsp;</td>
      <td>IRIX</td>
      <td>7</td>
    </tr>
    <tr>
      <td>SH4</td>
      <td>8</td>
      <td width=3D"30">&nbsp;</td>
      <td>VMS</td>
      <td>8</td>
    </tr>
    <tr>
      <td>POWER</td>
      <td>9</td>
      <td width=3D"30">&nbsp;</td>
      <td>DEC_UNIX</td>
      <td>9</td>
    </tr>
    <tr>
      <td>VAX</td>
      <td>10</td>
      <td width=3D"30">&nbsp;</td>
      <td>UNIXWARE</td>
      <td>10</td>
    </tr>
    <tr>
      <td>ARM</td>
      <td>11</td>
      <td width=3D"30">&nbsp;</td>
      <td>OS2</td>
      <td>11</td>
    </tr>
    <tr>
      <td>88K</td>
      <td>12</td>
      <td width=3D"30">&nbsp;</td>
      <td>HPUX</td>
      <td>12</td>
    </tr>
    <tr>
      <td>IA64</td>
      <td>13</td>
      <td width=3D"30">&nbsp;</td>
      <td>NETBSD</td>
      <td>13</td>
    </tr>
    <tr>
      <td>S390</td>
      <td>14</td>
      <td width=3D"30">&nbsp;</td>
      <td>SUNOS</td>
      <td>14</td>
    </tr>
    <tr>
      <td>UN USED</td>
      <td>15</td>
      <td width=3D"30">&nbsp;</td>
      <td>SOLARIS</td>
      <td>15</td>
    </tr>
    <tr>
      <td>DESCRACKER</td>
      <td>16</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>16</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>17</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>BSDOS</td>
      <td>18</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>NEXTSTEP</td>
      <td>19</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>SCO</td>
      <td>20</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>QNX</td>
      <td>21</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>22</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>23</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>24</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>AIX</td>
      <td>25</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>26</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>OSX</td>
      <td>27</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>AMIGAOS</td>
      <td>28</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>OPENBSD</td>
      <td>29</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>NETWARE</td>
      <td>30</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>MVS</td>
      <td>31</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>ULTRIX</td>
      <td>32</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>33</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>RISCOS</td>
      <td>34</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>DGUX</td>
      <td>35</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>WIN32S</td>
      <td>36</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>SINIX</td>
      <td>37</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>DYNIX</td>
      <td>38</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>OS390</td>
      <td>39</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>UN USED</td>
      <td>40</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>WIN16</td>
      <td>41</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>DESCRACKER</td>
      <td>42</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>MAC OSX</td>
      <td>43</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td width=3D"30">&nbsp;</td>
      <td>PS2 LINUX</td>
      <td>44</td>
    </tr>
  </table>
  <p>&nbsp;</p>

<a name=3D"additionalsupport"><h3 align=3D"left">Additional =
Support</h3></a>
<p>If you need further assistance with the distributed.net personal
    proxy, please take a look at <a
    href=3D"http://www.distributed.net/faq">FAQ-o-matic</a> then if you
    still need assistance, e-mail <a
    href=3D"mailto:[email protected]">[email protected]</a></p>
  <p>&nbsp; </p>
</div>

</body>
</html>

------=_NextPart_000_0036_01C3BFB9.B6268AA0
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
proxyper mailing list
proxyper-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected]
http://lists.distributed.net/mailman/listinfo/proxyper

------=_NextPart_000_0036_01C3BFB9.B6268AA0--