Faceter Fog Client is a software designed to build decentralized computing network mainly focused on processing video surveillance streams. It utilizes the ERC-20 FACE tokens, a payment mechanism for both owners of cameras and node operators (miners).
- Linux OS compatible with Debian 9
- AMD64 architecture required
- CPU with AVX2 instructions support (Intel the fourth generation and newer or Amd Excavator generation and newer)
- Nvidia 10XX graphics card with 4GB+ RAM
- CUDA 10+
- RAM 12GB+
- Storage 18 GB Hard drive space
- Linux kernel version 4.9+
- Docker CE for Linux 18.06.0+
- Python 3.6.7+
Identification of your video card
The series/codename of any NVIDIA graphics processing unit (GPU) can usually be identified by using the lspci command.
For example:
lspci -nn | egrep -i "3d|display|vga"
Find drivers for your graphics card on the following page Nvidia
Install appropriate drivers. Note that this will require ~600Mb of free disk space.
For example:
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/430.34/NVIDIA-Linux-x86_64-430.34.run
chmod 755 NVIDIA-Linux-x86_64-430.34.run
sudo apt install gcc
sudo apt install make
sudo ./NVIDIA-Linux-x86_64-430.34.run
If during NVIDIA drivers installation you have the following error:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution's documentation for details on how to correctly disable the Nouveau kernel driver.
Then, before proceeding to installation of NVIDIA drivers on Ubuntu, you must disable the Nouveau kernel driver. To disable the default Nouveau NVIDIA driver, run the command:
echo "blacklist nouveau"|sudo tee -a /etc/modprobe.d/blacklist.conf
Regenerate the kernel initramfs:
sudo update-initramfs -u
And reboot your system:
sudo reboot
Now you can continue to install the NVIDIA drivers on Ubuntu.
Probably you will need to install linux-headers.
After installing the driver, you have to do
sudo reboot
In order to make sure that the driver is successfully installed, run
sudo nvidia-smi
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
If you would like to use Docker as a non-root user, you should now consider adding your user to the “docker” group with something like:
sudo usermod -aG docker your-user-name
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
sudo apt install nvidia-docker2
If you get an error
ERROR: for recognition-scorer Cannot create a container for service recognition-scorer: Unknown runtime specified nvidia
Check the file /etc/docker/daemon.json if it does not contain nvidia runtime lines add them as in the example below.
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
Execute:
sudo pkill -SIGHUP dockerd
And restart fogagent:
Sudo systemctl restart fogagent
Try to fix this with (learn more at StackOverflow)
sudo systemctl daemon-reload
sudo systemctl restart docker
To start, you need to register as a miner
Follow the next steps to installing Fog Agent for Faceter Fog Client as a deb-package.
- Installing the Faceter public GPG key.
wget -O - 'https://repo.faceter.cam/gpg.key' | sudo apt-key add -
- Add repository.
sudo bash -c 'echo "deb https://repo.faceter.cam/apt/ debian main" > /etc/apt/sources.list.d/faceter.list'
- Update the Apt repository cache.
sudo apt update
- Install fogagent.
sudo apt install fogagent
During the installation process, you must select mode of this node, depending on the type of account.
If you have selected the SelfHostedPowerMode mode, you can turn on the streaming mode on the video in this case, the video from the camera and some information about the recognition will be available from your host.
If Streaming mode is enabled, describe the url by which port 4242 on this host will be accessible from the WAN.
During installation, you must specify your foggerid
or cameraownerid
if you node work in self hosted power mode
and nodeid
and secretkey
Fog Agent will be installed as a systemd service.
Status can be observed via command:
sudo systemctl status fogagent
Fog Agent uses common logging subsystem journalctl:
sudo journalctl -u fogagent
Also, Fog Agent can be launched in the host operating system with the following parameters: --foggerid
and --nodeid
and --secretkey
. In this case, the parameters from the configuration will be overridden.
fogagent --foggerid <your-fogger-id> --nodeid <your-node-id> --secretkey <your-secretkey>
If the Fog Agent is running in self hosted power mode, you must specify cameraownerid
instead of the foggerid
parameter.
fogagent --cameraownerid <your-camera-owner-id> --nodeid <your-node-id> --secretkey <your-secretkey>
To change the configuration, you can use
sudo dpkg-reconfigure fogagent
To start the fogagent, the parameters foggerid
and secretkey
must be obtained in the miner's account.
Your foggerid
is located in the upper right corner.
Next, to install the secretkey, click on the Set Secret Key button in the pop-up message at the top of the screen.
You will go to the secret key section displaying the current secret key status.
Click on the Generate button to create a secretkey
and save it to configure the fogagent.
secretkey
is displayed once, and will not be displayed on subsequent visits to this section. If you lose your secretkey, you can always generate a new secretkey
similar to the initial installation.
Choose nodeid
for future identification of this machine. It should be unique alphanumeric value without spaces.
If you run fogagent in self hosted power mode. The cameraownerid
and secretkey
parameters are located in the cameraowner's account.
Your cameraownerid
is located in the upper right corner.
Next, to install the secretkey, click on settings button at the top of the screen.
And go to the Secret Key Section.
Next, generate and remember the secret key as described above.
Since version 0.7.0 Fog Agent as part of the Faceter Fog Client is able to download and install all required parts of the Client on its own.
Since version 0.10.0 Secret key is required.
All Fog Agent's actions should be written into the terminal (non-service running mode) and to log files, located at
/var/log/fogagent/yyyyMMdd.log
After the first time installation, Fog Agent checks several conditions on the local machine:
- existing version of NVIDIA graphic driver
- existing version of NVIDIA CUDA
- existing version of Docker service
When environment conditions will be passed, Fog Agent will check Faceter Fog Client docker images existing, their tags then download and install the newest if needed.
Fog Agent will collect the information about your node and register it in your account.
After successful registration you will be able to see and manage the node from your account:
Set up the price for 1 minute of video processing to make your node available to the market
That is it! Now you can connect your cameras to Faceter Cloud and try Faceter Fog as a client.
IMPORTANT NOTICE: This is one of the very first publicly available builds of Faceter Fog. If you find a bug or another issue, please post it here on Github with a full description of your case.