Frank v Waveren | 1 Mar 01:57 2003
Picon

Re: still can't do multiple FEC fproxy downloads

Perhaps an extra clue: A concurrent fproxy FEC insert and fproxy FEC
download doesn't work either. However, killing the http connection for
the upload does allow the download to continue again, so I suspect the
download in the previous test just wasn't getting killed properly even
when all connections where closed. I suppose this is probably some
sort of lock contention issue.. I don't suppose there's a way of
convincing java to spit out all currently held locks? (preferrably in
a signal handler, but I don't know if java does those either :-) )

--

-- 
Frank v Waveren                                      Fingerprint: 21A7 C7F3
fvw <at> [var.cx|stack.nl|chello.nl] ICQ#10074100            1FF3 47FF 545C CB53
Public key: hkp://wwwkeys.pgp.net/fvw@...            7BD9 09C0 3AC1 6DF2
Tracy R Reed | 1 Mar 04:44 2003

Re: Simulations (related to the Stanford video)

On Fri, Feb 28, 2003 at 04:47:09PM -0600, Scott Miller spake thusly:
> Actually the opposite.  Serapis was the Java simulator back in the day, 
> and it did precicely run a bunch of (virtual) nodes.  We did manage to 
> simulate a few thousand nodes.

Interesting. How much RAM and cpu did it require? Are we fairly confident
that some day freenet will be able to handle a couple hundred thousand
nodes?

--

-- 
Tracy Reed      http://www.ultraviolet.org
Scott Miller | 1 Mar 05:05 2003

Re: Simulations (related to the Stanford video)

On Fri, Feb 28, 2003 at 07:44:03PM -0800, Tracy R Reed wrote:
> On Fri, Feb 28, 2003 at 04:47:09PM -0600, Scott Miller spake thusly:
> > Actually the opposite.  Serapis was the Java simulator back in the day, 
> > and it did precicely run a bunch of (virtual) nodes.  We did manage to 
> > simulate a few thousand nodes.
> 
> Interesting. How much RAM and cpu did it require? Are we fairly confident
> that some day freenet will be able to handle a couple hundred thousand
> nodes?

As much as you could give it.  As for large scale simulations, take a 
look at Theodore Hongs work, which got up two exactly a couple of 
hundred thousand nodes.

	Scott
Erendil | 1 Mar 05:21 2003
Picon

Re: Simulations (related to the Stanford video)

Mmm, OT, but being blown up by a meteorite?
Matthew Toseland | 1 Mar 15:56 2003
Picon

Re: still can't do multiple FEC fproxy downloads

On Sat, Mar 01, 2003 at 01:57:45AM +0100, Frank v Waveren wrote:
> Perhaps an extra clue: A concurrent fproxy FEC insert and fproxy FEC
> download doesn't work either. However, killing the http connection for
> the upload does allow the download to continue again, so I suspect the
> download in the previous test just wasn't getting killed properly even
> when all connections where closed. I suppose this is probably some
> sort of lock contention issue.. I don't suppose there's a way of
> convincing java to spit out all currently held locks? (preferrably in
> a signal handler, but I don't know if java does those either :-) )

No way, it works here, and we wouldn't hold a lock over the ENTIRE
request. There might well be a lock waiting for the actual FEC
encoding/decoding though. Get a thread dump.
> 
> -- 
> Frank v Waveren                                      Fingerprint: 21A7 C7F3
> fvw <at> [var.cx|stack.nl|chello.nl] ICQ#10074100            1FF3 47FF 545C CB53
> Public key: hkp://wwwkeys.pgp.net/fvw@...            7BD9 09C0 3AC1 6DF2

--

-- 
Matthew Toseland
toad@.../amphibian <at> users.sourceforge.net
Full time freenet hacker.
http://freenetproject.org/
Freenet Distribution Node (temporary) at http://80-192-4-23.cable.ubr09.na.blueyonder.co.uk:8889/BeUkueBQ8L0/
ICTHUS.
Matthew Toseland | 1 Mar 15:58 2003
Picon

Re: Heisenbug warning

We also need to know what JVM you are using. That is part of "SETUP".

On Fri, Feb 28, 2003 at 03:45:12PM -0600, msph@... wrote:
> Hey, guys.  I'm not normally on the developers list, but my node dumped this at me today, and I decided to be a
good citizen and send it to you guys.
> 
> StateChain started at Fri Feb 28 05:12:25 CST 2003
> Current state: Announcement Done  <at>  a2e5eca97966a0cd
> ===============
> YOUR NODE CAUSED THE HEISENBUG - PLEASE REPORT SETUP TO FREENET DEV MAILING  LIST! (TYPE B)
> PANIC! Just recreated heisenbug! ID: 2a8bc23f2a8bc23f
> 
> So, that's the warning.  As for the setup, I'm attaching my freenet.conf to this email, and I've just
realized that I'm running build 563.
> 
> I apologize if this is an inappropriate email, but your FAQ is currently not on freenetproject.org.  Also,
please let me know if there's any new information that you need.  I'll stay on the list until probably next
Wednesday before unsubscribing again.
> 
> -- 
> "Mark's in his own little world.  Of course, that goes without saying." -- Walter
> Mark "Markus" Humphrey		<msph@...>
> http://www.alyra.org/~msph/	Public key available on pgp.mit.edu

> [Freenet node]
> # Freenet configuration file
> # Note that all properties may be overridden from the command line,
> # so for example, java freenet.node.Main --listenPort 10000 will cause
> # the setting in this file to be ignored
> 
> # Lines that start with "%" are settings that have been unchanged from
> # default, and that are thus ignored by the node (so they don't linger
> # when we want to change the default settings). If you change these
> # settings you should remove the "%".
> 
> # This file was automatically generated by Freenet.scripts.Setup (at Jan 28, 2003 12:23:43 AM)
> 
> 
> # The IP address of this node as seen by the public internet.  This is
> # needed in order for the node to determine its own node reference.
> # If you have a dynamic IP address, you may enter a host name in this
> # field (assuming you have a dynamic DNS service).  If this is a
> # transient node, you can leave this blank.
> ipAddress=galadriel.alyra.org
> 
> # The port to listen for incoming FNP (Freenet Node Protocol) connections on.
> listenPort=16068
> 
> # The port to listen for local FCP (Freenet Client Protocol) connections on.
> %clientPort=8481
> 
> # A comma-separated list of hosts that may connect to the FCP port
> # (clientPort).  If left blank, only the localhost will be allowed. If you set this, make sure localhost is
included in the list or  access won't be allowed from the local machine. 
> # May be given as IP addresses or host names.
> fcpHosts=*
> 
> # If this is set then users that can provide the password can
> # can have administrative access. It is recommended that
> # you do not use this without also using adminPeer below
> # in which case both are required.
> %adminPassword=null
> 
> # If this is set, then users that are authenticated owners
> # of the given PK identity can have administrative access.
> # If adminPassword is also set both are required.
> %adminPeer=null
> 
> # Transient nodes do not give out references to themselves, and should
> # therefore not receive any requests.  Set this to yes if you cannot
> # receive incoming connections, or cannot keep the computer continuously
> # online.
> transient=false
> 
> # If this is true, the node will automatically announce to all nodes in
> # the <seedFile> file, as specified by <announcementDelay>, etc.
> %doAnnounce=true
> 
> # A file containing one or more node references which will be incorporated
> # into the node's routing table on startup.  A reference is only added if
> # there is no previously existing reference to that node.  When this node
> # announces, it will announce to the nodes listed in this file.
> %seedFile=seednodes.ref
> 
> # The directory in which to save diagnostics data.  Defaults to
> # <storePath>/stats if left blank.
> %diagnosticsPath=stats
> 
> # Datastore implementation. Put "native" (without the quotes) if you want the new native filesystem
datastore, which stores the files in a directory. Put "convert" to convert from an old monolithic store to
a native store. Note that convert uses lots of disk space while doing the conversion (approximately twice
the datastore size), and the resulting store may be (temporarily) slightly larger than the old one due to
block size mismatch (this will be fixed as soon as the node tries to add a file to the store).
> %storeType=freenet
> 
> # The path to the file containing the node's private key, DSA group,
> # cipher key, etc.  Defaults to node_<port> in the current directory.
> %nodeFile=
> 
> # The path to the single directory 
> # containing the data store.  The total maximum size of the files in the directory is given by
> # <storeSize>. It will create new files in this dir, and DELETE OLD ONES.
> %storeFile=
> 
> # The byte size of each data store file.  If there is more than one
> # file, the total size of the store is the product of the number of
> # files and <storeSize>. The maximum sized file that will be cached is 1/200th
> #  of this value, so we recommend the default 256MB, to cache the largest common
> #  file size on freenet, 1MB plus some headers
> storeSize=1073741824
> 
> # Size of blocks in the underlying filesystem for purposes of calculating space usage when storeType=native.
> %storeBlockSize=4096
> 
> # The name of a symmetric cipher algorithm to encrypt the datastore
> # contents with.  Supported algorithms are "Twofish", "Rijndael",
> # and "null", "none", or "void" (for no encryption).
> %storeCipherName=Twofish
> 
> # The width in bits of the cipher key to use for the datastore.
> # The allowed values for this will depend on the cipher algorithm.
> # Twofish allows 64, 128, 192, or 256, while Rijndael allows
> # 128, 192, or 256.
> %storeCipherWidth=128
> 
> # The directory in which to store the routing table files. Defaults to parent dir of storeDir
> %routingDir=
> 
> # The maximum number of bytes per second to transmit, totaled between
> # incoming and outgoing connections.  Ignored if either inputBandwidthLimit
> # or outputBandwidthLimit is nonzero.
> bandwidthLimit=28672
> 
> # If nonzero, specifies an independent limit for incoming data only.
> # (overrides bandwidthLimit if nonzero)
> %inputBandwidthLimit=0
> 
> # If nonzero, specifies an independent limit for outgoing data only.
> # (overrides bandwidthLimit if nonzero)
> %outputBandwidthLimit=0
> 
> # The maximum number of bytes per second to transmit (averaged over a week), totaled between
> # incoming and outgoing connections.  Error to define it if any of (average)inputBandwidthLimit
> # or (average)outputBandwidthLimit is nonzero.
> %averageBandwidthLimit=0
> 
> # If nonzero, specifies an independent limit for incoming data only (averaged over a week).
> # (overrides averageBandwidthLimit if nonzero)
> %averageInputBandwidthLimit=0
> 
> # If nonzero, specifies an independent limit for outgoing data only (averaged over a week).
> # (overrides bandwidthLimit if nonzero)
> %averageOutputBandwidthLimit=0
> 
> # The maximum number of incoming and outgoing connections to allow 
> # at the same time.
> %maxNodeConnections=60
> 
> # The maximum number of outgoing connections established in a one minute period. Deprecated and ignored.
> %maxConnectionsPerMinute=60
> 
> # The length of the period over which there must be at most maxConnectionsPerMinute connections.
Deprecated and ignored.
> %maxConnectionsMinute=60000
> 
> # The maximum number of outgoing connections established per maxRequestsInterval.
> %maxRequestsPerInterval=300
> 
> # The length of the period over which there must be at most maxRequestsPerInterval connections.
> %maxRequestsInterval=60000
> 
> # The error reporting threshold, one of:
> #   Error:   Errors only
> #   Normal:  Report significant events
> #   Minor:   Report minor events
> #   Debug:   Report events only of relevance when debugging
> %logLevel=normal
> 
> # The name of the log file (`NO' to log to standard out)
> %logFile=freenet.log
> 
> # A template string for log messages.  All non-alphabet characters are
> # reproduced verbatim.  Alphabet characters are substituted as follows:
> # d = date (timestamp), c = class name of the source object,
> # h = hashcode of the object, t = thread name, p = priority,
> # m = the actual log message
> %logFormat=d (c, t): m
> 
> # A template for formatting the timestamp in log messages.  Defaults to
> # the locale specific fully specified date format.  The template string
> # is an ordinary Java date/time template - see:
> # http://java.sun.com/products/jdk/1.1/docs/api/java.text.SimpleDateFormat.html
> %logDate=
> 
> # The number of references allowed per node in the routing table.
> # This should not be set too high.
> %rtMaxRefs=50
> 
> # The number of unique nodes that can be contained in the routing table.
> %rtMaxNodes=50
> 
> # The maximum number or node refs that will be used to route a request before RNFing.
> %maxRoutingSteps=40
> 
> # The number of outstanding message replies the node will
> # wait for before it starts to abandon them.
> %messageStoreSize=1000
> 
> # The number keys that failed to be retrieved the node should key track of.
> %failureTableSize=1000
> 
> # The amount of time to keep keys cache keys that could not be found and
> # automatically fail requests for them.
> %failureTableTime=1800000
> 
> # The time to wait for connections to be established and 
> # authenticated before passing by a node while routing out.
> # Connections that are by passed are still finished and cached 
> # for the time set by <connectionTimeout> (in milliseconds).
> %routeConnectTimeout=10000
> 
> # When forwarding a request, the node will reduce the HTL to this value
> # if it is found to be in excess.
> %maxHopsToLive=25
> 
> # The number of nodes that each announcement message should besent to.
> %announcementHTL=15
> 
> # The number of attempts to make at announcing this node per
> # initial peer. Zero means the node will not announce itself.
> %announcementAttempts=3
> 
> # The time between polling for 1 hours no incoming requests to 
> # force reannouncement.
> %announcementPollInterval=900000
> 
> # If we run out of seed nodes, we can use other nodes from therouting table to announce to. However, since the
trust levelof these nodes is unknown, this is not recommended for thetruly paranoid.
> %announcementThreads=3
> 
> # announce to nodes from routing table?
> %announcementUseRT=true
> 
> # The number of keys to request from the returned close values
> # after an Announcement (this is per announcement made).
> %initialRequests=10
> 
> # The hops that initial requests should make.
> %initialRequestHTL=15
> 
> # Whether to emply load balancing algorithms against the 
> # network.
> %doLoadBalance=true
> 
> # set yes to allow permanent nodes with non-internet-resolvable addresses. Do not use this except in a
local testing network.
> %localIsOK=false
> 
> # A comma delimited list of services that are run when the node starts. If you don't know what this means,
just accept the defaults.
> %services=mainport
> 
> # The Java class of the distribution servlet. You shouldn't need to touch this.
> distribution.class=freenet.node.http.DistributionServlet
> 
> # The port that the distribution servlet listens for HTTP requests on.
> distribution.port=8891
> 
> # The directory containing the files needed for the Distribution Servlet - usually where freenet was unpacked.
> distribution.params.unpacked=.
> 
> # These IP addresses will be allowed to access the distribution pages generated by the
DistributionServlet. Default * means everyone.
> distribution.allowedHosts=*
> 
> # Filename of the windows web-installer for freenet, to be included in the ZIP files produced by the
distribution servlet. Obtainable usually from http://freenetproject.org/snapshots/, or you
probably already have it if you installed on Windows.
> distribution.winInstallerFilename=freenet-webinstall.exe
> 
> # How long to wait for authentication before giving up (in milliseconds)
> %authTimeout=30000
> 
> # How long to listen on an inactive connection before closing
> # (if reply address is known)
> %connectionTimeout=600000
> 
> # The expected time it takes a Freenet node to pass a message.
> # Used to calculate timeout values for requests.
> %hopTimeExpected=4000
> 
> # The expected standard deviation in hopTimeExpected.
> %hopTimeDeviation=7000
> 
> # Should we use thread management?  If this number is defined and non-zero,
> # this specifies the max number of threads in the pool.  If this is overrun
> # connections will be rejected and events won't execute on time.
> %maximumThreads=120
> 
> # If true, above 3000ms ticker delay requests will be rejected, above 1000ms, requests except those in the
datastore will be rejected, and above 500ms, requests except those in the most successful keyspace
segment will be rejected.
> %doRequestTriageByDelay=true
> 
> # The node will start to selectively reject requests above this load level.
> %overloadLow=0.85
> 
> # The node will reject all QueryRequests above this load level.
> %overloadHigh=0.9
> 
> # The node will reject nearly all incoming queries when routingTime is over this value.
> %requestDelayCutoff=1000
> 
> # The node will reject ALL incoming queries above this routingTime.
> %successfulDelayCutoff=3000
> 
> # What size should the blocks have when moving data?
> %blockSize=4096
> 
> # The default size of stream buffers.
> %streamBufferSize=16384
> 
> # The maximum number of bytes of padding to allow between messages
> # and in Void messages.
> %maximumPadding=65536
> 
> # Set true to enable inbound contact monitoring.
> %logInboundContacts=false
> 
> # Set true to enable outbound contact monitoring.
> %logOutboundContacts=false
> 
> # Set true to enable per host inbound request monitoring.
> %logInboundRequests=true
> 
> # Set true to enable per host outbound request monitoring.
> %logOutboundRequests=true
> 
> # Set true to.count TCP bytes sent for diagnostics
> %logOutputBytes=false
> 
> # Debugging only, setting this to true will remove your anonymity!
> %watchme=false
> 
> # Set true to enable logging of inbound InsertRequest key distribution.
> %logInboundInsertRequestDist=true
> 
> # Set true to enable logging of inbound InsertRequest key distribution.
> %logInboundInsertRequestDist=true
> 
> # Number of times watchMe will attempt to initialize
> %watchmeRetries=3
> 
> # Set true to enable logging of successful inbound InsertRequests' key distribution.
> %logSuccessfulInsertRequestDist=true
> 
> # Dir. used for FEC temp files. You don't need to set this.
> %FECTempDir=
> 
> # Number of FEC instances to cache. Set to 1 unless you expect more than one simultaneous FEC operation.
> %FECInstanceCacheSize=1
> 
> # Default FEC encoder implementation.
> %FEC.Encoders.0.class=OnionFECEncoder
> 
> # Default FEC decoder implementation.
> %FEC.Decoders.0.class=OnionFECDecoder
> 
> # The directory used for temporary files. Used currently by fproxy and the FCP FEC mechanism, if their
individual temp dirs are not set. If this is left unset, it will create a tempdir in the datastore (if the
datastore is native).
> %tempDir=
> 
> # Disables anonymity threatening servlets and infolets
> %publicNode=false
> 
> %fproxyHosts=*

--

-- 
Matthew Toseland
toad@.../amphibian <at> users.sourceforge.net
Full time freenet hacker.
http://freenetproject.org/
Freenet Distribution Node (temporary) at http://80-192-4-23.cable.ubr09.na.blueyonder.co.uk:8889/BeUkueBQ8L0/
ICTHUS.
Frank v Waveren | 1 Mar 18:12 2003
Picon

Re: still can't do multiple FEC fproxy downloads

On Sat, Mar 01, 2003 at 02:56:06PM +0000, Matthew Toseland wrote:
> No way, it works here, and we wouldn't hold a lock over the ENTIRE
> request. There might well be a lock waiting for the actual FEC
> encoding/decoding though. Get a thread dump.

For your viewing pleasure.

--

-- 
Frank v Waveren                                      Fingerprint: 21A7 C7F3
fvw <at> [var.cx|stack.nl|chello.nl] ICQ#10074100            1FF3 47FF 545C CB53
Public key: hkp://wwwkeys.pgp.net/fvw@...            7BD9 09C0 3AC1 6DF2
Attachment (thread.dump.gz): application/octet-stream, 9 KiB
Erendil | 1 Mar 19:12 2003
Picon

Freesite Page Templating

Ok, I'm going to start writing a templating system, basically for managing freesites. The idea is that, since Freenet can really only handle static content, I write a tool to take a template, get the content for that page, and then compile it on demand.

Example:
1. Create page template using HTML, CSS, and template tags.
2. Use the interface (haven't decided between Tk or webpage) to enter stuff like news
3. Compile template

4. User posts compiled page

I would like the someday have it be able to run with a command line switch for just compiling and uploading, so you'd run, say a cron job, to keep a DBR site up to date.

Anyways, my questions to everyone are:

Would you use it? It's being written in Python.
What do you want in it? What types of tags and stuff? [INCLUDE] and [LINK] obviously.
Would someone be willing to help me with understanding the freenet protocol in depth, so that I can implement fucntionality to make this a complete freesite tool?

Have a nice day.
alpha | 1 Mar 20:45 2003

Cryptography


-----BEGIN PGP SIGNED MESSAGE-----

I have some questions about the cryptography used. First, which specific algorithms are used? Second,
would someone care to give me links to resources or explanations for the non mathematically advanced of
us? Every time I try to figure out a cryptographic algorithm, I only see straight math. Python or PHP code
would help...
-----BEGIN PGP SIGNATURE-----
Version: Hush 2.2 (Java)
Note: This signature can be verified at https://www.hushtools.com/verify

wlUEARECABUFAj5hDeoOHGFscGhhQGh1c2guYWkACgkQtSqrFyYjJOT6uACglg5Qt9CG
o5PDUM0o1veIxVjqNN8AoIfO7qRA/PSqexzefRUanpPRdk+t
=9S2o
-----END PGP SIGNATURE-----

Concerned about your privacy? Follow this link to get
FREE encrypted email: https://www.hushmail.com/?l=2 

Big $$$ to be made with the HushMail Affiliate Program: 
https://www.hushmail.com/about.php?subloc=affiliate&l=427
Ian Clarke | 1 Mar 21:22 2003
Picon

Re: Cryptography

> I have some questions about the cryptography used. First, which
> specific algorithms are used?

We use SHA1, AES, and Twofish in various different ways, take a look at 
the papers section of our website for some descriptions of how these are 
used within the architecture.

> Second, would someone care to give me
> links to resources or explanations for the non mathematically advanced
> of us?

Get a book called "Applied Cryptography", believe it or not it makes 
quite good reading.

Ian.

--

-- 
Ian Clarke                ian <at> [freenetproject.org|locut.us|cematics.com]
Latest Project                                          http://locut.us/
Personal Homepage				    http://locut.us/ian/

Gmane