10 KiB
Guia Zcash 1.0 "Sprout"
Bem vindo! Este guia destina-se a colocá-lo em execução na rede oficial da Zcash. A Zcash atualmente tem algumas limitações: ele só suporta oficialmente o Linux, requer 64 bits e em algumas situações requer muita memória e consumo de CPU para criar transações.
Por favor, deixe-nos saber se você executar em snags. Planejamos melhorar a eficiência de memória/CPU menos intenso e adicionar suporte de mais arquiteturas e sistemas operacionais no futuro.
Atualizando?
Se você estava rodando com nossos testnets alpha/beta/rc, certifique-se de que seu ~/.zcash/zcash.confnão contém
testnet=1ou
addnode=betatestnet.z.cash`. Se você estiver usando uma distribuição baseada em Debian, siga as instruções do Debian para instalar a zcash em seu sistema. Caso contrário, você pode atualizar seu snapshot local do nosso código:
git fetch origin
git checkout v1.0.1
./zcutil/fetch-params.sh
./zcutil/build.sh -j$(nproc)
Certifique-se também de que seu diretório ~/.zcash
contém somente zcash.conf
para começar.
Uma nota rápida sobre a terminologia
Zcash suporta dois tipos diferentes de endereços, um z-addr (que começa com um z) que é um endereço que usa provas de conhecimento-nulo e outra criptografia para proteger a privacidade do usuário. Existem também os t-addrs (que começam com um t) que são semelhantes aos endereços do Bitcoin.
Requisitos
Atualmente, você precisará:
- Linux (mais fácil com uma distribuição baseada em Debian)
- 64-bit
- 4GB de memória livre
As interfaces são um cliente de linha de comando (zcash-cli
) e uma interface Remote Procedure Call (RPC), que está documentada aqui:
https://github.com/zcash/zcash/blob/v1.0.1/doc/payment-api.md
Segurança
Antes de instalar, atualizar ou executar a zcash, certifique-se de verificar se há problemas de segurança. Consulte a nossa página Segurança:
https://z.cash/support/security.html
Vamos começar
Sistemas operacionais baseados em Debian
Siga as instruções aqui: https://github.com/zcash/zcash/wiki/Debian-binary-packages
Compile você mesmo
Em sistemas baseados em 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
Em sistemas baseados em Fedora:
$ sudo dnf install \
git pkgconfig automake autoconf ncurses-devel python wget \
gtest-devel gcc gcc-c++ libtool patch
Procure nosso repositório com o git e execute fetch-params.sh
assim:
$ git clone https://github.com/zcash/zcash.git
$ cd zcash/
$ git checkout v1.0.1
$ ./zcutil/fetch-params.sh
Isto irá buscar as nossas chaves de provas e verificação do Sprout (as últimas criadas na [Cerimônia de Geração de Parâmetros] (https://github.com/zcash/mpc)), e colocá-las em ~/.zcash-params/
. Essas chaves têm pouco menos de 911MB de tamanho, portanto, pode levar algum tempo para fazer o download delas.
A mensagem impressa pelo git checkout
sobre uma "cabeça destacada" é normal e não indica um problema.
Build
Certifique-se de ter instalado com êxito todas as dependências do pacote do seu sistema, conforme descrito acima. Em seguida, execute a compilação, por exemplo:
$ ./zcutil/build.sh -j$(nproc)
Isso deve compilar nossas dependências e montar o zcashd
. (Nota: se você não tiver nproc
, então substitua o número de seus processadores.)
Testando
Os testes levam um tempo para ser executado e podem exigir até 8GB de RAM. Se você preferir começar imediatamente, você pode pular para a próxima seção. Se você quiser executar os testes para certificar-se de que a Zcash está funcionando, execute:
$ ./qa/zcash/full-test-suite.sh
Você também pode executar os testes RPC, que levam muito mais tempo:
$ ./qa/pull-tester/rpc-tests.sh
Os testes precisam de muita memória para serem executados com êxito. Um erro de falta de memória geralmente causará um resultado FAIL ou ERROR com "std::bad_alloc" em algum momento na saída.
Configurando
Crie o diretório ~/.zcash
e coloque um arquivo de configuração em ~/.zcash/zcash.conf
usando os seguintes comandos:
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
Note que isso irá substituir quaisquer configurações do zcash.conf
que você possa ter adicionado do testnet. Você pode manter um zcash.conf
de testnet, mas certifique-se de que as configurações testnet=1
e addnode=betatestnet.z.cash
sejam removidas; use addnode=mainnet.z.cash
em vez disso. É altamente recomendável que você use uma senha aleatória para evitar [potenciais problemas de segurança com acesso à interface RPC] (https://github.com/zcash/zcash/blob/master/doc/security-warnings.md#rpc-interface).
Ativando a mineração por CPU:
Se você quiser ativar a mineração por CPU, execute estes comandos:
$ echo 'gen=1' >> ~/.zcash/zcash.conf
$ echo "genproclimit=$(nproc)" >> ~/.zcash/zcash.conf
O minerador padrão não é eficiente, mas tem sido bem revisto. Para usar um minerador muito mais eficiente, mas não revisado, você pode executar este comando:
$ echo 'equihashsolver=tromp' >> ~/.zcash/zcash.conf
Note, você provavelmente quer ler o Mining-Guide para aprender mais detalhes de mineração.
Rodando a Zcash:
Agora, executar o zcashd!
$ ./src/zcashd
Para executá-lo em background (sem a tela de métricas de node exibida normalmente), use ./src/zcashd --daemon
.
Você deve ser capaz de usar o RPC depois que ele termina de carregar. Aqui está uma maneira rápida de testar:
$ ./src/zcash-cli getinfo
NOTA: Se você estiver familiarizado com a interface RPC do bitcoind, você pode usar muitas dessas chamadas para enviar a ZEC entre endereços t-addr
. Não suportamos o recurso 'Contas' (que também foi depreciado em bitcoind
) - somente a string vazia ""
pode ser usada como um nome de conta.
NOTA: O node da rede principal em mainnet.z.cash também é acessível através do serviço de anonimato Tor em zcmaintvsivr7pcn.onion.
Para ver os peers que você está conectado:
$ ./src/zcash-cli getpeerinfo
Usando a Zcash
Primeiro, você deseja obter Zcash. Você pode comprá-los de uma exchange, de outros usuários, ou vender bens e serviços por eles! Como obter exatamente uma Zcash (com segurança) não está no escopo para este documento, mas você deve ter cuidado. Evite golpes!
Gerando um t-addr
Vamos gerar o primeiro t-addr.
$ ./src/zcash-cli getnewaddress
tb4oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1
Recebendo Zcash com um z-addr
Agora vamos gerar um z-addr.
$ ./src/zcash-cli z_getnewaddress
ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG
Isso cria um endereço particular e armazena sua chave em seu arquivo de carteira local. Dê este endereço ao remetente!
Um z-addr é bastante grande, por isso é fácil cometer erros com eles. Vamos colocá-lo em uma variável de ambiente para evitar erros:
$ ZADDR='ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG'
Para obter uma lista de todos os endereços da sua carteira para a qual tem uma chave de gastos, execute este comando:
$ ./src/zcash-cli z_listaddresses
Você deve ver algo como:
[
"zta6qngiR3U7HxYopyTWkaDLwYBd83D5MT7Jb9gpgTzPLMZytzRbtdPP1Syv4RvRgHeoZrJWSask3DyfwXG9DGPMWMvX7aC",
"ztbqWB8VDjVER7uLKb4oHp2v54v2a1jKd9o4FY7mdgQ3gDfG8MiZLvdQga8JK3t58yjXGjQHzMzkGUxSguSs6ZzqpgTNiZG"
]
Ótimo! Agora, envie seu z-addr para o remetente. Você deve eventualmente ver sua transação ao verificar:
$ ./src/zcash-cli z_listreceivedbyaddress "$ZADDR"
[
{
"txid" : "af1665b317abe538148114a45322f28151925501c081949cc7a5207ef21cb750",
"amount" : 1.23,
"memo" : "48656c6c6f20ceb2210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
]
Enviando moedas com o seu z-addr
Se alguém lhe der o seu z-addr...
$ FRIEND='ztcDe8krwEt1ozWmGZhBDWrcUfmK3Ue5D5z1f6u2EZLLCjQq7mBRkaAPb45FUH4Tca91rF4R1vf983ukR71kHyXeED4quGV'
Você pode enviar 0.8 ZEC fazendo...
$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.8, \"address\": \"$FRIEND\"}]"
Depois de esperar cerca de um minuto, você pode verificar se a operação foi concluída, produzindo o seguinte resultado:
$ ./src/zcash-cli z_getoperationresult
[
{
"id" : "opid-4eafcaf3-b028-40e0-9c29-137da5612f63",
"status" : "success",
"creation_time" : 1473439760,
"result" : {
"txid" : "3b85cab48629713cc0caae99a49557d7b906c52a4ade97b944f57b81d9b0852d"
},
"execution_secs" : 51.64785629
}
]
Problemas de Segurança Conhecidos
Cada versão contém um documento ./doc/security-warnings.md
descrevendo problemas de segurança conhecidos por afetar essa versão. Você pode encontrar a versão mais recente deste documento aqui:
https://github.com/zcash/zcash/blob/master/doc/security-warnings.md
Consulte também nossa página de segurança para notificações recentes e outros recursos: