RBBNet / Permissionamento

0 stars 3 forks source link

Smart Contracts de Permissionamento

Versões de interface do contrato de permissionamento

Especificação técnica da versão 1: https://entethalliance.org/wp-content/uploads/2020/06/EEA_Enterprise_Ethereum_Client_Specification_V5.pdf

Especificação técnica da versão 2: https://entethalliance.org/wp-content/uploads/2020/11/EEA_Enterprise_Ethereum_Client_Specification_v6.pdf

Ver mais especificações: https://entethalliance.org/technical-specifications/

Como o besu define a versão e mais informações: https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Specify-Perm-Version/

Versionamento

Mais informações aqui: https://github.com/RBBNet/rbb/blob/master/Versionamento.md

No repositório do Permissionamento, estamos considerando a API pública como sendo as ABIs dos contratos. A versão do Permissionamento 1.0.0 é a usada na rede de Laboratório, com a release v1.0.0+lab01-backend. A release da branch migrations ficou como 1.0.1, um patch de correção, apesar de adicionar outras funcionalidades. De acordo com o SemVer, ela seria a 1.1.0.

⚠️ IMPORTANTE: ler sessão Dinâmica, que dita o comportamento para a implementação de novas funcionalidades.

Branches

Essa sessão será mantida por motivos históricos, apesar de ter sido adotado o versionamento semântico (SemVer) e uma limpeza de branches ter sido feita. Nota: A versão 1 "pura" dos smart contracts de permissionamento da Consensys (sem as modificações da lacchain) não foi encontrada.

Uso

Organização dos diretórios da branch V1-backend

Desenvolvimento

Nota: É recomendável não utilizar Windows no processo de desenvolvimento.

Instalar as dependências

Execute yarn install para instalar as dependências do projeto. Essa etapa só é necessária ao configurar o projeto pela primeira vez.

Compilar

Execute yarn compile para compilar os smart contracts.

Testar

Execute yarn test para realizar os testes automatizados dos smart contracts de permissionamento.

OBS: Se houver um arquivo .env criado, comente as variáveis NODE_INGRESS_CONTRACT_ADDRESS e ACCOUNT_INGRESS_CONTRACT_ADDRESS no arquivo para realizar os testes.

Levantar Nó Hardhat

Execute yarn hardhat node para iniciar um nó Hardhat. Ao iniciar um nó Hardhat, será dado o endpoint do nó Hardhat, uma lista de contas e as chaves privadas correspondentes. Mantenha esse terminal aberto para manter o nó Hardhat em execução.

Execute yarn deploy --network localhost para realizar o deploy dos smart contracts no nó Hardhat.

OBS: Se houver um arquivo .env criado, comente as variáveis NODE_INGRESS_CONTRACT_ADDRESS e ACCOUNT_INGRESS_CONTRACT_ADDRESS no arquivo .env para realizar o deploy inicial no nó Hardhat. Após o deploy inicial, os endereços listados na console para os contratos NodeIngress e AccountIngress podem ser copiados para essas variáveis.

Produção