Project

General

Profile

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

так же в приложении