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