O projeto BrumadinhoCoin faz parte da chamada pública CGI.br/NIC.br/Ceweb.br nº 01/2019 Mover-Se na Web – Articulação Pró-Brumadinho
O projeto BrumadinhoCoin: uma moeda ambiental solidária foi idealizado de modo a fornecer uma solução tecnológica a ser aplicada nas questões de preservação e/ou recuperação do meio ambiente e, ao mesmo tempo, fomentar a economia local. Motivado pelo desastre ambiental ocorrido pelo rompimento de barragem na cidade de Brumadinho – MG em 2019, o projeto busca oferecer apoio tecnológico a pessoas físicas ou jurídicas que tenham interesse em patrocinar financeiramente a execução de ações ambientais conectando-as às pessoas que tem interesse em executar tais ações ambientais.
- Contratante: responsável por cadastrar a ação ambiental a ser executada e sua descrição, alem de patrocinar o montante a ser pago.
- Executor: ator interessado em executar a ação, enviar as provas digitais de execução (fotos e vídeos) e ao término da ação é recompensado financeiramente.
- Autoridade: responsável por validar as provas digitais e validar a execução (ou não) liberando a transferência de valores entre o contratante e o executor.
Liste aqui todos os pré-requisitos no modelo abaixo.
Para executar o projeto deve-se:
- Compilar o smart contract e fazer deploy numa testenet (por padrão o projeto usa a Ropsten)
- Rodar o PWA com conexão com o smart contract
Como material auxiliar pode-se consultar o site oficial da Ethereum que contém o tutorial de como realizar o deploy na Ropsten.
Por padrão o projeto utiliza a Alchemy como plataforma de integracao com a Ropsten
para tal deve-se:
- Criar uma conta na Alchemy
- Criar uma Alchemy Key selecionando a Ropsten no parâmetro
Network
- Criar uma conta Ethereum
- Adicionar Ether a essa conta
em seguida podemos configurar o projeto:
# Clone este repositório
$ git clone https://github.com/cewebbr/mover-se-brumadinho-coin
# Acesse a pasta do projeto do smart contract no terminal
$ cd mover-se-brumadinho-coin/Bcoin-SmartContracts/
# Crie um arquivo `.env` na raiz do projeto
$ cp .env.example .env
em seguida:
- configure a variável
ROPSTEN_URL
com a versãohttps
da Alchemy Key criada anteriormente - configure a variável
ROPSTEN_SIGNER
com a chave privada da conta Ethereum criada anteriormente
# Instale as dependências
$ npm install
# Execute o script `deploy`
$ npm run deploy
Salve o endereço do contrato, que será exibido no final da execução do script (esse endereço será usado pelo PWA).
Crie o arquivo para as variáveis de ambiente
# Acesse a pasta do projeto do PWA
$ cd ../Bcoin-PWA/
# Crie um arquivo `.env` na raiz do projeto
$ cp .env.example .env
Como conteúdo do arquivo .env
temos:
#Firebase
REACT_APP_API_KEY=
REACT_APP_AUTH_DOMAIN=
REACT_APP_PROJECT_ID=
REACT_APP_STORAGE_BUCKET=
REACT_APP_MESSAGING_SENDER_ID=
REACT_APP_APP_ID=
#Blockchain
REACT_APP_BLOCKHAIN_NETWORK=
REACT_APP_ALCHEMY_API_KEY=
REACT_APP_AUTHORITY_ADDR=
REACT_APP_CONTRACT_ADDR=
# Infura (IPFS)
REACT_APP_INFURA_URL=
REACT_APP_INFURA_PROJECT_ID=
REACT_APP_INFURA_PROJECT_SECRET=
O PWA usa o Firebase para autenticação
para isso é necessario:
no final do passo 2 é exibido as keys do app registrado, configure variáveis de ambiente relacionadas ao Firebase com esses valores.
as proximas variáveis de ambiente estão relacionadas a Blockchain:
REACT_APP_BLOCKHAIN_NETWORK
nome da rede (como por exemplo,ropsten
)REACT_APP_ALCHEMY_API_KEY
api key da Alchemy (pode ser a mesma criada anteriormente)REACT_APP_AUTHORITY_ADDR
endereço da conta que sera usada pela entidade de autoridadeREACT_APP_CONTRACT_ADDR
endereço do contrato criado anteriormente
e por último vamos utilizar a plataforma Infura para armazenar informações no IPFS
para isso é necessario:
- Criar uma conta na Infura
- Criar um projeto selecionando
IPFS
na opçãoNETWORK
no final do passo 2 é exibido as keys do app criado, configure variáveis de ambiente relacionadas a Infura com esses valores.
realizando todos os passos anteriores o PWA está pronto para ser executado
# Instale as dependências
$ npm install
# Execute o projeto
$ npm start
- Antonio Augusto de Aragão - UFF - Coordenador - arocha@ic.uff.br
- Fabiano da Guia Rocha - IFMT - Pessoa desenvolvedora - fabiano.rocha@ifmt.edu.br
- Luiz Filipe de Jesus do Nascimento - IFMT - Pessoa desenvolvedora - luiz.nascimento@estudante.ifmt.edu.br
O Centro de Estudos sobre Tecnologias Web (Ceweb.br) foi criado como um departamento do Núcleo de Informação e Coordenação do Ponto BR (NIC.br) para viabilizar a participação da comunidade brasileira no desenvolvimento global da Web e subsidiar a formulação de políticas públicas. O Ceweb.br nasce inspirado pelos princípios e projetos já desenvolvidos pelo Escritório Brasileiro do W3C (World Wide Web Consortium), hospedado e apoiado pelo NIC.br no Brasil desde 2008, com a missão de promover atividades que estimulem o uso de tecnologias abertas e padronizadas na Web.
O Núcleo de Informação e Coordenação do Ponto BR - NIC.br foi criado para implementar as decisões e os projetos do Comitê Gestor da Internet no Brasil - CGI.br, que é o responsável por coordenar e integrar as iniciativas e serviços da Internet no País.
O Comitê Gestor da Internet no Brasil tem a atribuição de estabelecer diretrizes estratégicas relacionadas ao uso e desenvolvimento da Internet no Brasil e diretrizes para a execução do registro de Nomes de Domínio, alocação de Endereço IP (Internet Protocol) e administração pertinente ao Domínio de Primeiro Nível ".br". Também promove estudos e recomenda procedimentos para a segurança da Internet e propõe programas de pesquisa e desenvolvimento que permitam a manutenção do nível de qualidade técnica e inovação no uso da Internet
- Amanda Marques
- Ana Eliza
- Beatriz Rocha
- Caroline Burle
- Diego Cerqueira
- Diogo Cortiz
- Juliana Ribeiro
- Reinaldo Ferraz
- Selma de Morais
- Vagner Diniz