14 KiB
Гид по установке Zcash 1.0 "Sprout"
Здравствуйте! С помощью этой инструкции вы сможете установить и запустить официальную версию Zcash. На данный момент для запуска официальной версии Zcash вам потребуется Linux, 64-битный процессор, и в некоторых случаях для создания транзакций потребуется превысить установленный лимит на использование RAM и CPU.
Если вы столкнетесь с ошибками или трудностями, пожалуйста, дайте нам знать. В будущем мы планируем уменьшить расход ресурсов RAM/CPU, а также выпустить версии для других операционных систем.
Апгрейды?
Если вы уже пользовались альфа/бета версиями в тестовой сети, то вы должны убедиться, что ваш ~/.zcash/zcash.conf
не содержит настроек testnet=1
или addnode=betatestnet.z.cash
. Если у вас система на базе Debian, то для установки zcash можете воспользоваться инструкциями для Debian. В противном случае, можете воспользоваться этим снапшотом нашего кода:
git fetch origin
git checkout v1.0.3
./zcutil/fetch-params.sh
./zcutil/build.sh -j$(nproc)
Также удостоверьтесь, что директория ~/.zcash
сначала содержит только zcash.conf
.
Немного терминологии
Zcash поддерживает 2 вида адресов: z-addr (который начинается с буквы z) и t-addr (который начинается с буквы t). z-addr использует доказательство с нулевым разглашением и другие криптографические инструменты для защиты частной информации. t-addrs - это адреса по типу Bitcoin.
Требования
На данный момент системные требования таковы:
- Linux (проще всего на Debian)
- процессор 64-бит
- 4GB свободной памяти
Интерфейс представляет собой командную строку (zcash-cli
) и вызов удаленной процедуры (RPC). Об этом можно почитать здесь:
https://github.com/zcash/zcash/blob/v1.0.3/doc/payment-api.md
Безопасность
Перед установкой или запуском zcash просим вас ознакомиться с рекомендациями безопасности. Это можно сделать здесь:
https://z.cash/ru/support/security.html
Начинаем
Инструкции для операционных систем на Debian
Следуйте этим инструкциям: https://github.com/zcash/zcash/wiki/Debian-binary-packages
Как скомпилировать самостоятельно
Для дистрибутивов Ubuntu/Debian:
$ sudo apt-get install \
build-essential pkg-config libc6-dev m4 g++-multilib \
autoconf libtool ncurses-dev unzip git python \
zlib1g-dev wget bsdmainutils automake
Для Fedora:
$ sudo dnf install \
git pkgconfig automake autoconf ncurses-devel python wget \
gtest-devel gcc gcc-c++ libtool patch
Далее связываемся с удаленным репозиторием и запускаем fetch-params.sh
следующим образом:
$ git clone https://github.com/zcash/zcash.git
$ cd zcash/
$ git checkout v1.0.3
$ ./zcutil/fetch-params.sh
Таким образом мы извлечем наши ключи Sprout для подтверждения и верификации (последние создаются во время генерации параметров Parameter Generation Ceremony), и поместим их в ~/.zcash-params/
. Эти ключи могут весить до 911Мб, так что придётся немного подождать пока они скачаются.
Если всплывет сообщение от git checkout
про "detached head" - это не ошибка, все идет нормально.
Сборка
Убедитесь, что вы успешно установили все зависимости системного пакета, как было описано выше. Далее начинаем компиляцию:
$ ./zcutil/build.sh -j$(nproc)
В результате должны скомпилироваться все зависимости и завершиться сборка zcashd
. (Обратите внимание: если у вас нет nproc
, то измените количество процессоров.)
Тестирование
Запуск тестирования займет некоторое время и может потребовать около 8Гб RAM. Вы можете пропустить тестирование и сразу же перейти к следующему разделу, если хотите. Но, если вы все же предпочитаете проверить правильность работы, то запустите следующую команду:
$ ./qa/zcash/full-test-suite.sh
Также вы можете протестировать RPC, что займет намного больше времени:
$ ./qa/pull-tester/rpc-tests.sh
Для успешного выполнения тестирования потребуется достаточно много памяти. При нехватки памяти появится сообщение об ошибке или невозможности выполнить операцию - ERROR или FAIL - и "std::bad_alloc".
Конфигурация
Создайте директорию ~/.zcash
и поместите файл с настройками конфигурации в ~/.zcash/zcash.conf
через следующие команды:
mkdir -p ~/.zcash
echo "addnode=mainnet.z.cash" >~/.zcash/zcash.conf
echo "rpcuser=username" >>~/.zcash/zcash.conf
echo "rpcpassword=`head -c 32 /dev/urandom | base64`" >>~/.zcash/zcash.conf
Обратите внимание, что любые настройки zcash.conf
, которые вы добавляли при использовании тестовой сети, будут переписаны. Вы можете оставить старые настройки zcash.conf
, но тогда вам надо убедиться, что они не содержат настройки testnet=1
и addnode=betatestnet.z.cash
; вместо них используйте addnode=mainnet.z.cash
. В целях безопасности мы настойчиво рекомендуем вам использовать рандомный пароль, чтобы избежать потенциально возможных рисков использования RPC интерфейса.
Настройка CPU майнинга
Для настройки CPU майнинга выполните следующие команды:
$ echo 'gen=1' >> ~/.zcash/zcash.conf
$ echo "genproclimit=$(nproc)" >> ~/.zcash/zcash.conf
Этот майнер не особо эффективен, но зато хорошо проверен. Чтобы использовать более эффективный, но не проверенный, запустите следующую команду:
$ echo 'equihashsolver=tromp' >> ~/.zcash/zcash.conf
Более подробно об этом написано в Mining-Guide.
Запуск Zcash:
Запускаем zcash!
$ ./src/zcashd
Чтобы процесс запуска происходил на заднем плане (чтобы скрыть экран запуска) используйте ./src/zcashd --daemon
.
Необходимо, чтобы после загрузки вы могли использовать вызов удаленной процедуры, или RPC. Это можно проверить следующим образом:
$ ./src/zcash-cli getinfo
ВНИМАНИЕ: если вы уже знакомы с RPC интерфейсом биткоина, то многие из этих вызовов можно использовать для пересылки ZEC между адресами t-addr
. Мы не поддерживаем функцию 'Accounts' (которую разработчики также не рекомендовали использовать в bitcoind
) - только пустая строка ""
может быть использована в качестве имени аккаунта.
ВНИМАНИЕ: Главный узел mainnet.z.cash также доступен через Tor zcmaintvsivr7pcn.onion.
Чтобы просмотреть, к каким пирам вы подключены, выполните:
$ ./src/zcash-cli getpeerinfo
Использование Zcash
Для начала Zcash надо приобрести. Это можно сделать на бирже, а также можно продать товар или услугу за ZEC. Безопасность приобретения Zcash не является темой данного документа, и все же, будьте бдительны. Остерегайтесь мошенников!
Генерация t-addr
Для начала сгенерируем t-addr.
$ ./src/zcash-cli getnewaddress
tb4oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1
Получение Zcash на адрес z-addr
Теперь сгенерируем z-addr:
$ ./src/zcash-cli z_getnewaddress
ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG
Так создается личный адрес, и при этом сохраняется ключ в локальную папку кошелька. Этот адрес вы даете отправителю.
Z-addr получается достаточно длинным и велика вероятность совершить в нем ошибку. Поэтому для избежания ошибок мы помещаем его таким образом:
$ ZADDR='ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG'
Чтобы увидеть все адреса, для которых у вас есть ключ, запустите эту команду:
$ ./src/zcash-cli z_listaddresses
Вы увидите что-то вроде этого:
[
"zta6qngiR3U7HxYopyTWkaDLwYBd83D5MT7Jb9gpgTzPLMZytzRbtdPP1Syv4RvRgHeoZrJWSask3DyfwXG9DGPMWMvX7aC",
"ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG"
]
Отлично! Теперь отправьте ваш z-addr отправителю. При проверке вы должны будете видеть происходящие транзакции:
$ ./src/zcash-cli z_listreceivedbyaddress "$ZADDR"
[
{
"txid" : "af1665b317abe538148114a45322f28151925501c081949cc7a5207ef21cb750",
"amount" : 1.23,
"memo" : "48656c6c6f20ceb2210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
]
Отправка коинов с вашего z-addr
Если кто-то дал вам свой z-addr...
$ FRIEND='ztcDe8krwEt1ozWmGZhBDWrcUfmK3Ue5D5z1f6u2EZLLCjQq7mBRkaAPb45FUH4Tca91rF4R1vf983ukR71kHyXeED4quGV'
Вы можете отправить ему 0.8 ZEC следующим образом…
$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.8, \"address\": \"$FRIEND\"}]"
Подождав минутку, вы можете проверить закончилась ли операция и есть ли у нее результат:
$ ./src/zcash-cli z_getoperationresult
[
{
"id" : "opid-4eafcaf3-b028-40e0-9c29-137da5612f63",
"status" : "success",
"creation_time" : 1473439760,
"result" : {
"txid" : "3b85cab48629713cc0caae99a49557d7b906c52a4ade97b944f57b81d9b0852d"
},
"execution_secs" : 51.64785629
}
]
Вопросы безопасности
Каждый релиз содержит ./doc/security-warnings.md
документ, в котором описываются вопросы безопасности, относящиеся к данному релизу. Самую последнюю версию этого документа вы найдете здесь:
https://github.com/zcash/zcash/blob/master/doc/security-warnings.md
Пожалуйста, не забывайте проверять нашу страничку посвященную безопасности на наличие новостей и уведомлений: