Criar um Projeto Chaincode com a CLI do Blockchain App Builder
Para criar um projeto chaincode com o Blockchain App Builder, você desenvolve um projeto chaincode a partir de um arquivo de especificação detalhado.
Segundo plano
init
do Blockchain App Builder inicializa e efetua scaffolds em um projeto chaincode pronto para uso. Com base em uma entrada simples, o comando init
pode gerar projetos de chaincode complexos que incluem os seguintes recursos:
- Vários ativos (modelos) e seus comportamentos (controladores)
- Métodos CRUD (Criar/Ler/Atualizar/Excluir) gerados automaticamente e não CRUD
- Validação automática de argumentos
- Desestruturação/desestruturação de argumentos
- Capacidade de persistência transparente (ORM)
- Suporte a consultas avançadas
O projeto gerado segue o padrão de modelo/controlador e decorador, que permite que as propriedades de um ativo mantidas no razão sejam especificadas como campos digitados e estendidas com comportamentos e regras de validação específicos. Esse padrão reduz o número de linhas de código, o que pode ajudar na legibilidade e na escalabilidade.
Pré-requisitos
Antes de realizar um projeto, você deve criar um arquivo de especificação de entrada. Para obter mais informações, consulte Arquivo de Especificação de Entrada.
Andaimes no Projeto Chaincode com o Comando init
ochain init -h
lista o uso e as opções do comando. O comando init
tem as seguintes opções:
- --cc/-c:
O nome do projeto chaincode. O valor-padrão é
MyChaincode
. - --lang/-l
O idioma do chaincode scaffolded. O Blockchain App Builder suporta TypeScript (
ts
) e Go (go
). Se nenhuma opção for especificada, o idioma assumirá como padrãots
. - --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 scaffolded 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, o padrão será o diretório atual. Consulte Arquivo de Especificação de Entrada. - --out/-o
O diretório de saída do projeto chaincode scaffolded. Se não for especificado, o projeto scaffolded será gerado no diretório atual.
A saída é um projeto de chaincode TypeScript ou Go 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-padrão é
example.com
.
ochain init --cc MyNewTsProject --lang ts --conf spec.yml
Defaults
Se nenhuma opção for especificada no comando ochain init
, o nome do projeto scaffolded 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
- Projeto de Token Scaffolded TypeScript para ERC-1155
- Projeto Scaffolded Go Token para ERC-1155
- Projeto NFT Scaffolded TypeScript para ERC-721
- Projeto Go NFT do Scaffolded para ERC-721
- Projeto Scaffolded TypeScript para Token Taxonomy Framework
- Projeto Go do Scaffolded para o Token Taxonomy Framework