A BrightCity Chain roda em Hyperledger Besu com consenso QBFT e mantém alta compatibilidade com a EVM Ethereum. Por ser uma rede privada permissionada, alguns comportamentos diferem da mainnet ou de L2s públicas.

Hyperledger Besu

Documentação oficial do cliente de nó

Compatibilidade Solidity

O fork ativo no genesis é Berlin (berlinBlock: 0). Recursos de forks posteriores (London/EIP-1559, Paris, Shanghai, Cancun, Prague, etc.) não estão disponíveis nesta rede. Recomendamos Solidity compatível com Berlin, em geral versões até 0.8.28, sem depender de opcodes ou tipos introduzidos depois.
// Pragma recomendado (fixe a versão no hardhat.config / foundry)
pragma solidity 0.8.28;
Evite ^0.8.19 sem fixar o compilador: você pode obter bytecode com recursos que a BrightCity Chain não executa. Use versão explícita no Foundry ou Hardhat.

Diferenças na EVM

EIP-4844 (blobs)

Transações blob não são suportadas. A rede está no fork Berlin; qualquer transação ou opcode de blob será rejeitado ou não terá efeito esperado.
OpcodeComportamento esperado
BLOBHASHNão disponível (fork Cancun+)
BLOBBASEFEENão disponível (fork Cancun+)

PREVRANDAO

Em redes QBFT permissionadas, PREVRANDAO (EIP-4399) não deve ser usado como fonte de aleatoriedade on-chain. O valor pode ser constante ou previsível em relação à mainnet pós-Merge.
Não use block.prevrandao para aleatoriedade em processos críticos (auditoria, identidade, IoT urbano). Use um VRF ou oráculo adequado ao seu caso de uso.

Consenso e blocos

AspectoEthereum públicaBrightCity Chain
ConsensoPoS (mainnet)QBFT (BFT permissionado)
Produtor de blocoValidadores públicosValidadores do consórcio
Tempo de blocoVariável~2s (blockperiodseconds)
Acesso à redePúblicoPermissionado (consórcio)

Diferenças no RPC

Em endpoints expostos para integradores (https://rpc.fmartns.dev), métodos sensíveis costumam estar desabilitados por segurança e desempenho:
CategoriaMétodosMotivo
Debugdebug_*Uso de memória elevado, risco operacional
Engineengine_*Uso interno dos validadores
Txpooltxpool_*Visibilidade do mempool restrita
Adminadmin_*Operação do nó, apenas operadores
Para depuração profunda, use um nó Besu local ou dedicado com APIs habilitadas, dentro da política do consórcio BrightCity.

Preço do gas

A configuração atual do genesis não ativa London/EIP-1559. O modelo é o gas legado (gasPrice), com limite por bloco definido no genesis.
PropertyValor
Gas ModelLegado (gasPrice)
Block Gas Limit30,000,000 (0x1c9c380)
TaxasDefinidas pela política do consórcio na testnet
// Exemplo com ethers.js (gas legado)
const tx = await contract.metodo({
  gasPrice: 1_000_000_000n, // 1 gwei, ajuste conforme política da rede
  gasLimit: 500_000n,
});
// Foundry / cast
// cast send ... --gas-price 1000000000

Recursos

Configuração da rede

RPC, chain ID e parâmetros QBFT

Contratos

Padrões ERC e deploy na testnet

Gas e transações

ETH nativo e gas legado

Consenso e validadores

QBFT permissionado

Próximos passos

Visão geral da chain

BrightCity Chain Testnet

Usar o RPC

Métodos eth, net, web3

Explorador

Consultar transações e contratos

FAQ

Perguntas frequentes