Criar um Projeto Chaincode com a CLI do Blockchain App Builder
Para criar um projeto de chaincode ao usar a CLI do Blockchain App Builder, você cria um projeto de chaincode a partir de um arquivo de especificação detalhado. O projeto gerado então contém todos os arquivos que você precisa.
Segundo plano
init
do Blockchain App Builder inicializa e mantém um projeto de chaincode pronto para uso. Com base na entrada simples, o comando init
pode gerar projetos de chaincode complexos que incluem os seguintes recursos:
- Vários ativos (modelos) e seus comportamentos (controladores)
- Gerar automaticamente métodos CRUD (Criar/Ler/Atualizar/Excluir) e não CRUD
- Validação automática de argumentos
- Marshalling/unmarshalling de argumentos
- Capacidade de persistência transparente (ORM)
- A capacidade de chamar consultas avançadas
O projeto gerado segue o padrão de modelo/controlador e decorador, que permite que as propriedades de um ativo que são mantidas no razão sejam especificadas como campos digitados e estendidas com comportamentos específicos e regras de validação. Esse padrão reduz o número de linhas de código, o que ajuda na legibilidade e na escalabilidade.
Pré-requisitos
Antes de montar um projeto, você deve criar um arquivo de especificação de entrada. Para obter mais informações, consulte Arquivo de Especificação de Entrada.
Andaime do Projeto Chaincode com o Comando init
ochain init -h
listará o uso do comando com todas as suas opções. O comando init
tem as seguintes opções:
- --cc/-c:
O nome do projeto de chaincode. O valor default é
MyChaincode
. - --lang/-l
A linguagem do chaincode andaimes. O Blockchain App Builder suporta Typescript (
ts
) e Go (go
). Se nenhuma opção for especificada, o padrão do idioma seráts
. - --conf/-f ou --spec
O caminho para um arquivo de especificação de entrada. O Blockchain App Builder lê o arquivo de especificação de entrada e gera o projeto em andaime com muitas ferramentas auxiliares, que ajudam a reduzir o esforço geral de desenvolvimento. Aproveitar ao máximo o arquivo de especificação de entrada pode reduzir significativamente o tempo de desenvolvimento.
O arquivo de especificação pode estar no formato
yaml
oujson
. Se o caminho não for especificado, ele assumirá como padrão o diretório atual. Consulte Arquivo de Especificação de Entrada. - --saída/-o
O diretório de saída do projeto chaincode scaffolded. Se não for especificado, o projeto com andaimes será gerado no diretório atual.
A saída é um projeto Typescript ou Go chaincode totalmente contido, leve e escalável.
- --raiz/-r
Válido e obrigatório somente para Go. O diretório raiz na variável GOHOME para seus chaincodes Go. O valor default é
example.com
.
my-mac:~ name$ ochain init --cc MyNewTsProject --lang ts --conf spec.yml
Defaults
Se nenhuma opção for especificada no comando ochain init
, o nome do projeto com andaime será MyChaincode
e o idioma será TypeScript.
O arquivo MyChaincode.model.ts
contém apenas um ativo, chamado MyAsset
, com uma propriedade chamada value
. O arquivo MyChaincode.controller.ts
contém um controlador com os métodos CRUD correspondentes para o modelo MyAsset
.
Saída