July 8, 2022

Установка cardano-node и cardano-cli из исходников

Это руководство покажет вам, как скомпилировать и установить в cardano-nodeвыбранную cardano-cliвами операционную систему непосредственно из исходного кода. Это позволит вам взаимодействовать с блокчейном Cardano , включая, помимо прочего, отправку/получение транзакций , создание NFT , размещение метаданных транзакций в блокчейне, чеканку/сжигание нативных токенов , создание пула ставок , выполнение смарт-контрактов и многое другое . !

ПРИМЕЧАНИЕ

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

Доступны более новые двоичные файлы:последний релиз

Компоненты можно создавать и запускать в Windows и MacOS , но мы рекомендуем операторам стейк-пулов использовать Linux в производственной среде, чтобы воспользоваться преимуществами, связанными с производительностью.

Предпосылки

Для настройки компонентов вам потребуется:

  • Windows , MacOS или Linux для вашей операционной системы
  • Процессор Intel или AMD x86 с двумя или более ядрами с тактовой частотой 1,6 ГГц или выше (2 ГГц или выше для пула ставок или relay)
  • 12 ГБ оперативной памяти и не менее 30 ГБ свободного места на диске
ПРИМЕЧАНИЕ

Если вы намереваетесь подключиться к экземпляру основной сети, требования к ОЗУ и хранилищу превысят базовые уровни, указанные выше.

Выберите свою платформу

линукс

В этом разделе мы проведем вас через процесс загрузки, компиляции и установки cardano-nodeв cardano-cliвашу операционную систему на базе Linux .

Установка зависимостей

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

  • система контроля версий git,
  • C - gccкомпилятор,
  • Поддержка С++ для gcc,
  • библиотеки разработчиков для библиотеки произвольной точности gmp,
  • библиотеки разработчиков для библиотеки сжатия zlib,
  • библиотеки разработчиков для systemd,
  • библиотеки разработчиков для ncurses,
  • ncursesбиблиотеки совместимости,
  • инструмент сборки Haskell cabal,
  • компилятор GHC Haskell (версия 8.10.7или выше).

В Redhat, Fedora и Centos:

sudo yum update -ysudo yum install git gcc gcc-c++ tmux gmp-devel make tar xz wget zlib-devel libtool autoconf jq -ysudo yum install systemd-devel ncurses-devel ncurses-compat-libs -y

Для Debian/Ubuntu вместо этого используйте следующее:

sudo apt-get update -y && sudo apt-get upgrade -ysudo apt-get install automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 libtool autoconf -y

Если вы используете другой вариант Linux, вам нужно будет использовать правильный менеджер пакетов для вашей платформы вместо yumили apt-get, и имена пакетов, которые вам нужно установить, могут отличаться.

Установка GHC и Cabal

Самый быстрый способ установить GHC (компилятор Glasgow Haskell) и Cabal (общую архитектуру для создания приложений и библиотек) — использовать ghcup .

Используйте следующую команду для установкиghcup

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

Пожалуйста, следуйте инструкциям и предоставьте необходимые данные установщику.

Do you want ghcup to automatically add the required PATH variable to "/home/ubuntu/.bashrc"?- (P или введите)

Do you want to install haskell-language-server (HLS)?- (N или введите)

Do you want to install stack?- (N или введите)

Press ENTER to proceed or ctrl-c to abort.(войти)

После завершения вы должны ghcустановить cabalего в свою систему.

ПРИМЕЧАНИЕ

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

Вы можете проверить ghcupправильность установки, набрав ghcup --versionв терминале. Вы должны увидеть что-то похожее на следующее:

The GHCup Haskell installer, version v0.1.17.4

ghcupустановит последнюю стабильную версию ghc. Однако на момент написания этой статьи ввод-вывод рекомендует использовать ghc 8.10.7. Итак, мы будем использовать ghcupдля установки и перехода на нужную версию.

ghcup install ghc 8.10.7ghcup set ghc 8.10.7

ghcupустановит последнюю стабильную версию cabal. Однако на момент написания этой статьи ввод-вывод рекомендует использовать cabal 3.6.2.0. Итак, мы будем использовать ghcupдля установки и перехода на нужную версию.

ghcup install cabal 3.6.2.0ghcup set cabal 3.6.2.0

Наконец, мы проверяем, установлены ли правильные ghcи cabalверсии.

Проверить ghcверсию:

ghc --version

Вы должны увидеть что-то вроде этого:

The Glorious Glasgow Haskell Compilation System, version 8.10.7

Проверить cabalверсию:

cabal --version

Вы должны увидеть что-то вроде этого:

cabal-install version 3.6.2.0compiled using version 3.6.2.0 of the Cabal library
ВАЖНО

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

Скачивание и компиляция

Давайте создадим рабочий каталог для хранения исходного кода и сборок для компонентов.

mkdir -p $HOME/cardano-srccd $HOME/cardano-src

Далее мы скачаем, скомпилируем и установим libsodium.

git clone https://github.com/input-output-hk/libsodiumcd libsodiumgit checkout 66f017f1./autogen.sh./configuremakesudo make install

Затем мы добавим следующие переменные среды в ваш профиль оболочки. EG $HOME/.zshrcили $HOME/.bashrcв зависимости от того, какое приложение оболочки вы используете. Добавьте следующее в конец файла профиля/конфигурации оболочки, чтобы компилятор мог знать, что libsodiumон установлен в вашей системе.

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"

После сохранения мы перезагрузим ваш профиль оболочки, чтобы использовать новые переменные. Мы можем сделать это, набрав source $HOME/.bashrcили source $HOME/.zshrc( в зависимости от используемого вами приложения оболочки ).

Теперь мы готовы загрузить, скомпилировать и установить cardano-nodeи cardano-cli. Но сначала мы должны убедиться, что вернулись в корень нашего рабочего каталога:

cd $HOME/cardano-src

Загрузите cardano-nodeрепозиторий:

git clone https://github.com/input-output-hk/cardano-node.gitcd cardano-nodegit fetch --all --recurse-submodules --tags

Переключите репозиторий на последний помеченный коммит:

git checkout $(curl -s https://api.github.com/repos/input-output-hk/cardano-node/releases/latest | jq -r .tag_name)
ВАЖНО

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

Настройка параметров

Мы явно используем ghcверсию, которую установили ранее. Это позволяет избежать использования по умолчанию системной версии ghc, которая может быть новее или старше той, которую вы установили.

cabal configure --with-compiler=ghc-8.10.7

Если вы используете платформу, отличную от x86/x64 (например, ARM), установите и настройте LLVM с помощью:

sudo apt install llvm-9sudo apt install clang-9 libnuma-devsudo ln -s /usr/bin/llvm-config-9 /usr/bin/llvm-configsudo ln -s /usr/bin/opt-9 /usr/bin/optsudo ln -s /usr/bin/llc-9 /usr/bin/llcsudo ln -s /usr/bin/clang-9 /usr/bin/clang

Сборка и установка узла

Теперь мы можем создать Haskell-based cardano-nodeисполняемые двоичные файлы.

cabal build cardano-node cardano-cli

Установите только что созданный узел и команды CLI в каталог $HOME/.local/bin:

mkdir -p $HOME/.local/bincp -p "$(./scripts/bin-path.sh cardano-node)" $HOME/.local/bin/cp -p "$(./scripts/bin-path.sh cardano-cli)" $HOME/.local/bin/

Мы должны добавить эту строку под нашим профилем оболочки, чтобы оболочка/терминал могла распознавать это cardano-nodeи cardano-cliявляться глобальными командами. ( $HOME/.zshrcили $HOME/.bashrc в зависимости от используемого вами приложения оболочки )

export PATH="$HOME/.local/bin/:$PATH"

После сохранения перезагрузите профиль оболочки, набрав source $HOME/.zshrcили source $HOME/.bashrc( в зависимости от используемого вами приложения оболочки ).

Проверьте версию, которая была установлена:

cardano-cli --versioncardano-node --version

Поздравляем, вы успешно установили компоненты Cardano в свою систему Linux! 🎉🎉🎉

Далее мы поговорим о том, как запустить cardano-node .

MacOS

В этом разделе мы проведем вас через процесс загрузки, компиляции и установки cardano-nodeв cardano-cliвашу операционную систему на базе MacOS .

Установка зависимостей

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

Установка пакетов

Для правильной компиляции компонентов cardano-nodeи cardano-cliнам потребуется установить некоторые библиотеки через brew:

brew install jqbrew install libtoolbrew install autoconfbrew install automakebrew install pkg-config

Вам нужно будет установить llvm, если вы используете M1

brew install llvm

Установка GHC и Cabal

Самый быстрый способ установить GHC (компилятор Glassglow Haskell) и Cabal (общую архитектуру для создания приложений и библиотек) — использовать ghcup .

Используйте следующую команду для установкиghcup

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

Пожалуйста, следуйте инструкциям и предоставьте необходимые данные установщику.

Do you want ghcup to automatically add the required PATH variable to "/home/ubuntu/.bashrc"?- (P или введите)

Do you want to install haskell-language-server (HLS)?- (N или введите)

Do you want to install stack?- (N или введите)

Press ENTER to proceed or ctrl-c to abort.(войти)

После завершения вы должны ghcустановить cabalего в свою систему.

ПРИМЕЧАНИЕ

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

Вы можете проверить ghcupправильность установки, набрав ghcup --versionв терминале. Вы должны увидеть что-то похожее на следующее:

The GHCup Haskell installer, version v0.1.17.4

ghcupустановит последнюю стабильную версию ghc. Однако на момент написания этой статьи ввод-вывод рекомендует использовать ghc 8.10.7. Итак, мы будем использовать ghcupдля установки и перехода на нужную версию.

ghcup install ghc 8.10.7ghcup set ghc 8.10.7

ghcupустановит последнюю стабильную версию cabal. Однако на момент написания этой статьи ввод-вывод рекомендует использовать cabal 3.6.2.0. Итак, мы будем использовать ghcupдля установки и перехода на нужную версию.

ghcup install cabal 3.6.2.0ghcup set cabal 3.6.2.0

Наконец, мы проверяем, установлены ли правильные ghcи cabalверсии.

Проверить ghcверсию:

ghc --version

Вы должны увидеть что-то вроде этого:

The Glorious Glasgow Haskell Compilation System, version 8.10.7

Проверить cabalверсию:

cabal --version

Вы должны увидеть что-то вроде этого:

cabal-install version 3.6.2.0compiled using version 3.6.2.0 of the Cabal library
ВАЖНО

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

Скачивание и компиляция

Давайте создадим рабочий каталог для хранения исходного кода и сборок для компонентов.

mkdir -p $HOME/cardano-srccd $HOME/cardano-src

Далее мы скачаем, скомпилируем и установим libsodium.

git clone https://github.com/input-output-hk/libsodiumcd libsodiumgit checkout 66f017f1./autogen.sh./configuremakesudo make install

Затем мы добавим следующие переменные среды в ваш профиль оболочки. EG $HOME/.zshrcили $HOME/.bashrcв зависимости от того, какое приложение оболочки вы используете. Добавьте следующее в конец вашего файла профиля/конфигурации оболочки, чтобы компилятор мог знать, что libsodiumон установлен в вашей системе.

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"

Если вы установили llvm для M1, вам также нужно будет добавить это:

export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
ПРИМЕЧАНИЕ

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

После сохранения мы перезагрузим ваш профиль оболочки, чтобы использовать новые переменные. Мы можем сделать это, набрав source $HOME/.bashrcили source $HOME/.zshrc( в зависимости от используемого вами приложения оболочки ).

Теперь мы готовы загрузить, скомпилировать и установить cardano-nodeи cardano-cli. Но сначала мы должны убедиться, что вернулись в корень нашего рабочего каталога:

cd $HOME/cardano-src

Загрузите cardano-nodeрепозиторий:

git clone https://github.com/input-output-hk/cardano-node.gitcd cardano-nodegit fetch --all --recurse-submodules --tags

Переключите репозиторий на последний помеченный коммит:

git checkout $(curl -s https://api.github.com/repos/input-output-hk/cardano-node/releases/latest | jq -r .tag_name)
ВАЖНО

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

Настройка параметров

Мы явно используем ghcверсию, которую установили ранее. Это позволяет избежать использования по умолчанию системной версии ghc, которая может быть новее или старше той, которую вы установили.

cabal configure --with-compiler=ghc-8.10.7

Вам нужно будет запустить следующие команды на M1, эти команды установят некоторые параметры, связанные с кликой, перед сборкой

echo "package trace-dispatcher" >> cabal.project.localecho "  ghc-options: -Wwarn" >> cabal.project.localecho "" >> cabal.project.local

Сборка и установка узла

cabal build all

Установите только что созданный узел и интерфейс командной строки в каталог $HOME/.local/bin:

mkdir -p $HOME/.local/bincp -p "$(./scripts/bin-path.sh cardano-node)" $HOME/.local/bin/cp -p "$(./scripts/bin-path.sh cardano-cli)" $HOME/.local/bin/

Мы должны добавить эту строку под нашим профилем оболочки, чтобы оболочка/терминал могла распознавать это cardano-nodeи cardano-cliявляться глобальными командами. ( $HOME/.zshrcили $HOME/.bashrc в зависимости от используемого вами приложения оболочки )

export PATH="$HOME/.local/bin/:$PATH"

После сохранения перезагрузите профиль оболочки, набрав source $HOME/.zshrcили source $HOME/.bashrc( в зависимости от используемого вами приложения оболочки ).

Проверьте версию, которая была установлена:

cardano-cli --versioncardano-node --version

Поздравляем, вы успешно установили компоненты Cardano в свою систему MacOS! 🎉🎉🎉

Далее мы поговорим о том, как запустить cardano-node .

Windows

ВАЖНО

В настоящее время руководство по установке Windows все еще находится в разработке. А пока мы рекомендуем использовать WSL (подсистема Windows для Linux) , чтобы получить среду Linux поверх Windows. После установки вы можете использовать руководство по Linux для установки и запуска cardano-nodeв WSL .