No anterior Tutorial de trufas ethereum , você aprendeu sobre o Truffle Suite e desenvolveu um Ethereum DApp. Para desenvolver um aplicativo ethereum complexo, você desejará executá-lo em uma rede privada para ver como funciona antes de implantá-lo. Então, neste tutorial de Rede Privada Ethereum, você aprenderá como criar um Rede Ethereum Privada e como fazer uma transação entre duas contas.
Interessado no desenvolvimento de Ethereum? Confira o Live .
Tutorial de rede privada Ethereum
Estes são os tópicos que abordarei neste tutorial:
- O que é Rede Privada Ethereum?
- Por que a Rede Privada Ethereum é usada?
- Características da Rede Privada Ethereum
- Instalando Ethereum no Ubuntu
- Demonstração: Criando uma rede privada Ethereum e fazendo uma transação
O que é Rede Privada Ethereum?
Uma Rede Privada Ethereum é um Blockchain completamente privado que é isolado da rede Ethereum Principal. A Rede Privada Ethereum é criada principalmente por organizações para restringir as permissões de leitura do Blockchain. Apenas os nós com as permissões corretas serão capazes de acessar este Blockchain. Os nós nesta rede não estão conectados aos nós da rede principal e seu alcance é restrito apenas a este Blockchain privado.
instruções if em consultas sql
Por que a Rede Privada Ethereum é usada?
A Rede Privada Ethereum é usada por organizações para armazenar dados privados que não devem ser visíveis para pessoas de fora da organização. A Rede Privada Ethereum também é usada para testar e experimentar o Blockchain se alguém não quiser usar as redes públicas de teste.
Características da Rede Privada Ethereum
Conforme mencionado na seção anterior, a Rede Privada Ethereum é usada para fins de teste. Mas por que alguém se daria ao trabalho de criar uma nova rede quando já existem redes públicas de teste disponíveis? Bem, a Rede Privada Ethereum tem seu próprio conjunto de recursos, conforme listado abaixo:
- Ele atua como um banco de dados distribuído
- Blockchain na rede privada Ethereum pode conter dados privados (porque a rede não é pública)
- O acesso pode ser baseado em permissão
- Fazer transações pode ser grátis
- As contas podem ser alocadas com éterespor nós mesmos, o que nem mesmo exige a compra de éteres virtuais
Continuando, vamos passar à parte prática deste tutorial de Rede Privada Ethereum.
Instalando Ethereum no Ubuntu
Para criar uma Rede Privada Ethereum, primeiro precisamos ter o Ethereum instalado em nosso sistema. Nesta seção do Tutorial da Rede Privada Ethereum, você aprenderá como instalar o Ethereum no Ubuntu.
Para instalar o Ethereum, execute os seguintes comandos em um terminal:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum
Feito! Isso instalará o Ethereum em seu sistema.
Vamos começar com a criação da rede privada.
Demonstração: Criando uma rede privada Ethereum e fazendo uma transação
Neste tutorial de rede privada Ethereum, enviaremos éteresde uma conta para outra e, portanto, precisamos de contas. Vamos agora ver como criar contas para nosso Blockchain.
Criação de contas para rede privada Ethereum
Antes de criar novas contas, vamos criar um novo diretório para nosso local de trabalho. Consulte os comandos abaixo para fazer isso:
$ mkdir private-ethereum $ cd private-ethereum
Para fazer uma transação, precisamos de pelo menos duas contas: um destinatário e um remetente.
Para criar duas contas, execute o seguinte comando duas vezes:
$ geth --datadir ./datadir conta nova
Introduzir o frase-senha para cada conta quando solicitado. Não se esqueça desta frase-senha!
Assim que esses comandos forem executados com êxito, duas contas serão criadas e o endereço da conta será exibido na tela.
Salve esses endereços em algum lugar, pois os usaremos posteriormente.
Criando Arquivo Genesis
Um arquivo Genesis contém as propriedades que definem o Blockchain. Um arquivo Genesis é o ponto de partida do Blockchain e, portanto, é obrigatório criar o arquivo Genesis para criar um Blockchain. Agora, vamos criar o GenesisArquivo.
Primeiro, crie um arquivo chamado genesis.json
$ nano genesis.json
E agora copie e cole o seguinte código nesse arquivo:
{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'dificuldade': '400', 'gasLimit': ' 2000000 ',' alloc ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balance }00000000: '12000000'
Nota: No código acima, substitua o endereço em alocar seção com o endereço das contas que você criou na etapa anterior.
Salve-o e saia.
Deixe-me explicar o conteúdo do arquivo Gênesis resumidamente:
chainId - Este é o número de identificação da cadeia que é usado para distinguir entre Blockchains
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - essas propriedades estão relacionadas à bifurcação e controle de versão da cadeia. Não precisamos deles para nosso tutorial, então vamos defini-los como 0.
dificuldade - Este número decide o quão difícil será a mineração dos blocos. Para redes privadas, é bom definir um número mais baixo, pois permite que você garimpe blocos rapidamente, o que resulta em transações rápidas.
gasLimit - Este número é a quantidade total de gás que pode ser usada em cada bloco. Não queremos que nossa rede atinja o limite, então definimos isso alto.
alocar - Esta parte é usada para alocar éteres para contas já criadas.
O arquivo Genesis está pronto. Agora, é hora de iniciar o Blockchain.
Instantiating Data Directory
Antes de iniciar o Blockchain, temos que instanciar o diretório de dados. O Data Directory é o diretório onde os dados relacionados ao Blockchain são armazenados. Para instanciar o diretório de dados, execute o seguinte comando:
$ geth --datadir ./myDataDir init ./genesis.json
Na instanciação bem-sucedida, você verá a seguinte saída:
Com o Data Directory instanciado, agora podemos iniciar o Blockchain.
Iniciando Ethereum Private Blockchain
Para iniciar o Blockchain, execute o seguinte comando:
$ geth --datadir ./myDataDir --networkid 1114 console 2 >> Eth.log
Feito! Seu Blockchain Ethereum privado está instalado e funcionando.
No comando acima, estamos enviando todos os logs em um arquivo separado chamado Eth.log . Geth criará automaticamente um novo arquivo se ele não for encontrado.
A saída deste código deve ser semelhante a esta:
Agora, entramos no geth console onde podemos executar comandos para nosso Blockchain.
Lendo Logs
Na seção anterior, mencionei que estamos armazenando os logs em outro arquivo. Nesta seção, direi como ler os logs desse arquivo.
Leremos os registros de um terminal separado, então primeiro vamos abrir um novo terminal. Primeiro,mudar para o privado-ethereum diretório e execute o seguinte comando para ler os logs:
$ tail -f Eth.log
Agora você pode ver os logs no terminal. Esses logs são atualizados dinamicamente sempre que há alguma atividade no Blockchain.
Importando contas para rede privada
Você deve se lembrar que criamos duas contas para fazer transações. Mas, não adicionamos essas contas à nossa rede. Portanto, nesta seção do tutorial da Rede Privada Ethereum, vou explicar como importar as contas.
Quando criamos uma conta, todos os detalhes da conta são armazenados em um UTC Arquivo no diretório mencionado durante a criação da conta (caminho: ./datadir/keystore ) Para importar as contas, precisamos copiar esses arquivos e colar no keystore diretório no diretório de dados(caminho: ./myDataDir/keystore )
Isso é tudo! As contas são importadas. Simples, não é? Para verificar a importação, executaremos o seguinte comando no geth console.
> eth.accounts
Isso mostrará uma lista de todas as contas disponíveis.
Para verificar o saldo dessas contas, usaremos o seguinte comando:
> web3.fromWei (eth.getBalance (), 'ether')
Estamos prontos com tudo o que é necessário para fazer uma transação. Porque esperar? Vamos fazer isso!
Fazendo uma transação
Neste tutorial de Rede Privada Ethereum, enviaremos alguns éteresde uma conta para outra.
A sintaxe para enviar éteres é a seguinte:
> eth.sendTransaction ({de: ”endereço”, para: ”endereço”, valor: web3.toWei (quantidade, 'éter')})
Enviaremos 1000 éteres da conta 1 para a conta 2 usando o seguinte comando:
> eth.sendTransaction ({de: eth.accounts [0], para: eth.accounts [1], valor: web3.toWei (1000, 'ether')})
Não funcionou? Não se preocupe. Não funcionou para mim também. Isso ocorre porque a conta está bloqueada por padrão e não permite transações.
Então, primeiro, precisamos desbloquear a conta do remetente. Lembra da senha que você usou ao criar a conta? Bem, você deve, porque você terá que usar isso para desbloquear a conta. Vamos desbloquear a conta com o seguinte comando:
personal.unlockAccount (eth.accounts [0], '')
Agora vamos enviar éterescom sucesso:
> eth.sendTransaction ({de: eth.accounts [0], para: eth.accounts [1], valor: web3.toWei (1000, 'ether')})
Isso deve retornar um ID de transação.
Feito! Você fez uma transação com sucesso!
Para verificar a transação, vamos verificar o saldo em ambas as contas.
> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'ether')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'ether')
Yay! Podemos ver que 1000 éteresforam enviados de uma conta para outra!
Parabéns! Você criou uma Rede Privada Ethereum e fez uma transação. Espero que este tutorial da Rede Privada Ethereum tenha sido informativo e ajudado você a entender sobre a Rede Privada Ethereum. Agora, vá em frente e experimente a rede privada recém-criada.
Tem alguma questão para nós? Por favor, poste em e entraremos em contato com você.
Se você deseja aprender Blockchain e construir uma carreira em tecnologias Blockchain, confira nosso que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos da vida real. Este treinamento irá ajudá-lo a entender o que é Blockchain de forma exaustiva e ajudá-lo a alcançar o domínio sobre o assunto.