Instalação
Instalação¶
A blockchain v2 roda como um conjunto de nós validadores. Você pode subir tudo com Docker (recomendado para testar) ou instalar manualmente em cada servidor.
Opção A — Docker Compose (demo: Orion + Mongo + 3 nós)¶
git clone https://github.com/Martinez1991/helixBlockchain.git
cd helixBlockchain
python scripts/gen_dev_secrets.py # gera .env (gitignored) com chaves+token de DEV
docker compose up --build
Isso sobe MongoDB, FIWARE Orion e 3 validadores. Nenhum segredo é versionado:
o compose lê chaves/token do .env gerado pelo script (apenas para
desenvolvimento). Para Kubernetes/HA, use o chart em
deploy/helm/helix.
Opção C — Ingressar numa rede existente¶
Um nó novo pode buscar o genesis de um peer em vez de tê-lo na config:
defina HELIX_CONSENSUS__BOOTSTRAP_GENESIS=true e ao menos um peer.
Opção B — Instalação manual (por nó)¶
Requisitos: Python 3.11+ e acesso ao MongoDB do broker Orion.
git clone https://github.com/Martinez1991/helixBlockchain.git
cd helixBlockchain
python3 -m venv .venv && source .venv/bin/activate
pip install . # ou: pip install -e ".[dev]" para desenvolver
1. Gere a identidade do validador¶
python -m helix_blockchain.tools.keygen node-1 <IP_DESTE_NO>:8000
Isso imprime:
- a chave privada (vai no .env deste nó);
- o peer spec público id@host:port|pubkey (compartilhe com os outros nós).
2. Configure o .env¶
cp .env.example .env
Edite e preencha:
HELIX_NODE__NODE_ID=node-1
# Em produção, prefira um arquivo de segredo (Vault/KMS/k8s):
HELIX_NODE__PRIVATE_KEY_FILE=/run/secrets/helix_private_key
# (ou inline, só para dev): HELIX_NODE__PRIVATE_KEY_HEX=<chave>
# Broker Orion a monitorar (MongoDB)
HELIX_ORION__HOST=<ip-do-orion>
HELIX_ORION__PASSWORD=<senha-do-mongo>
HELIX_ORION__DATABASE=orion
# Demais validadores (peer specs gerados no passo 1, separados por vírgula)
HELIX_CONSENSUS__PEERS=node-2@10.0.0.2:8000|<pub2>,node-3@10.0.0.3:8000|<pub3>
HELIX_CONSENSUS__ADVERTISE=node-1:8000
HELIX_CONSENSUS__BIND_PORT=8000
# Token de cluster (mesmo em todos; prefira arquivo em produção)
HELIX_CLUSTER_TOKEN_FILE=/run/secrets/helix_cluster_token
# Persistência (SQLite para começar; Postgres em produção)
HELIX_STORAGE__URL=sqlite:///data/helix_chain.db
Segurança: nenhuma credencial fica no código. Nunca faça commit do
.env. Em produção, use segredos via arquivo (*_FILE), habilite TLS/mTLS (HELIX_TLS__*,HELIX_ORION__TLS) e considere rate limiting (HELIX_CONSENSUS__RATE_LIMIT_RPS). Referência completa em configuration.md e security.md.
3. Execute¶
helix-node
Repita os passos em cada servidor validador, ajustando NODE_ID,
PRIVATE_KEY_HEX e a lista de PEERS. Para tolerância bizantina (f=1) use
4 validadores.
Verificação¶
curl http://<ip-do-no>:8000/chain # altura da cadeia e quórum
curl http://<ip-do-no>:8000/health