1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-ion

Клонировать/Скачать
install-guide.md 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.06.2025 01:29 3ec94e9

Руководство по установке ION

ION — это децентрализованная сеть Layer 2 для децентрализованных идентификаторов (DIDs), работающая на блокчейне Bitcoin. Запуск узла ION снижает доверие к внешним сторонам для разрешения ION DIDs, делает сеть более устойчивой и надежной и обеспечивает оператору лучшую производительность разрешения DIDs.

Референсная реализация узла ION представляет собой стабильную производственную реализацию спецификации v1 DIF Sidetree. В настоящее время установка и эксплуатация узла настроены для опытных разработчиков, которые готовы вложить время в запуск, тестирование и вклад в кодовую базу. Это рекомендация изменится со временем, что сообщат вкладчики сообществу через блоги и коммуникации от DIF и сотрудничающих организаций.

Реализация узла ION состоит из коллекции микросервисов. Среди этих компонентов основные зависимости — это Bitcoin Core, Kubo (IPFS) и MongoDB (для локального хранения данных).

1. Подготовка среды разработки

Хардварь

Мы рекомендуем запускать ION на машине с минимальными спецификациями:

  • процессор i5 (модели 2017+)
  • 6 ГБ оперативной памяти
  • 1 ТБ хранения

Операционная система

Поддерживаются и тестируются как Linux, так и Windows. Для Linux установка проверена на Ubuntu 18, поэтому мы рекомендуем дистрибутивы на базе Debian для установки Linux.#### Установка среды Linux

Snap

Мы используем snap для упрощения установки некоторых служб. Выполните следующую команду для установки snap:

sudo apt install snapd

Возможно, вам потребуется добавить директорию с исполняемыми файлами snap в ваш путь путем добавления следующей строки в ~/.bash_profile

PATH="$PATH:/snap/bin"

Чтобы убедиться, что изменения пути вступают в силу немедленно:

source ~/.bash_profile
Node.js

Службы внутри ION зависят от версии Node.js 14. Выполните следующую команду для установки Node v14:

sudo snap install node --classic --channel=14
build-essential

Запуск ION требует эквивалента Ubuntu 'build-essential' в вашем дистрибутиве, например make, g++, и т. д.

sudo apt install build-essential

Установка среды Windows

Перейдите по адресу https://nodejs.org, скачайте и установите последнюю версию v14 Node.js.

Открытые входящие порты

Если вы хотите запустить узел, который записывает операции ION DID, вам потребуется включить uPnP на вашем маршрутизаторе или открыть порты 4002 и 4003, чтобы файлы данных операций могли быть обслужены другим пользователям через IPFS.

Тестнет или основной сет

ЗАМЕЧАНИЕ: Этот гайд описывает шаги для настройки узла ION, ориентированного на тестнет биткоина, но может быть использован для настройки узла на основной сет путем замены конфигураций тестнета на конфигурации основного сета.Биткоин и ION должны быть настроены для использования либо testnet (для разработки), либо mainnet (для производства). Если вы измените одну службу с testnet на mainnet или наоборот, другие службы также потребуют перестроения для соответствия. Значения по умолчанию для конфигурации testnet не действительны для mainnet, и службы не смогут запуститься, если конфигурации не совпадают.

2. Настройка Bitcoin Core

Узел ION требует доверенного узла биткоина для получения и записи транзакций ION. Для этого мы используем Bitcoin Core.

Автоматический скрипт для установки Bitcoin Core на Linux

Если вы хотите автоматически установить и запустить Bitcoin Core на Linux, вы можете просмотреть и запустить автоматический скрипт, зафиксированный в репозитории Sidetree.

Замечание: Изначальное синхронизирование занимает ~2 часа для тестнета на машине с двумя ядрами и SSD.

Установка Bitcoin Core вручную

Вы можете найти Windows и Linux бинарные файлы для релизов Bitcoin Core здесь.

На Linux:

Создайте файл конфигурации (bitcoin.conf), указывающий

  1. путь, в который вы хотите сохранить данные биткоина (путь [datadir])
  2. имя пользователя (например, admin)
  3. пароль (должен совпадать с конфигурацией ion-bitcoin позже)
Тестнет Основная сеть
testnet=1
server=1
datadir=~/.bitcoin
rpcuser=<ваш-имя-пользователя-rpc>
rpcpassword=<ваш-пароль-rpc>
txindex=1
server=1
txindex=1
datadir=~/.bitcoin
rpcuser=<ваш-имя-пользователя-rpc>
rpcpassword=<ваш-пароль-rpc>

Запустите Bitcoin Core и дайте ему время на синхронизацию:

./bin/bitcoind --config bitcoin.conf

Замечание: Вы можете добавить --daemon для запуска bitcoind как демона.

На Windows:

Запуск Bitcoin Core с дружественным интерфейсом после установки:

bitcoin-qt.exe -testnet -datadir=<путь-для-хранения-данных> -server -rpcuser=<ваш-имя-пользователя-rpc> -rpcpassword=<ваш-пароль-rpc> -txindex=1

3. Установка Kubo (IPFS)

Следуйте инструкциям, найденным на веб-сайте IPFS, чтобы установить Kubo CLI (реализация IPFS). Вы также можете использовать Docker образ, или установить IPFS Desktop, который внутренне устанавливает демона Kubo и предоставляет вам удобный для пользователя интерфейс.

4. Настройка MongoDB

На Linux:

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

Вероятно, вы захотите хранить данные из экземпляра MongoDB на том же диске, на котором хранится блокчейн, из-за большого объёма требуемого хранения. Установите директорию для этого, создав папку db в выбранном вами расположении и запустив mongod --dbpath ~/YOUR_LOCATION/db

На Windows:

Скачайте и установите MongoDB с https://www.mongodb.com/download-center/community.

ВАЖНО: Чтобы просматривать файлы MongoDB с помощью более удобного графического интерфейса, скачайте и установите MongoDB Compass: https://docs.mongodb.com/compass/master/install/

5. Настройка и сборка микросервисов ION

Клонируйте https://github.com/decentralized-identity/ion:

git clone https://github.com/decentralized-identity/ion

Примеры конфигурационных файлов для testnet- и mainnet- можно найти в топ-уровневой директории config/.

ВАЖНО: Если не указано иное, файлы json/testnet-*-*.json используются как значения конфигурации по умолчанию. Убедитесь, что вы начинаете с правильного шаблона конфигурации (testnet- или mainnet-) для вашего случая использования.

Создайте ваши конфигурационные файлы из шаблонов

Скопируйте конфигурационные файлы <testnet-or-mainnet>-bitcoin-config.json и <testnet-or-mainnet>-bitcoin-versioning.json в другую директорию (например, /etc/ion/)### Обновите конфигурационные файлыОбновите конфигурационные файлы ION Bitcoin микросервиса (например, /etc/ion/testnet-bitcoin-config.json):

  • bitcoinPeerUri

    • Убедитесь, что он указывает на конечную точку RPC-клиента Bitcoin Core, который вы настроили ранее в этом руководстве.
    • testnet: http://localhost:18332
    • mainnet: http://localhost:8332 (предполагая, что конфигурация Bitcoin Core по умолчанию из шага 2 была применена).
  • bitcoinDataDirectory

    • Это опциональное значение конфигурации. Настройка этого значения позволяет узлу читать данные из блоковых файлов, вместо использования RPC-вызовов для инициализации микросервиса Bitcoin. Это полезно для ускорения времени инициализации, если у вас есть быстрый доступ к файлам (локальный SSD является оптимальным). Если файлы хранятся и извлекаются через сеть, например, в облачном хранилище AWS S3 Bucket или Azure Blob Storage, то это будет медленнее, чем использование RPC, так как ему придется скачать несколько гигабайт данных.
    • Оставьте это значение пустым, если вы не хотите инициализировать узел из файлов. Если вы хотите инициализировать узел из файлов, он должен указывать на папку с блоковыми файлами:
      • testnet: [datadir]/testnet3.
      • mainnet: точно такой же, как значение [datadir], настроенное для Bitcoin Core в шаге 2.
  • bitcoinWalletImportString

    • Если вы планируете выполнять операции DID, заполните его своим приватным ключом, в противном случае используйте любую сгенерированную строку импорта.com/technical/wif) без использования биткоинов
      • testnet: (в случае, если ion-bitcoin не может загрузить валидную строку WIF при запуске, будет сгенерирован примерный валидный тестовый кошелек, который можно использовать для тестирования)
      • mainnet: (должен быть валидной строкой WIF для mainnet)
    • bitcoinRpcUsername & bitcoinRpcPassword
      • должны совпадать с теми, которые были установлены в bitcoin.conf в шаге 2. Обновите конфигурацию для основного сервиса ION в файле json/testnet-core-config.json:
    • didMethodName
      • testnet: ion:test
      • mainnet: ionЗАМЕЧАНИЕ: Вы можете установить несколько переменных конфигурации через переменные окружения для удобства. Перечисленные ниже переменные окружения, если они установлены, заменят значения, указанные в файлах конфигурации.
Переменная окружения Соответствие конфигурации
BITCOIN_DATA_DIR bitcoinDataDirectory
BITCOIN_RPC_PASSWORD bitcoinRpcPassword
BITCOIN_WALLET bitcoinWalletImportString
BITCOIN_ENDPOINT bitcoinPeerUri
MONGO_ENDPOINT mongoDbConnectionString

Запустите следующие команды для сборки ION:

npm i
npm run build

ЗАМЕЧАНИЕ: Возможно, вам потребуется выполнить npm install tsc перед выполнением npm run build, чтобы установить TypeScript в Linux/Mac окружениях.

ЗАМЕЧАНИЕ: Вы должны выполнить npm run build каждый раз, когда файл конфигурации JSON был изменён.

6. Запуск микросервиса ION для Bitcoin

Обновите пути ниже до мест, где вы редактировали и сохранили файлы конфигурации в предыдущем шаге.

ION_BITCOIN_CONFIG_FILE_PATH=/etc/ion/testnet-bitcoin-config.json
ION_BITCOIN_VERSIONING_CONFIG_FILE_PATH=/etc/ion/testnet-bitcoin-versioning.json
npm run bitcoin

ЗАМЕЧАНИЕ: Этот сервис не сможет запуститься, пока у вас нет блоков в Bitcoin Core клиенте, превышающих блок ION genesis. Пожалуйста, подождите и попробуйте снова позже, если это произошло.

7. Запуск основного сервиса ION### (Необязательно) Создание файлов конфигурации из шаблонов

Замечание: Это не требуется при использовании testnet, так как значения по умолчанию достаточны

Скопируйте файлы конфигурации <testnet или mainnet>-core-config.json и <testnet или mainnet>-core-versioning.json в другую директорию (например, /etc/ion/ или ~).

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

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

Переменная окружения Соответствие конфигурации
IPFS_ENDPOINT ipfsHttpApiEndpointUri
BLOCKCHAIN_SERVICE_ENDPOINT blockchainServiceUri
MONGO_ENDPOINT mongoDbConnectionString
ПУТЬ_К_ФАЙЛУ_КОНФИГУРАЦИИ_ION_CORE=/usr/local/src/ion/config/testnet-core-config.json
ПУТЬ_К_ФАЙЛУ_КОНФИГУРАЦИИ_ВЕРСИОНИРОВАНИЯ_ION_CORE=/usr/local/src/ion/config/testnet-core-versioning.json
npm run core

Важно: Этот сервис не сможет запуститься, пока ваш сервис ION Bitcoin не будет запущен успешно.

Дайте время для синхронизации транзакций ION.

8. Проверьте правильную работу ION

Проверьте следующее разрешение DID в вашем браузере: * тестовая сеть: http://localhost:3000/identifiers/did:ion:test:EiClWZ1MnE8PHjH6y4e4nCKgtKnI1DK1foZiP61I86b6pw

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-ion.git
git@api.gitlife.ru:oschina-mirror/mirrors-ion.git
oschina-mirror
mirrors-ion
mirrors-ion
master