zcash-docs/ru/Sprout_User_Guide.md

263 lines
14 KiB
Markdown
Raw Permalink Normal View 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](https://github.com/zcash/zcash/wiki/Debian-binary-packages). В противном случае, можете воспользоваться этим снапшотом нашего кода:
```
git fetch origin
2016-12-13 12:11:37 -08:00
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). Об этом можно почитать здесь:
2016-12-13 12:11:37 -08:00
https://github.com/zcash/zcash/blob/v1.0.3/doc/payment-api.md
## Безопасность
Перед установкой или запуском zcash просим вас ознакомиться с рекомендациями безопасности. Это можно сделать здесь:
2016-12-13 11:59:09 -08:00
https://z.cash/ru/support/security.html
## Начинаем
### Инструкции для операционных систем на Debian
 Следуйте этим инструкциям: https://github.com/zcash/zcash/wiki/Debian-binary-packages
### Как скомпилировать самостоятельно
Для дистрибутивов Ubuntu/Debian:
```bash
$ 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:
```bash
$ sudo dnf install \
git pkgconfig automake autoconf ncurses-devel python wget \
gtest-devel gcc gcc-c++ libtool patch
```
Далее связываемся с удаленным репозиторием и запускаем `fetch-params.sh` следующим образом:
```bash
$ git clone https://github.com/zcash/zcash.git
$ cd zcash/
2016-12-13 12:11:37 -08:00
$ git checkout v1.0.3
$ ./zcutil/fetch-params.sh
```
Таким образом мы извлечем наши ключи Sprout для подтверждения и верификации (последние создаются во время генерации параметров [Parameter Generation Ceremony](https://github.com/zcash/mpc)), и поместим их в `~/.zcash-params/`. Эти ключи могут весить до 911Мб, так что придётся немного подождать пока они скачаются.
Если всплывет сообщение от ``git checkout`` про "detached head" - это не ошибка, все идет нормально.
#### Сборка
Убедитесь, что вы успешно установили все зависимости системного пакета, как было описано выше. Далее начинаем компиляцию:
```bash
$ ./zcutil/build.sh -j$(nproc)
```
В результате должны скомпилироваться все зависимости и завершиться сборка `zcashd`. (Обратите внимание: если у вас нет `nproc`, то измените количество процессоров.)
#### Тестирование
Запуск тестирования займет некоторое время и может потребовать около 8Гб RAM. Вы можете пропустить тестирование и сразу же перейти к следующему разделу, если хотите. Но, если вы все же предпочитаете проверить правильность работы, то запустите следующую команду:
```bash
$ ./qa/zcash/full-test-suite.sh
```
Также вы можете протестировать RPC, что займет намного больше времени:
```bash
$ ./qa/pull-tester/rpc-tests.sh
```
Для успешного выполнения тестирования потребуется достаточно много памяти. При нехватки памяти появится сообщение об ошибке или невозможности выполнить операцию - ERROR или FAIL - и "std::bad_alloc".
## Конфигурация
Создайте директорию `~/.zcash` и поместите файл с настройками конфигурации в `~/.zcash/zcash.conf` через следующие команды:
```bash
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  интерфейса](https://github.com/zcash/zcash/blob/master/doc/security-warnings.md#rpc-interface).
### Настройка CPU майнинга
Для настройки CPU майнинга выполните следующие команды:
```bash
$ echo 'gen=1' >> ~/.zcash/zcash.conf
$ echo "genproclimit=$(nproc)" >> ~/.zcash/zcash.conf
```
Этот майнер не особо эффективен, но зато хорошо проверен. Чтобы использовать более эффективный, но не проверенный, запустите следующую команду:
```bash
$ echo 'equihashsolver=tromp' >> ~/.zcash/zcash.conf
```
2016-12-13 12:01:40 -08:00
Более подробно об этом написано в [Mining-Guide](https://github.com/zcash/zcash-docs/blob/master/ru/Mining_Guide.md).
## Запуск Zcash:
Запускаем zcash!
```bash
$ ./src/zcashd
```
Чтобы процесс запуска происходил на заднем плане (чтобы скрыть экран запуска) используйте ``./src/zcashd --daemon``.
Необходимо, чтобы после загрузки вы могли использовать вызов удаленной процедуры, или RPC. Это можно проверить следующим образом:
```bash
$ ./src/zcash-cli getinfo
```
2016-12-13 11:59:09 -08:00
**ВНИМАНИЕ**: если вы уже знакомы с RPC интерфейсом биткоина, то многие из этих вызовов можно использовать для пересылки ZEC между адресами `t-addr`. Мы не поддерживаем функцию 'Accounts' (которую разработчики также не рекомендовали использовать в ``bitcoind``) - только пустая строка `""` может быть использована в качестве имени аккаунта.
**ВНИМАНИЕ**: Главный узел mainnet.z.cash также доступен через Tor zcmaintvsivr7pcn.onion.
Чтобы просмотреть, к каким пирам вы подключены, выполните:
```bash
$ ./src/zcash-cli getpeerinfo
```
## Использование Zcash
Для начала Zcash надо приобрести. Это можно сделать на бирже, а также можно продать товар или услугу за ZEC. Безопасность приобретения Zcash не является темой данного документа, и все же, будьте бдительны. Остерегайтесь мошенников!
### Генерация t-addr
Для начала сгенерируем t-addr.
```bash
$ ./src/zcash-cli getnewaddress
tb4oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1
```
### Получение Zcash на адрес z-addr
Теперь сгенерируем z-addr:
```bash
$ ./src/zcash-cli z_getnewaddress
ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG
```
Так создается личный адрес, и при этом сохраняется ключ в локальную папку кошелька. Этот адрес вы даете отправителю.
Z-addr получается достаточно длинным и велика вероятность совершить в нем ошибку. Поэтому для избежания ошибок мы помещаем его таким образом:
```bash
$ ZADDR='ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG'
```
Чтобы увидеть все адреса, для которых у вас есть ключ, запустите эту команду:
```bash
$ ./src/zcash-cli z_listaddresses
```
Вы увидите что-то вроде этого:
```json
[
"zta6qngiR3U7HxYopyTWkaDLwYBd83D5MT7Jb9gpgTzPLMZytzRbtdPP1Syv4RvRgHeoZrJWSask3DyfwXG9DGPMWMvX7aC",
"ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG"
]
```
Отлично! Теперь отправьте ваш z-addr отправителю. При проверке вы должны будете видеть происходящие транзакции:
```bash
$ ./src/zcash-cli z_listreceivedbyaddress "$ZADDR"
```
```json
[
{
"txid" : "af1665b317abe538148114a45322f28151925501c081949cc7a5207ef21cb750",
"amount" : 1.23,
"memo" : "48656c6c6f20ceb2210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
]
```
### Отправка коинов с вашего z-addr
Если кто-то дал вам свой z-addr...
```bash
$ FRIEND='ztcDe8krwEt1ozWmGZhBDWrcUfmK3Ue5D5z1f6u2EZLLCjQq7mBRkaAPb45FUH4Tca91rF4R1vf983ukR71kHyXeED4quGV'
```
Вы можете отправить ему 0.8 ZEC следующим образом…
```bash
$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.8, \"address\": \"$FRIEND\"}]"
```
Подождав минутку, вы можете проверить закончилась ли операция и есть ли у нее результат:
```bash
$ ./src/zcash-cli z_getoperationresult
```
```json
[
{
"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
Пожалуйста, не забывайте проверять нашу страничку посвященную безопасности на наличие новостей и уведомлений:
2016-12-13 11:59:09 -08:00
https://z.cash/ru/support/security.html