Initial network solution using RabbitMQ as message protocol.
You can test the different features of the network using the client_basic.py python application.
- Type "python3 client_basic.py" in a command line where the file is present
- Select the message type you want to test, the node to connect to and then click "Connect"
- For the Chat feature, click "Send msg", to send a broadcast message
- Alternatively fill the AnuuChat recipient field with the unique identifier of another client to send an encrypted private message
- For PoH, click send msg and wait for a confirmation message
- For Data Storage, select a file to store in the network, click connect and then "Send msg"
- To retrieve a file, fill in with a hash that has been stored and clicking "Send msg" will retrieve the file with the corresponding hash.
- Click "Disconnect" and then "QUIT"
You can stress test the network using the client_stresstest.py python application.
- Type "Python3 client_stresstest.py" in a command line where the file is present
- Select one node
- Click "Connect"
- Choose the number of messages per second to send (1 to 100).
- Select CHAT or PoH depending on what to test
- Click "Send msg", it will start continuously sending messages
- Check on the command window that messages are correctly received back.
- Then click "Stop Sending"
- Click "Disconnect"
- Click "QUIT"
To launch a node on a debian 10 or 11 machine:
- Copy the files from Github in the /home directory
- In /home directory, type "chmod +x firstInstall.sh"
- Type "./firstInstall.sh LX CHAT NET_SERV POH DATA_STOR" to launch the installation process and the automatic launch.
LX should be L1, L2 or L3 depending on the network layer you want to join.
CHAT NET_SRV POH and DATA_STOR can be used to optionnally set which services the node will offer (1 to offer, 0 otherwise).
For example, "./firstInstall.sh L3 1 0 0 0" will install a L3 node with only the chat service running.
You can check the python output log by typing "tail -f logs/log_SERVICENAME.log", CTRL-C will end the output reading.
You can check the rabbitmq output by typing "tail -f /var/log/rabbitmq/at-node@--IPADDRESS--.log"
Start/Stop Python:
- To stop all python services: "./stop_node.sh"
- To restart all python services: "./start_node.sh"
To debug RabbitMQ (self-explanatory):
- rabbitmqctl status
- rabbitmqctl stop_app
- rabbitmqctl reset
- rabbitmqctl start_app
If issue is worse then stopping the service may be needed:
- service rabbitmq-server stop
- service rabbitmq-server start
A file with usage examples is provided.
The changelog is visible in releases.