mirror of https://github.com/zcash/zcash-docs.git
ES, RU, ZH translations of User Guide, Mining Guide
This commit is contained in:
parent
d9b1192813
commit
5b91d9074f
|
@ -2,12 +2,13 @@
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[zcash-documents-other-assets-than-websiteblog.Sprout_User_Guide]
|
[zcash-documents-other-assets-than-websiteblog.Sprout_User_Guide]
|
||||||
|
file_filter = <lang>/Sprout_User_Guide.md
|
||||||
source_file = en/Sprout_User_Guide.md
|
source_file = en/Sprout_User_Guide.md
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = WIKI
|
type = WIKI
|
||||||
|
|
||||||
[zcash-documents-other-assets-than-websiteblog.Mining_Guide]
|
[zcash-documents-other-assets-than-websiteblog.Mining_Guide]
|
||||||
|
file_filter = <lang>/Mining_Guide.md
|
||||||
source_file = en/Mining_Guide.md
|
source_file = en/Mining_Guide.md
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = WIKI
|
type = WIKI
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
# Guía de Minado de Zcash
|
||||||
|
|
||||||
|
¡Bienvenidos! Esta guía está destinada a hacer que puedas minar Zcash, a.k.a. "ZEC", en el mainnet de Zcash. La unidad de medida para la minería es Sol/s (Soluciones por segundo).
|
||||||
|
|
||||||
|
Si encuentras algún problema, por favor háznoslo saber. Se necesita un montón de trabajo para hacer que esto sea utilizable y tus sugerencias nos ayudarán a dar antes prioridad a las incidencias potencialmente más dañinas. Para obtener ayuda de otros usuarios, te recomendamos usar nuestro foro:
|
||||||
|
|
||||||
|
https://forum.z.cash/
|
||||||
|
|
||||||
|
## Preparación
|
||||||
|
|
||||||
|
En primer lugar, debes configurar tu nodo Zcash local. Sigue los pasos de la [Guía del Usuario 1.0](1.0 User Guide) hasta el final de la sección "Compilación", luego vuelve aquí. (También puedes hacer la sección "Testear" si lo deseas!)
|
||||||
|
|
||||||
|
## Configuración
|
||||||
|
|
||||||
|
Configura tu nodo según [[1.0-User-Guide#configuration]], incluyendo la sección [Activación de la Minería de CPU](https://github.com/zcash/zcash/wiki/1.0-User-Guide#enabling-cpu-mining).
|
||||||
|
|
||||||
|
## Minado
|
||||||
|
|
||||||
|
Ahora, ¡comienza a Minar!
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd
|
||||||
|
```
|
||||||
|
|
||||||
|
Para ejecutarlo en segundo plano (sin la pantalla de métricas de nodo que normalmente se muestra):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd -daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
Deberías ver la siguiente salida en el registro de depuración (`~/.zcash/debug.log`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Zcash Miner started
|
||||||
|
```
|
||||||
|
|
||||||
|
¡Felicitaciones! Ahora estás minando en el mainnet.
|
||||||
|
|
||||||
|
### Gasto de las Recompensas de Minado
|
||||||
|
|
||||||
|
Las monedas se extraen en un t-addr, (una dirección transparente), pero sólo se pueden gastar en un z-addr (una dirección blindada). Consulta nuestra [Guía del usuario 1.0] (https://github.com/zcash/zcash/wiki/1.0-User-Guide) para obtener instrucciones sobre cómo utilizar el comando `z_sendmany` para enviar monedas desde un t-addr a un z-addr. Necesitarás al menos 4 GB de RAM para esta operación.
|
||||||
|
|
||||||
|
## Modificaciones
|
||||||
|
|
||||||
|
### Minar a una sola dirección
|
||||||
|
|
||||||
|
El minero interno `zcashd` utiliza una nueva dirección transparente para cada bloque minado. Si deseas en cambio utilizar la misma dirección para cada bloque minado, busca la siguiente línea en `src/miner.cpp` (en la función `ProcessBlockFound()`) y en `src/wallet/wallet.cpp` (en la función `CommitTransaction()`):
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
reservekey.KeepKey();
|
||||||
|
```
|
||||||
|
|
||||||
|
Elimina o transforma en comentario esa línea en ambos lugares.
|
||||||
|
|
||||||
|
### Utilizar transacciones P2PKH
|
||||||
|
|
||||||
|
El minero interno `zcashd` heredado de Bitcoin utiliza P2PK para transacciones de coinbase. La tendencia en el blockchain de Bitcoin ha sido de usar en su lugar P2PKH; estamos considerando [cambiar el minero interno para usar P2PKH] (https://github.com/zcash/zcash/issues/945), pero no para la versión 1.0.
|
||||||
|
|
||||||
|
Si deseas utilizar P2PKH para tus transacciones de coinbase, busca la siguiente línea en `src/miner.cpp` (en la función `CreateNewBlockWithKey()`):
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << ToByteVector(pubkey) << OP_CHECKSIG;
|
||||||
|
```
|
||||||
|
|
||||||
|
Cámbiala a:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << OP_DUP << OP_HASH160 << ToByteVector(pubkey.GetID()) << OP_EQUALVERIFY << OP_CHECKSIG;
|
||||||
|
```
|
|
@ -0,0 +1,264 @@
|
||||||
|
# Guía Zcash 1.0 "Brote"
|
||||||
|
|
||||||
|
¡Bienvenidos! Esta guía está destinada a que puedas utilizar la red oficial de Zcash. Zcash tiene actualmente algunas limitaciones: sólo soporta oficialmente Linux, requiere 64 bits, y en algunas situaciones requiere mucha memoria y consumo de CPU para crear transacciones.
|
||||||
|
|
||||||
|
Por favor, háznoslo saber si te encuentras con algún problema. Tenemos previsto hacer que funcione con un uso menos intensivo de memoria y CPU y que soporte más arquitecturas de computadoras y sistemas operativos en el futuro.
|
||||||
|
|
||||||
|
## ¿Actualizar?
|
||||||
|
|
||||||
|
Si estabas participando en nuestros testnets alfa/beta/rc, asegúrate de que tu `~/.zcash/zcash.conf` no contenga `testnet=1` o `addnode=betatestnet.z.cash`. Si estás utilizando una distribución basada en Debian, puedes seguir las [instrucciones para Debian] (https://github.com/zcash/zcash/wiki/Debian-binary-packages) para instalar zcash en tu sistema. De lo contrario, puedes actualizar tu instantánea local de nuestro código:
|
||||||
|
|
||||||
|
```
|
||||||
|
git fetch origin
|
||||||
|
git checkout v1.0.1
|
||||||
|
./zcutil/fetch-params.sh
|
||||||
|
./zcutil/build.sh -j$(nproc)
|
||||||
|
```
|
||||||
|
|
||||||
|
También asegúrate de que tu directorio ``~/.zcash`` sólo contiene ``zcash.conf`` para empezar.
|
||||||
|
|
||||||
|
## Una nota rápida sobre terminología
|
||||||
|
|
||||||
|
Zcash admite dos tipos diferentes de direcciones. Una _z-addr_, o 'dirección z' (que comienza con una **z**) es una dirección que utiliza pruebas de conocimiento-cero y otros cifrados para proteger la privacidad del usuario. También hay _t-addrs_, o 'direcciones t' (que comienzan con una **t**) que son similares a las direcciones de Bitcoin.
|
||||||
|
|
||||||
|
## Requisitos
|
||||||
|
|
||||||
|
Actualmente, necesitarás:
|
||||||
|
|
||||||
|
* Linux (preferentemente una distribución basada en Debian)
|
||||||
|
* 64-bits
|
||||||
|
* 4 GB de memoria disponible
|
||||||
|
|
||||||
|
Las interfaces son un cliente de línea de comandos (`zcash-cli`) y una interfaz de Llamada de Procedimiento Remoto (RPC, por sus siglas en inglés), que se documenta aquí:
|
||||||
|
|
||||||
|
https://github.com/zcash/zcash/blob/v1.0.1/doc/payment-api.md
|
||||||
|
|
||||||
|
## Seguridad
|
||||||
|
|
||||||
|
Antes de instalar, actualizar o ejecutar zcash, asegúrate de haber chequeado cualquier problema de seguridad. Visita nuestra página de seguridad:
|
||||||
|
|
||||||
|
https://z.cash/support/security.html
|
||||||
|
|
||||||
|
## Comenzar
|
||||||
|
|
||||||
|
### Sistemas operativos basados en Debian
|
||||||
|
|
||||||
|
Sigue las instrucciones aquí: https://github.com/zcash/zcash/wiki/Debian-binary-packages
|
||||||
|
|
||||||
|
### Compílalo tu mismo
|
||||||
|
|
||||||
|
En sistemas basados en 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
|
||||||
|
```
|
||||||
|
|
||||||
|
En sistemas basados en Fedora:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo dnf install \
|
||||||
|
git pkgconfig automake autoconf ncurses-devel python wget \
|
||||||
|
gtest-devel gcc gcc-c++ libtool patch
|
||||||
|
```
|
||||||
|
|
||||||
|
Busca nuestro repositorio con git y ejecuta `fetch-params.sh` de esta manera:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://github.com/zcash/zcash.git
|
||||||
|
$ cd zcash/
|
||||||
|
$ git checkout v1.0.1
|
||||||
|
$ ./zcutil/fetch-params.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Esto buscará nuestras claves de comprobación y verificación para 'Brote' (las últimas creadas en la [Ceremonia de Generación de Parámetros](https://github.com/zcash/mpc)), y las colocará en `~/.zcash-params/`. Estas claves tienen un tamaño de un poco menos de 911 MB, por lo que puede tomar algún tiempo descargarlas.
|
||||||
|
|
||||||
|
El mensaje impreso por ``git checkout`` sobre un "detached head" es normal y no indica un problema.
|
||||||
|
|
||||||
|
#### Compilación
|
||||||
|
|
||||||
|
Asegúrate de que has instalado correctamente todas las dependencias de paquetes de sistema como fue descrito anteriormente. A continuación, ejecuta la compilación, por ejemplo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./zcutil/build.sh -j$(nproc)
|
||||||
|
```
|
||||||
|
|
||||||
|
Esto debería compilar nuestras dependencias y crear `zcashd`. (Nota: si no tienes `nproc`, sustituye el número de tus procesadores.)
|
||||||
|
|
||||||
|
#### Testeo
|
||||||
|
|
||||||
|
Las pruebas tardan un tiempo en correr y pueden requerir hasta 8 GB de RAM. Si prefieres empezar de inmediato, puedes pasar a la siguiente sección. Si deseas ejecutar las pruebas para asegurarte de que Zcash está funcionando, ejecuta:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./qa/zcash/full-test-suite.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
También puedes ejecutar las pruebas RPC, que tardan mucho más:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./qa/pull-tester/rpc-tests.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Las pruebas necesitan mucha memoria para ejecutarse correctamente. Un error de falta de memoria usualmente causará un resultado FAIL o ERROR con "std::bad_alloc" en alguna parte del informe.
|
||||||
|
|
||||||
|
## Configuración
|
||||||
|
|
||||||
|
Crea el directorio `~/.zcash` y agrega un archivo de configuración en `~/.zcash/zcash.conf` utilizando los siguientes comandos:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
Ten en cuenta que esto sobrescribirá cualquier configuración `zcash.conf` que puedas haber agregado de testnet. Puedes conservar un `zcash.conf` de testnet, pero asegúrate de que los parámetros `testnet=1` y `addnode=betatestnet.z.cash` sean eliminados; utiliza en su lugar `addnode=mainnet.z.cash`. Te recomendamos firmemente que utilices una contraseña aleatoria para evitar [posibles problemas de seguridad con acceso a la interfaz RPC](https://github.com/zcash/zcash/blob/master/doc/security-warnings.md#rpc-interface).
|
||||||
|
|
||||||
|
### Habilitar el minado de CPU:
|
||||||
|
|
||||||
|
Si quieres habilitar el minado de CPU, ejecuta estos comandos:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ echo 'gen=1' >> ~/.zcash/zcash.conf
|
||||||
|
$ echo "genproclimit=$(nproc)" >> ~/.zcash/zcash.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
El minero por defecto no es eficiente, pero ha sido bien revisado. Para utilizar un solver mucho más eficiente pero no revisado, puedes ejecutar este comando:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ echo 'equihashsolver=tromp' >> ~/.zcash/zcash.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Nota, probablemente quieras leer la [[Guía de Minado]] para obtener más detalles sobre el minado.
|
||||||
|
|
||||||
|
## Ejecutar Zcash:
|
||||||
|
|
||||||
|
Ahora, ejecuta zcashd!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd
|
||||||
|
```
|
||||||
|
|
||||||
|
Para ejecutarlo en segundo plano (sin la pantalla de métricas de nodo que se muestra normalmente) usa ``./src/zcashd --daemon``.
|
||||||
|
|
||||||
|
Deberías poder utilizar el RPC después de que termine de cargar. Aquí está una manera rápida de probar:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
**NOTA**: Si estás familiarizado con la interfaz RPC de bitcoind, puedes utilizar muchas de esas llamadas para enviar ZEC entre direcciones `t-addr`. No admitimos la función 'Cuentas' (que también ha sido despreciada en``bitcoind``) —sólo el string vacío ``""`` puede ser utilizado como nombre de cuenta.
|
||||||
|
|
||||||
|
**NOTA**: El nodo principal de la red en mainnet.z.cash también es accesible a través del servicio oculto Tor en zcmaintvsivr7pcn.onion.
|
||||||
|
|
||||||
|
Para ver los pares a los que estás conectado:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getpeerinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Utilizar Zcash
|
||||||
|
|
||||||
|
En primer lugar, deseas obtener dinero Zcash. ¡Puedes comprarlo de un cambio, de otros usuarios, o vender mercancías y servicios por ZEC! Cómo exactamente obtener Zcash (con seguridad) escapa al alcance de este documento, pero deberías tener cuidado. ¡Evita las estafas!
|
||||||
|
|
||||||
|
### Generar un t-addr
|
||||||
|
|
||||||
|
Empecemos por generar un t-addr.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getnewaddress
|
||||||
|
tb4oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Recibir Zcash con un z-addr
|
||||||
|
|
||||||
|
Ahora generemos un z-addr.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli z_getnewaddress
|
||||||
|
ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG
|
||||||
|
```
|
||||||
|
|
||||||
|
Esto crea una dirección privada y almacena su clave en tu archivo de billetera local. ¡Entrega esta dirección al remitente!
|
||||||
|
|
||||||
|
Un z-addr es bastante grande, por lo que es fácil cometer errores. Vamos a ponerlo en una variable de entorno para evitar errores:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ZADDR='ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG'
|
||||||
|
```
|
||||||
|
|
||||||
|
Para obtener una lista de todas las direcciones de tu billetera para las que tienes una clave de gasto, ejecuta este comando:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli z_listaddresses
|
||||||
|
```
|
||||||
|
|
||||||
|
Deberías ver algo como:
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
"zta6qngiR3U7HxYopyTWkaDLwYBd83D5MT7Jb9gpgTzPLMZytzRbtdPP1Syv4RvRgHeoZrJWSask3DyfwXG9DGPMWMvX7aC",
|
||||||
|
"ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
¡Genial! Ahora envía tu z-addr al remitente. Deberías eventualmente ver su transacción al chequear:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli z_listreceivedbyaddress "$ZADDR"
|
||||||
|
```
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"txid" : "af1665b317abe538148114a45322f28151925501c081949cc7a5207ef21cb750",
|
||||||
|
"amount" : 1.23,
|
||||||
|
"memo" : "48656c6c6f20ceb2210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Enviar dinero con tu z-addr
|
||||||
|
|
||||||
|
Si alguien te pasa su z-addr...
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ FRIEND='ztcDe8krwEt1ozWmGZhBDWrcUfmK3Ue5D5z1f6u2EZLLCjQq7mBRkaAPb45FUH4Tca91rF4R1vf983ukR71kHyXeED4quGV'
|
||||||
|
```
|
||||||
|
|
||||||
|
Puedes enviar 0,8 ZEC haciendo...
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.8, \"address\": \"$FRIEND\"}]"
|
||||||
|
```
|
||||||
|
|
||||||
|
Después de esperar alrededor de un minuto, puedes comprobar si la operación ha terminado y ha producido un resultado:
|
||||||
|
```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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Problemas de Seguridad Conocidos
|
||||||
|
|
||||||
|
Cada versión contiene un documento `./doc/security-warnings.md` describiendo los problemas de seguridad que sabemos que afectan a esa versión. Puedes encontrar la versión más reciente de este documento aquí:
|
||||||
|
|
||||||
|
https://github.com/zcash/zcash/blob/master/doc/security-warnings.md
|
||||||
|
|
||||||
|
Consulta también nuestra página de seguridad para ver las notificaciones recientes y otros contenidos:
|
||||||
|
|
||||||
|
https://z.cash/support/security.html
|
||||||
|
|
||||||
|
https://z.cash/support/security.html
|
|
@ -0,0 +1,67 @@
|
||||||
|
# Руководство по майнингу Zcash
|
||||||
|
|
||||||
|
Добро пожаловать! Это руководство расскажет вам, как начать майнить Zcash, также называемых "ZEC", в основной сети Zcash. Скорость майнинга измеряется в реш/с (решений в секунду).
|
||||||
|
|
||||||
|
Если вы сталкиваетесь с препятствиями, пожалуйста, сообщите нам. Предстоит немало работы, чтобы сделать всё удобным и ваш отклик поможет нам расположить по приоритетам и в первую очередь начать сглаживать наиболее острые углы. Для помощи пользователю мы рекомендуем использовать наш форум:
|
||||||
|
|
||||||
|
https://forum.z.cash/
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
Во-первых, вам нужно настроить свой локальный узел Zcash. Следуйте [1.0 руководству пользователя] (1.0 руководство пользователя) до конца раздела "Компилирование", затем вернитесь сюда. (Вы можете использовать секцию "Тестирование", если хотите!)
|
||||||
|
|
||||||
|
## Конфигурация
|
||||||
|
|
||||||
|
Сконфигурируйте свой узел согласно [[1.0-User-Guide#configuration]], включая раздел [доступность майнинга на CPU] (https://github.com/zcash/zcash/wiki/1.0-User-Guide#enabling-cpu-mining).
|
||||||
|
|
||||||
|
## Майнинг
|
||||||
|
|
||||||
|
Сейчас начните майнинг!
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd
|
||||||
|
|
||||||
|
Для запуска в фоновом режиме (без экрана параметров узла, который обычно отображается):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd -daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
Вы должны увидеть следующие данные в журнале отладки (`~/.zcash/debug.log`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Майнер Zcash стартовал
|
||||||
|
```
|
||||||
|
|
||||||
|
Поздравляем! Сейчас вы майните в основной сети.
|
||||||
|
|
||||||
|
### Расходование Вознаграждения Майнеров
|
||||||
|
|
||||||
|
Монеты майнятся на t-адрес (прозрачный адрес), но могут быть потрачены только на z-адрес (скрытый адрес). Сошлёмся на наше [1.0 руководство пользователя] (https://github.com/zcash/zcash/wiki/1.0-User-Guide) для инструкций, как использовать команду `z_sendmany` , чтобы переслать монеты с t-адреса на z-адрес. Вам потребуется как минимум 4 гигабайта оперативной памяти RAM для этой операции.
|
||||||
|
|
||||||
|
## Модификации
|
||||||
|
|
||||||
|
### Как майнить на отдельный адрес
|
||||||
|
|
||||||
|
Внутренний майнер `zcashd` использует новый прозрачный адрес для каждого намайненного блока. Если вы хотите использовать один и тот же адрес для каждого намайненного блока, найдите эти строки в `src/miner.cpp` (в функции `ProcessBlockFound()`) и `src/wallet/wallet.cpp` (в функции `CommitTransaction()`):
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
reservekey.KeepKey();
|
||||||
|
```
|
||||||
|
|
||||||
|
Удалите или закомментируйте эту строку в обеих местах.
|
||||||
|
|
||||||
|
### Использование транзакций P2PKH
|
||||||
|
|
||||||
|
Внутренний майнер `zcashd`, унаследованный от Биткоина, использует P2PK для транзакций coinbase. Сейчас есть тенденция использовать в блокчейне Биткоина P2PKH вместо этого; мы рассматриваем [изменение внутреннего майнера для использования P2PKH] (https://github.com/zcash/zcash/issues/945), но не для 1.0 релиза.
|
||||||
|
|
||||||
|
Если вы хотите использовать P2PKH для ваших транзакций coinbase, найдите следующую строку в `src/miner.cpp` (в функции `CreateNewBlockWithKey()`):
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << ToByteVector(pubkey) << OP_CHECKSIG;
|
||||||
|
```
|
||||||
|
|
||||||
|
Поменяйте это на:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << OP_DUP << OP_HASH160 << ToByteVector(pubkey.GetID()) << OP_EQUALVERIFY << OP_CHECKSIG;
|
||||||
|
```
|
|
@ -0,0 +1,262 @@
|
||||||
|
# Гид по установке 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.1
|
||||||
|
./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.1/doc/payment-api.md
|
||||||
|
|
||||||
|
## Безопасность
|
||||||
|
|
||||||
|
Перед установкой или запуском zcash просим вас ознакомиться с рекомендациями безопасности. Это можно сделать здесь:
|
||||||
|
|
||||||
|
https://z.cash/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.1
|
||||||
|
$ ./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]].
|
||||||
|
|
||||||
|
## Запуск 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/support/security.html
|
|
@ -0,0 +1,68 @@
|
||||||
|
# Zcash 挖矿指南
|
||||||
|
|
||||||
|
欢迎大家!这篇指南是为大家介绍如何在 Zcash 的主网络进行 Zcash 挖矿,a.k.a. "ZEC"。挖矿的单位是 Sol/s (解决方案每秒)。
|
||||||
|
|
||||||
|
如果您遇到障碍,请联系我们。在真正让这项技术便于大家使用之前还有很多工作需要完成,您所提供的信息,将有助于我们发现我们产品的薄弱环节。用户支持,我们推荐使用我们的论坛:
|
||||||
|
|
||||||
|
https://forum.z.cash/
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
首先,您需要搭建您本地的 Zcash 节点。请按照 [1.0 用户指导](1.0 用户指导) 中,从开头到 "编译"的章节,按步进行操作,之后再回到这里。(您同样可以进入"测试"环节,如果您需要的话!)
|
||||||
|
|
||||||
|
## 配置
|
||||||
|
|
||||||
|
按照 [[1.0-User-Guide#configuration]] 中的提示,配置您的节点,包括以下章节的内容, [使能 CPU 挖矿] (https://github.com/zcash/zcash/wiki/1.0-User-Guide#enabling-cpu-mining).
|
||||||
|
|
||||||
|
## 挖矿
|
||||||
|
|
||||||
|
现在,开启挖矿!
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd
|
||||||
|
```
|
||||||
|
|
||||||
|
想要在后台运行程序 (并没有通常可见的节点指示屏幕)。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd -daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
您应该在调试日志中看到以下的输出(`~/.zcash/debug.log`):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Zcash Miner started
|
||||||
|
```
|
||||||
|
|
||||||
|
恭喜你!你现在已经在 Zcash 主网中运行了挖矿程序。
|
||||||
|
|
||||||
|
### 花费挖矿收益
|
||||||
|
|
||||||
|
币被挖到了一个 t-addr (透明地址), 但是只能发送到 z-addr(隐私地址)。参考我们 [1.0 用户指导](https://github.com/zcash/zcash/wiki/1.0-User-Guide),来了解如何使用 `z_sendmany` 命令和如何从 t-addr 发送货币到 z-addr. 你需要至少 4 GB 的 RAM 来运行这些功能。
|
||||||
|
|
||||||
|
## 修饰
|
||||||
|
|
||||||
|
### 挖掘并发币到一个单独地址
|
||||||
|
|
||||||
|
在 `zcashd`_ 挖矿程序内部,对于每一个被挖掘出的区块都使用一个新的透明地址。如果你向对于每个被挖掘出的区块,使用同样的地址,请找到以下函数进行设置,`src/miner.cpp` (在以下函数中 `ProcessBlockFound()`) 和 `src/wallet/wallet.cpp` (在以下函数中 `CommitTransaction()`):
|
||||||
|
|
||||||
|
``cpp
|
||||||
|
reservekey.KeepKey();
|
||||||
|
```
|
||||||
|
|
||||||
|
在以上两个函数中去掉或注释掉以上的命令。
|
||||||
|
|
||||||
|
### 使用 P2PKH 交易
|
||||||
|
|
||||||
|
在 `zcashd`_ 挖矿程序中,继承了比特币对于货币库交易使用的 P2PK。随着之后的发展,比特币区块链使用了 P2PKH 代替了 P2PK;我们已经考虑了[修改内部挖矿程序来使用 P2PKH] (https://github.com/zcash/zcash/issues/945),但目前没有包涵在 1.0 版本中。
|
||||||
|
|
||||||
|
如果你想使用 P2PKH 来进行您的货币库交易,请查看以下命令 `src/miner.cpp` (在函数 `CreateNewBlockWithKey()` 中):
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << ToByteVector(pubkey) << OP_CHECKSIG;
|
||||||
|
```
|
||||||
|
|
||||||
|
将其修改为:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
CScript scriptPubKey = CScript() << OP_DUP << OP_HASH160 << ToByteVector(pubkey.GetID()) << OP_EQUALVERIFY << OP_CHECKSIG;
|
||||||
|
```
|
|
@ -0,0 +1,263 @@
|
||||||
|
# Zcash 1.0 "发芽" 版本指南
|
||||||
|
|
||||||
|
欢迎!这个指导的意图是让你学会运行 Zcash 的官方网络。Zcash 当前有一些局限性:它仅支持 Linux 系统,并且需要 64 位系统,在某些情况下它需要大量的存储空间和 CPU 计算来创造交易。
|
||||||
|
|
||||||
|
如果你遇到困难,请告诉我们。我们计划在未来改进我们的软件,让它不需要如此高的存储空间和 CPU 算力,并且运行在更多的系统上。
|
||||||
|
|
||||||
|
## 软件升级?
|
||||||
|
|
||||||
|
如果你曾经在测试网络上使用过 alpha/beta/rc 等版本,请确保你的 `~/.zcash/zcash.conf` 中并没有包涵 `testnet=1` 或是 `addnode=betatestnet.z.cash` 。如果你使用的是基于 Debian 的分发机制,你可以参考 [Debian 指导](https://github.com/zcash/zcash/wiki/Debian-binary-packages) 来在你的系统上安装 Zcash。另外,你可以升级您本地对于我们代码的快照:
|
||||||
|
|
||||||
|
```
|
||||||
|
git fetch origin
|
||||||
|
git checkout v1.0.1
|
||||||
|
./zcutil/fetch-params.sh
|
||||||
|
./zcutil/build.sh -j$(nproc)
|
||||||
|
```
|
||||||
|
|
||||||
|
同时,请确保您的 ``~/.zcash`` 目录仅含有 ``zcash.conf`` 的开头。
|
||||||
|
|
||||||
|
## 一个关于术语的快速笔记
|
||||||
|
|
||||||
|
Zcash 支持两种不同的地址,一个 _z-addr_ (以 **z**作为开头) 的地址,使用了零知识证明和其他密码学工具来保护用户隐私。同样有 _t-addrs_ (以**t**作为开头)的地址,这些第一与比特币地址用法相同。
|
||||||
|
|
||||||
|
## 需要
|
||||||
|
|
||||||
|
目前,你将会需要:
|
||||||
|
|
||||||
|
* Linux 系统 (具备基于 Debian 的分布式工具)
|
||||||
|
* 64 位
|
||||||
|
* 4GB 空余存储空间
|
||||||
|
|
||||||
|
目前的界面是命令行客户端 (`zcash-cli`) 和远程过程调用(RPC)接口,它们被记录在这里:
|
||||||
|
|
||||||
|
https://github.com/zcash/zcash/blob/v1.0.1/doc/payment-api.md
|
||||||
|
|
||||||
|
## 安全性
|
||||||
|
|
||||||
|
在安装,升级或运行 Zcash 之前,请确认你已经检查安全性问题。请查看安全页面:
|
||||||
|
|
||||||
|
https://z.cash/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
|
||||||
|
```
|
||||||
|
|
||||||
|
通过使用 git 或运行 `fetch-params.sh`, 来获取我们的程序库:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://github.com/zcash/zcash.git
|
||||||
|
$ cd zcash/
|
||||||
|
$ git checkout v1.0.1
|
||||||
|
$ ./zcutil/fetch-params.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
这将抓取我们发芽版本的验证密钥(最终的版本被建立在[参数生成仪式](https://github.com/zcash/mpc)),并已经把它们放入 `~/.zcash-params/`。这些密钥大约占用 911 MB 存储空间,因此下载它们需要一些时间。
|
||||||
|
|
||||||
|
这些由 ``git checkout`` 印制的信息是关于"分离的文件头部",这些是正常的,并不指明存在问题。
|
||||||
|
|
||||||
|
#### 建造
|
||||||
|
|
||||||
|
确保您已经完整安装了以上提到的所有系统补丁包。之后运行构建程序,比如:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./zcutil/build.sh -j$(nproc)
|
||||||
|
```
|
||||||
|
|
||||||
|
这样做会编译我们的从属文件,并建造 `zcashd`。(注意:如果你没有 `nproc`,那么需要代替你的处理器数量。)
|
||||||
|
|
||||||
|
#### 测试
|
||||||
|
|
||||||
|
这项测试需要运行一段时间,也许会需要 8 GB 的 RAM。如果你想立即开始,你可以跳至下面的章节。如果你想要运行测试来验证 Zcash 的网络正在工作,请运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./qa/zcash/full-test-suite.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
你同样可以运行 RPC 测试,那样做会花的时间更长一点:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./qa/pull-tester/rpc-tests.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
这项测试需要许多存储器运行正确。内存不足的错误通常会导致失败或错误出现,同时在输出中出现 "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
|
||||||
|
```
|
||||||
|
|
||||||
|
注意,你也许想要阅读 [[挖矿指导]] 来了解更多挖矿的细节。
|
||||||
|
|
||||||
|
## 运行 Zcash:
|
||||||
|
|
||||||
|
现在,运行 zcashd!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcashd
|
||||||
|
```
|
||||||
|
|
||||||
|
想要在后台运行程序 (并没有通常可见的节点指示屏幕),可以使用 ``./src/zcashd --daemon``。
|
||||||
|
|
||||||
|
你可以在 RPC 加载完毕后使用它。以下是一个快速测试它的方法:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
**注意**: 如果你对于比特币的 RPC 接口熟悉,你可以使用很多其中的命令来在 `t-addr` 的地址之间发送 ZEC。我们并不支持 '账户' 特性(这项功能同样被 ``bitcoind`` 所启用) — 仅仅空串 ``""`` 可以命名一个账户。
|
||||||
|
|
||||||
|
**注意**: 在 mainnet.z.cash 的主网节点同样可以通过 Tor 的隐藏服务 zcmaintvsivr7pcn.onion 所访问。
|
||||||
|
|
||||||
|
想要看到你链接到的节点:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getpeerinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
## 使用 Zcash
|
||||||
|
|
||||||
|
第一,如果你想要得到 Zcash ,你可以从交易所、普通用户或服务供应商处购买。如果(安全地)得到 Zcash,并不在本文的讨论范畴,但你需要保持警惕。避免被骗!
|
||||||
|
|
||||||
|
### 生成一个 t-addr
|
||||||
|
|
||||||
|
让我们首先生成一个 t-addr。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./src/zcash-cli getnewaddress
|
||||||
|
tb4oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1
|
||||||
|
```
|
||||||
|
|
||||||
|
### 使用 z-addr 接收 Zcash
|
||||||
|
|
||||||
|
现在,让我们生成一个 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\"}]"
|
||||||
|
```
|
||||||
|
|
||||||
|
在等待了大约 1 分钟之后,你可以查看进程是否结束,预期的结果是:
|
||||||
|
```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/support/security.html
|
Loading…
Reference in New Issue