Blockfy é um contador de streams que simula um serviço de streaming para dar transparência ao número de execuções de uma música para o artista e para o usuário, para assim ele ter um controle de quanto deveria receber. A aplicação funciona sob contratos inteligentes feitos em Solidity e executado em uma rede de testes Ethereum.
- Metamask (extensão para navegador) com uma conta logada na rede de testes ethereum Rinkeby;
- Ether para conseguir executar TODAS as funções do Blockfy como addMusic e listenMusic, para isso, depois de seguir o tutorial do Metamask disponível em: https://latin-ifpb.github.io/blockfy/, basta publicar em alguma rede social o endereço metamask, copiar o link da publicação e colar em https://faucet.rinkeby.io/, depois disso pode apagar o post se quiser. E você estará pronto para executar todas as funções.
OBS¹: Por precisar de extensão, a aplicação não funciona em mobile
- NodeJS v8.9.4 ou superior
- Truffle Suite
#Instalar o ambiente de desenvolvimento Truffle Suite
npm install -g truffle
#Para compilar os contratos localizados na pasta /contracts
truffle compile
#Se quiser testar os testes da pasta /tests
truffle test
truffle migrate
#Para rodar a aplicação React:
cd client
npm install #Para instalar as dependências
npm run start
- Registre-se no Infura, crie um novo projeto, mude o endpoint para Rinkeby e copie a URL do endpoint para Rinkeby.
- Execute os seguites comandos no terminal:
npm install truffle-hdwallet-provider
truffle unbox react
truffle create contract <nomeDoContrato>
- Depois de escrito o contrato, mescle o arquivo truffle-config.js com:
var HDWalletProvider = require("truffle-hdwallet-provider");
var mnemonic = "<SUA_CHAVE_DE_BACKUP_METAMASK>";module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*"
},
rinkeby: {
provider: function() {
return new HDWalletProvider(mnemonic, "https://rinkeby.infura.io/v3/<INFURA_Access_Token>");
},
network_id: 4,
gas: 4500000,
gasPrice: 10000000000,
}
}
};
- Na variável mnemonic, troque o valor pela sua chave de backup do Metamask e substitua o link que será retornado em rinkeby pelo que você copiou do INFURA, depois é só seguir os passos que estão em: O que preciso para rodar esta aplicação localmente só que em vez de
truffle migrate
, usar:truffle migrate --network rinkeby
OBS²: Se precisar de uma explicação melhor detalhada: https://medium.com/@andresaaap/how-to-deploy-a-smart-contract-on-a-public-test-network-rinkeby-using-infura-truffle-8e19253870c4