- 1. Introdução
- 2. Desafio
- 3. Pré-requisitos
- 4. Configuração da rede Hyperledger Fabric
- 5. Desenvolvimento do Chaincode (ou Smart Contract)
- 6. Avaliação
- 7. Aplicação na nuvem
- 8. Submissão
- 9. Dicas
Em época de proliferação de fake news e pós verdades, torna-se cada vez mais necessária a busca constante pela veracidade de informações, especialmente aquelas informações que podem ser decisivas para uma organização, como as informações contidas nos currículos de candidatos em processo de recrutamento e seleção.
Segundo reportagem do jornal Valor Econômico do dia 30 de maio de 2019, “Mais companhias buscam mentiras nos currículos”, cada vez mais vem sendo adotada pelas empresas a prática do “background check” que consiste em verificar se as informações contidas no currículo e no Linkedin de candidatos são realmente verdadeiras.
Entre as informações de currículo que são validadas estão a formação acadêmica dos candidatos, verificando-se dados como instituição de ensino, data de conclusão, validade do certificado, méritos atingidos e notas finais.
Uma aplicação lógica seria utilizar Blockchain para que dinstituições de ensino pudessem guardar os registros de cursos, avaliações ou habilidades conforme os alunos as obtém. Os alunos poderiam, então, compartilhar com segurança suas informações de currículo, bem como todo histórico de habilidades, garantindo a autenticidade das informações.
Diante desta realidade, o LIT, a plataforma digital de aprendizagem de negócios da Saint Paul, oferecendo a seus usuários dezenas de cursos de extensão e trilhas de MBA, quer ajudar as empresas nesta checagem e, também, dar aos seus usuários a vantagem de permitir que seus currículos tenham rastreabilidade e certificação digital. Além disso, o LIT quer também validar os Skills adquiridos pelo usuário em sua jornada de aprendizagem. Para esse desafio, o LIT precisa estar conectado a uma rede de Blockchain que permita gravar a evolução do progresso de seus usuários ao longo da jornada de aprendizagem.
Um recurso importante que a rede de Blockchain pode oferecer para as empresas é a oportunidade de buscar candidatos através de uma lista de habilidades específicas para uma vaga. A empresa poderia listar quais habilidades precisa para preencher uma posição, e então fazendo um "matching" de skills listados para vaga com os skills comprovados do candidato, a empresa pode ter uma lista de candidatos com currículo certificado e, também, saber quais foram os cursos em que eles desenvolveram estas habilidades e o aproveitamento obtido em cada curso.
Dessa forma, a rede de Blockchain poderá facilitar o acesso das empresas a informações para validar os currículos de candidatos, bem como, para procurar candidatos conforme o perfil necessário para preencher vagas.
Você deverá cumprir os seguintes itens:
- Registrar na Maratona Behind the Code e confirmar o e-mail de cadastro.
- Registrar na IBM Cloud e confirmar o e-mail de cadastro.
- Windows 10, Linux, or Mac OS.
- VS Code versão 1.36.0 ou mais recente -> Download Visual Studio Code.
- Node v8.x ou mais recente and npm v5.x ou m
- Docker Compose v1.14.0 ou mais recente -> Download Docker Compose.
Se você está usando Windows, você deve garantir que os seguintes itens estão instalados:
Docker for Windows
se você configurou para usar containers Linux (configuração padrão)- Ter instaldo o
C++ Build Tools for Windows
do windows-build-tools - Ter instalado o
OpenSSL v1.0.2
do Win32 OpenSSL- Instalar a versão normal, não a versão marcada como
light
. - Instalar a versão
Win32
na pastaC:\OpenSSL-Win32
em sistemas 32-bit. - Instalar a versão
Win64
na pastaC:\OpenSSL-Win64
em sistemas 64-bit.
- Instalar a versão normal, não a versão marcada como
Caso você decida usar uma VM (Máquina Virtual), acesse o link e baixe o ambiente pré-configurado ~> VM + IBM Blockchain Platform
Abra o Visual Studio Code
(ou VS Code) e acesse o Marketplace de Extensões. Você pode acessar também clicando nas teclas CMD + SHIFT + X
ou CTRL + SHIFT + X
(se for Windows).
Busque por IBM Blockchain Platform
na busca do Marketplace. Clique sobre o primeiro item (IBM Blockchain Platform 1.0.5
) e procure por um botão verde
de install
para instalar a extensão.
Após a instalação, é necessário que você reinicie o seu VS Code para finalizar a instalação.
No VS Code vai aparecer um botão, no canto esquerdo, com o logo da IBM Blockchain Platform. Se você conseguiu chegar aqui, então você configurou corretamente a extensão.
Veja o vídeo abaixo de como criar a sua primeira rede e seu primeiro chaincode, usando a extensão do IBM Blockchain Platform no VS Code.
Link do asset criado no vídeo: https://github.com/victorshinya/university-chaincode
Os participantes deverão criar uma rede de Blockchain local, usando a extensão do VS Code
da IBM Blockchain Platform
(veja o vídeo acima), e configurá-la com um chaincode para cadastrar um asset: curriculum
. Dentro dele, deve ser possível inserir course
e skills
(igual o diagrama abaixo). Veja na imagem abaixo a estrutura que deve ser adotada, lembrando que a extensão gera cinco funções para gerenciar um Asset (resumidamente, um CRUD
).
Use name
, cpf
e courses
como itens no curriculum
e name
e skills
como itens no course
Você deve criar duas funções com o nome de createCourse
e readCurriculumHistory
, para cadastrar um novo curso realizado (e suas skills
) e gerar o histórico das transações dentro da rede de Blockchain, respectivamente. Para a segunda função, você deve importar no seu projeto o código aux.js
. A função deve buscar todo o histórico de transações dentro da rede pelo CPF informado. A função readCurriculumHistory
irá exportar um arquivo history.json
com o resultado da busca do auxiliar.
Baixe a classe Aux: aux.js.
Lembre-se: A geração do arquivo .json
só acontecerá após a execução da função descrita acima e a execução do comando abaixo na sua linha de comando
docker cp {id do container}:/usr/local/src/history.json history.json
Para buscar o id
do container, você pode executar esse comando em um terminal. Ele irá listar todos containers fazendo um filtro pela imagem do container com a estrutura gerada da extensão do IBM Blockchain Platform. Pegue o id
do primeiro item da lista (ela está ordenada de forma crescente, ou seja, do mais recente para o mais antigo).
docker ps | grep "fabricvscodelocalfabric-peer0.org1.example.com"
Para subir a aplicação na IBM Cloud, você deve clicar no botão
abaixo para subir usando o IBM Continuous Delivery (também conhecido como Delivery Pipeline). Você deve subir a sua aplicação em Dallas.
🚨 CLIQUE PARA SUBIR A APLICAÇÃO NA IBM CLOUD 🚨
-
Configure o
Toolchain Name
com<maratona-id>-desafio8-behindthecode
, substituindo o<maratona-id>
pelo seu ID da Maratona (Ex: 100001). Se você não souber, verifique no seu e-mail, usado no registro da Maratona, para pegar o seu ID. -
Configure o
App name
com a mesmo valor usado no item 1. -
Crie uma chave (de uso interno). Basta clicar em "Create" e depois clique em "Create" novamente. Espere um instante até carregar todas os dados. Se demorar muito (mais de 5 minutos), recarregue a página e faça novamente o passo 1 e 2. Na parte superior, você pode deixar em Washington DC ou Dallas. Já na parte inferior (abaixo do item 2), é mandatório configurar a Região de Dallas.
Veja no vídeo abaixo como localizar as credenciais do ICOS
ou IBM Cloud Object Storage
para a submissão. Se tiver dúvida sobre o processo, veja na seção Submissão. Você deve copiar as credenciais para configurar o .env
no passo abaixo. Lembre-se: Configure o Bucket do ICOS e suba o arquivo .zip
quantas vezes quiser. Ele deve ser nomeado com o seu ID + o formato .zip
(Ex: ID da Maratona = 100001 => 100001.zip
).
Clique em Eclipse Orion Web IDE
para configurar a aplicação.
Abaixo está o passo-a-passo, obrigatório, para configurar a sua aplicação no Eclipse Orion Web IDE.
- Abra o arquivo
.env
para colocar as credenciais daMaratona
(lembre-se de que é o mesmo código usado para indicar novos participantes na Maratona). Preencha com os dados, após o=
(símbolo de igual).
# Credenciais para o Desafio 8
DESAFIO=8
MARATONA_ID=
# IBM Cloud Object Storage
BUCKET=
IAM_SERVICEID_CRN=
APIKEY=
- Abra o arquivo
manifest.yml
e altere o<maratona-id>
com o seu ID da Maratona, o mesmo usado acima. Lembre-se: é mandatório ter a URL com o formato doname
, apresentado abaixo.
applications:
- name: <seu-id>-desafio8-behindthecode
memory: 256M
instances: 1
buildpack: sdk-for-nodejs
Clique em Create new launch configuration
e crie a configuração para a sua aplicação (que está sendo criada em background). Launch Config Name
, Application Name
e Host
devem ter o mesmo nome, com o formato <maratona-id>-desafio8-behindthecode
, igual nos itens anteriores. Clique em SAVE
para salvar as configurações.
Clique em PLAY
(primeiro botão na imagem). Espere até ficar verde
(com o status: running
). Depois, clique em Open
(terceiro botão na imagem). Vai abrir a sua aplicação, com as configurações implementadas.
🚨 TESTE BASTANTE O SEU CHAINCODE E FAÇA DIVERSAS TRANSAÇÕES 🚨
Crie várias transações, de currículo e curso, para gerar um histórico. Faça quantos testes forem necessários e, se precisar, crie e re-crie a rede e o chaincode para melhorar cada vez mais. Quando se sentir confortável, faça a submissão do seu desafio. Lembre-se: NÃO é possível submeter mais de uma vez. Fique atento!
Gere um arquivo .zip
com o CHAINCODE
e o HISTORY.JSON
, com o nome <seu-id>.zip
, e suba no IBM Cloud Object Storage
.
Através da aplicação na IBM Cloud (https://<seu-id>-desafio8-behindthecode.mybluemix.net
), você irá clicar no botão SUBMETER DESAFIO, preencher com o seu CPF e enviar para a avaliação final.
FIQUEM LIGADOS NO SITE DA MARATONA PARA ACOMPANHAR O RANKING GERAL E O RANKING DO DESAFIO! FIQUE NA TORCIDA PARA ESTAR ENTRE OS MELHORES!
No vídeo abaixo vocês já terão acesso a dicas do Desafio 8.
- O que é a IBM Cloud e como subir a sua primeira aplicação na nuvem
- Desenvolvendo contratos inteligentes com a extensão do Visual Studio Codes
-
No
Logs
da aplicação, apresentou um erro (em vermelho). O que pode ser?Resposta: Veja se você colocou as credenciais da Maratona, Watson Assistant e Machine Learning no arquivo
.env
e se o arquivomanifest.yml
está correto, conforme descrito acima. Veja se a sua aplicação está rodando na URL correta conforme descrito acima.
-
Gerou transações erradas e deseja reiniciar o histórico?
Resposta: Acesse a extensão do
IBM Blockchain Platform
e na abaLOCAL FABRIC OPS
, clique no menu e clique emTeardown Fabric Runtime
. Clique novamente noLocal Fabric runtime is stopped.[...]
. Ele irá subir uma nova rede local com o histórico zerado.
Acesse o slack e mande a sua dúvida: ibm.biz/convite-slack.
Copyright 2019 Maratona Behind the Code
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.