wiki:Notes/PeerNetworks

Peer To Peer Networks

Great architecture, not so great implementations.

Peer to peer works as a conceptual framework, but all in all, message-oriented middleware implementations seem to be more powerful and flexible.

http://en.wikipedia.org/wiki/List_of_P2P_protocols

http://en.wikipedia.org/wiki/Peer-to-peer

Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or work loads between peers. Peers are equally privileged, equipotent participants in the application. They are said to form a peer-to-peer network of nodes ...

Unstructured peer-to-peer networks do not impose a particular structure on the overlay network by design, but rather are formed by nodes that randomly form connections to each other. (Gnutella, Gossip, and Kazaa are examples of unstructured P2P protocols) ...

In structured peer-to-peer networks the overlay is organized into a specific topology, and the protocol ensures that any node can efficiently search the network for a file/resource, even if the resource is extremely rare ...

Hybrid models are a combination of peer-to-peer and client-server models. A common hybrid model is to have a central server that helps peers find each other.

Currently, hybrid models have better performance than either pure unstructured networks or pure structured networks because certain functions, such as searching, do require a centralized functionality but benefit from the decentralized aggregation of nodes provided by unstructured networks.

Peer To Peer Platforms

Most of these things flourished 10 years ago and are now released sporadically or barely usable or Windows only or all three ...

http://en.wikipedia.org/wiki/Gnutella

http://en.wikipedia.org/wiki/Gtk-gnutella

http://gtk-gnutella.sourceforge.net/en/?page=download

Darwin (Mac OS X) ... Terribly outdated version!

Source tarballs ???

http://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_%28P2P%29

http://en.wikibooks.org/wiki/The_World_of_Peer-to-Peer_%28P2P%29/Networks_and_Protocols/Gnutella

http://en.wikipedia.org/wiki/GNUnet

GNUnet is a free software framework for decentralized, peer-to-peer networking and an official GNU package. The framework offers link encryption, peer discovery, resource allocation, communication over many transports (such as tcp, udp, http, https, wlan and bluetooth) and various basic peer-to-peer algorithms for routing, multicast and network size estimation.

GNUnet's basic network topology is that of a mesh network. GNUnet includes a distributed hash table (DHT) which is a randomized variant of Kademlia that can still efficiently route in small-world networks. GNUnet offers a "F2F topology" option for restricting connections to only the users' trusted friends.

The users' friends' own friends (and so on) can then indirectly exchange files with the users' computer, never using its IP address directly.

http://freecode.com/projects/gnunet

Recent comments ... 29 Feb 2012 12:30 yanestra ... After so many years, GNUnet is still far from usable.

https://freenetproject.org/

Freenet is free software which lets you anonymously share files, browse and publish "freesites" (web sites accessible only through Freenet) and chat on forums, without fear of censorship. Freenet is decentralised to make it less vulnerable to attack, and if used in "darknet" mode, where users only connect to their friends, is very difficult to detect.

For best performance, Freenet will run continually. It should not interfere with your computer usage, as it requires around 200MB of RAM and 10% of one CPU core, plus some disk access

Bitcoin and Blockchain

Not directly useful, but interesting nonetheless.

https://blockchain.info/

http://en.wikipedia.org/wiki/Blockchain.info

Mastering Bitcoin - http://chimera.labs.oreilly.com/books/1234000001802/index.html

Chapter 2. How Bitcoin Works - http://chimera.labs.oreilly.com/books/1234000001802/ch02.html

http://www.xe.com/currency/xbt-bitcoin?

https://blockchain.info/api

Blockchain.info provides official API libraries for a number of languages

https://blockchain.info/api/blockchain_api

https://github.com/blockchain

Python Client - https://github.com/blockchain/api-v1-client-python

The module consists of the following sub-modules:

The main module is called blockchain

NodeJS Client - https://github.com/blockchain/api-client-v1-node

https://en.bitcoin.it/wiki/Block_chain

A block chain is a transaction database shared by all nodes participating in a system based on the Bitcoin protocol. A full copy of a currency's block chain contains every transaction ever executed in the currency. With this information, one can find out how much value belonged to each address at any point in history.

Every block contains a hash of the previous block. This has the effect of creating a chain of blocks from the genesis block to the current block. Each block is guaranteed to come after the previous block chronologically because the previous block's hash would otherwise not be known.

Each block is also computationally impractical to modify once it has been in the chain for a while because every block after it would also have to be regenerated. These properties are what make double-spending of bitcoins very difficult. The block chain is the main innovation of Bitcoin ...

https://en.bitcoin.it/wiki/Block_chain_download

https://en.bitcoin.it/wiki/Satoshi_Client_Block_Exchange

https://en.bitcoin.it/wiki/Alternative_chain

An alternative chain is a system using the block chain algorithm to achieve distributed consensus on a particular topic. Alternative chains may share miners with a parent network such as Bitcoin's; this is called merged mining.

Alternative chains have been suggested as ways to implement DNS, P2P currency exchanges, SSL certificate authorities, timestamping, file storage and voting systems .

Bitcoin uses the block chain algorithm to achieve distributed consensus on who owns what coins. Block chains were invented specifically for the Bitcoin project but they can be applied anywhere a distributed consensus needs to be established in the presence of malicious or untrustworthy actors.

Virtuoso Universal Server - Not !

http://virtuoso.openlinksw.com/

The unique hybrid server architecture of Virtuoso enables it to offer traditionally distinct server functionality within a single product offering that covers the following areas:

SQL Relational Tables Data Management (SQL RDBMS)
RDF Relational Property Graphs Data Management (RDF Triple or Quad Store)
Content Management (HTML, TEXT, TURTLE, RDF/XML, JSON, JSON-LD, XML)
Web and other Document File Services (Web Document or File Server)
Five-Star Linked Open Data Deployment(RDF-based Linked Data Server)
Web Application Server (SOAP or RESTful interation modes).

Commercial and open versions

https://github.com/openlink/virtuoso-opensource

Extensive build process ... after all the BS, server has restrictive licence.

Also See

Servers#PeertoPeerServers

SemanticWeb#PeerToPeer

Last modified 3 years ago Last modified on 03/17/2015 06:11:05 PM