Установка и использование платформы

Развертывание платформы в частной сети

Если ваш проект или решение требует независимого блокчейна, вы можете развернуть собственную блокчейн-сеть на базе блокчейн-платформы Конфидент. Обратитесь в службу технической поддержки, и специалисты Web3tech помогут вам сконфигурировать поставку блокчейн-платформы Конфидент под нужды вашего проекта.

Однако если вам потребуется изменить какие-либо параметры или настроить платформу самостоятельно, в данном разделе приведено пошаговое руководство по развертыванию и ручному конфигурированию платформы для работы в частной сети.

Создание аккаунта ноды

Создайте аккаунты для каждой ноды вашей будущей сети.

Аккаунт ноды включает в себя адрес, ключевую пару и сертификат ключа проверки ЭП.

Запрос на сертификат создается с использованием утилиты GeneratePkiKeypair, которая входит в пакет generators. Этот пакет входит в состав блокчейн-платформы Конфидент и поставляется вместе с ней в файле generator-1.9.0.jar. В процессе создания запроса на сертификат генерируется адрес ноды и ключевая пара (ключ проверки ЭП и ключ ЭП ноды).

Важно

Исключена возможность генерации ключевых пар по удаленному подключению к ноде.

Примечание

Для генерации аккаунта ноды необходимо наличие:

Ключи ЭП блокчейн-платформы Конфидент хранятся в ключевом контейнере, формат которого определяется входящим в состав платформы СКЗИ «КриптоПро CSP». Подробнее формат ключевого контейнера описан в эксплуатационной документации на СКЗИ «КриптоПро CSP».

Чтобы создать аккаунт ноды, запустите утилиту GeneratePkiKeypair как описано ниже в разделе GeneratePkiKeypair.

Утилита выполняет следующие действия:

  • отображает в командной строке адрес и ключ проверки ЭП ноды;

  • записывает ключ ЭП ноды в ключевой контейнер в хранилище ключей;

    • при создании пары ключей необходимо задать пароль для защиты ключевой пары ноды:

    • при работе на ОС CentOS отобразится диалоговое окно, в котором необходимо задать пароль к контейнеру;

    • при работе на ОС Red Hat Enterprise Linux и Ubuntu пароль запрашивается через консоль;

    В дальнейшем вы можете использовать этот пароль в ручном режиме при каждом старте вашей ноды, либо задать глобальные переменные для запроса пароля при старте системы.

  • выгружает запрос на сертификат в указанную директорию; запрос на сертификат содержит ранее сгенерированный ключ проверки ЭП и информацию, полученную из конфигурационного файла; в дальнейшем этот запрос необходимо самостоятельно отправить в удостоверяющий центр (УЦ) для получения сертификата;

  • выводит лог, в конце которого отображается имя контейнера, в котором хранится ключ ЭП, и алиас (блокчейн адрес) ноды.

После того как вы отправили в УЦ запрос и получили из УЦ сертификат, его необходимо вручную импортировать в контейнер с ключевой парой в хранилище ключей, как описано ниже в разделе Получение и импорт сертификата.

Примечание

Утилита GeneratePkiKeypair также используется для генерации ключей для создания канала связи по протоколу TLS. За один запуск генератор создаёт одну ключевую пару.

Детальное описание утилиты GeneratePkiKeypair:

Удостоверяющий центр

Формирование и управление сертификатами ключей проверки ЭП производится удостоверяющим центром (УЦ). В рамках одной блокчейн-сети используется один УЦ.

Ключи проверки ЭП в виде запросов на сертификат направляются в УЦ. Полученные в УЦ сертификаты (в том числе корневой сертификат УЦ) ключей проверки ЭП помещаются в доверенные хранилища на той же машине, на которой развернута нода.

Действия с ключами фиксируются в журналах, которые ведет администратор.

Установка сертификатов открытых ключей (ключей проверки ЭП) описана ниже в разделе Получение и импорт сертификата.

Получение и импорт сертификата

Чтобы получить сертификат из УЦ, необходимо сначала получить корневой сертификат УЦ. После этого можно отправлять в УЦ запрос на сертификат. Затем необходимо импортировать полученный сертификат.

Корневой сертификат

Для работы с удостоверяющим центром (УЦ) необходимо получить его корневой сертификат и установить этот корневой сертификат на блокчейн-платформу Конфидент. Для этого выполните следующие шаги:

  1. Получите корневой сертификат УЦ доверенным способом.

  2. Поместите корневой сертификат УЦ в хранилище сертификатов CAcerts.

  3. Помимо этого, для создания genesis-блока необходимо добавить корневой сертификат в хранилище доверенных сертификатов JVM, как описано ниже в разделе Подготовка к запуску генератора GenesisBlockGenerator.

Примечание

Корневой сертификат УЦ должен передаваться только доверенным образом, исключающим его подмену в процессе доставки из УЦ на машину, на которой развернута нода.

После этого нода будет считать достоверными сертификаты, подписанные этим УЦ.

Передача запроса на сертификат

Далее необходимо передать запрос на сертификат, полученный в результате работы утилиты GeneratePkiKeypair, в УЦ, и получить из УЦ сертификат. Для этого выполните следующие шаги:

  1. Конвертируйте запрос на сертификат, полученный в результате работы генератора, в формат base64. Ниже приведён пример команды конвертации:

    base64 ./jars/requests/3N5YTeLzpH18qrGRTVdL11DPkRPnM32aNVH.req
    
  2. Отправьте запрос на сертификат в формате base64 в УЦ.

  3. Получите выпущенный УЦ сертификат.

Импорт сертификата

Затем необходимо импортировать сертификат в контейнер с соответствующей парой ключей. Для этого выполните следующие шаги:

  1. Конвертируйте полученный из УЦ сертификат в формат base64.

  2. Импортируйте сертификат в контейнер с соответствующей парой ключей в хранилище ключей. Ниже приведён пример команды импорта:

    /opt/cprocsp/bin/cryptcp -instcert -cont container_name cert.crt
    

В этом примере

container_name – имя контейнера, которое указано в конце лога генератора,

cert.cer – полученный из УЦ файл сертификата.

  1. Помимо этого, необходимо добавить сертификат в секцию node.blockchain.custom.genesis.pki конфигурационного файла ноды для создания genesis-блока как описано ниже в разделе Подготовка к запуску генератора GenesisBlockGenerator.

Настройка платформы для работы в частной сети

Для конфигурации блокчейн-платформы Конфидент используется файл node.conf – конфигурационный файл ноды, определяющий принципы работы ноды и набор опций.

Примечание

Параметры конфигурации ноды можно записать в одном файле либо в нескольких файлах, включая один файл в другой, например:

include required(file("network.conf"))
include required(file("local.conf"))

Таким образом можно вынести в один файл общие для всех нод параметры, а уникальные параметры ноды (например, owner-address) задать в отдельном файле для каждой ноды.

Ниже приведено пошаговое руководство по ручной конфигурации отдельной ноды для работы в частной сети. Если в вашей сети развернуто несколько нод, для каждой из них требуется выполнить аналогичные шаги по конфигурации.

Шаг 1. Общая настройка блокчейн-платформы Конфидент

На этом этапе выполняется настройка режима работы, консенсуса, исполнения смарт-контрактов Docker и майнинга.

Все необходимые для этого параметры располагаются в файле node.conf.

Общая настройка блокчейн-платформы Конфидент описана в следующих разделах:

Шаг 2. Тонкая настройка платформы

На этом этапе выполняется настройка инструментария gRPC и REST API ноды, и его авторизации, настройка канала связи по протоколу TLS и групп доступа к конфиденциальным данным.

Эти настройки могут потребоваться вам в случае изменения предустановленных параметров для конфигурации вашего оборудования или ПО.

Все необходимые параметры также располагаются в файле конфигурации ноды node.conf.

Также для настройки канала связи по протоколу TLS вам потребуется утилита keytool, которая входит в состав Java SDK или JRE.

Пример полного конфигурационного файла для настройки каждой ноды приведен в разделе Примеры конфигурационного файла ноды.

Получение лицензии для работы в частной сети

Для развертывания блокчейн-платформы Конфидент в частной сети вам необходимо получить вид лицензии, соответствующий вашим целям: пробную, коммерческую или некоммерческую.

Лицензия для запуска ноды привязана к ключу владельца ноды. В самой лицензии прописан адрес ноды, для которого лицензия выпущена.

Для обсуждения деталей вашей лицензии свяжитесь с отделом продаж Web3tech по электронной почте: sales@web3tech.ru.

По результатам обсуждения вам будет прислан файл лицензии. Поместите этот файл в папку, путь к которой указан в параметре license-file конфигурационного файла ноды.

Перед развертыванием блокчейн-платформы ознакомьтесь с системными требованиями.

Подписание genesis-блока и запуск сети

После выполнения конфигурации нод вашей сети необходимо создать genesis-блок – первый блок приватного блокчейна, содержащий транзакции, определяющие первоначальный баланс и разрешения ноды.

Genesis-блок подписывается утилитой GenesisBlockGenerator, входящей в пакет generators. Этот пакет входит в состав блокчейн-платформы Конфидент и поставляется вместе с ней.

В рамках PKI в генезис-конфигурацию входят сертификаты пользователей, а также корневые доверенные сертификаты (или их идентификаторы). Эта информация не попадает в транзакции или сам блок; она необходима для функционирования PKI.

Генератор выполняет ряд проверок, которые описаны подробнее в разделе Запуск генератора GenesisBlockGenerator. Затем генератор формирует genesis-блок и подписывает его ключом пользователя, а также вносит изменения в блок genesis секции node.blockchain.custom конфигурационного файла ноды, что также детально описано в разделе Запуск генератора GenesisBlockGenerator.

Подготовка к запуску генератора GenesisBlockGenerator

До создания genesis-блока подготовьте конфигурационный файл ноды:

  • задайте параметру node.crypto.type значение gost;

  • задайте параметру node.crypto.pki.mode одно из следующих значений: on или test;

Примечание

Значение test допустимо только в режиме тестирования блокчейн-платформы Конфидент. Подробнее об этом параметре см. раздел Общая настройка платформы: настройка режима работы.

  • добавьте ключ проверки ЭП, которым будет проверяться подпись genesis-блока (ЭП создается на соответственном ключе ЭП), в секцию network-participants и там же присвойте ему роль permissioner;

Примечание

Ключ ЭП, которым будет подписываться genesis-блок, уже создан генератором GeneratePkiKeypair. Ключ должен находиться локально в хранилище ключей машины, с которой запускается генератор.

  • добавьте в конфигурационный файл ноды идентификаторы корневых доверенных сертификатов – в качестве идентификаторов используются отпечатки (fingerprint) сертификатов; укажите сертификаты участников сети в формате DER, закодированные при помощи Base64 в текст; для этого в разделе node.blockchain.custom.genesis.pki заполните следующие параметры:

    • trusted-root-fingerprints – массив Base64 строк, перечисляющих отпечатки доверенных корневых сертификатов, которые должны находиться в trust-store JVM. Ниже приведен пример получения отпечатка корневого сертификата:

    openssl x509 -inform der -fingerprint -sha1 -in ./certificates/crypto_cert.cer -noout
    SHA1 Fingerprint=CD:32:1B:87:FD:AB:B5:03:82:9F:88:DB:68:D8:93:B5:9A:7C:5D:D3
    

    Полученный отпечаток необходимо сконвертировать в формат Base64.

    • certificates – массив строк в формате Base64, содержащих тела сертификатов в формате DER (бинарной кодировке).

Также необходимо сконфигурировать среду запуска генератора GenesisBlockGenerator:

  • добавьте в хранилище доверенных сертификатов (TrustStore) JVM корневые сертификаты, которые будут использоваться в качестве доверенных при валидации цепочек сертификатов в блокчейн сети.

Например, используйте для этого встроенную в JVM утилиту keytool с параметром keystore. Пример вызова утилиты:

keytool -import -trustcacerts -alias %CERT_ALIAS% -noprompt -storepass 'changeit' -keystore '%<your_path_to_jvm_home_folder>%/Contents/Home/lib/security/cacerts' -file certificates/cert-to-add.cer

Запуск генератора GenesisBlockGenerator

В качестве параметров генератор GenesisBlockGenerator принимает следующие данные:

  • путь до конфигурационного файла ноды, который требуется подписать,

  • алиас (адрес) ключа, которым будет подписываться genesis-блок (адрес, которому вы присвоили роль permissioner).

Пример запуска генератора GenesisBlockGenerator в командной строке:

java -cp "generators-x.x.x.jar::./java-csp-5.0.R2/*" com.wavesenterprise.generator.GeneratorLauncher GenesisBlockGenerator ./node_alone.conf 3N1uZiamcpuTnRASi7L17vM8xhbC292UNgU

Генератор выполняет проверки следующих сущностей и условий:

  • конфигурационный файл ноды,

  • ключи проверки ЭП и роли пользователя,

  • наличие ключевой пары в хранилище ключей,

  • наличие указанных доверенных корневых сертификатов из конфигурационного файла в TrustStore JVM,

  • для каждого указанного промежуточного или пользовательского сертификата (в кодировке Base64) генератор строит цепочку и проверяет её валидность; для этого генератор скачивает все списки отозванных сертификатов (CRL) по URL-адресам точек распространения CRL (CDP), которые находятся в полях extensions/CRL Distribution Points сертификатов; генератор подписывает genesis-блок, если все сертификаты валидны, и не подписывает, если хотя бы один сертификат отозван,

  • для каждого ключа проверки ЭП, указанного в конфигурационном файле, передан соответствующий ему сертификат.

Затем генератор формирует генезис-блок и подписывает его ключом ЭП ноды, а также вносит следующие изменения в блок genesis секции node.blockchain.custom конфигурационного файла ноды:

  • в поле public-key указывает ключ проверки ЭП ноды,

  • в поле signature – подпись,

  • в поле block-timestamp – локальное время в момент подписания,

  • в новое поле crls – массив списков отозванных сертификатов (CRL) в формате Base64, для каждого из которых указан открытый ключ и точка распространения CRL (CDP).

Ниже приведён пример раздела node.blockchain.custom.genesis конфигурационного файла ноды после работы генератора GenesisBlockGenerator:

 genesis {
      pki {
      trusted-root-fingerprints = ["knweHrKzl8vF0RcS4uO77ch2vX4="]
       certificates = [
        "MIIFETCCBL6gAwIBAgITfAAGKtupa5ZvGCAREQABAAYq2zAKBggqhQMHAQEDAjCCAQoxGDAWBgUqhQNkARINMTIzNDU2Nzg5MDEyMzEaMBgGCCqFAwOBAwEB EgwwMDEyMzQ1Njc4OTAxLzAtBgNVBAkMJtGD0LsuINCh0YPRidGR0LLRgdC60LjQuSDQstCw0Lsg0LQuIDE4MQswCQYDVQQGEwJSVTEZMBcGA1UECAwQ0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMSUwIwYDVQQKDBzQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iMTswOQYDVQQDDDLQotC10YHRgtC+0LLRi9C5INCj0KYg0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjAeFw0yMjA3MjcxMzA3MzJaFw0yMjEwMjcxMzE3MzJaMHQxCzAJBgNVBAYTAlJVMQowCAYDVQQIEwFhMQowCAYDVQQHEwFiMRkwFwYDVQQKExBXYXZlcyBFbnRlcnByaXNlMRQwEgYDVQQLEwtJVCBCdXNpbmVzczEcMBoGA1UEAwwTRUxfbm9kZV8wX3Bhc3N3b3JkczBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEAWLt/Pz/y04uJSuIaDD/dcu0xj8wlTF7EA2+ue0RMYEQzgv6mrS1JG5z5DdDnllILS7rTTdscEoTycF2IfaQ5Zo4ICiDCCAoQwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMC0GA1UdEQQmMCSCC3dlbG9jYWwuZGV2gglsb2NhbGhvc3SHBDPS0z2HBH8AAAEwHQYDVR0OBBYEFLvz65pv/mvEYzLXRAV6eQu2/33sMB8GA1UdIwQYMBaAFJuFXvuB3E1ZB1Fjz77f2ix/yUQ8MIIBDwYDVR0fBIIBBjCCAQIwgf+ggfyggfmGgbVodHRwOi8vdGVzdGdvc3QyMDEyLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsLyEwNDIyITA0MzUhMDQ0MSEwNDQyITA0M2UhMDQzMiEwNDRiITA0MzklMjAhMDQyMyEwNDI2JTIwITA0MWUhMDQxZSEwNDFlJTIwITAwMjIhMDQxYSEwNDIwITA0MTghMDQxZiEwNDIyITA0MWUtITA0MWYhMDQyMCEwNDFlITAwMjIoMSkuY3Jshj9odHRwOi8vdGVzdGdvc3QyMDEyLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Rlc3Rnb3N0MjAxMigxKS5jcmwwgdoGCCsGAQUFBwEBBIHNMIHKMEQGCCsGAQUFBzAChjhodHRwOi8vdGVzdGdvc3QyMDEyLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL3Jvb3QyMDE4LmNydDA/BggrBgEFBQcwAYYzaHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvb2NzcDIwMTJnL29jc3Auc3JmMEEGCCsGAQUFBzABhjVodHRwOi8vdGVzdGdvc3QyMDEyLmNyeXB0b3Byby5ydS9vY3NwMjAxMmdzdC9vY3NwLnNyZjAKBggqhQMHAQEDAgNBALCDXGMTdhUwruxrXLV6LqebZRKDuDWpFeYT6A7BkABxt0uQrpbmyZ/Gaz3eNQ++9XtQaxjEIUvw7bjn26qgqI4=",
        "MIIE6DCCBJWgAwIBAgITfAAGS4CU1edyw4+SgwABAAZLgDAKBggqhQMHAQEDAjCCAQoxGDAWBgUqhQNkARINMTIzNDU2Nzg5MDEyMzEaMBgGCCqFAwOBAwE BEgwwMDEyMzQ1Njc4OTAxLzAtBgNVBAkMJtGD0LsuINCh0YPRidGR0LLRgdC60LjQuSDQstCw0Lsg0LQuIDE4MQswCQYDVQQGEwJSVTEZMBcGA1UECAwQ0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMSUwIwYDVQQKDBzQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iMTswOQYDVQQDDDLQotC10YHRgtC+0LLRi9C5INCj0KYg0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjAeFw0yMjA4MTIwODE0MDZaFw0yMjExMTIwODI0MDZaMGcxCzAJBgNVBAYTAlJVMQowCAYDVQQIEwFCMQowCAYDVQQHEwFBMRkwFwYDVQQKExBXYXZlcyBFbnRlcnByaXNlMRQwEgYDVQQLEwtJVCBCdXNpbmVzczEPMA0GA1UEAxMGTm9kZS0zMGYwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQH9sEK7lAgNEi9+mY+20OWYbGlgnC5e4+Rz589N2W9rbiwrRIKr3ng3fo3upiKBtkFewAykpwhz7U8s5eDMdtRCjggJsMIICaDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwEQYDVR0RBAowCIIGbm9kZS0zMB0GA1UdDgQWBBTbDMr79oDlISLk6uGq5b77t2DUSjAfBgNVHSMEGDAWgBSbhV77gdxNWQdRY8++39osf8lEPDCCAQ8GA1UdHwSCAQYwggECMIH/oIH8oIH5hoG1aHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC8hMDQyMiEwNDM1ITA0NDEhMDQ0MiEwNDNlITA0MzIhMDQ0YiEwNDM5JTIwITA0MjMhMDQyNiUyMCEwNDFlITA0MWUhMDQxZSUyMCEwMDIyITA0MWEhMDQyMCEwNDE4ITA0MWYhMDQyMiEwNDFlLSEwNDFmITA0MjAhMDQxZSEwMDIyKDEpLmNybIY/aHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC90ZXN0Z29zdDIwMTIoMSkuY3JsMIHaBggrBgEFBQcBAQSBzTCByjBEBggrBgEFBQcwAoY4aHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvQ2VydEVucm9sbC9yb290MjAxOC5jcnQwPwYIKwYBBQUHMAGGM2h0dHA6Ly90ZXN0Z29zdDIwMTIuY3J5cHRvcHJvLnJ1L29jc3AyMDEyZy9vY3NwLnNyZjBBBggrBgEFBQcwAYY1aHR0cDovL3Rlc3Rnb3N0MjAxMi5jcnlwdG9wcm8ucnUvb2NzcDIwMTJnc3Qvb2NzcC5zcmYwCgYIKoUDBwEBAwIDQQB9nl53V5KYsCqn6tFoaBWHW8CroaVlYWbQP7/iNkGXCd5KD8Ue6GZOww7VtlQl+nQuT6KvHuINJQlG3W/DrDeg"
        ]
        crls = [
          { publicKeyBase58 = "...", cdp = "http://example.com/", crl = "MIICwTCCAm4CAQEwCgYIKoUDBw EBAwIwggEKMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3ODkwMS8wLQYDVQQJDCbRg9C7LiDQodGD0YnRkdCy0YHQutC40Lkg0LLQsNC7INC0LiAxODELMAkGA1UEBhMCUlUxGTAXBgNVBAgMENCzLiDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDElMCMGA1UECgwc0J7QntCeICLQmtCg0JjQn9Ci0J4t0J/QoNCeIjE7MDkGA1UEAwwy0KLQtdGB0YLQvtCy0YvQuSDQo9CmINCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIXDTIyMDgxMjExMTMwNVoXDTIyMDgxMzEzNTcwNVowgcwwJAITfAAGS4CU1edyw4+SgwABAAZLgBcNMjIwODEyMTEyMjU2WjAkAhN8AAT8Hj6QH75DAJacAAEABPweFw0yMjA0MDEwNzQwMTRaMCQCE3wABPrkedSz18eUu40AAQAE+uQXDTIyMDMzMTEzNTMwNVowMgITfAACmXPmMRxspgYBrgABAAKZcxcNMjEwNTI2MTAxMDAwWjAMMAoGA1UdFQQDCgEFMCQCE3wAAfsy9FZzqkOn1PQAAQAB+zIXDTIxMDIwMzA1NDAyNlqgYjBgMB8GA1UdIwQYMBaAFJuFXvuB3E1ZB1Fjz77f2ix/yUQ8MBIGCSsGAQQBgjcVAQQFAgMBAAEwCwYDVR0UBAQCAgbGMBwGCSsGAQQBgjcVBAQPFw0yMjA4MTMxMTIzMDVaMAoGCCqFAwcBAQMCA0EAnQbYPqSbXxeBJYM+ln20fJBPXPcMmfid35088XjX0VhnNg4lxOGP8bloIQrU89NtS5+WI12c02IZFX8w5xSumA=="}
          {...}
        ]
      }
      average-block-delay: 40s
      block-timestamp: 1660306624184
      initial-base-target: 10000
      initial-balance: 17500000 WEST
      genesis-public-key-base-58: "SiyNYM988LpcqqJxbT2YVZa3gDAMgXXcock8h9WrVfD1R1rF2pZApvoGV5h2DTN2e1grFYmzgv94CkGNmKKsTuz"
      signature: "3omB9mpFq8fboSLR6Kd7shmoCuEj6uhoxrKGe7mMfunmCBQGfdpPtmovsQ62JjjKTN1hA7tY9exbTkf843xxmvub"
      transactions = [
        {recipient: "3N2gYbus4cHQJeEGJ6J2WfHyEPWnT4KjJ9e", amount: 12500000 WEST},
        {recipient: "3MtAfmSb4fzhMQGHH1UqFXDmzouZp3uVyv3", amount: 3000000 WEST},
        {recipient: "3MrfnwhPPmvJp5B4hiwUwqtSJBJGs9DuxWe", amount: 1000000 WEST},
        {recipient: "3N8MMJJPfDKfgZDHYFAcbLwkfb3KydKup3F", amount: 1000000 WEST}
      ]
      network-participants = [
        {public-key: "SiyNYM988LpcqqJxbT2YVZa3gDAMgXXcock8h9WrVfD1R1rF2pZApvoGV5h2DTN2e1grFYmzgv94CkGNmKKsTuz", roles: [permissioner, miner, connection_manager, contract_developer, issuer]},
        {public-key: "th4Pybsugj5JZkE245vKkGxPeCwEYDC4FBDeXXQFZGQST1xqB5udHcuNxSpk9fUj5X7A6LpV4h3ET82kVgowrSW", roles: [permissioner, miner, connection_manager, contract_developer, issuer]},
        {public-key: "37TqA4mUSG8ptc5hEPcdZikd1fE3H5EQbVcKh1NQeVevwmHS9Ci5RpvRd6eTz2XSxDaXRCReTtDWfHRjLLaXC89e", roles: [permissioner, miner, connection_manager, contract_developer, issuer]}
        {public-key: "3Ym3kFEFoBVTLgp5S7PRmzYW4kKYTD9UbDtu3uGHPgmUTmndrwamSCEDfMC7RDXxr8DSgd2za3io8rrvNxxxBTWw", roles: [permissioner, miner, connection_manager, contract_developer, issuer]}

      ]
    }
  }
}

Запуск блокчейн-платформы Конфидент

После подписания genesis-блока блокчейн-платформы Конфидент полностью настроена и готова для запуска сети.

Убедитесь, что выполнены следующие условия:

  • конфигурационный файл ноды node.conf лежит в той же директории, что и дистрибутив блокчейн-платформы Конфидент;

  • конфигурационный файл взят под контроль целостности;

  • библиотеки CryptoPro JCSP распакованы в директорию lib;

  • проведен контроль целостности согласно эксплуатационной документации СКЗИ «КриптоПро CSP».

Затем для разворачивания блокчейн-платформы Конфидент вызовите команду:

java -cp "confident-1.9.0.jar:lib/*" com.wavesenterprise.Application node.conf

где confident-1.9.0.jar – имя файла дистрибутива блокчейн-платформы Конфидент.

Примечание

Eсли конфигурационный файл ноды лежит не в той же директории, что и дистрибутив, укажите полный путь до него вместо имени файла node.conf.