µPCN is an implementation of the Bundle Protocol in C. This guide describes how to download, compile and install µPCN on Linux.
NOTE This guide use the folder ~ as working directory but any other location is fine.
All console prompts will start by # if root access is required and $ if not.
Start by downloading the last release on https://www.upcn.eu/. (In our case it's version 0.8.0) and extract it in a directory
~$ wget "https://upcn.eu/releases/upcn-0.8.0.tar.gz"
~$ tar -xvzf "upcn-0.8.0.tar.gz"µPCN requires gcc, make and binutils to compile (as defined in README.md).
On Debian you can use the following command to install it
~# apt install gcc binutils make
µPCN requires the library Tinycbor from Intel in version v0.5.4.
Code of Tinycbor must be provided in the directory external/tinycbor.
Using Git, the following commands download the right version of tinycbor.
~$ cd external/tinycbor/
~/external/tinycbor$ git clone "https://github.com/intel/tinycbor.git" --depth 1 .
~/external/tinycbor$ git fetch origin tags/v0.5.4
~/external/tinycbor$ git checkout FETCH_HEADGet back in the main directory and execute the make posix command to build µPCN
~$ make posixResulting binary of µPCN is in build/posix folder.
~$ ./build/posix/upcn --helpTo help the creation of µPCN compatible apps, a python library is provided. Ensure you have installed Python 3 and pip. And execute the following commands to install the required dependancies and install the library globally on your system
~$ cd pyupcn
~/pyupcn# pip install -r requirements.txt
~/pyupcn# python3 install.pyStart a DTN node with an eid defined as dtn://ada.dtn with the following command.
~$ ./build/posix/upcn -e "dtn://ada.dtn"It will start the µPCN deamon with default configuration.
While node is running, start a message listener on dtn://ada.dtn/inbox with the following commands.
~/tools/aap$ python3 aap_receive.py -a inboxYou will see this listener registration in the Node logs.
And now, in a third terminal, send a simple message using aap_send.py
~/tools/aap$ python3 aap_send.py dtn://ada.dtn/inbox "Hello world !"Message will be sended through the Node to receiver connected. You can see the message in the receiver log and the bundle transmission in the Node log.