Lição: 272: Serviços de Pinagem IPFS
O Sistema InterPlanetário de Arquivos (IPFS) é um protocolo de armazenamento de arquivos distribuído que permite o armazenamento e compartilhamento de dados de maneira descentralizada. Um dos desafios ao usar o IPFS é que ele depende de nós na rede para hospedar e compartilhar dados. Se nenhum nó estiver ativamente hospedando seu conteúdo, este pode se tornar indisponível, é aí que os serviços de pinagem IPFS entram em cena.
O que é Pinagem IPFS?
Pinagem é o processo de manter certos conteúdos armazenados em nós do IPFS. Quando você "pinagem" um arquivo ou um diretório em um nó, garante que o conteúdo esteja sempre disponível a partir desse nó, mesmo que nenhum outro nó o esteja hospedando. Isso é crítico para manter a acessibilidade em um ambiente descentralizado.
Por que utilizar Serviços de Pinagem IPFS?
Embora você possa pinagem arquivos em seu próprio nó IPFS, utilizar serviços de pinagem oferece:
- Confiabilidade: Garante que seus dados estejam persistentemente disponíveis mesmo que seu nó fique offline.
- Escalabilidade: Lida com volume de dados e tráfego de forma mais eficiente do que rodar seu próprio nó IPFS.
- Facilidade de Uso: Simplifica o processo de gerenciamento de conteúdo IPFS através de APIs amigáveis.
Visão Geral dos Serviços de Pinagem IPFS
Existem diversos serviços de pinagem IPFS disponíveis, cada um com suas próprias interfaces e funcionalidades. Exemplos incluem:
- Pinata
- Infura
- Eternum
- Filebase
Nesta aula, vamos explorar como usar o Pinata como um exemplo de serviço de pinagem IPFS.
Configurando o Pinata
Para usar o Pinata, você precisa:
- Criar uma Conta: Acesse o site do Pinata e crie uma conta.
- Obter uma Chave de API: Após se cadastrar, vá para as configurações da sua conta para encontrar sua Chave de API e Chave Secreta.
Pinagem de Arquivos com o Pinata
Abaixo está um exemplo de como usar Node.js com a API do Pinata para fazer o upload e pinagem de um arquivo.
Passo 1: Instalar Pacotes Necessários
Você precisa instalar a biblioteca necessária, caso ainda não tenha feito isso. Utilize o seguinte comando:
npm install axios form-data
Passo 2: Escrever o Código para Pinagem de um Arquivo
Aqui está um programa simples em JavaScript que faz o upload de um arquivo para o Pinata:
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const path = require('path');
// Credenciais da API do Pinata
const apiKey = 'SUA_CHAVE_API_PINATA';
const secretApiKey = 'SUA_CHAVE_SECRETA_API_PINATA';
// Função para fazer o upload de um arquivo para o Pinata
async function pinFileToIPFS(filePath) {
const url = 'https://api.pinata.cloud/pinning/pinFileToIPFS';
const form = new FormData();
const fileStream = fs.createReadStream(filePath);
form.append('file', fileStream);
try {
const response = await axios.post(url, form, {
maxContentLength: Infinity,
maxBodyLength: Infinity,
headers: {
'Content-Type': `multipart/form-data; boundary=${form.getBoundary()}`,
pinata_api_key: apiKey,
pinata_secret_api_key: secretApiKey,
},
});
console.log(`Arquivo pinado com sucesso! Hash IPFS: ${response.data.IpfsHash}`);
} catch (error) {
console.error('Erro ao pinagem do arquivo:', error.response.data);
}
}
// Caminho para o arquivo que você deseja fazer upload
const filePath = path.join(__dirname, 'exemplo.txt');
// Chame a função para pinagem do arquivo
pinFileToIPFS(filePath);
Passo 3: Executar o Script
Certifique-se de substituir SUA_CHAVE_API_PINATA
e SUA_CHAVE_SECRETA_API_PINATA
pelas suas credenciais reais da API do Pinata. Salve o código acima em um arquivo, por exemplo, pinFile.js
, e execute-o usando Node.js:
node pinFile.js
Se o arquivo for enviado com sucesso, você verá uma mensagem contendo o hash IPFS do arquivo pinado.
Recuperando Arquivos Pinados
Uma vez que seu arquivo esteja pinado, você pode acessá-lo através do hash IPFS. Você pode usar qualquer gateway IPFS para visualizar seu arquivo:
https://gateway.pinata.cloud/ipfs/SU_HASH_IPFS
Substitua SU_HASH_IPFS
pelo hash real recebido após a pinagem.
Conclusão
Serviços de pinagem IPFS, como o Pinata, oferecem uma excelente maneira de garantir a disponibilidade e persistência dos seus dados de forma descentralizada. Integrando esses serviços em suas aplicações, você pode aproveitar os benefícios do IPFS sem se preocupar com questões de disponibilidade de dados. Esta aula demonstrou os passos simples para pinagem de arquivos usando a API do Pinata, o que deve ajudá-lo a começar a usar o armazenamento de arquivos descentralizado de forma eficaz.