zcash-docs/ru/Sprout_User_Guide.md

14 KiB
Raw Permalink Blame History

Гид по установке 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

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

https://z.cash/ru/support/security.html