mirror of https://github.com/zcash/zcash-docs.git
263 lines
14 KiB
Markdown
263 lines
14 KiB
Markdown
# Гид по установке 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
|
||
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:
|
||
|
||
```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/
|
||
$ 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
|
||
```
|
||
|
||
Более подробно об этом написано в [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
|
||
```
|
||
|
||
**ВНИМАНИЕ**: если вы уже знакомы с 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
|
||
|
||
Пожалуйста, не забывайте проверять нашу страничку посвященную безопасности на наличие новостей и уведомлений:
|
||
|
||
https://z.cash/ru/support/security.html
|