DEV Community

Cover image for Tutorial: Utilizando IPFS com a biblioteca Nabu em um projeto Java com Maven
Pedro Pietroluongo
Pedro Pietroluongo

Posted on

Tutorial: Utilizando IPFS com a biblioteca Nabu em um projeto Java com Maven

Neste tutorial, você aprenderá como utilizar o InterPlanetary File System (IPFS) com a biblioteca Nabu em um projeto Java gerenciado pelo Maven. IPFS é um protocolo peer-to-peer para compartilhar e acessar arquivos de forma distribuída na internet. A biblioteca Nabu é uma implementação Java que permite a interação com o IPFS dentre outra forma de conexão.

Requisitos

  • JDK 8 ou superior
  • Maven
  • IPFS instalado e executando localmente

Passo 1: Crie um novo projeto Maven

Primeiro, crie um novo projeto Maven. No terminal, execute o seguinte comando:
mvn archetype:generate -DgroupId=com.example -DartifactId=ipfs-nabu-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Este comando cria um novo projeto Maven com o groupId com.example e o artifactId ipfs-nabu-example.

Em seguida, navegue até a pasta do projeto recém-criado:
cd ipfs-nabu-example

Passo 2: Adicione a dependência do Nabu

Adicione a dependência do Nabu no arquivo pom.xml do seu projeto com a versão específica em https://jitpack.io/#Peergos/nabu:

  <repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>com.github.peergos</groupId>
      <artifactId>nabu</artifactId>
      <version>$LATEST_VERSION</version>
    </dependency>
  </dependencies>
Enter fullscreen mode Exit fullscreen mode

Passo 3: Crie um exemplo de aplicativo Java

Crie um novo arquivo Java chamado NabuExample.java no diretório src/main/java/com/example com o seguinte conteúdo:

import com.peergos.ipfs.*;
import com.peergos.ipfs.core.*;
import com.peergos.shared.io.ipfs.cid.*;
import com.peergos.shared.io.ipfs.multibase.*;
import com.peergos.shared.io.ipfs.multihash.*;
import java.io.*;

public class NabuExample {

    public static void main(String[] args) throws IOException {
        // Instancie o cliente IPFS usando a API HTTP local (no caso, um nó IPFS local)
        IPFS ipfs = new IPFS("localhost", 5001);

        // Arquivo para ser adicionado ao IPFS
        byte[] fileContent = "Hello, IPFS using Nabu!".getBytes();
        ByteArrayInputStream inputStream = new ByteArrayInputStream(fileContent);

        // Adicionando o arquivo ao IPFS
        Cid cid = ipfs.add(inputStream).get(0);

        System.out.println("Arquivo adicionado com CID: " + cid);

        // Recuperando o arquivo do IPFS
        Multihash multihash = Multihash.fromBase58(cid.toBase58());
        byte[] retrievedContent = ipfs.cat(multihash);

        // Exibindo o conteúdo do arquivo
        String retrievedString = new String(retrievedContent);
        System.out.println("Conteúdo recuperado do IPFS: " + retrievedString);
    }
}
Enter fullscreen mode Exit fullscreen mode

Passo 4: Execute o exemplo

Antes de executar o exemplo, certifique-se de ter um nó IPFS local em execução. Se você ainda não possui o IPFS instalado, siga as instruções de instalação no site oficial do IPFS: https://ipfs.io/#install

Inicie um nó IPFS local

Com o IPFS instalado, inicie um nó IPFS executando o seguinte comando no terminal:

ipfs daemon

Isso iniciará o nó IPFS local na porta 5001, que é a porta usada no exemplo.

Compile e execute o projeto Maven

Navegue até o diretório do seu projeto Maven no terminal e execute o seguinte comando para compilar e executar o projeto:

mvn compile exec:java -Dexec.mainClass="NabuExample"

Este comando compila o projeto e executa a classe NabuExample. Se tudo estiver configurado corretamente, você verá uma saída semelhante a esta:

Arquivo adicionado com CID: Qm...
Conteúdo recuperado do IPFS: Hello, IPFS using Nabu!
Enter fullscreen mode Exit fullscreen mode

A saída exibirá o CID (Content Identifier) do arquivo adicionado ao IPFS e o conteúdo recuperado do IPFS.

E pronto! Você acabou de adicionar e recuperar um arquivo no IPFS usando a biblioteca Nabu em um projeto Java com Maven.

Se você deseja explorar mais sobre o IPFS e a biblioteca Nabu, consulte a documentação oficial e o repositório no GitHub:

Latest comments (0)