blob: c0a2bb7e8fc74d2114d62ccf0f6ca52531dd03ce [file] [log] [blame] [view]
ChronoChat
==========
ChronoChat is a multiparty chat application that demostrates our synchronization primitive that we call ChronoSync.
Note that after you click to close ChronoChat, it will keep running on your system tray. To restore it to normal size window, you have to click on the system tray icon (normally on the upper right corner of your screen). Clicking on the dock won't work for now and is still on the to-do list (because I'm using qt for gui, not the native Cocoa framework).
## Known Issues
---------------
1. When you switch to a new room, you'll temporarily see yourself in two nodes for a minute or so. It won't affect others, just yourself. Hopefully it's not so disturbing.
2. Sometimes you may not get the most up-to-date chat history.
## For those who want (or is forced to) compile from source code
-----------------------------------------------------------------
### Compilation steps for OSX
1. Install MacPorts, if not yet installed (http://www.macports.org/), configure [NDN ports repository](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-macports-repository-on-osx) and install NFD if you don't have it yet.
sudo port install nfd
sudo nfd-start
2. Install ChronoChat dependencies
sudo port install pkgconfig protobuf-cpp boost qt4-mac
3. Fetch source code with submodules
git clone --recursive git://github.com/named-data/ChronoChat
If you already cloned repository, you can update submodules this way:
git submodule update --init
4. Configure and install ChronoSync
cd ChronoChat/ChronoSync
./waf configure
./waf
sudo ./waf install
5. Configure and build ChronoChat
cd ..
PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig ./waf configure
./waf
Congratulations! build/ChronoChat.app is ready to use (on a Mac).
### Compilation steps for Ubuntu 18.04, 20.04
1. Configure [NDN PPA repository](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-ppa-repository-on-ubuntu-linux) and install NFD if you don't have it yet.
sudo apt-get install nfd
2. Install ChronoChat dependencies
sudo apt-get install libprotobuf-dev protobuf-compiler libevent-dev libcrypto++-dev
sudo apt-get install libboost-all-dev
sudo apt-get install qt5-default
3. Fetch source code with submodules
git clone --recursive git://github.com/named-data/ChronoChat
If you already cloned repository, you can update submodules this way:
git submodule update --init
4. Configure and install ChronoSync
cd ChronoChat/ChronoSync
./waf configure
./waf
sudo ./waf install
sudo ldconfig
5. Configure and build ChronoChat
cd ..
./waf configure
./waf
Congratulations! build/ChronoChat is ready to use. Do not forget to start NFD and configure FIB before using ChronoChat.
For ease of debugging, you can generate trusted identities in your local TPM using `debug-tools/create-cert`.