Установка, настройка и запуск¶
В этом разделе рассматриваются вопросы установки, настройки и запуска .
Конфигурация¶
При установке в директории, в которой был запущен бинарник(если только не указан флаг 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 - компонента, отвечающего за доставку уведомлений.
- URL - URL запущенного сервера centrifugo(https://github.com/centrifugal/centrifugo).
- Secret - Секретная строка 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 минут.