Starter Network Configuration File

The following is a suitable starter network configuration file for a typical LOCKSS network, namely, a closed network where all the nodes are running LOCKSS 1.x version 1.78 or later and/or LOCKSS 2.x version 2.0-beta1 or later:

 1<lockss-config>
 2
 3  <!-- Property names in this section implicitly begin with "org.lockss." -->
 4  <property name="org.lockss">
 5
 6    <!--
 7      org.lockss.plugin.registries
 8      
 9      One or more URLs of plugin registries used by this network.
10    -->
11    <property name="plugin.registries">
12      <list>
13        <value>https://props.mynetwork.org/plugins/</value>
14      </list>
15    </property>
16
17    <!--
18      org.lockss.titleDbs
19      
20      Optional. One or more URLs of archival unit catalog files for this
21      network. Omit if there are no pre-defined AUs (all AUs are created and
22      populated dynamically through API calls to each node's repository).
23    -->
24    <property name="titleDbs">
25      <list>
26        <value>https://props.mynetwork.org/titledb/titledb.xml</value>
27      </list>
28    </property>
29
30    <!--
31      org.lockss.poll.v3.quorum
32      
33      The quorum for the polling and repair protocol in this network. The
34      absolute minimum is 3.
35    -->
36    <property name="poll.v3.quorum" value="3" />
37
38    <!--
39      org.lockss.id.initialV3PeerList
40      
41      The list of LCAPv3 identities of the nodes in the network.
42    -->
43    <property name="id.initialV3PeerList">
44      <list>
45        <value>TCP:[1.2.3.4]:9729</value>
46        <value>TCP:[5.6.7.8]:9729</value>
47        <value>TCP:[9.10.11.12]:9729</value>
48        <value>TCP:[13.14.15.16]:9729</value>
49      </list>
50    </property>
51
52    <!--
53      org.lockss.ui.logo.img
54      
55      Optional. The URL of an image file representing the network's logo.
56      Recommended height: 80 pixels.
57    -->
58    <property name="ui.logo.img" value="https://www.mynetwork.org/logo.png" />
59
60    <!--
61      org.lockss.ui.logo.link
62      
63      Optional. The URL of the network's Web site, to make the network logo (see
64      above) clickable.
65    -->
66    <property name="ui.logo.link" value="https://www.mynetwork.org/" />
67
68    <!--
69      org.lockss.ui.helpUrl
70      
71      Optional. The URL of a help Web page, to appear in the LOCKSS Web user
72      interface in the top-right menu.
73    -->
74    <property name="ui.helpUrl" value="https://www.mynetwork.org/docs/" />
75
76    <!--
77      org.lockss.ui.access.ip.include
78      
79      Optional. One or more IP subnets that should be able to access the Web UI
80      of a node in the network, until the node sets its own access list. Useful
81      only if there is a meaningful network-wide value for this. (Does not
82      create a Web UI user account, nor affect firewall traffic on each node or
83      its institution's network.)
84    -->
85    <property name="ui.access.ip.include">
86      <list>
87        <!-- The subnet of the LOCKSS Program at Stanford Libraries -->
88        <value>171.66.236.0/24</value>
89      </list>
90    </property>
91
92  </property>
93
94</lockss-config>

The key configuration properties are:

  • Plugin registries (org.lockss.plugin.registries): One or more URLs of plugin registries used by this network.

  • Archival unit catalogs (org.lockss.titleDbs): Optional. One or more URLs of archival unit catalog files for this network. Omit if all nodes are running LOCKSS 2.0-beta1 or later, and there are no pre-defined AUs (all AUs are created and populated dynamically through API calls to each node's repository).

  • Polling quorum (org.lockss.poll.v3.quorum): The quorum for the polling and repair protocol in this network. The absolute minimum is 3.

  • Node list (org.lockss.id.initialV3PeerList): The list of LCAPv3 identities of the nodes in the network.

Optional settings to consider include:

  • Network logo (org.lockss.ui.logo.img): Optional. The URL of an image file representing the network's logo. Recommended height: 80 pixels.

  • Network Web site link (org.lockss.ui.logo.link): Optional. The URL of the network's Web site, to make the network logo (see above) clickable.

  • Help link (org.lockss.ui.helpUrl): Optional. The URL of a help Web page, to appear in the LOCKSS Web user interface in the top-right menu.

  • Initial access subnets (org.lockss.ui.access.ip.include): Optional. One or more IP subnets that should be able to access the Web UI of a node in the network, until the node sets its own access list. Useful only if there is a meaningful network-wide value for this.

The default values for a number of useful configuration properties were changed in LOCKSS 1.x version 1.78 and LOCKSS 2.x version 2.0-beta1 so they better reflect typical LOCKSS networks rather than very large networks like the GLN or CLOCKSS. If your network includes some nodes running LOCKSS 1.x version 1.77.6 or earlier and/or LOCKSS 2.x version 2.0-alpha7 or earlier, you will need to add the highlighted section below to your network configuration file:

  1<lockss-config>
  2
  3  <!-- Property names in this section implicitly begin with "org.lockss." -->
  4  <property name="org.lockss">
  5
  6    <!--
  7      org.lockss.plugin.registries
  8      
  9      One or more URLs of plugin registries used by this network.
 10    -->
 11    <property name="plugin.registries">
 12      <list>
 13        <value>https://props.mynetwork.org/plugins/</value>
 14      </list>
 15    </property>
 16
 17    <!--
 18      org.lockss.titleDbs
 19      
 20      Optional. One or more URLs of archival unit catalog files for this
 21      network. Omit if there are no pre-defined AUs (all AUs are created and
 22      populated dynamically through API calls to each node's repository).
 23    -->
 24    <property name="titleDbs">
 25      <list>
 26        <value>https://props.mynetwork.org/titledb/titledb.xml</value>
 27      </list>
 28    </property>
 29
 30    <!--
 31      org.lockss.poll.v3.quorum
 32      
 33      The quorum for the polling and repair protocol in this network. The
 34      absolute minimum is 3.
 35    -->
 36    <property name="poll.v3.quorum" value="3" />
 37
 38    <!--
 39      org.lockss.id.initialV3PeerList
 40      
 41      The list of LCAPv3 identities of the nodes in the network.
 42    -->
 43    <property name="id.initialV3PeerList">
 44      <list>
 45        <value>TCP:[1.2.3.4]:9729</value>
 46        <value>TCP:[5.6.7.8]:9729</value>
 47        <value>TCP:[9.10.11.12]:9729</value>
 48        <value>TCP:[13.14.15.16]:9729</value>
 49      </list>
 50    </property>
 51
 52    <!--
 53      org.lockss.ui.logo.img
 54      
 55      Optional. The URL of an image file representing the network's logo.
 56      Recommended height: 80 pixels.
 57    -->
 58    <property name="ui.logo.img" value="https://www.mynetwork.org/logo.png" />
 59
 60    <!--
 61      org.lockss.ui.logo.link
 62      
 63      Optional. The URL of the network's Web site, to make the network logo (see
 64      above) clickable.
 65    -->
 66    <property name="ui.logo.link" value="https://www.mynetwork.org/" />
 67
 68    <!--
 69      org.lockss.ui.helpUrl
 70      
 71      Optional. The URL of a help Web page, to appear in the LOCKSS Web user
 72      interface in the top-right menu.
 73    -->
 74    <property name="ui.helpUrl" value="https://www.mynetwork.org/docs/" />
 75
 76    <!--
 77      org.lockss.ui.access.ip.include
 78      
 79      Optional. One or more IP subnets that should be able to access the Web UI
 80      of a node in the network, until the node sets its own access list. Useful
 81      only if there is a meaningful network-wide value for this. (Does not
 82      create a Web UI user account, nor affect firewall traffic on each node or
 83      its institution's network.)
 84    -->
 85    <property name="ui.access.ip.include">
 86      <list>
 87        <!-- The subnet of the LOCKSS Program at Stanford Libraries -->
 88        <value>171.66.236.0/24</value>
 89      </list>
 90    </property>
 91
 92    <!--
 93      In LOCKSS 1.x version 1.78 and LOCKSS 2.x version 2.0-beta1, the default
 94      values of many useful configuration parameters were changed to better
 95      reflect typical LOCKSS networks, as opposed to very large LOCKSS networks
 96      like the GLN or CLOCKSS. If your network includes some nodes running
 97      LOCKSS 1.x version 1.77.6 or earlier and/or LOCKSS 2.x version 2.0-alpha7
 98      or earlier, you will need to add this section. You can then remove it when
 99      all nodes in the network are running LOCKSS 1.x version 1.78 or later
100      and/or LOCKSS 2.x version 2.0-beta1 or later.
101    -->
102    <if>
103      <or>
104        <test daemonVersionMax="1.77.99" /><!-- highest 1.77 version -->
105        <and>
106          <test daemonVersionMin="2.0.0" /><!-- earliest 2.0 version -->
107          <test daemonVersionMax="2.0.79" /><!-- highest 2.0-alpha7 version -->
108        </and>
109      </or>
110      <then>
111        <property name="baseau.defaultFetchRateLimiterSource" value="plugin" />
112        <property name="crawler.threadPool.max" value="5" />
113        <property name="export.enabled" value="true" />
114        <property name="hasher">
115          <property name="estimate.pad.constant" value="1m" />
116          <property name="estimate.pad.percent" value="20" />
117        </property>
118        <property name="HtmlTagFilter.throwIfNoEndTag" value="false" />
119        <property name="plugin.registries.crawlInterval" value="12h" />
120        <property name="poll.discardSavedPolls" value="true" />
121        <property name="poll.expireRecent" value="2d" />
122        <property name="poll.v3">
123          <property name="enableDiscovery" value="false" />
124          <property name="minNominationSize" value="0" />
125          <property name="maxNominationSize" value="0" />
126          <property name="maxSimultaneousV3Pollers" value="5" />
127          <property name="repairFromCachePercent" value="25" />
128          <property name="enableSymmetricPolls" value="true" />
129          <property name="allSymmetricPolls" value="true" />
130        </property>
131        <property name="thread.hungThreadDump" value="true" />
132        <property name="titleSet">
133          <property name="allaus.class" value="allaus" />
134          <property name="activeaus.class" value="activeaus" />
135          <property name="inactiveaus.class" value="inactiveaus" />
136        </property>
137        <property name="urlconn.maxTotalConnections" value="12" />
138      </then>
139    </if>
140
141  </property>
142
143</lockss-config>

You can then remove that section when all nodes in the network are running LOCKSS 1.x version 1.78 or later and/or LOCKSS 2.x version 2.0-beta1 or later.