Das anonyme P2P Programm - The Owner Free File System auch für Linux erhältlich

Hier kann jeder Nachrichten posten - von einem Satz mit URL bis hin zu ausgefeilten Artikeln.
Message
Author
Reality81

Das anonyme P2P Programm - The Owner Free File System auch für Linux erhältlich

#1 Post by Reality81 »

Moin Boardies,
mit diesem Thread möchte ich euch gerne über die Funktionen sowie sämtliche kommende Release über das Owner Free Filesystem informieren und euch auf den aktuellen Stand des anonymen P2P-Netzwerk halten.
---------------------------------------------------------------------------------------------------
OFF ist die Abkürzung für Owner Free Filesystem, dabei handelt es sich um ein Sourcecode offenes anonymes P2P-Netzwerk.

Es handelt sich dabei um den Proof-of-Concept für sogenannte Bright Nets. Es soll jedermann erlauben, File Sharing sicher und legal zu betreiben.

Alle Dateien im OFF-Netzwerk werden auf zufällig ausgewählten Datenblöcken gespeichert. Jede angebotene Datei wird vor dem Upload auf der eigenen Festplatte in etliche Einzelteile geteilt und dann mit anderen Dateien, die nichts mit der eigentlichen Datei zu tun haben, miteinander gemischt.

Danach werden die einzelnen gemischten Dateien verschlüsselt und auf benachbarte Nodes verteilt. Jeder Teilnehmer des OFF-Netzwerks gibt "nach Bedarf" eine bestimmte Menge Festplattenspeicher frei, auf welchem daraufhin die einzelnen, vermischten Dateien verschlüsselt gespeichert werden.

Um eine Datei downloaden zu können braucht man einen Schlüssel, der in Form einer URL vergeben wird. Der Client lädt sich dann verteilte Kleinteile vom Swapspeicher irgendwelcher User und setzt sie wieder zur einer kompletten Datei zusammen.

Weil die Kleinteile mehrdeutig sind und als Kombination mehrerer Dateien oder Kleinteile entstehen, kann man keinerlei Rückschlüsse von den vorhandenen, gespeicherten Daten an sich, auf die ursprünglichen Dateien schließen.

Das einzige Element, das die Zuordnung erlaubt, ist der Key/die URL des hochgeladenen Files. Diese sind jedoch durch die Bereitstellung der Keys über die Suche vollkommen optional (verschlüsselt). Es müssen einfach nur die URLs über andere Kanäle anonym ausgetauscht werden.

Da beim Upload die Kleinteile auf mehrere Festplatten anderer OFF User geladen werden, hat dies den Vorteil, dass jede Datei die man freigibt, automatisch mehrfach verfügbar und auf die Festplatte mehrerer anderer Benutzer "geswappt", also insgesamt vervielfältigt und gesichert wird.

Dadurch ist jede Datei mehrmals im Netz vorhanden und kann auch dann noch heruntergeladen werden, wenn der eigentliche/ursprüngliche User, der diese Dateien freigegeben hat, offline ist. Das wiederum sorgt für eine gute Bandbreite, es entsteht ein schneller Datentransfer.

Das Owner Free Filesystem verfolgt dasselbe Ziel wie das Freenet-Projekt, ist jedoch einfach zu Bedienen mit optimierter Geschwindigkeit.

Webside:
http://offsystem.sourceforge.net/wordpress/

Reality81

#2 Post by Reality81 »

OFF Version 0.16.11 für Linux & Windows verfügbar.

Changes:
0.16.11

- Fixed exception in shutdown of threadpools under win32 - CloseHandle()
should not be called for threads created with _beginthread().

- Fixed lockup bug in shutdown of threadpools under win32 - it seems we
need a seperate broadcast to wake up each individual thread in the pool.

- Implemented an object to encapsulate a transient thread - as opposed to
the permanent ones that inhabit the threadpools and are occasionally
assigned tasks. This will be used relatively sparingly.

- Using the transient threads we can now ping 10 nodes at a time when
checking the nodelist - should make this operation 10 times faster.
Asynchronous comms did not help here as the main delay is in failing
to establish a connection with bind()/connect() which must be done
synchronously. Don't panic when the thread count jumps up by 10 every now
and then!

- Changed the transient threads under win32 to be started with
_beginthreadex(). Quote from the msdn site: "If the thread generated by
_beginthread exits quickly, the handle returned to the caller of
_beginthread might be invalid or, worse, point to another thread."
WTF? Piss my pants laughing! Anyway, _beginthreadex() allegedly does
not suffer from this ludicrous issue (and incidently, re above,
requires CloseHandle() to be called). The threadpools should not be
affected by this as their threads are permanent, may change them over later.

- Change the wait timeout of the threadpool shutdown under win32
from INFINITE to 30 seconds (in WaitForSingleObject()) so the program
will still exit at some point if something goes awry with one of the
threads.

- Yep, the threadpools needed to go to _beginthreadex() as well.

- Specialised threadpools should now close properly under win32 and
Linux (small memleak on close in the latter). The main threadpool
still closes inelegantly - but I've had enough of the MSCRT for now!

- Fixed bug where nodes could be flagged as online if we managed to
open a socket, but they did not respond to the ping message.

- Added a check that the port number is in range when a node is added
to the local list. Also added the same check the config file read and
the command line port change.

- Network message buffers are now only created when a connection
is opened, rather than when the socket object is created. This
cuts down on RAM usage when we ping a lot of nodes in parallel.

Reality81

#3 Post by Reality81 »

OFF Version 0.16.11 für Linux & Windows verfügbar.

Changes:
0.16.12

- Fixed bug where the loaded theme name would be truncated to the
first letter under linux.

- Fixed a unicode issue in Linux where the theme name would
be displayed incorrectly when a theme save failed.

- Fixed bug where the gui would open under command line mode in Linux.

- Fixed memory corruption bug in srch results - the problem would only
affect those with legacy encryption settings from before excryption
was disabled (or those who tried to hack the config files to turn
encryption back on before I was ready!)

- Implemented transient threads to ping groups of unchecked nodes
such as appear after someone gives us a large nodelist. Again,
the nodes are contacted in batches of 10.

- Fixed bug where older nodes would trigger a pointless check for
AES key requests - no requests were made because the nodes were
too old for AES, but they still triggered another check, etc.

- Fixed bug where the log box would be too small in on the log panel
if we change to that panel from a list tab while the log is hidden
in list tabs.

- Some search IDs are leaking into the srch terms, probably from
pre-srch_record versions. Terms from such a node are truncated
at any tab character found - usually, we would replace it with a space.
This is a temporary fix to try to identify the problem and will
disappear when the real issue is dealt with.

- OFF will now build in command line mode for Linux, but lots of stuff
has gotten broken since we last had a command line client. It will
only build with RELEASE_ON not defined at present.

Reality81

#4 Post by Reality81 »

OFF Version 0.16.13 für Linux & Windows verfügbar.

Changes:
0.16.13

- Fixed a bad initialisation of the IP string in NodeCache that could cause
bootstrapping to fail on some platforms (only seemed to cause a
problem on one particular Mac).

- Got rid of a pointless delay between the last contact and an online
node with no pool cnxn being checked for adding to the cnxn pool. This
should stop nodes hanging around too long with "online - firewall unchecked"
in the network status.

- Stopped block requests from being initiated when the node is shutting
down. This gets rid of *some* of the delay between the client being
closed and the process ending - more work needs to be done on that delay.

- Shaved a few more seconds off the shutdown time by speeding up the
shutdown of some manager threads. It can still take up to a minute
or more for the process to end. :(

- If a node that you are chatting with goes offline while the chat
window is open a message will appear in the chat log reflecting this.
Similarly if the node comes back online while the chat window is open.

- Fixed endianism bug in build for Intel Mac.

- Removed another delay in requesting RSA keys from previously known
nodes that come online (after the startup node checks) but have no
RSA key yet.

- Changed default settings for upload and download slots to 15 each.

NON-RELEASE BUILDS ONLY: Added debug code to watch the headers coming
in from a given node. Select "Set Watch" and "Unset Watch" from the
nodelist context menu.

Webside:
http://offsystem.sourceforge.net/wordpress/

Reality81

#5 Post by Reality81 »

OFF Version 0.17.00 für Linux, Windows & Mac verfügbar.

Changes:
0.17.00

- Fixed bug where offline nodes, if hidden, would unhide when the
GUI colours were modified.

- Fixed GTK critical on keypress before any widget is focussed, caused by bad
setting of the focussed object on startup.

- Added a stop button to the srch tab, this terminates the selected srch by
setting the iteration count to greater than the active maximum. No more results
will be added to a srch once it has been manually stopped.

- Fixed splash screen under Linux/Mac to load the splash image in the
current theme or use the xpm default if the image cannot be loaded.

- Added default xpm splash screen under MSW.

- Removed duplicate image handlers on program start.

- Stopped the gui from accessing the core srch list when the srch tab
page is changed.

- Fixed bug where Ctrl-B pointed to both the blocks window and the custom
toolbar image selector. Ctrl-Shift-B now loads a custom toolbar image.

- Fixed bug where clicking on the custom toolbar button would close the client
under Linux.

- Fixed loading of theme icon under Linux. All windows should now show
the OFF icon. Mac fix coming...

- Only URLs for which all the blocks are local are now shown in the target
window.

- Fixed memory corruption bug in "ftp" recieves due to bad synchronisation
between the reader thread and the cnxn pool. This would also have affected
pad sends and recieves if/when the pad encryption ever comes back.

Reality81

#6 Post by Reality81 »

Ausführliche Infos sowie ein Test über OFF gibt es seit kurzen bei netzwelt!

Link:
http://www.netzwelt.de/news/76346-of...ring-aber.html

Reality81

#7 Post by Reality81 »

OFF Version 0.17.01 für Linux, Windows & Mac verfügbar.

Changes:
0.17.01

- Stopped nodelist requests if there are more than 20 online nodes, node exchange through block requests should take care of the rest. Made the log box readonly on Mac due to applespell CPU use issues Added a fix to identify multiple nodes running behind a router with the same IP and port. If a node is identified on a new incoming cnxn by its IP and port but i) has a different node ID to the incoming cnxn and ii) has an open pool cnxn, then we add a new node with the new node ID. Removed the timeout from the splashscreen. Seemed to cause a crash on some platforms if it was explicitly destroyed as well. Temporary retrieved files are now stored in the retrieve dir as <filename>.temp instead of in $OFF/temp. Greyed out download retrieve options while an auto retrieve is in progress. Fixed bug where downloads set to auto retrieve would retrieve again on restart if they were not cleared from the download list. Added traffic counters for all bandwidth types in the statistics panel. These are shown for the current session and all sessions. There are two buttons that can be used to reset each of these groups to zero at any time.

Reality81

#8 Post by Reality81 »

OFF Version 0.17.02 für Linux und Windows verfügbar.

Changes:
0.17.02

- Added a column to the nodelist showing the total time that a node has
been seen online.

- CRITICAL: Fixed bug where a node slot for block requests was returned before
the channel that the blocks were requested on, this could cause
too many channels to be assigned to a given node resulting in
network lag.

- NON-RELEASE BUILDS ONLY: Added thread monitors for 5 core threads
to the debug panel.

Reality81

#9 Post by Reality81 »

OFF Version 0.17.03 für Linux und Windows verfügbar.

Changes:
0.17.03

- Added an offdir window, when an off dir is opened this window allows
you to select only those URLs from the dir that you want added to
local URLs.

- Fixed bug where chat failed with non-pool nodes.

- Implemented sizers in all external windows, replacing the ancient
OnSize() method.

- Implemented a nonblocking socket open when the block request thread
opens a socket - this should eliminate lag in that thread when
there is no pool cnxn to the node we want to request from.

- Implemented a similar non-blocking open for pinging nodes, a timeout
of 30 seconds is applied to the open operation. This should speed
up slow checking of nodes as reported on some platforms. This also
means we no longer require transient threads to ping several nodes in
parallel.

- Fixed bug where theme tab images would not load on restart.

- Images for the toolbar buttons should now load on startup, installing
an xpm fallback for each image that cannot be loaded.

- Fixed xpm fallbacks for tab images.

- Fixed xpm fallbacks for panel button images under win32.

- Increased the initial block request delay (for reqs to the same node)
o 40 secs, and the maximum delay to 1200 secs. Should reduce some
of the overhead.

- The number of simultaneous pings when checking the nodelist can
now be configured using a spinctrl in Advanced Options->Nodelist.
Minimum 1, maximum 100. A higher value will ping through the nodelist
faster.

- Fixed sizer assert failure when the preferences dialog is opened.

- Fixed crasher when a string longer than the max srch string length
(currently 64 chars) was in the srch box. When the srch string is too
long a dialog opens asking whether to continue with truncated terms
or abort.

- Switched to a unicode build of wxWidgets. OFF core support for unicode
is not yet completed.

- Fixed minor bug in sorting of nodes by IP addresses

- Tidied sizers in the preferences dialog.

- CRITICAL: Implemented an asynchronous method to obtain channels to
a pool node. Previously if all channels were busy the read thread would
wait for one to become available stalling ALL reads until the wait
timed out. This should not happen any more.

- CRITICAL: Gave pool channels a type 'in' if the conversation was
initiated by another node and 'out' if it was initiated by the local
node. Each type is only allowed to obtain 7 out of the 10 pool channels
to each node (as always, these numbers were made up on the spot). This
solves the problem that when all channels are of one type, the opposite
type will stall.


- NON-RELEASE BUILDS ONLY: Added a thread monitor for the block requester
thread to the debug panel.

Download der aktuellen OFF Version unter:
https://sourceforge.net/project/showfil ... p_id=96735

Reality81

#10 Post by Reality81 »

OFF Version 0.17.04 für Linux und Windows verfügbar.

Changes:
0.17.04

- Block requests received from other nodes where the block is not
local now remember when each node last requested them. When we
send back candidate nodes in reply to such a failed block request
we now include only those nodes which have come online since the
node last requested that block. (Obviously, on the first request
from a given node we return all candidates.) This cuts down on
a lot of the overhead bandwidth.

- Fixed bug where offdirs could not be opened if their mimetype
dir not match the OFFDir mimetypes even though they had
the ".ofd" file extension.

- Added a manual fallback for the OFFDir mimetype in the case
that the mimetype manager fails to detect it.

- Fixed bug which resulted in apparently blank filenames when the
name contained non-ANSI characters encoded with the previous
ANSI build versions.

- Upgraded wxWidgets to version 2.8.6.

Download:
https://sourceforge.net/project/show...group_id=96735

Reality81

#11 Post by Reality81 »

OFF Version 0.17.04 für Linux und Windows verfügbar.

Changes:
0.17.05

- CRITICAL: Fixed bug in non blocking connect failures that caused OFF to start eating all the socket descriptors in the system - degrading network performance of the machine in general. This bug affects versions 0.17.03 and 0.17.04. PLEASE UPGRADE TO THIS VERSION IMMEDIATELY!!!!

Reality81

#12 Post by Reality81 »

OFF Version 0.17.06 für Linux und Windows verfügbar.

Changes:
0.17.06

- Reduced delay on pool socket close and subsequent failed reads/writes.

- Fixed bug where some socket descriptors were closed twice
when a pool cnxn was removed.

- Added socket exception monitoring to the pool listen thread.

- Fixed bug where some socket descriptors were closed twice
when a pool cnxn socket error occured. (similar bugs may remain.)

- Stopped pool sockets from being closed when the error is only
a timeout.

- Implemented non-blocking connects for all socket opens. Most still
happen synchronously, but this allows better control over the timeout
of the connection attempt.

- Forced timeout of socket connection attempts on shutdown. Should
remove some delay from the shutdown time.

- Implemented better shutdown checking in block push thread.

Reality81

#13 Post by Reality81 »

Seit kurzen gibt es ein Deutsches OFF-Benutzerhandbuch bei Planetpeer als doc oder pdf zum download.

Link:
http://board.planetpeer.de/index.php/topic,3560.0.html

Reality81

#14 Post by Reality81 »

OFF Version 0.17.07 für Windows & Linux verfügbar.

Changes:
0.17.07

- Added socket exception monitoring to the pool reads and writes.

- Fixed crasher in AES key exchange.

- Fixed crasher in RSA key decoding.

- Fixed memory leak on pool socket timeout when no data has been read
from the socket.

- Used pool cnxn test sends to speed up detection of pool sockets
which have been closed at the other end.

- Removed the old "skip" method of handling srch results when there
are too many for a single write buffer, this should not be needed
now that we have the srch record. Also reduces accesses to the
main srch lists which should avoid some thread lag.

- Fixed memory leak when the bandwidth graph config dialog is used.

- Changed the temporary blocklist used when submitting blocks for
a download to an array of 256 lists. This greatly reduces CPU
use when submitting download blocks.

- Used STL random_shuffle() method to randomise the order of the
submitted blocklist above, further reduces CPU use.

- Used OpenSSL functions for computing SHA-1 hashes, these seem to be much
faster than the old public domain code used previously.

- Fixed bug in chat window where all text would scroll above the viewable
area when the bottom of the log was reached. (The fix is at the expense of
rich text - but that wasn't used yet anyway.)

- Got rid of the silly method of playing around with log targets to
get messages into the chat window.

- Greyed out the options to remove or ban oneself from chat!

Update:

OFF Version 0.17.08 für Windows & Linux verfügbar.

Changes:
0.17.08

- CRITICAL: Fixed mutex data race when a relayed block is obtained
that can cause the connection handler thread to lock up completely.
This bug affects all previous versions.

- The pool cnxn class now controls all socket closes in the connection
pool, this should put paid to the multiple socket descriptor closes.
(And, with luck, the reported server instability)

- Fixed bug where the main window would remain minimised on restore
from the system tray if "Minimise To Tray" was set.

Download:
https://sourceforge.net/project/showfil ... p_id=96735

Reality81

#15 Post by Reality81 »

OFF Version 0.17.09 für Linux, Windows & Mac verfügbar.

Changes:
0.17.09

- Changed the push block list to the "list + updates" method which
reduces mutex accesses by the main worker threads.

- Fixed bug where the nodelist manager would be flagged that RSA keys
needed to be checked when an empty Node object was created (because
the object had a blank RSA key).

- Allowed pushes to nodes with the same HamDist from the as the pusher.
This will result in older nodes refusing such pushes - seems too
trivial a change to use a version check.

- Redesigned the block pusher module since it predates the asynchronous
comms, The push procedure has been made asynchronous and it is
now possible to push blocks to more than one node at a time when
trimming the cache. The limit for this has been arbitrarily set to 10,
but may be determined dynamically by available bandwidth later.
A dedicated thread is no longer necessary for block pushes and this
thread has been removed. Block pushing is now monitored by the iterator
thread in the DownloadManager class. Pushes that occur during distribution
of inserts still happen synchronously for the time being.

- Implemented sorting of nodelists using qsort() which should speed up
choosing which nodes to push to.

- Blocks scheduled for push should no longer be chosen as randomiser
for inserts, this means that we can now store files while the cache
is being trimmed.

- Gave the async cnxn handler a "permanent" nodelist with updates
similar the download manager, this will stop us from needlessly
making temp nodelists whenever things like block requests are received.

- Added a checkbox to automatically unpreserve inserts on distribute.

- All 2way comms from non-pool firewalled nodes now happens in
the finalser threads and not the thread that created the socket.

- Implemented an asynchronous non-blocking open for firewall check pings
(pingbacks) which obviates the need for a dedicated thread to finalise
connections and this thread has been removed.

- Redesigned the top level srch module to perform srches asynchronously.
The number of simultaneous srches has been limited to 10 (arbitrarily),
and only one srch is allowed to each node at a time. The two search
manager threads have been removed and the DownloadManager iterator thread
again handles this task.

- Block pushes in distribution of inserts are now piped through a small
monitor class that allows 10 simultaneous pushes to occur at
any one time. Distribution should be a lot more efficient now and
also prints statistics to the log on completion indicating how many
pushes succeeded and failed and how many of the blocks "belonged"
on the local node.

- Fixed bug where the block requester thread would sometimes try to
send it's "no more requests message" after the socket had failed to open
or a network error occurred.

- Added a very short sleep to the async cnxn handler thread to limit
iterations to 50 per second, this may or may not reduce CPU use
in the case where there are lots of cnxns and only a few are
acted on in each iteration.

- Block requests are now iterated by the async cnxn handler and the
thread dedicated to block requests has been removed.

- Fixed bug in the algorithm which chooses the nodes to request a
given block from - or rather rewrote the algorithm from scratch,
since it was doing nothing like what it was supposed to!

- When a block request is deferred due to it's being currently requested
from another node, it will wait only for 30 seconds before being
requested anyway - previously, it would wait indefinitely.

- Fixed crasher in error handling when parsing corrupted srch results.

- When a node decides whether it is the home node for a block on
receiving a request for that block it will exclude the requester
from the calculation. Hence it will perform a flood srch for
the block if it is the best node Apart from the one requesting.

- All tasks performed by the iterator thread in the DownloadManager class
are now performed by the async cnxn handler thread, and the iterator
thread has been removed for the DownloadManager class. The nodelists
kept by these two threads have been merged.

- Extended the timed completion check on downloads from every 15 mins
to every hour which should save some CPU for large downloads. This
check will go at some stage, assuming it is still useful but some
refactoring of the dl process will be required.

- If a block fails to load when requested by another node (after
being confirmed to be local) we send a "failed" message, rather
than just giving up on the connection. In addition, that block
name is added to a list of "suspect" blocks which is periodically
checked by the nodelist manager thread. The size and hash of
suspect blocks is checked and failures are dealt with according
to the Keep Corrupt Blocks policy.

- New relayed block requests can now only force a timeout of an
existing one if either the existing request is not for a block
that belongs on our node, or the new request is for such a block.
Thus, we prioritise relayed requests for our home blocks.

- Used sizers to tidy the Add Node dialog under gtk.

- Whatever bizarre link error stopped the empty nodelist dialog from
building under GTK seems to have gone away. This dialog will
now open in Linux when a node starts up with an empty nodelist,
and has also been sizer-ified.

- Fixed bug where the check item in the View menu to toggle the toolbar
did not correspond to whether the toolbar was actually shown or not.

- The blockcache now keeps an array of the number of blocks in each of
its 256 lists. For those interested, the data can be printed from the
view menu, but the first use is to speed up the selection of random
blocks from the cache which (according to profiles) makes storing
files about 30% faster.

- Relayed requests for blocks which belong on the local node no
longer undergo the usual timed requests to individual other nodes.
Instead the perform flood srch on a similar timer, but which starts
with 4x the usual delay (4*10 secs). This will get blocks home faster when
the node which has them runs out of slots or temporarily goes offline.

- Implemented nodelist sorting to speed up the selection of nodes to request
blocks from.

- Three new themes added to the windows installer.

Download:
https://sourceforge.net/project/showfil ... p_id=96735

Post Reply