projects root

Project CrxCluster

2 years ago, i've found idea with PHP and socket, the first version was builded with sequential network driver,
i've rewrited driver and now it use : fork, php5, stream , and shared memory.

I 'm working now on p2p implementation of the Dx Cluster protocol here is my vmware plateforme using during
the devellopement ;) (3 linux server on same windows machine)

Summary

- The web interface

- Telnet access and command

- P2p Developpement

- Dx Cluster Command implementation

- Install your node !

 

 

 

The Dx Cluster interface - TOP -

Now it's possible to download complete source of the Dx cluster,
if you want to install a node at home you need :

- A Dsl connection ;)

- Linux computer running on Debian or Centos

- A XAMP package (lampp apache/php5)

- Port 23000/80 TCP open to your server

The webinterface look like that



With this interface you can send spot, and if you're members of administration group you can
manage the server, the interface is very simple :


Here is the Dx Telnet server administration :

Of course you can show connected users to your node :

 

 

 

Telnet access and command - TOP -

Clients can connect to your server via a simple telnet command line with windows telnet or Putty ;)
You can also administrate it via cmd line :

Admin user is allow to check connection with "friends node" :

Of course the "ping" command is available to check node connection :

This command is not a simple icmp ping because it use a message encoded with the same
protocol using for the Dx spot so it's used Node key to encrypt message.

So with this command you're sure that your key is know by the node. And your node can speak
with distant node ;)


P2p Developpement - TOP -

The main goal was to use p2p for nodes communication
The idea was simple but during the implementation i've some problems/ideas :

User 1 connected to dx node N3 send information

(2) This information is send to friends nodes N2 and N1
(3) N1 Broadcast this info to connected client (3)
(4) N1 relay the information to N2
(5) N2 received info from N1 so it didn"t relay to N1 again to only to N3

Finnaly N3 didn't replay info because it's already in the database !



It's difficult to see what the benefit to this relay but when a link is broken,
imagine with dx node N1 and N3 .... N2 'll relay information ...

 

Replay or not replay ??

The main problem was the relay for the moment client telnet crashed when the
node replay the contact with the other node ... so i search solution ..
(it 'll be probably available in next version ...)

For the moment i use this shema it's powerfull and it work at 100% :

- A user connected on node N3 send information,
it relay to node N1 and N2, N1 and N2 didn't replay information.

When nodes exchange data, the node who received data didn't replay it if it already
in the node memory (limit infinit loop).

 

 

Dx Cluster Command implementation - TOP -

Commands client :

User :

Desc Command
Close session EXIT,QUIT,BYE
Show help HELP
Show current user callsign SHOW CURRENT CALLSIGN
Show all callsigns SHOW CALLSIGNS
Set current callsign SET CALLSIGN [name]
   
Show connected user to current node SHOW/USERS, SH/USERS or SHOW/CLIENTS or SH/CLIENTS
   
   
Insert spot DX [frequency] [callsign] [comment]
Show spots SHOW/DX, SH/DX
Show spots with band/mode filters : SHOW/DX/10 : Display last 10 spots
SHOW/DX/10 : 10 Display last 10 spots on 10m
SHOW/DX 10 : Display last spots on 10m
SHOW/DX/10 USB : Display only 10 spots on USB MODE

Admin :

Desc Command
SHOW NODES Display all nodes
DELETE NODE [node_sid]  
PING [node_name] Try to contact node
   
_halt server Turn of node server (reboot command is not implemented yet ;)
_sh clients Display clients with "verbose" info
_kill [client_pid] Disconnected and kill client process
_talk [client_pid] Talk with a client
   

 

 




 

 

 

© Bastien Barbe 2008