Sign in to follow this  
Followers 0
twitchyliquid64

Firenet - P2P Web Messenger

6 posts in this topic

#1 ·  Posted (edited)

This is a Peer-to-Peer program Ive been developing over the last several months.

What makes this program different from the several other AutoIT chat programs out there is that it is a large world network, meaning you can communicate with not only the peers you are connected to, but also people who your not. This is achieved by 'hopping' messages from You -> Peer - > Peer -> Destination, or something like that. Your message can hop a maximun of 6 times, which means you can chat with up to 1838317255040 different peers (if there were that many peers online at that moment.)

Aim: To provide simple, quick chat and social interaction(still workin on that) over the Internet and LAN, using the structure of a P2P network.

It has no servers, and is designed to have no hotspots, thus there are no single points of failure (so DDOS won't work), or specific addresses to block the network.

There are two versions; One to communicate over the internet, and one to communicate over LAN. They are practically the same.

Features:

-Automatically detects the IP's of those who are online and connects to some of them, saving you the trouble of finding and typing in an IP address (Internet version only).

-Automatically Port Forwards relevant Ports to your UPnP Enabled Router (if Applicable)

-Encrypts your Chat transmissions with RSA to protect your messages against the average IT guy.

-Allows you to transfer files over the network.

-Unique identifier numbers are used to identify peers as opposed to IP addresses, making the network more Dynamic and allowing it to work properly with DHCP.

-Routing Information is automatically updated every 40 seconds, to allow the routing protocol of every peer to run efficiently and to allow for an extremely dynamic network.

-The network makes attempts to connect you preferencially to your friends as opposed to strangers, as there is a much greater chance of you communicating with them and thus messages flying around the entire network can be reduced. This creates a more efficient network.

-Messages are routed preferencially through your friends, to help guard against naughty peers which fail to hop messages.

-The 'Access Point' -> Add Service Functionality allows you to connect your node to other systems (which I haven't made yet), such as Hosts, which will allow you to curcumvent any TCP Port blocks.

-The 'Access Point' -> Add Connection Group Functionality allows you to Group and auto-connect to other peers, for convinence sake.

HOW TO USE: (Its long buts its fast and easy)

1. Download and extract.

2. Run the relevant version. If you use vista or above you will have to run as administrator.

3. If your running the internet version you should automatically connect to others on the network. If you don't, then No-one else is running the program and you should either leave it running in the background and wait for another AutoIT scripter to come along, or test it on two machines that have two different IP addresses on the internet.

With the LAN version, you will either have to set up a 'Access Point' -> Add Connection Group to autoconnect you to those in your LAN, or type in one other IP address of another machine running firenet by pressing 'add peer'.

4. So now you should be online and connected to at least one other person/peer. You will know because they will appear in the listview on the top left. If you like, you can change your Node-name AKA ' what others will see in the name column when they look at your node '. Just click settings. FYI: the communications Nickname is what others will see if you initiate a chat session to someone.

5. Now yr gonna need some friends. Right-click on a peer in the top-left listview and click add as friend. Give them a name and they should appear in the listview on the bottom-right.

6. Now you right click on your friends and chat!

Please give me feedback. I really need to make it more user friendly and above all, more robust.

Hypoz.

LINK:

http://www.2shared.com/file/-ez9M4Ej/Firenet_V1.html

Click on the bit down the bottom that says: 'Save file to your PC: click here'

Thanks to Hugoagogo from Australia for the google apps engine tracker idea/code.

Edited by hyperzap

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Share this post


Link to post
Share on other sites



WEll..

it works perfectly both internet and LAN..

I like the looks..

but there are things I think it could be improved:

1) Enter -send. I have to click on send to send messeges.

2) Remaining messeges after send. After clicking on send, the message is stil there making the user having to delete the message in order to type another one.

3) size concerns. I think it's kind of too big... can you make it smaller? like other messengers such as MSN, Yahoo, Skype..etc... most (if not all) are slender and long and simple....

that's all i can think of right now....

other features i might like is perhaps.. letting the user change colours of the messenger?

only if it's possible..

Share this post


Link to post
Share on other sites

i am in a place where i cant really download the files now . will do so when i reach home ... but i have one question. How does it detect the other terminals/users where the app is running . Can the tcp server / client principle be applied in the same way ? In normal circumstances , the clients in tcp have to conect to the socket that the server is listening , manually . Now how is the auto detection of other running terminals done ?

Share this post


Link to post
Share on other sites

There is a http web server indexing ips. when a user connects they get the list. there must always be a centralized starting position on wan. this is referred to the initial connection problem. for YOUR server you should use dynamic dns.


ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Share this post


Link to post
Share on other sites

errrr i aint much sure that i really go the idea of how to implement what u said in a TCP chat room .,.. Any ideas ?

this is a little idea that i thought of :

1. The server starts . The Socket info is sent to some ftp server over the net.

2. The client module is started . It fetches the socket info and then auto connects using that socket .

but this wudnt really be a very fast solution as external web servers are involved.

Can u shed any light on any more ideas ? :)

Share this post


Link to post
Share on other sites

errrr i aint much sure that i really go the idea of how to implement what u said in a TCP chat room .,.. Any ideas ?

this is a little idea that i thought of :

1. The server starts . The Socket info is sent to some ftp server over the net.

2. The client module is started . It fetches the socket info and then auto connects using that socket .

but this wudnt really be a very fast solution as external web servers are involved.

Can u shed any light on any more ideas ? :)

Short of random probing of IP's, there is NO WAY to get other peers IP's without and external centralized server.

I originally tried using FTP, however got many problems as heaps of people started joining the net.

I would recommend building a Google App Engine site to act as the external server. Its very efficient and that is what I use. It only takes a few seconds to get peers and it can handle easily 4000 requests a day.


ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0