ION — это децентрализованная сеть Layer 2 для децентрализованных идентификаторов (DIDs), работающая на блокчейне Bitcoin. Запуск узла ION снижает доверие к внешним сторонам для разрешения ION DIDs, делает сеть более устойчивой и надежной и обеспечивает оператору лучшую производительность разрешения DIDs.
Референсная реализация узла ION представляет собой стабильную производственную реализацию спецификации v1 DIF Sidetree. В настоящее время установка и эксплуатация узла настроены для опытных разработчиков, которые готовы вложить время в запуск, тестирование и вклад в кодовую базу. Это рекомендация изменится со временем, что сообщат вкладчики сообществу через блоги и коммуникации от DIF и сотрудничающих организаций.
Реализация узла ION состоит из коллекции микросервисов. Среди этих компонентов основные зависимости — это Bitcoin Core, Kubo (IPFS) и MongoDB (для локального хранения данных).
Мы рекомендуем запускать ION на машине с минимальными спецификациями:
Поддерживаются и тестируются как Linux, так и Windows. Для Linux установка проверена на Ubuntu 18, поэтому мы рекомендуем дистрибутивы на базе Debian для установки Linux.#### Установка среды Linux
Мы используем snap для упрощения установки некоторых служб. Выполните следующую команду для установки snap:
sudo apt install snapd
Возможно, вам потребуется добавить директорию с исполняемыми файлами snap в ваш путь путем добавления следующей строки в ~/.bash_profile
PATH="$PATH:/snap/bin"
Чтобы убедиться, что изменения пути вступают в силу немедленно:
source ~/.bash_profile
Службы внутри ION зависят от версии Node.js 14. Выполните следующую команду для установки Node v14:
sudo snap install node --classic --channel=14
Запуск ION требует эквивалента Ubuntu 'build-essential' в вашем дистрибутиве, например make, g++, и т. д.
sudo apt install build-essential
Перейдите по адресу https://nodejs.org, скачайте и установите последнюю версию v14 Node.js.
Если вы хотите запустить узел, который записывает операции ION DID, вам потребуется включить uPnP на вашем маршрутизаторе или открыть порты 4002
и 4003
, чтобы файлы данных операций могли быть обслужены другим пользователям через IPFS.
ЗАМЕЧАНИЕ: Этот гайд описывает шаги для настройки узла ION, ориентированного на тестнет биткоина, но может быть использован для настройки узла на основной сет путем замены конфигураций тестнета на конфигурации основного сета.Биткоин и ION должны быть настроены для использования либо
testnet
(для разработки), либоmainnet
(для производства). Если вы измените одну службу сtestnet
наmainnet
или наоборот, другие службы также потребуют перестроения для соответствия. Значения по умолчанию для конфигурацииtestnet
не действительны дляmainnet
, и службы не смогут запуститься, если конфигурации не совпадают.
Узел ION требует доверенного узла биткоина для получения и записи транзакций ION. Для этого мы используем Bitcoin Core.
Если вы хотите автоматически установить и запустить Bitcoin Core на Linux, вы можете просмотреть и запустить автоматический скрипт, зафиксированный в репозитории Sidetree.
Замечание: Изначальное синхронизирование занимает ~2 часа для тестнета на машине с двумя ядрами и SSD.
Вы можете найти Windows и Linux бинарные файлы для релизов Bitcoin Core здесь.
Создайте файл конфигурации (bitcoin.conf
), указывающий
[datadir]
)admin
)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 как демона.
Запуск Bitcoin Core с дружественным интерфейсом после установки:
bitcoin-qt.exe -testnet -datadir=<путь-для-хранения-данных> -server -rpcuser=<ваш-имя-пользователя-rpc> -rpcpassword=<ваш-пароль-rpc> -txindex=1
Следуйте инструкциям, найденным на веб-сайте IPFS, чтобы установить Kubo CLI (реализация IPFS). Вы также можете использовать Docker образ, или установить IPFS Desktop, который внутренне устанавливает демона Kubo и предоставляет вам удобный для пользователя интерфейс.
По умолчанию для локального хранения данных используется MongoDB, хотя возможно создание адаптеров для других хранилищ данных. Чтобы использовать опцию MongoDB по умолчанию, вам потребуется установить общедоступную версию MongoDB:
deb
: https://www.mongodb.com/download-center/community.sudo apt-get install -f
, чтобы установить их.Вероятно, вы захотите хранить данные из экземпляра MongoDB на том же диске, на котором хранится блокчейн, из-за большого объёма требуемого хранения. Установите директорию для этого, создав папку db
в выбранном вами расположении и запустив mongod --dbpath ~/YOUR_LOCATION/db
Скачайте и установите MongoDB с https://www.mongodb.com/download-center/community.
ВАЖНО: Чтобы просматривать файлы MongoDB с помощью более удобного графического интерфейса, скачайте и установите MongoDB Compass: https://docs.mongodb.com/compass/master/install/
Клонируйте 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
http://localhost:18332
http://localhost:8332
(предполагая, что конфигурация Bitcoin Core по умолчанию из шага 2 была применена).bitcoinDataDirectory
[datadir]/testnet3
.[datadir]
, настроенное для Bitcoin Core в шаге 2.bitcoinWalletImportString
ion-bitcoin
не может загрузить валидную строку WIF при запуске, будет сгенерирован примерный валидный тестовый кошелек, который можно использовать для тестирования)bitcoinRpcUsername
& bitcoinRpcPassword
bitcoin.conf
в шаге 2. Обновите конфигурацию для основного сервиса ION в файле json/testnet-core-config.json
:didMethodName
ion:test
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 был изменён.
Обновите пути ниже до мест, где вы редактировали и сохранили файлы конфигурации в предыдущем шаге.
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. Пожалуйста, подождите и попробуйте снова позже, если это произошло.
Замечание: Это не требуется при использовании
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.
Проверьте следующее разрешение DID в вашем браузере: * тестовая сеть: http://localhost:3000/identifiers/did:ion:test:EiClWZ1MnE8PHjH6y4e4nCKgtKnI1DK1foZiP61I86b6pw
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )