Esse projeto foi adaptado a partir da test-network do Fabric-samples.
- A validade dos certificados foi alterada de 1 ano para 5 anos.
Criar um KIND cluster:
./network kind
Se já tiver um cluster instalado, apenas exportar o CLUSTER_RUNTIME conforme abaixo. Essa instalação fará tudo localmente através de port-forwards para acessar os pods necessários para inicialização da rede.
export NETWORK_CLUSTER_RUNTIME=k8s
Instalar Ingress Controller & Cert Manager
./network cluster init
Iniciar a rede, criar um canal e
./network up
./network channel create
Para fazer o deploy do chaincode, é necessário publicar a imagem para algum registry e apontar a URL. O valor default está apontando para ghcr.io/mvtavares mas pode ser alterado exportando o comando abaixo:
export NETWORK_REMOTE_REGISTRY_NAME=ghcr.io/xxxx
Implantar o basic-asset-transfer smart contract (chaincode):
./network chaincode deploy asset-transfer-basic ./chaincode
Initializar e consultar o chaincode:
./network chaincode invoke asset-transfer-basic '{"Args":["InitLedger"]}'
./network chaincode query asset-transfer-basic '{"Args":["ReadAsset","asset1"]}'
Terminar a rede:
./network down
Terminar o cluster (KIND):
./network unkind
Limpar o cluster:
./network cluster clean
Conectando com a aplicação:
ver exemplo: application-deployment.yaml
Configurar as variaveis para geração dos arquivos:
export CHAINCODE_NAME=NOME_CHAINCODE
Exemplo: export CHAINCODE_NAME=asset-transfer-basic
./network application
Os arquivos de conexão serão gerados na pasta /build/application/gateways/ (Connection profile) e /build/application/wallet (identities para conexão com fabric).
Checando a expiração dos certificados:
kubectl get certificates -n liberty-dlt -o wide
NAME READY SECRET ISSUER STATUS AGE
org0-ca-tls-cert True org0-ca-tls-cert org0-tls-cert-issuer Certificate is up to date and has not expired 30m
org0-orderer1-tls-cert True org0-orderer1-tls-cert org0-tls-cert-issuer Certificate is up to date and has not expired 29m
org0-orderer2-tls-cert True org0-orderer2-tls-cert org0-tls-cert-issuer Certificate is up to date and has not expired 29m
org0-orderer3-tls-cert True org0-orderer3-tls-cert org0-tls-cert-issuer Certificate is up to date and has not expired 29m
org0-tls-cert-issuer True org0-tls-cert-issuer-secret root-tls-cert-issuer Certificate is up to date and has not expired 30m
org1-ca-tls-cert True org1-ca-tls-cert org1-tls-cert-issuer Certificate is up to date and has not expired 30m
org1-peer1-tls-cert True org1-peer1-tls-cert org1-tls-cert-issuer Certificate is up to date and has not expired 29m
org1-peer2-tls-cert True org1-peer2-tls-cert org1-tls-cert-issuer Certificate is up to date and has not expired 29m
org1-tls-cert-issuer True org1-tls-cert-issuer-secret root-tls-cert-issuer Certificate is up to date and has not expired 30m
Para exibir a data de início e fim dos certificados, é necessário descrevê-los conforme abaixo:
kubectl get certificate -n liberty-dlt -ojsonpath="{range .items[*]}{.metadata.name} not before: {.status.notBefore} not after: {.status.notAfter}{'\n'}{end}"