Hyperledger explorer com Docker e Ubuntu

Marison Souza
Trubr
Published in
3 min readJan 25, 2018

Neste tutorial curto vamos mostrar como colocar em execução o Hyperledger explorer utilizando docker e ubuntu.

Hyperledger Blockchain Explorer is a blockchain module and one of the Hyperledger projects hosted by The Linux Foundation. Designed to create a user-friendly Web application, Hyperledger Blockchain Explorer can view, invoke, deploy or query blocks, transactions and associated data, network information (name, status, list of nodes), chain codes and transaction families, as well as any other relevant information stored in the ledger. Hyperledger Blockchain Explorer was initially contributed by IBM, Intel and DTCC.

Primeiro vamos baixar o blockchain-explorer do hub no docker.

docker pull -d yeasy/blockchain-explorer

Após o download da imagem a execução dele necessita de alguns parâmetros:
docker run -p 9090:9090 -itd -e HYP_REST_ENDPOINT=http://172.31.7.249:7050 -v $GOPATH/src/github.com/hyperledger/fabric:/fabric eb397ff175d1 /bin/bash

  • -p 9090:9090 — Ele irá mapear a porta 9090 do container com a 9090 do host
  • itd — Inicia uma sessão interativa, em background e imprime o tty
  • -e HYP_REST_ENDPOINT=http://172.31.7.249:7050 — Variável de ambiente lida apelo explorer que indica o IP e a porta do peer — Valide se a porta 7050 está aberta neste IP
  • -v .. = Faz o mapeamento do diretório local no host hospedeiro para ao diretório /fabric dentro do container — Isso é necessário pois o explorer precisa acessar as chaves dos peers que estão no diretório de exemplo.

O comando acima vai executar e logo sair do docker por conta do parâmetro “-d” — Se você não quiser rodar em background remova esse parâmetro. Senão, faça “docker ps” e execute um “docker attach <ID DO CONTAINER>” para entrar na instância do container que está em execução.

Vamos fazer a instalação, já dentro do container:

apt-get update
ln -s /fabric fabric
apt-get install mysql-server telnet vim
service mysql start

Defina a senha de root do mysql quando solicitado.

mysql -uroot -p < db/fabricexplorer.sql

Validando se o banco foi criado:
mysql -uroot -p
show databases;
use fabricexplorer;
show tables;
Deve aparecer as tabelas conforme a imagem abaixo.

O banco de dados fica instalado dentro do container do docker, mas você pode subir outro container só com o MYSQL se preferir ou manter o banco em uma outra estrutura, neste caso a instalação do mysql torna-se opcional.

O arquivo de configuração padrão do hyperledger explorer vem com atributos para conexão com o exemplo “build your first network” — vamos agora mudar ele para funcionar com o fabric que instalamos antes.

mv config.json config_backup.json
vi config.json

No arquivo json, coloque o conteúdo abaixo — altere os IP’s e senhas conforme a sua configuração

{
“network-config”: {
“org1”: {
“name”: “peerOrg1”,
“mspid”: “Org1MSP”,
“peer1”: {
“requests”: “grpcs://172.31.7.249:7051”,
“events”: “grpcs://172.31.7.249:7053”,
“server-hostname”: “peer0.org1.example.com”,
“tls_cacerts”: “/fabric/examples/e2e_cli/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt”

},
“admin”: {
“key”: “/fabric/examples/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore”,
“cert”: “//fabric/examples/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts”
}

}
},
“channel”: “trubr”,
“host”:”localhost”,
“port”:”9090",
“mysql”:{
“host”:”127.0.0.1",
“port”: “3306”,
“database”:”fabricexplorer”,
“username”:”root”,
“passwd”:”<SUA SENHA DO MYSQL>”
}
}

Saia do config.json e execute o ./start.sh

Pronto! Acesse http://<IP DO SERVIDOR>:9090 no navegador e você irá acessar o Hyperledger explorer, rodando em docker junto com o hyperledger fabric em ambiente de desenvolvimento.

Não esqueça de fazer commit das suas alterações no container. Caso você saia do container com CTRL+C ou “exit”, faça “docker ps -a” para encontrar o container parado e faça “docker start <ID DO CONTAINER>” para inicializa-lo novamente.

Hyperledger explorer da Trubr em execução

--

--

Marison Souza
Trubr
Editor for

Digital Publishing | Data Protection | Blockchain