Установка, настройка и запуск

В этом разделе рассматриваются вопросы установки, настройки и запуска .

Конфигурация

При установке в директории, в которой был запущен бинарник(если только не указан флаг workDir), будет создан файл config.toml, который используется для управление конфигурацией ноды.

Пример:

LogLevel = "ERROR"
LogFileName = ""
InstallType = "PRIVATE_NET"
NodeStateID = "*"
TestMode = false
StartDaemons = ""
KeyID = -3785392309674179665
EcosystemID = 0
BadBlocks = ""
FirstLoadBlockchainURL = ""
FirstLoadBlockchain = ""
MaxPageGenerationTime = 0
WorkDir = "files"
PrivateDir = "files"
RunningMode = "privateBlockchain"

[TCPServer]
  Host = "127.0.0.1"
  Port = 7078

[HTTP]
  Host = "127.0.0.1"
  Port = 7079

[DB]
  Name = "egaas"
  Host = "localhost"
  Port = 5432
  User = "egaas"
  Password = "egaas"

[StatsD]
  Name = "apla"
  Host = "127.0.0.1"
  Port = 8125

[Centrifugo]
  Secret = ""
  URL = ""

[Autoupdate]
  ServerAddress = "http://127.0.0.1:12345"
  PublicKeyPath = "update.pub"

[BanKey]
  BanTime = 15
  BadTx = 3
  BadTime = 5
  • LogLevel - Используемый уровень логгирования. Значения - одно из «DEBUG», «INFO», «WARN», «ERROR». В случае некорректного значения будет выставлен логлевел INFO.
  • LogFileName - Имя файла, куда будет писаться лог. В случае пустого значения - лог пишеться в stderr.
  • InstallType - тип установки. Сейчас есть только одно значение этого параметра - «PRIVATE_NET».
  • NodeStateID - список id экосистем, относящихся к данной ноде. Допустимые значения - «*», «Список айдишников через запятую».
  • TestMode - если выставлен - вместо параметра sysparam.GetRemoteHosts() в демоне Confirmations используется localhost.
  • StartDaemons - какие демоны запускать. Допустимые значения «» - запускать все демоны, «null» - не запускать ни одного демона, «Список демонов через запятую».Имена демонов - BlocksCollection, BlockGenerator, Disseminator, QueueParserTx, QueueParserBlocks, Confirmations, Notificator.
  • KeyID - адрес основного кошелька ноды.
  • MaxPageGenerationTime - Максимальное время генерации страницы в миллисекундах.
  • EcosystemID - ID основной экосистемы ноды.
  • BadBlocks - список ID некорректных блоков.
  • FirstLoadBlockchain - тип первоначальной загрузки блокчейна.
  • FirstLoadBlockchainURL - с какого URL первоначально скачивать блокчейн.
  • WorkDir - рабочая директория, где искать файлы первого блока, конфига, pidfile, роллбека.
  • PrivateDir - директория, где хранятся файлы ключей. NodePrivateKey, NodePublicKey, PrivateKey, PublicKey, и KeyID.
  • RunningMode - режим запуска ноды, допустимые значения: OBS, OBSMaster, PrivateBlockchain, PublicBlockchain.

TCPServer

Настройки TCPServer - компонента отвечающего за сетевое взаимодействие между нодами.

  • Host - хост, на котором работает TCPServer.
  • Port - порт, на котором работает TCPServer.

HTTPServer

Настройки HTTPServer, компонента, который предоставляет REST API.

  • Host - хост, на котором работает HTTPServer.
  • Port - порт, на котором работает HTTPServer.

DB

Настройки БД, в данном случае PostgreSQL.

  • Name - имя базы данных , к которой производится подключение.
  • Host - хост базы данных, к которой производится подключение.
  • Port - порт базы данных, к которой производится подключение.
  • User - имя пользователя БД.
  • Password - пароль пользователя БД.

StatsD

Настройки StatsD - сборщика метрик работы ноды.

  • Name - имя, с которого будет начинаться иерархия счетчиков метрик.
  • Host - хост для подключения к StatsD.
  • Port - порт для подключения к StatsD.

Centrifugo

Настройки Centrifugo - компонента, отвечающего за доставку уведомлений.

BanKey

Настройки бана ключей, которые отправляют плохие транзакции. Ключ заносится в бан на время BanTime (в минутах), если от ключа в течении времени BadTime ( в минутах) пришло BadTx плохих транзакций.

  • BanTime - время бана ключа в минутах. По умолчанию, 15 минут.
  • BadTx - количество плохих транзакций за время BadTime, после которых ключ попадает в бан. По умолчанию, равно 3.
  • BadTime - период в минутах, за который отслеживаются плохие транзакции. По умолчанию, 5 минут.

Флаги

  • workDir - указать рабочую директорию.
  • centrifugoSecret - секретный ключ для centrifugo.
  • centrifugoUrl - url для centrifugo, в формате host:port.
  • checkReadAccess - Проверять ли поля доступа к колонкам таблиц на чтение. Используется только для OBS.
  • configPath - путь к .toml конфигу ноды.
  • dbHost - хост БД. По умолчанию 127.0.0.1
  • dbName - имя БД. По умолчанию apla.
  • dbPassword - пароль к БД.
  • dbPort - порт БД. По умолчанию 5432.
  • dbUser - под каким бользователем соединятся с БД.
  • endBlockId - На каком блоке blockCollection прекращает работу.
  • firstBlockHost - Хост, который будет прописан в первом блоке при его генерации. По умолчанию 127.0.0.1.
  • firstBlockNodePublicKey - Какой публичный ключ ноды будет прописан в первом блоке.
  • firstBlockPath - Где брать первый блок.
  • firstBlockPublicKey - Какой публичный ключ будет прописан в первом блоке когда он будет сгенерен.
  • httpHost - хост, на котором запущен http - сервер. По умолчанию 127.0.0.1.
  • httpPort - порт, на котором запущен http сервер. По умолчанию 7079.
  • generateFirstBlock - сгенерить связку ключей(приватный/публичный ключ пользователя/ноды) и затем первый блок с этими ключами, если это не переопределено во флагах firstBlock*.
  • initConfig - сохранить конфиг из флагов.
  • initDatabase - инициализировать подключение к БД.
  • keyID - указать свой KeyID для работы.
  • logFile - фаил для логгирования.
  • logLevel - уровень детализации логирования. Один из:ERROR,WARN,INFO,DEBUG. По умолчанию ERROR.
  • logSQL - логировать SQL запросы, которые генерит ORM. Используется для отладки.
  • logStackTrace - отображать путь, по которому была вызвана данная строка в виде N названии функции. Используется для отладки.
  • noStart - не стартовать демон, но выполнить все что указано в флагах. Используется когда демон запускается как тулза.
  • privateBlockchain - приватный блокчейн или нет. Влияет на списание комиссии, в случае приватного блокчейна она не списывается.
  • privateDir - директория для публичных/приватных ключей.
  • rollbackToBlockId - указать Id блока к которому хотелось бы откатиться. Используется для ручного отката блокчейна к нужному блоку.
  • startBlockId - с какого блока BlockCollection собирает блоки.
  • tcpHost - хост TcpServer. По умолчанию 127.0.0.1.
  • tcpPort - порт TcpServer. По умолчанию 7078.
  • testRollBack - запустить специальный набор демонов(BlockCollection, Confirmations) для тестирования роллбеков.
  • tls - Принимать HTTP запросы только по HTTPS. Указывает директорию где лежит .well-known и ключи.
  • updateInterval - интервал, с которым проверяется наличие обновлениий. По умолчанию - 1 час.
  • updatePublicKeyPath - публичный ключ для сервера автообновлений. По умолчанию «update.pub».
  • updateServer - ардес сервера для автоапдейтов. По умолчанию http://127.0.0.1:12345.
  • runMode - режим запуска ноды: OBS, OBSMaster, PrivateBlockchain, PublicBlockchain
  • banTime - время бана ключа в минутах. По умолчанию, 15 минут.
  • badTx - количество плохих транзакций за время BadTime, после которых ключ попадает в бан. По умолчанию, равно 3.
  • badTime - период в минутах, за который отслеживаются плохие транзакции. По умолчанию, 5 минут.