July 12, 2024

Гайд по Nillion SDK. Установка ноды и запуск devnet. 

Пошаговое руководство по установке и использованию Nillion Node SDK

Шаг 1: Установка nilup

nilup - это инструмент для установки и управления версиями Nillion SDK. Для установки nilup выполните следующую команду:

shКопировать кодcurl https://nilup.nilogy.xyz/install.sh | bash

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

shКопировать кодcurl https://nilup.nilogy.xyz/install.sh -o install.sh
bash install.sh

Шаг 2: Управление версиями Nillion SDK с помощью nilup

После установки nilup, все команды Nillion SDK будут управляться этим инструментом. Вы можете выбрать версию Nillion SDK с помощью следующих методов (в порядке приоритета):

  1. Флаг +<версия> Если вы хотите использовать определенную версию команды Nillion SDK, добавьте +<версия>. Например, команда nada +0.0.4 init запустит nada версии 0.0.4.
  2. Файл nil-sdk.toml В текущей или родительских директориях создайте файл nil-sdk.toml или .nil-sdk.toml, указав в нем версию Nillion SDK:t

version = "0.0.4"

  1. Глобальная версия Если версия не указана в команде или в файле nil-sdk.toml, используйте глобальную версию, установленную командой nilup use {версия}.

Шаг 3: Основные команды nilup

  • install: Установить определенную версию Nillion SDK.
  • uninstall: Удалить установленную версию Nillion SDK.
  • use: Установить глобальную версию Nillion SDK для использования.
  • list-available: Показать доступные для установки версии Nillion SDK.
  • list-installed: Показать установленные версии Nillion SDK.
  • instrumentation: Включить или выключить инструментирование.
  • shell-completions: Сгенерировать завершения команд для оболочки.
  • help: Показать справку по командам.

Шаг 4: Установка инструмента nillion

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

Шаг 5: Использование nillion

1. Генерация пользовательского ключа Создайте файл с пользовательским ключом:

nillion user-key-gen <FILENAME>

2. Генерация узлового ключа Создайте файл с узловым ключом:

nillion node-key-gen <FILENAME>

3. Хранение секретов Для хранения секретов используйте следующую команду, заполнив параметры своими данными:

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ store-secrets \ --cluster-id <CLUSTER_ID> \ --dealer-name <DEALER_NAME> \ [PROGRAM_ID]

4. Извлечение секрета Для извлечения секретов используйте следующую команду:

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ retrieve-secret \ --cluster-id <CLUSTER_ID> \ --store-id <STORE_ID> \ --secret-id <SECRET_ID>

5. Хранение программы Для хранения программы используйте следующую команду:

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ store-program \ --cluster-id <CLUSTER_ID> \ <PROGRAM_PATH> \ <PROGRAM_NAME>

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

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ compute \ --cluster-id <CLUSTER_ID> \ <PROGRAM_ID>

7. Получение информации о кластереДля получения информации о кластере используйте следующую команду:

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ cluster-information \ <CLUSTER_ID>

8. Проверка статуса пула предварительной обработкиДля проверки статуса пула предварительной обработки используйте следующую команду:s

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ preprocessing-pool-status \ <CLUSTER_ID>

9. Отображение узловых и пользовательских идентификаторовДля отображения идентификаторов узлов и пользователей используйте следующую команду:

nillion --user-key <YOUR_USER_KEY> \ --node-key <YOUR_NODE_KEY> \ -b <BOOTNODES> \ --payments-private-key <PRIVATE_KEY> \ --payments-chain-id <CHAIN_ID> \ --payments-rpc-endpoint <BLOCKCHAIN_RPC_ENDPOINT> \ --payments-sc-address <PAYMENTS_SC_ADDRESS> \ --blinding-factors-manager-sc-address <BLINDING_FACTORS_MANAGER_SC_ADDRESS> \ inspect-ids

Запуск Nilliion Devnet

Шаг 1: Установка nillion-devnet

Убедитесь, что вы установили инструмент nillion-devnet. Если нет, следуйте инструкциям по установке Nillion SDK и инструментов.

Шаг 2: Запуск Devnet

Чтобы запустить локальную тестовую сеть Nillion Devnet, используйте следующую команду:

nillion-devnet [OPTIONS]
Основные опции команды:
  • -n, --node-count <NODE_COUNT>: Указывает количество узлов в тестовой сети. По умолчанию - 3 узла.
  • -c, --cluster-id <CLUSTER_ID>: Указывает идентификатор кластера (UUID). Если не указано, будет сгенерирован случайный UUID, учитывая параметр --seed.
  • -d, --state-directory <STATE_DIRECTORY>: Указывает директорию, где будут храниться состояния узлов. Если не указано, будет использована временная директория.
  • -s, --seed <SEED>: Указывает семя для генерации ключей и идентификаторов кластера. Если не указано, ключи узлов и идентификатор кластера будут случайными.
  • -p, --prime-bits <PRIME_BITS>: Указывает количество битов в простом числе, которое будет использоваться. По умолчанию - 256 бит.
  • -b, --bind-address <BIND_ADDRESS>: Указывает адрес для привязки. По умолчанию - 127.0.0.1.
  • -h, --help: Показать справку по команде.
  • -V, --version: Показать версию.

Пример команды для запуска Devnet с тремя узлами и указанием директории для состояний узлов:

nillion-devnet -n 3 -d /path/to/state-directory

Шаг 3: Использование выходных данных Devnet

После запуска Devnet, инструмент выведет следующие данные, которые можно использовать для взаимодействия с локальной сетью:

  • Идентификатор Devnet (devnet id)
  • Конечная точка блокчейна (blockchain node endpoint)
  • Идентификаторы узлов (node ids)
  • Ключи кошелька (14 приватных ключей, сохранённых в файл)
  • Конфигурация платежей (информация о блокчейне, сохранённая в файл)
  • Конечная точка RPC блокчейна (blockchain_rpc_endpoint)
  • Идентификатор цепи (chain_id)
  • Адрес смарт-контракта для платежей (payments_sc_address)
  • Адрес смарт-контракта для управления факторами ослепления (blinding_factors_manager_sc_address)
  • Адрес начального узла (bootnode)
  • Веб-сокет (websocket)

Шаг 4: Остановка локального Devnet

Чтобы остановить локальную тестовую сеть Devnet, выполните следующую команду:

killall nillion-devnet