Deploy¶
Файловая структура:
app/.jar - приложение
config/config.yaml - настройки узла
config/keys/.public.unikey - публичные ключи узлов сети
config/nodes/.yaml - данные узлов сети
config/nodes/.private.unikey - секретный ключ данной ноды
пример первого узла сети test из четырех узлов
config/keys/ node1.public.unikey node2.public.unikey node3.public.unikey node4.public.unikey config/nodes/ node1.yaml node2.yaml node3.yaml node4.yaml tmp/ node-1-test.example.com.private.unikey
пример настроек в yaml¶
http_client_port: 2052 http_client_listen: - 127.0.0.1 http_server_port: 2082 udp_server_port: 2700 database: jdbc:postgresql://localhost:5432/universa_node?user=universa&password=secret node_number: 1 public_host: node-1-test.example.com node_name: node-1-test.example.com ip: - 192.168.0.1
http_client_port - порт http клиента, рекомендуется использовать за сервером nginx
8080 для http, 8443 для https
server {
listen 8080;
listen [::]:8080;
server_name <SERVER_NAME>;
client_max_body_size 10M;
location / {
include cors.conf;
include proxy_params;
proxy_redirect off;
proxy_pass http://localhost:2052;
proxy_cache unode;
}
}
server {
server_tokens off;
listen 8443 ssl http2 default_server;
listen [::]:8443 ssl http2 default_server;
include ssl.conf; # https key, cert, etc
server_name <SERVER_NAME>;
client_max_body_size 10M;
keepalive_timeout 10;
charset utf-8;
location / {
include cors.conf;
include proxy_params;
proxy_redirect off;
proxy_pass http://localhost:2052;
}
}
database: JDBC url доступа к БД, используется PostgreSQL 10
public_host: имя домена или IP адрес для доступа снаружи
node_name: уникальный идентификатор узла
ip: массив IP адресов узла, от public_host отличается тем, что это может быть локальная сеть 192.168 и тп
запуск¶
java -jar <путь к app>uninode.jar -c <Путь к корню проекта>
java -jar /home/deploy/uninode/app/uninode.jar -c /home/deploy/uninode
или относительный, например от текущей папки /home/deploy/uninode/
java -jar app/uninode.jar -c ~/uninode
дистрибутив¶
Для добавления узлов необходимо сгенерировать ключи и настроить конфигурационные файлы.
Для генерации ключа
uniclient -g node-1-test.example.com
На каждом узле в папке uninode/config/keys должны находиться публичные ключи всех узлов сети, имя файла должно соответствовать имени node_name из конфигурации ноды, например:
- node-1-test.example.com.public.unikey
- node-2-test.example.com.public.unikey
- node-3-test.example.com.public.unikey
- node-4-test.example.com.public.unikey
В папке uninode/config/nodes должны быть настройки в yaml, имя файла должно соответствовать имени n*ode_name* из конфигурации ноды, например:
node-1-test.example.com.yaml
node-2-test.example.com.yaml
node-3-test.example.com.yaml
node-4-test.example.com.yaml
Настройка самого самого узла находится в uninode/config/config.yaml - этот файл идентичен yaml файлу из uninode/config/nodes для данного узла
uniclient - для генерации ключа¶
https://github.com/UniversaBlockchain/universa
так же в приложении