Skip to content

Project Internet 2.0

AaronNGray edited this page Nov 16, 2013 · 9 revisions

Theory

The project is not very complicated at all at least in theory. To make Internet 2.0 project work, we only need to start with simple ideas and reach more complex levels as time progresses and leave further development up to the developer community.

The first thing to make this network running is to throw out all old concepts of how the Internet functions and incorporate a revolutionary new look on how people use the Internet using existing technology and source code projects.

The idea is to create a living update structure that the community can update easily and efficiently.

For example, say I am developing a webpage or content I want people to see, i.e, a news story. Like Riddet it is supported by the community on how many likes it gets and comments it has as they call this "Internet karma." Also on Piratebay one can search for files based on popularity of how many people are sharing it at any given time. The life of the file is dependent on how many people host the file or seed the file while downloading. The creation of a torrent page and the title, key words, categories and sub categories is much like what is seen in the current cataloging system of the library of congress. This information can be all part of the meta data of every torrent file or a magnet link.

One of the problems that news outlets today have is posting and re-posting of news. The idea behind reposting news is to keep the story alive or preserve the story if the original content is removed or jeopardized. One of the ideas behind Internet 2.0 is anyone can Re-host a file to preserve its existence.

One of the things I love about Google is that regardless if content is taken down for any reason you can still see the cached page or at least some kind of a preview.

P2P Network style "Software" can automatically embed a screen shot or a video type .gif that displays an image when a mouse scrolls over it displaying say 10 images over the total duration of the entire video equally no matter how long it is. This information is very small and can help people preview content before they open it or download it. A bit torrent file is very small. Like in "Serial Box", a listing can be updated with new or updated releases. It's possible that people can subscribe to content and channels much like people do on Youtube.

The Pirate Bay stopped linking to torrent files, instead, the world’s largest BitTorrent site will only list so-called magnet links. One of the advantages of the switch is that The Pirate Bay will be much more portable, and easier to copy. A new torrent listing all titles and magnet links on The Pirate Bay proves this point, as the public can download a copy that fits easily on a small USB stick – or even a few dozen floppies.

The Pirate Pay can index files under 90 Mb & not actually hosting any of the torrents but just the address to the torrents. So if you think about it the torrent web can grow exponentially and still be manageable. Best numbers I can find is 4 million files.

Currently 634 million is the Number of websites that exist. If this number is roughly accurate then if the Pirate Bay system was like the Internet for hosting websites it would be around 14.265 gigs. Bitcoin wallet updates to the Bitcoin network and its around 6 gigabytes. Generally people are willing to download that much data. And as storage technology increases with leaps and bounds this size will not be a problem for the average home user in other words anyone can be a direct link to the Internet.

People could have channels like Youtube. People can choose to make there content public, i.e., search-able or non search-able and they can collect content and re-host content. One of the things I have noticed about Youtube is people most of the time republish Youtube videos that are made public. People generally want to share and preserve information and data. Obviously this can be used for good or bad.

One of the biggest problems with the Internet is the amount of content that can be harmful to people and computers. One idea is the community can have control over what content should be censored rather then just blindly having people having an un-watched master web list sitting on their hard drive. An old program Peer guardian used to operate in this manner. People can naturally update the peer list or exclude types of lists.

For example this could be good for the anti-pedophile people as they can mark a source or content as having pedophile content. Wikipedia already has a system similar to this. Biggest problem is people abusing the system. Kind of like how reddit operates. Anyone can post news or comments but if the community does not like a contributor, enough negative comments can stop a contributor from posting or spamming. But this can be abused too. Large groups of people can gain up on other individual and in a way offend someone's freedom of speech. Youtube works nicely because it monitors the community for falsely reporting something. the people reporting can be punished for falsely reporting someones content. I think the community can create their own list. Things that could be considered child safe and updated by anyone or any trusted community group. These master web List can be based on local or global community standards and do not need the intervention of the developers or admins to edit or monitor these master lists. List can be added to the local school servers for children to browse content deemed worthy by the local community and the school board. It is impossible for anyone to monitor the web but people can update global or local lists in an evolving way.

Any content distributor and contributor can be connected to this network anonymously or publicly. Anyone can make a new ID or many user IDs depending on preference. Early contributors will have a lower number IDs and younger contributors will have a higher number ids. This ID system is static and does not change unless a user wishes to stop using his or her ID or delete it from there personal system. Names and information about a user can be changed or modified but not the number or hash value. This ID information can be stored on a Master list or be held private. But once a person publishes his ID publicly there is no going back. Even if information is updated from an ID system, old information can be stored on a server or a persons computer. This is an example of a natural boundary and can be used for good or bad but non the less it has its advantages using this ID system. One of the thing that makes sites such as twitter, WOW and Facebook so valuable or at least perceive value is the idea of rarity. So putting value on acting in good faith with the community or value of trusted ethics. People could be hailed on the basis of their ability to police the net and based on the level of positive contributions. Like the idea of people having the ability to store a hash like a bitcoin. Its basically impossible to crack a bitcoin hence why its so valuable not to mention its rarity. in other words bitcoins success is based on the idea of security by annonimity or selling anonymity. People can buy and sell goods digitally with bitcoins without others tracking their spending habits. People have identities stored in a digital device or box that can be removed and even destroyed if need be. So the system can be sort of a living security system so to speak. Rather then relying on admins or opinions of netizens, your identity is based on collective community responses. in other words you can destroy your identity but it does not destroy your legacy on the Internet. This can be a good and bad thing but this is no different then the current Internet and no matter who we are we all must have regard for how we speak and express our selves on the Internet and in the real world. Again this is another example of a natural boundary that can be used in Internet 2.0.

The cool thing about Bit Torrents is any site can host bit torrent directories. So this living network can be updated in the database described above.

People collectively can and should govern the Internet for themselves while collectively they maintain a flow of free ideas and commerce.

Using Tor you can provide an anonymous ID. its similar tech to a key chain. You can generate a public or private key at anytime, i.e, PGP. The cool thing about public and private keys is you can revoke access of a key if lost or stolen only problem its stored on a single network. People should or could store it on as many systems as they like or even a USB key. I am thinking something along the lines of "Generating a new identity." Anyone can have as many new identities as they like with no restrictions other then natural boundaries Internet 2.0 provides.

For example a phone number. You can have thousands of phone numbers directed to the same place with different addresses.

Facebook is doing something similar wherein if you go to a new site you can sign up for that service using a Facebook account. Obviously giving the control of information to a corporation is not ideal in the least. But if everyone had control of their own information much like people have control of a bit coin wallet, you can loose a wallet just like you can loose a phone number or Bitcoin.

The phone number is only addressed to your desired place, same as a Bitcoin. Its inside a wallet that no one else can have access to. Anyone can have as many wallets as they want. One can store an ID on any hard storage device or usb device and the user tells the device it's okay to use this ID and only THAT device can use it. No other device can.

But like Tor you don't Need a new Identity in order to use Tor. In other words You can view information or download information without an ID but you can't contribute to the community if you don't have an ID. This is a natural boundary not a restriction.

Like UUID, bitcoin wallet is much like a persons channel. For example a youtube channel Its an outlet for you to contribute too. Others can have access to that information publicly or can be set private. or unlisted. Google docs drive something like this where you can do those settings. And you can name your "wallet" like you can name a web address. So you can be found buy a name. Name coin uses something to the extent.

P2P web is really uncontrollable unless you destroy satellite and cable. So there is no real way any government can stop p2p. The bigger the network grows the stronger it Gets.

Any person can make there own user filter network that is independent of everything else as long as they have the key elements that make up internet 2.0.

say Someone decide to censer your web search for kid safe browsing, One can download user Ids and p2p web info from a database that will exclude entries from the master p2p user I'd and web list. This this can simpler then relying on algorithms, And trust humans to monitor there own web. Also say a server or contribute is censer more of a master list then you want. One can repopulate an existing list with an old database with out dubbing up on redundant data. Anyone can be a master magnet host ie a place for lists to be updated. A user does not have to upload there list to every existing server or master magnet host. The reason why this has value is a person can favor a master magnet host more then another so if a user feels a host is compromised he can upload his content to another host and one master magnet host can repopulate there directory with another master magnet host and vice versa. So a p2p web page or user I'd can be open for distribution and the user can send his bittorrent file to a user who is a master p2p hoster and add it to the list real time.

P2P torrents can be specified to be uploaded on a device like say an IM or chat video or email addressed to a group or an individual by connecting to his member ID as the person the content is being addressed to. much like PGP keys or the user can create a bit torrent file as public addressed to a Master magnet host and the whole world will see it.

P2P torrent files can be constructed like HTML files on a computer several files make up a web page. IE video, image text code and so on so I was thinking these html files can be a little bit like how mac operates and that is the file can be opened kinda like a mac program. On a Mac OS you can right click on it to view package contents. If for whatever reason anyone can extract parts of that content IE the video, images, code, text... this way the content can expand exponentially and retain its respective locations. I think when structuring these packages it can be allot like adding mods to a game. IE putting files in certain directories such as the "Video" file or "Image" file or "text" file or "attachments" file or "Code" file all with in one package. these packages can also include chat, email, type messages. you can send as many as you like. to the person only thing is both parties must be up and running to accept each others messages and the ONLY location the file is stored is on the other persons computer not a server. So no one has control of the content except for the people sending and receiving it. and once its deleted its gone and deleting it is at the discretion of the host and not a server or internet social network company. So you can receive streams of text or what ever floats your boat.

Another idea is to have a VPN like architecture where one can tunnel existing protocols. Implementing Internet 2.0 protocol in many languages providing isomorphic style API's in many languages. We can then also have our own Locally Distributed DNS and certification. Tunngle is somewhat operating with the same idea with the VPN and they seem to be using P2P idea as well. basically a LAN extension mechanism that allow you to share your LAN IP space with other peoples LANs by tunneling through a VPN. VPN enabled routers do this already but that's hardware.

on the more complex side of things maybe create a protocol and internet 2.0 Identity system that doesn't rely IP. When connecting one lan to another it requires a little bit of peering with IPs that can be generated. Much like changing an IP or mac address in a modem. This might be complicated but it can also have a setup for randomized hashes to keep regenerating. Maybe number values can be run off the Bitcoin mining protocol IDK this could provide an algorithm but this is kinda way beyond this project. This process is called called tunneling, But currently the old internet you still need IP for the base levels. Not to mention Bitcoin is too inefficient, and uses up to much power to produce bitCoin codes.

browsers talk through sockets over IP connections. An IP is required at that level, but if you provided a set of alternative libraries and such then you could replace the whole infrastructure. But its a big task for what gains, you still have to go over IP at the base level. You still have to use TCP/IP as a serial transfer mechanism at the base.

Most of the stuff we need to prototype regarding protocols is already there in C and in JavaScript, from AES, DES, SSL, twofish, etc. To ANS.1 and BER and DER which allow the description of streamers for new protocols. So it is possible to be able to prototype the whole thing in several targets at once i.e. one in C/C++ maybe with Python to do top level logic, and another in JavaScript that will run in a browser, if we can get TCP socket support added to Chrome and FireFox, if it does not exist already.

something that is close to what this p2p project is is already developed and used by the Gamers. here i used it to play games the official company stop supporting them for multilayer www.tunngle.net and this one https://secure.logmein.com/products/hamachi/ with no IP's there is some thing you can make new instead of 127.0.0.1 u can use ABC.ABC.ABC.ABC

u can use the Hamachi Concept just give your own Protocols and encryptions and IP's.

Utorrent and they used something along this lines. http://lifehacker.com/286607/intermediate-guide-to-bittorrent

Randomize and Forward Your Router PortsP

If you're connected to your internet through a router, it's likely that many of your ports are closed, meaning your speeds will be much slower than you'd like. You'll need to let your router know which ones you want open for BitTorrent traffic, which is known as port forwarding. Furthermore, many ISPs or organizations (say, if your neighborhood or leasing company provides your internet) will block popular BitTorrent ports, so you'll want to switch up the port you use every once in a while to keep them guessing.P

SEXPAND Both of these are extremely simple in uTorrent and Transmission. In uTorrent, just to go Options > Preferences and hit the connection tab. Make sure all four boxes under the "Listening Port" section are checked—Enable UPnP Port Mapping, Enable NAT-PMP Port Mapping, Randomize Port Each Start, and Add Windows Firewall Exception.P

SEXPAND In Transmission, open up the app's preferences and head to the Network pane. Check both the Randomize Port on Launch and Automatically Map Port boxes. If you see that the light next to the port's number goes from red to green, then you've successfully opened your current port to BitTorrent traffic, and you should notice a good increase in speed.P

Note that for best results, you'll want to make sure your router is UPnP capable and has UPnP enabled. Most routers are UPnP ready, but if you find that you're having trouble, you may need to look at your router's manual and settings page to enable its use.

Encrypt Your BitTorrent TrafficP

Nowadays, many internet service providers will throttle your bandwidth, prevent you from seeding, or do any other number of annoying things to try and stop you from torrenting. Apart from randomizing your ports, another thing you can do to try and keep them out is encrypt your traffic. It won't necessarily work on every client, but I've found that it nearly doubled my download speeds, so it's certainly worth a shot.P

SEXPAND In uTorrent, go back to the preferences and hit up the BitTorrent section in the left sidebar. Under Protocol Encryption, open the dropdown menu labeled Outgoing. You have three options: Disabled, Enabled, and Forced. Try Enabled for awhile, but if you don't see a good speed increase, using the Forced setting might give you better results. Also note the Allow Incoming Legacy Connections checkbox—If you have a specific torrent that doesn't have a lot of people seeding, you might want to check this box temporarily, though I try to keep it unchecked whenever I can. This ensures that any peers you connect to will use encryption and that your ISP will be less likely to throttle you.P

SEXPAND In Transmission, head over to the Peers pane of the app's preferences and check the Encryption section. Definitely check the "Prefer Encrypted Peers" box, and I'd highly recommend checking the "Ignore Unencrypted Peers" box, though again, if you are noticing that there aren't a lot of peers connecting for a specific torrent, try unchecking it to see if that helps your speeds.

Block Peers that Might be SnoopingP

Even worse than throttling ISPs is the threat of the snooping RIAA, MPAA, or other organizations looking to take you down. Often, they'll post fake torrents of copyrighted material (or just join in on real ones) and track those downloading, leading them right to an unprepared you. While there is no foolproof way to avoid them, a really great simple way is to use a peerblocker. Transmission has this feature built-in, while Windows users will need to use a separate program.P

SEXPAND If you're a Mac user, open up Transmission's preferences and head back to the Peers pane. This time, check the box that reads "Prevent Known Bad Peers from Connecting" down under the Blocklist section. Hit the update button to make sure the list of bad peers is recent, and check the Automatically Update Weekly box to keep it up to date.P

SEXPAND Windows users will need to download previously mentioned PeerBlock (an updated version of the seemingly defunct, previously mentioned Peer Guardian 2) to block the big boys from snooping. The first time you run it, it'll take you through a setup wizard, in which you can decide who you want to blacklist. Check the box for anti-P2P organizations (as well as anything else you may want, though the P2P box is the only important one for BitTorrent) and schedule it to update as often as you want. You might as well update it every day; there's no reason to be stingy with your privacy here. Then, just make sure it runs when you use your BitTorrent client—it'll keep you safe from those bad peers.


standard/current specifications:

collaborated theory of non-standard protocol spec : https://wiki.theory.org/BitTorrentSpecification official specifications (very short) :http://bittorrent.org/beps/bep_0003.html

This package simply re-packages the existing bencoding and bdecoding implemention from the 'official' BitTorrent client as a separate, leight-weight package for re-using them without having the entire BitTorrent software as a dependency.

https://pypi.python.org/pypi/BitTorrent-bencode/5.0.8

sample hexdump of a torrent file: http://www.file-extension-torrent.com/

Torrent files internally use "Bencode format", it is a metadata class container. Bencoding serves similar purposes as data languages like JSON and YAML, allowing complex yet loosely structured data to be stored in a platform independent way.

BEncoded files can contain binary data, there is no size limit to what ive seen....

It supports four different types of values:

byte strings, integers, lists, and dictionaries (associative arrays).

Strings are length-prefixed base ten followed by a colon and the string. 
For example 4:spam corresponds to 'spam'.
Integers are represented by an 'i' followed by the number in base 10 followed by an 'e'. 
For example i3e corresponds to 3 and i-3e corresponds to -3. 
	Integers have no size limitation. i-0e is invalid. All encodings with a leading zero, such as i03e, are invalid, other than i0e, which of course corresponds to 0.
Lists are encoded as an 'l' followed by their elements (also bencoded) followed by an 'e'. 
For example l4:spam4:eggse corresponds to ['spam', 'eggs'].
Dictionaries are encoded as a 'd' followed by a list of alternating keys and their corresponding values followed by an 'e'. 
For example, d3:cow3:moo4:spam4:eggse corresponds to {'cow': 'moo', 'spam': 'eggs'} and d4:spaml1:a1:bee corresponds to {'spam': ['a', 'b']}. 
Keys must be strings and appear in sorted order (sorted as raw strings, not alphanumerics).

----- specficaton standard file,

Metainfo files (also known as .torrent files) are bencoded dictionaries with the following keys:

announce The URL of the tracker. info This maps to a dictionary, with keys described below.

All strings in a .torrent file that contains text must be UTF-8 encoded. info dictionary

The name key maps to a UTF-8 encoded string which is the suggested name to save the file (or directory) as. It is purely advisory.

piece length maps to the number of bytes in each piece the file is split into. For the purposes of transfer, files are split into fixed-size pieces which are all the same length except for possibly the last one which may be truncated. piece length is almost always a power of two, most commonly 2 18 = 256 K (BitTorrent prior to version 3.2 uses 2 20 = 1 M as default).

pieces maps to a string whose length is a multiple of 20. It is to be subdivided into strings of length 20, each of which is the SHA1 hash of the piece at the corresponding index.

There is also a key length or a key files, but not both or neither. If length is present then the download represents a single file, otherwise it represents a set of files which go in a directory structure.

In the single file case, length maps to the length of the file in bytes.

For the purposes of the other keys, the multi-file case is treated as only having a single file by concatenating the files in the order they appear in the files list. The files list is the value files maps to, and is a list of dictionaries containing the follow

Source: http://pastebin.com/3Ni8ntXR

More reading:

An Efficient Encryption Algorithm for P2P Networks Robust Against Man-in-the-Middle http://www.academia.edu/2127798/An_Efficient_Encryption_Algorithm_for_P2P_Networks_Robust_Against_Man-in-the-Middle_Adversary_International_Journal_of_Computer_Science_Issues_Vol_9_6_pp._97-102_2012

Parity Forwarding for Multiple-Relay Networks http://arxiv.org/pdf/0711.2712.pdf

Is P2P Encryption Secure? That Depends... http://www.technewsworld.com/story/71963.html

BitTorrent http://www.bittorrent.org/

BitTorrent Protocol http://www.bittorrent.org/beps/bep_0003.html

SCM Repositories - bittorrent 2005 http://bittorrent.cvs.sourceforge.net/viewvc/bittorrent/BitTorrent/

Web API http://www.bittorrent.com/community/developers/webapi

Chrome extensions support TCP & UDP Sockets http://blog.alexmaccaw.com/chrome-tcp-udp

Clone this wiki locally