Pular para o conteúdo principal
Os nós não validadores fornecem acesso RPC à rede Plasma monitorando clientes de consenso e atendendo a solicitações de aplicações. Este guia cobre a implantação usando o repositório oficial non-validator-templates.

Pré-requisitos

Habilidades básicas de administração Linux
Docker e Docker Compose instalados
Um servidor que atenda aos requisitos de hardware

Redes Disponíveis

RedeChain IDVersão de ConsensoVersão de Execução
mainnet97450.15.0Reth v1.8.3
testnet97460.15.0Reth v1.8.3
devnet97470.15.0Reth v1.8.3
Todas as redes usam a imagem pública plasma-consensus-public — nenhuma autenticação do GHCR é necessária.

Início Rápido

1

Instale o Docker

Conecte-se ao seu servidor e garanta que o Docker e o Docker Compose estejam instalados.
2

Clone o repositório de templates

git clone https://github.com/PlasmaLaboratories/non-validator-templates.git
cd non-validator-templates
3

Inicie seu nó

Substitua {network} por mainnet, testnet ou devnet:
cd {network}/docker-compose
docker compose up -d
4

Verifique se os containers estão em execução

docker compose ps
docker compose logs -f plasma-consensus
5

Inicie o monitoramento (opcional)

docker compose -f monitoring.yml up -d

Visão Geral da Arquitetura

Seu nó não validador consiste em dois componentes principais:

Cliente de Execução Plasma

Baseado em Reth. Lida com execução de transações, gerenciamento de estado e fornece endpoints JSON-RPC para aplicações.

Cliente Observador da Plasma

Um cliente leve que monitora a rede de consenso da Plasma sem participar da produção ou validação de blocos.
A configuração do Docker Compose orquestra esses componentes junto com containers de inicialização que lidam com geração de JWT secret, geração de chaves e configuração de banco de dados automaticamente.

Estrutura de Diretórios

Cada diretório de rede segue o mesmo layout:
{network}/
├── docker-compose/
│   ├── docker-compose.yml        # Service definitions
│   ├── .env                      # Image versions and tags (source of truth)
│   ├── non-validator.toml        # Consensus configuration
│   ├── enodes.txt                # Execution bootstrap nodes
│   ├── monitoring.yml            # Monitoring stack
│   └── monitoring/               # Prometheus & Grafana configs
└── shared/                       # Validator keys & identities (read-only)
    ├── keys/                     # BLS12-381 validator public keys
    └── identities/               # Validator identity files

Processo de Configuração Explicado

O arquivo Docker Compose define quatro serviços que são executados em sequência:
1

Inicialização do OpenSSL

Gera o JWT secret para comunicação segura via Engine API e cria chaves secp256k1 para a identidade de rede do seu nó. Estes são gerados apenas uma vez e persistem entre reinicializações.
2

Inicialização do Banco de Dados de Consenso

Inicializa o banco de dados de consenso com a configuração de gênesis para a rede escolhida e gera um peer ID para o seu nó.
3

Inicialização do Banco de Dados de Execução

Inicializa o banco de dados de execução do Reth com o estado de gênesis.
4

Implantação do Container

Assim que a inicialização for concluída, os clientes de execução e consenso são iniciados. O Cliente de Execução (Reth) inicia primeiro e expõe a API JSON-RPC e a Engine API. O Cliente Observador de Consenso inicia depois que o cliente de execução estiver saudável e se conecta à rede de consenso.

Configuração

Todos os números de versão e tags de imagem são definidos no arquivo .env de cada rede — esta é a fonte única de verdade para as versões de software. O cliente de consenso é configurado via non-validator.toml.
SeçãoCamposDescrição
(top-level)engine_api_url, consensus_api_host, authrpc_jwtsecretConexão com o motor de execução
[persistence]data_dirCaminho de armazenamento de dados de consenso
[network]p2p_port, interval, timeout, identity_file_path, trusted_only, discovery.enabledRede P2P e descoberta de peers
[api]enabled, host, portEndpoint da API de consenso
[validators.*]validator_keystore_pk_file_path, identity_file_pathComitê de validadores
[network.bootstrap_nodes.*]api_host, p2p_port, peer_idPeers de bootstrap de consenso

NAT / Endereço Externo

Para nós atrás de NAT, configure um endereço externo para que os peers possam descobrir e se conectar ao seu nó:
[network]
external_address = "node.example.com:34070"

Configuração de Portas

PortaServiçoProtocoloDescrição
8545RPC de ExecuçãoHTTPEndpoint da API JSON-RPC
8551Auth de ExecuçãoHTTPEngine API (interna)
30303P2P de ExecuçãoTCP/UDPRede peer-to-peer
34070P2P de ConsensoTCPRede de consenso
35070API de ConsensoHTTPEndpoint de saúde/API de consenso
9001MétricasHTTPMétricas Prometheus
Requisitos de firewall: Garanta entrada/saída na porta 30303 (TCP/UDP) para P2P de execução, entrada na porta 34070 (TCP) para P2P de consenso e comunicação interna na porta 8551 para a Engine API. A interface JSON-RPC na porta 8545 é exposta por padrão — considere restringir o acesso em produção.

Operações Comuns

cd {network}/docker-compose

docker compose up -d                              # Start
docker compose -f monitoring.yml up -d            # Start monitoring
docker compose logs -f                            # Logs
docker compose down                               # Stop
docker compose -f monitoring.yml down             # Stop monitoring
docker compose down -v && docker compose up -d    # Clean restart

Monitorando seu Nó

Uma vez que seu nó esteja operacional, você pode monitorar sua saúde e status de sincronização. Para configuração abrangente de monitoramento e melhores práticas, consulte o guia de monitoramento.
# Check container status
docker compose ps

# View execution client logs
docker compose logs -f plasma-execution

# View consensus observer client logs
docker compose logs -f plasma-consensus
Seu nó começará a sincronizar imediatamente. A sincronização inicial pode levar vários minutos, dependendo das condições da rede e das especificações de hardware.

Snapshots de Banco de Dados

A Plasma publica snapshots diários de banco de dados para mainnet e testnet. Os snapshots permitem fazer o bootstrap de um novo nó em horas, em vez de sincronizar a partir do gênesis, o que pode levar significativamente mais tempo. Cada snapshot contém dois arquivos — o banco de dados da camada de consenso e o banco de dados da camada de execução — carregados em um bucket S3 requester-pays. Você precisa de uma conta AWS; as tarifas padrão de transferência de dados S3 se aplicam.

Pré-requisitos para Snapshot

RequisitoDetalhes
Conta AWSCredenciais configuradas via aws configure ou variáveis de ambiente
AWS CLIv2 recomendada (aws --version)
Espaço em discoMainnet: ~400 GB livres • Testnet: ~100 GB livres
A transferência de dados para fora de us-east-2 custa ~US$ 0,09/GB para os primeiros 10 TB/mês. A transferência de uma instância EC2 na mesma região é gratuita — executar seu nó em us-east-2 é a opção mais econômica.

Buckets de Snapshot

PropriedadeMainnetTestnet
Bucketplasma-mainnet-db-backupsplasma-testnet-db-backups
Regiãous-east-2 (Ohio)us-east-2 (Ohio)
Modelo de acessoRequester-paysRequester-pays
Cadência de backupDiáriaDiária às 02:00 UTC
RetençãoContínua (backups mais antigos removidos automaticamente)3 dias
Os backups são organizados em pastas com data (MM-DD-YY). Cada pasta contém dois arquivos:
ArquivoDescrição
Banco de dados de consenso (.db na mainnet, .mdb na testnet)Estado completo da camada de consenso
Banco de dados de execução (.tar.gz)Arquivo tar do diretório data/ de execução do Reth

Baixe um Snapshot

# Set your target network's bucket
BUCKET="plasma-mainnet-db-backups"   # or "plasma-testnet-db-backups"

# List available snapshots
aws s3 ls "s3://${BUCKET}/" \
  --region us-east-2 \
  --request-payer requester

# Download the most recent snapshot
DATE="MM-DD-YY"   # replace with the latest date folder (e.g. 03-23-26)

aws s3 cp \
  "s3://${BUCKET}/${DATE}/" \
  ./backups/ \
  --recursive \
  --region us-east-2 \
  --request-payer requester

Restaurar a Partir de Snapshot

1

Pare seu nó

cd {network}/docker-compose
docker compose down
2

Restaure o banco de dados de consenso

Copie o snapshot para o diretório de dados de consenso:
# Mainnet (.db)
cp backups/consensus-backup-*.db /path/to/plasma-data-dir/

# Testnet (.mdb)
cp backups/consensus-backup-*.mdb /path/to/plasma-data-dir/
3

Restaure o banco de dados de execução

Extraia o arquivo para o diretório de dados de execução:
tar -xzf backups/execution-backup-*.tar.gz -C /path/to/execution-data-dir/
4

Reinicie seu nó

docker compose up -d

Solução de Problemas de Snapshot

ProblemaCausa / Correção
Access DeniedVocê deve incluir --request-payer requester em cada comando. O bucket rejeita solicitações sem isso.
403 ForbiddenCredenciais AWS não configuradas. Execute aws sts get-caller-identity para verificar se você tem uma sessão válida.
Listagem de bucket vaziaBackups mais antigos são limpos automaticamente. Se o bucket parecer vazio, um ciclo de backup pode estar em andamento — verifique novamente mais tarde.
Extensão de arquivo incorretaA mainnet usa .db; a testnet usa .mdb. Garanta que você copie o arquivo correto para sua rede.