🇧🇷
Ethereum Developer Pack - PT
  • Ethereum Developer Pack - PT
  • Módulo 1
    • Introdução a Smart Contracts
      • Fundamentos de Blockchain
        • Histórico
        • Bitcoin
        • O que é Blockchain
        • Conceitos-chave em Blockchain
        • Como funciona a Blockchain
        • Tipos de Blockchain
        • Modelos de Consenso
      • A nova Internet
        • Web 3
        • Elementos Fundamentais
        • Impacto do Ethereum em Diversos Setores
      • Wallets
        • Componentes de uma wallet
        • Tipos de Wallet
        • Códigos Mnemônicos
      • Ethereum 101
        • Smart Contracts
        • Contas
          • Tipos de contas
          • Conteúdo das contas
        • Transações
          • Componentes
          • Ciclo de vida
        • Gás
        • Solidity
        • EVM
          • A máquina de estados
          • Opcodes
          • Como funciona a EVM
          • Clientes de execução
          • DApps
      • Blockchain Explorer
        • Funções de um blockchain explorer
        • Beneficios de utilizar um blockchain explorer
      • Remix
        • Características do Remix
        • Workspaces ou espaços de trabalho
        • Carregar e compilar um contrato
        • Implantar na máquina virtual do Remix (Remix VM)
        • Interagindo com funções
        • Deployar em uma rede pública
      • Crie seu primeiro Smart Contract
  • Módulo 2
    • Fundamentos de Solidity
      • Hello World
      • Tipos de Dados
      • Funções
      • Variáveis
        • Exercício 1
      • Operadores
        • Ejercicio 2
      • Constructor
        • Exercício 3
      • Convenções de nomenclatura
      • Tipos de armazenamento para variáveis
      • Estruturas de Controle
        • Exercício 4
      • Modificadores
      • Eventos
        • Exercício 5
      • Tipos de Referencia
        • Arrays
          • Exercício 6
        • Mappings
          • Exercício 7
        • Structs
          • Exercício 8
      • Address Payable
      • Como os contratos e funções recebem Ether.
      • Transferências de Ether
      • Conceitos Avançados
        • Codificação de ABI
        • Hashing
        • This
        • Herança
        • Abstract
        • Interface
        • Chamada entre contratos
        • EVM
        • ABI
        • Bytecode
        • Opcodes
  • Módulo 3
    • ERCs, Bibliotecas e Padrões de Desenvolvimento
      • Boas Práticas de Desenvolvimento
      • Padrões de Desenvolvimento
      • EIP & ERC
      • ERC-20
      • ERC-721
      • Open Zeppelin
      • Crie um Token ERC-20
      • Almacenamiento Descentralizado: IPFS
      • Crea un Token ERC-721
      • DeFi
  • Módulo 4
    • Kit de ferramentas para desenvolvimento na Ethereum
      • Requisitos para o módulo 4
        • Terminal
        • Git e Github
        • Node.js e npm
        • Visual Studio Code para Solidity
      • Toolkit
        • JSON-RPC
        • Ethers.js
          • Exercício
        • Hardhat
          • Implantação de um contrato no Hardhat
          • Implantação de um contrato em uma rede pública
        • Scaffold-ETH
          • Características do Scaffold-ETHCaracterísticas
          • Como instalar o Scaffold-ETH
  • Módulo 5
    • Segurança, Testes e Auditorias
      • Testes
        • Importância de realizar testes
        • Métodos para testar contratos inteligentes
          • Testes automatizados
          • Testes manuais
        • Conceitos importantes em testes
        • Ferramentas para testes
        • Testes com Hardhat
        • Recursos adicionais
      • Segurança
        • Uma mentalidade diferente de design
        • Principais vulnerabilidades em contratos inteligentes
          • Reentrancy attack (ataque de reentrada)
          • Replay attack (ataque de repetición)
          • Price Oracle Manipulation (Manipulación de Oráculos de Precios)
          • Missing Access Control (Pérdida de Control de Acceso)
          • Reward Manipulation (Manipulación de Recompensas)
          • Failure to Initialize (Falla al Inicializar)
          • Front-running
          • Invariant Breaks (Quebra de Invariantes)
          • Mishandling of ETH (Má gestão de ETH)
          • Denial of Service (DoS - Negação de Serviço)
          • Integer overflow and underflow (Overflow e Underflow de inteiros)
          • Phishing y Typosquatting
        • Recursos adicionais
      • Auditoria de smart contracts
        • Processo de Auditoria
        • Ferramentas
        • Como se preparar para uma auditoria
        • O teste Rekt
        • Desafios
        • Recursos adicionais
  • Contribuye
    • Kipu Explorer
Powered by GitBook
On this page
  • Node.js
  • npm
  1. Módulo 4
  2. Kit de ferramentas para desenvolvimento na Ethereum
  3. Requisitos para o módulo 4

Node.js e npm

Node.js

Node.js é um ambiente de execução JavaScript baseado no motor V8 do Google Chrome, que permite aos desenvolvedores executar código JavaScript no lado do servidor. Antes de sua existência, o código JavaScript só podia ser executado em um navegador web. Para o propósito de nosso curso, é importante porque executaremos código JavaScript que interage com a blockchain e precisamos de um ambiente capaz de processar esse código.

Instalação do Node.js e npm

Instalación no Windows

  1. Baixar o Instalador:

    • Vá para a página de download do Node.js e baixe o instalador para Windows.

  2. Executar o Instalador:

    • Execute o instalador e siga as instruções do assistente de instalação.

  3. Verificar a Instalação:

    • Abra um terminal (Command Prompt ou PowerShell) e execute os seguintes comandos:

      nginxCopiar código
      node -v
      npm -v

      Você deverá ver as versões instaladas do Node.js e npm.

Instalação no macOS

  1. Instalar o Homebrew (se não estiver instalado):

    • Abra um terminal e execute:

      bashCopiar código
      /bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)"
  2. Instalar o Node.js usando o Homebrew:

    • Execute o seguinte comando no terminal:

      brew install node
  3. Verificar a instalação:

    • Execute os seguintes comandos no terminal:

      node -v
      npm -v

      Você deverá ver as versões instaladas do Node.js e do npm.

npm

npm (Node Package Manager) é o gerenciador de pacotes do Node.js, que permite instalar e atualizar pacotes de terceiros para usá-los no seu próprio código.

Vamos ver um exemplo de como utilizar o Node.js e o npm em um projeto simples que será um servidor web básico.

Criação de um Projeto Node.js

Criar um Diretório para o Projeto

  • Abra um terminal e navegue até o diretório onde deseja criar seu projeto, depois execute:

    mkdir mi-proyecto-node
    cd mi-proyecto-node

Inicializar o projeto com npm

  • Execute o seguinte comando para criar um arquivo package.json. Mais adiante explicaremos em mais detalhes o uso desse arquivo.

    npm init
  • Siga as instruções para completar a configuração do projeto. Você pode aceitar as configurações padrão pressionando Enter.

Instalar o Express

  • Certifique-se de estar no diretório do projeto e execute:

    bashCopiar código
    npm install express

    Express é um framework web minimalista e flexível que fornece ferramentas para desenvolver aplicações web e móveis.

Criar o arquivo do servidor

  • No diretório do projeto, crie um arquivo chamado server.js e adicione o seguinte código:

    javascriptCopiar código
    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    app.listen(port, () => {
      console.log(`Server running at <http://localhost>:${port}/`);
    });

    Certifique-se de salvar as alterações.

Executar o servidor

  • No terminal, estando no diretório do projeto, execute:

    bashCopiar código
    node server.js

Verificar o servidor:

  • Abra um navegador e acesse: http://localhost:3000/.

  • Você deverá ver a mensagem "Hello World!". Se sim, parabéns!

Dessa forma, vimos como usar o npm para instalar pacotes como o Express e como o Node.js nos ajuda a executar código JavaScript — que, neste caso, nos permitiu iniciar um servidor web.

A seguir, falaremos sobre o arquivopackage.json que é utilizado na configuração de projetos com Node.js.

Arquivo package.json

O arquivo package.json é um arquivo de configuração essencial em qualquer projeto Node.js. Ele contém informações sobre o projeto e suas dependências, entre outros detalhes.

A seguir, um exemplo

{
  "name": "mi-proyecto",
  "version": "1.0.0",
  "description": "Descripción de mi proyecto",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  },
  "author": "Tu Nombre",
  "license": "MIT"
}

Dependências

As dependências são módulos de código (também conhecidos como pacotes ou bibliotecas) que o seu projeto precisa para funcionar corretamente. Essas dependências são gerenciadas automaticamente pelo npm, que facilita sua instalação, atualização e administração.

  1. Tipos de dependências no npm

  • Dependências de produção (dependencies):

    • Essas são as dependências necessárias para que sua aplicação funcione em um ambiente de produção. Elas são especificadas no arquivo package.json no campo dependencies.

      Exemplo:

      {
        "dependencies": {
          "express": "^4.17.1"
        }
      }

      Neste caso, express é uma dependência de produção.

  • Dependências de desenvolvimento (devDependencies):

    • Essas são as dependências necessárias apenas durante o desenvolvimento da sua aplicação, como ferramentas de teste, transpiladores e analisadores de erros. Elas são especificadas no arquivo package.json no campo devDependencies.

      Exemplo:

      {
        "devDependencies": {
          "nodemon": "^2.0.7"
        }
      }

      Neste caso, nodemon é uma dependência de desenvolvimento.

  1. Gerenciamento de dependências com npm

  • Instalação de dependências

    • Instalar todas as dependências:

      Execute o seguinte comando no diretório do seu projeto. Isso instalará todas as dependências especificadas no seu arquivo package.json .

      npm install
    • Instalar uma nova dependência de produção:

      Use o seguinte comando para instalar uma nova dependência e adicioná-la automaticamente ao campo dependencies no seu package.json .

      npm install nombre-del-paquete
    • Instalar uma nova dependência de desenvolvimento:

      Use o seguinte comando para instalar uma nova dependência e adicioná-la automaticamente ao campo devDependencies no seu package.json

      npm install nombre-del-paquete --save-dev
  • Atualizar dependências

    • Atualizar todas as dependências:

      Para atualizar todas as dependências para suas versões mais recentes permitidas pelo intervalo definido no package.json .

      npm update
    • Atualizar uma dependência específica:

      Para atualizar uma dependência específica para a versão mais recente permitida pelo intervalo de versões definido no package.json.

      npm update nombre-del-paquete
  • Remover dependências

    • Remover uma dependência de produção:

      Use o seguinte comando para remover uma dependência e eliminá-la automaticamente do campo dependencies no seu package.json.

      npm uninstall nombre-del-paquete
    • Remover uma dependência de desenvolvimento:

      Use o mesmo comando. O npm removerá a dependência do campo correspondente devDependencies caso ela esteja lá package.json.

      npm uninstall nombre-del-paquete --save-dev
  1. Benefícios de gerenciar dependências com o npm

  • Facilidade de instalação e atualização: simplifica o gerenciamento de dependências por meio de comandos simples.

  • Controle de versões: permite especificar versões exatas, garantindo que o projeto use as versões corretas dos pacotes.

  • Redução do tamanho do código: possibilita a reutilização de bibliotecas de terceiros, reduzindo a quantidade de código que você precisa escrever e manter.

  • Automatização de tarefas: permite automatizar tarefas comuns (como testes ou build do projeto) através de scripts definidos no arquivo package.json.

PreviousGit e GithubNextVisual Studio Code para Solidity

Last updated 15 days ago