Pular para o conteúdo principal

Configurando o Cliente CrossFi Chain.

Daemon do Crossfi Chain​

crossfid é a ferramenta que permite interagir com o nó que opera na rede Cosmos Hub, quer você o execute por conta própria ou não. Vamos configurá-lo corretamente.

Configurando o crossfid​

O comando principal usado para configurar o crossfid é o seguinte:

crossfid config

Isso permite definir um valor padrão para cada flag informado.

Primeiro, configure o endereço do nó completo ao qual deseja se conectar:

crossfid config node :

# exemplo: crossfid config node https://77.87.106.33:26657

Se você executar seu próprio nó completo, use apenas tcp://localhost:26657 como o endereço.

Em seguida, vamos definir o valor padrão da flag --trust-node:

crossfid config trust-node true

# Defina como true se você confia no nó completo ao qual está se conectando, senão false

Por fim, vamos definir o chain-id da blockchain com a qual queremos interagir:

crossfid config chain-id crossfi-1

Gerenciamento de Chaves​

Chaveiro​

O keyring armazena os pares de chaves privadas/públicas usados para interagir com um nó. Por exemplo, uma chave de validador precisa ser configurada antes de executar o nó blockchain, para que os blocos sejam assinados corretamente. A chave privada pode ser armazenada em diferentes locais, chamados de backends, como um arquivo ou o armazenamento de chaves próprio do sistema operacional.

Ambientes sem interface (headless) recomendam o uso dos backends file ou pass.

Tipos de Chaves​

Existem três tipos de representações de chave que são usadas:

  • mp
    • Derivado de chaves de conta geradas por crossfid keys add
    • Usado para receber fundos
    • ex. mp15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc
  • mpvaloper
    • Usado para associar um validador ao seu operador
    • Usado para invocar comandos de staking
    • ex. mpvaloper1carzvgq3e6y3z5kz5y6gxp3wpy3qdrv928vyah
  • mppub
    • Derivado de chaves de conta geradas por crossfid keys add
    • ex. mppub1zcjduc3q7fu03jnlu2xpl75s2nkt7krm6grh4cc5aqth73v0zwmea25wj2hsqhlqzm
  • mpvalconspub
    • Gerado quando o nó é criado com crossfid init.
    • Obtenha esse valor com crossfid tendermint show-validator
    • ex. mpvalconspub1zcjduepq0ms2738680y72v44tfyqm3c9ppduku8fs6sr73fx7m666sjztznqzp2emf

Migre as Chaves do Keybase legadas em disco para o Armazenamento secreto embutido do sistema operacional​

Versões mais antigas do crossfid armazenavam chaves no diretório home do usuário. Se estiver migrando de uma versão antiga do crossfid, precisará migrar suas chaves antigas para o armazenamento de credenciais do sistema operacional executando o seguinte comando:

crossfid keys migrate

O comando solicitará cada senha. Se uma senha estiver incorreta, a respectiva chave será pulada.


Gerar Chaves​

Você precisará de um par de chaves de conta privadas e públicas (ou seja, sk e pk, respectivamente) para poder receber fundos, enviar transações, efetuar staking, etc.

Para gerar uma nova chave secp256k1:

crossfid keys add

A saída do comando acima conterá uma frase semente (seed phrase). Recomenda-se salvar a frase semente em um local seguro para que, caso você esqueça a senha do armazenamento de credenciais do sistema operacional, você possa, eventualmente, regenerar a chave a partir da frase semente com o seguinte comando:

crossfid keys add --recover

Se você verificar suas chaves privadas, você agora verá ``:

crossfid keys show

Visualize o endereço do operador do validador através de:

crossfid keys show  --bech=val

Você pode ver todas as suas chaves disponíveis digitando:

crossfid keys list

Visualize a chave pública do validador para o seu nó digitando:

crossfid tendermint show-validator

Observe que esta é a chave de assinatura do Tendermint, não a chave do operador que você usará nas transações de delegação.

Recomendamos fortemente não usar a mesma senha para várias chaves. A equipe do Tendermint e a Interchain Foundation não se responsabilizarão pela perda de fundos.


Gerar Chaves Públicas Multisig​

Você pode gerar e imprimir uma chave pública multisig digitando:

`crossfid keys add --multisig=name1,name2,name3[...] --multisig-threshold=K new_key_name`

O K é o número mínimo de chaves privadas que devem ter assinado as transações que carregam o endereço da chave pública como signatário.

A flag --multisig deve conter os nomes das chaves públicas que serão combinadas em uma chave pública que será gerada e armazenada como new_key_name no banco de dados local. Todos os nomes fornecidos via --multisig já devem existir no banco de dados local. A menos que a opção --nosort esteja definida, a ordem em que as chaves são fornecidas na linha de comando não importa, isto é, os seguintes comandos geram duas chaves idênticas:

crossfid keys add --multisig=foo,bar,baz --multisig-threshold=2 multisig_address
crossfid keys add --multisig=baz,foo,bar --multisig-threshold=2 multisig_address

Endereços multisig também podem ser gerados sob demanda e impressos pelo seguinte comando:

crossfid keys show --multisig-threshold K name1 name2 name3 [...]

Para mais informações sobre como gerar, assinar e transmitir transações com uma conta de assinatura múltipla, consulte Transações Multisig.


Transmissão de Transações​

Ao transmitir transações, o crossfid aceita a opção --broadcast-mode. Esse sinalizador pode ter os valores sync (padrão), async ou block, em que sync faz com que o cliente retorne uma resposta CheckTx, async faz com que o cliente retorne imediatamente, e block faz o cliente esperar pela confirmação da transação (ou expirar).

É importante observar que o modo block não deve ser usado na maioria das circunstâncias. Isso ocorre porque a transmissão pode expirar e a tx ainda pode ser incluída em um bloco. Isso pode resultar em várias situações indesejáveis. Portanto, é melhor usar sync ou async e consultar pelo hash da tx para determinar quando ela é incluída em um bloco.

Taxas e Gás​

Cada transação pode fornecer taxas ou preços de gás, mas não ambos.

Validador(es) possuem um preço mínimo de gás (multi-denom) configurado e usam esse valor ao determinar se devem incluir a transação em um bloco durante o CheckTx, onde gasPrices >= minGasPrices. Observe que sua transação precisa fornecer taxas que sejam maiores ou iguais a qualquer uma das denominações exigidas pelo validador.

Observação: Com esse mecanismo ativo, os validadores podem começar a priorizar transações pelo gasPrice no mempool, portanto oferecer taxas mais altas ou preços de gás pode resultar em maior prioridade da transação.

por exemplo

crossfid tx bank send ... --fees=50000uatom

ou

bash
crossfid tx bank send ... --gas-prices=0.0025uatom

Operações de Conta​

Obter Tokens​

Em uma testnet, obter tokens geralmente é feito via faucet. No momento não há um faucet público disponível.

Consultar Saldo da Conta​

Após receber tokens para o seu endereço, você pode visualizar o saldo da sua conta digitando:

crossfid query account

Quando você consulta o saldo de uma conta com zero tokens, você receberá este erro: No account with address was found in the state. Isso também pode acontecer se você financiar a conta antes de o seu nó estar totalmente sincronizado com a cadeia. Ambos são normais.

Enviar Tokens​

O comando a seguir pode ser usado para enviar moedas de uma conta para outra:

crossfid tx bank send   10faucetToken \
--chain-id=

O argumento amount aceita o formato .

Você pode querer limitar o gás máximo que pode ser consumido pela transação usando a opção --gas. Se você passar --gas=auto, a estimativa de gás será feita automaticamente antes de executar a transação. A estimativa de gás pode ser imprecisa, já que mudanças de estado podem ocorrer entre o final da simulação e a execução real da transação, portanto, um ajuste é aplicado sobre a estimativa original para garantir que a transação seja transmitida com sucesso. O ajuste pode ser controlado pela opção --gas-adjustment, cujo valor padrão é 1.0.

Agora, visualize os saldos atualizados das contas de origem e destino:

crossfid query account
crossfid query account

Você também pode verificar seu saldo em um bloco específico usando a opção --block:

crossfid query account  --block=

Você pode simular uma transação sem realmente transmiti-la adicionando a flag --dry-run à linha de comando:

crossfid tx bank send   10faucetToken \
--chain-id= \
--dry-run

Além disso, você pode construir uma transação e imprimir seu formato JSON na saída padrão (STDOUT) adicionando --generate-only à lista de argumentos da linha de comando:

crossfid tx bank send   10faucetToken \
--chain-id= \
--generate-only > unsignedSendTx.json
bash
crossfid tx sign \
--chain-id= \
--from= \
unsignedSendTx.json > signedSendTx.json

O sinal --generate-only impede que crossfid acesse o keybase local. Assim, quando esse sinal é fornecido `` deve ser um endereço.

Você pode validar as assinaturas da transação digitando o seguinte:

crossfid tx sign --validate-signatures signedSendTx.json

Você pode transmitir a transação assinada para um nó fornecendo o arquivo JSON no seguinte comando:

crossfid tx broadcast --node= signedSendTx.json

Consultar Transações​

Correspondência de um conjunto de Eventos​

Você pode usar o comando de busca de transações para consultar transações que correspondam a um conjunto específico de events, que são adicionados a toda transação.

Cada evento é composto por um par chave-valor no formato .=. Eventos também podem ser combinados para consultar um resultado mais específico usando o símbolo &.

Você pode consultar transações por events da seguinte forma:

crossfid query txs --events='message.sender=cosmos1...'

E para usar múltiplos events:

crossfid query txs --events='message.sender=cosmos1...&message.action=withdraw_delegator_reward'

A paginação também é suportada via page e limit:

crossfid query txs --events='message.sender=cosmos1...' --page=1 --limit=20

A tag de ação sempre é igual ao tipo de mensagem retornado pela função Type() da mensagem correspondente.

Você pode encontrar uma lista de events disponíveis em cada um dos módulos do SDK:

Correspondência do Hash de uma Transação​

Você também pode consultar uma transação única pelo seu hash usando o seguinte comando:

crossfid query tx [hash]

Slashing​

Desencarcelar​

Para desencarcelar seu validador encarcerado

crossfid tx slashing unjail --from

Informações de Assinatura​

Para recuperar as informações de assinatura de um validador:

crossfid query slashing signing-info

Parâmetros de Consulta​

Você pode obter os parâmetros atuais de slashing via:

crossfid query slashing params

Minte​

Você pode consultar os parâmetros de emissão/inflação via:

crossfid query minting params

Para consultar o valor atual da inflação:

crossfid query minting inflation

Para consultar o valor atual das provisões anuais:

crossfid query minting annual-provisions

Staking​

Configurar um Validador​

Consulte a seção Configuração do Validador (ссылка была удалена) para um guia mais completo sobre como configurar um validador-candidato.

Delegar a um Validador​

Na próxima mainnet, você pode delegar atom a um validador. Esses delegadores podem receber parte da receita de taxas do validador. Leia mais sobre o Cosmos Token Model.

Consultar Validadores​

Você pode consultar a lista de todos os validadores de uma cadeia específica:

crossfid query staking validators

Se quiser obter as informações de um único validador, você pode verificá-lo com:

crossfid query staking validator

Vincular Tokens​

No mainnet do Cosmos Hub, delegamos uatom, onde 1atom = 1000000uatom. Aqui está como você pode delegar tokens a um validador de teste (i.e. delegar):

crossfid tx staking delegate \
--amount=10000000uatom \
--validator= \
--from= \
--chain-id=

`` é o endereço do operador do validador ao qual você pretende delegar. Se estiver executando uma testnet local, você pode encontrá-lo com:

crossfid keys show [name] --bech val

onde [name] é o nome da chave que você especificou quando inicializou o crossfid.

Enquanto os tokens estejam vinculados, eles ficam agrupados com todos os demais tokens vinculados na rede. Validadores e delegadores obtêm uma porcentagem de ações que equivalem à sua participação neste pool.

Consulta de Delegações​

Uma vez que você envia uma delegação a um validador, você pode ver suas informações usando o seguinte comando:

crossfid query staking delegation

Ou se você quiser verificar todas as suas delegações atuais com validadores distintos:

crossfid query staking delegations

Desvincular Tokens​

Se, por qualquer motivo, o validador se comportar de forma inadequada, ou se você apenas quiser desvincular uma certa quantidade de tokens, use o seguinte comando.

crossfid tx staking unbond \
\
10atom \
--from= \
--chain-id=

A desvinculação será concluída automaticamente quando o período de desvinculação tiver passado.

Consulta de Desvinculações​

Depois de iniciar uma desvinculação, você pode ver suas informações usando o seguinte comando:

crossfid query staking unbonding-delegation

Ou se você quiser verificar todas as suas desvinculações pendentes com validadores distintos:

crossfid query staking unbonding-delegations

Além disso, você pode obter todas as desvinculações de um validador específico:

crossfid query staking unbonding-delegations-from

Redelegar Tokens​

Uma redelegação é um tipo de delegação que permite vincular tokens ilíquidos de um validador para outro:

crossfid tx staking redelegate \
\
\
10atom \
--from= \
--chain-id=

Aqui você também pode redelegar uma quantidade específica de shares-amount ou uma shares-fraction com as flags correspondentes.

A redelegação será concluída automaticamente quando o período de desvinculação tiver passado.

Consulta de Redelegações​

Uma vez iniciada a rededelegação, você pode ver suas informações usando o seguinte comando:

crossfid query staking redelegation

Ou se você quiser verificar todas as suas rededelegations atuais com validadores distintos:

crossfid query staking redelegations

Além disso, você pode obter todas as rededelegations de saída de um validador específico:

  crossfid query staking redelegations-from

Parâmetros de Consulta​

Parâmetros definem configurações de alto nível para o staking. Você pode obter os valores atuais usando:

crossfid query staking params

Com o comando acima você obterá os valores para:

  • Tempo de Desvinculação
  • Número máximo de validadores
  • Denominação da moeda para staking

Todos esses valores estarão sujeitos a atualizações por meio de um processo de governança por propostas de Alteração de Parâmetros (ParameterChange).

Consultar Pool​

Um pool de staking define os parâmetros dinâmicos do estado atual. Você pode consultá-los com o seguinte comando:

crossfid query staking pool

Com o comando pool você obterá os valores para:

  • Tokens não vinculados e vinculados
  • Oferta de tokens
  • Inflação anual atual e o bloco no qual a última inflação foi processada
  • Últimas participações vinculadas registradas

Consultar Delegações para o Validador

Você também pode consultar todas as delegações de um determinado validador:

  crossfid query delegations-to

Governança​

Governança é o processo pelo qual usuários no Cosmos Hub chegam a um consenso sobre upgrades de software, parâmetros da mainnet ou mecanismos de sinalização por meio de propostas de texto. Isso é feito através de votação em propostas, que serão submetidas por detentores de ATOM na mainnet.

Algumas considerações sobre o processo de votação:

  • A votação é realizada por detentores vinculados de ATOM em base de 1 voto por 1 ATOM vinculado
  • Delegadores herdaram o voto do seu validador se não votarem
  • Os votos são contados no final do período de votação (2 semanas na mainnet) onde cada endereço pode votar várias vezes para atualizar o valor de Option (pagando a taxa de transação cada vez), apenas o voto mais recentemente registrado será contado como válido
  • Os votantes podem escolher entre as opções Yes, No, NoWithVeto e Abstain
  • No final do período de votação, uma proposta é aceita se e somente se:
    • (YesVotes / (YesVotes+NoVotes+NoWithVetoVotes)) > 1/2
    • (NoWithVetoVotes / (YesVotes+NoVotes+NoWithVetoVotes)) < 1/3
    • ((YesVotes+NoVotes+NoWithVetoVotes) / totalBondedStake) >= quorum

Para mais informações sobre o processo de governança e como ele funciona, por favor consulte a especificação do módulo Governança especificação.

Criar uma Proposta de Governança​

Para criar uma proposta de governança, você precisa submeter um depósito inicial junto com um título e uma descrição. Vários módulos fora da governança podem implementar seus próprios tipos de propostas e manipuladores (ex.: alterações de parâmetros), onde o próprio módulo de governança suporta propostas de Texto. Qualquer módulo fora da governança tem seu comando montado sobre submit-proposal.

Para submeter uma proposta Text:

crossfid tx gov submit-proposal \
--title= \
--description=&amp;lt;description&amp;gt; \
--type="Text" \
--deposit="1000000uatom" \
--from=&amp;lt;name&amp;gt; \
--chain-id=&amp;lt;chain_id&amp;gt;

Você também pode fornecer a proposta diretamente através da flag --proposal que aponta para um arquivo JSON contendo a proposta.

Para submeter uma proposta de alteração de parâmetros, você deve fornecer um arquivo de proposta, pois seu conteúdo é menos amigável para entrada via CLI:

crossfid tx gov submit-proposal param-change &amp;lt;path/to/proposal.json&amp;gt; \
--from=&amp;lt;name&amp;gt; \
--chain-id=&amp;lt;chain_id&amp;gt;

Onde proposal.json contém o seguinte:


],
"deposit": [

]

Atualmente alterações de parâmetros são avaliadas mas não validadas, portanto é muito importante que qualquer mudança de value seja válida (ou seja, do tipo correto e dentro dos limites) para o parâmetro correspondente, por exemplo, MaxValidators deve ser um inteiro e não um decimal.

Uma avaliação adequada de uma proposta de mudança de parâmetro deve evitar que isso aconteça (nenhum depósito deve ocorrer durante o processo de governança), mas isso deve ser observado independentemente.

O SoftwareUpgrade atualmente não é suportado, pois não foi implementado e não difere da semântica de uma proposta Text.

Consultar Propostas​

Uma vez criada, você pode consultar informações da proposta:

crossfid query gov proposal &amp;lt;proposal_id&amp;gt;

Ou consultar todas as propostas disponíveis:

crossfid query gov proposals

Você também pode consultar propostas filtradas por voter (votante) ou depositor (depositante) usando as flags correspondentes.

Para consultar o proponente de uma determinada proposta de governança:

crossfid query gov proposer &amp;lt;proposal_id&amp;gt;

Aumentar Depósito​

Para que uma proposta seja transmitida para a rede, o valor depositado deve ser superior a um minDeposit (valor inicial: 512000000uatom). Se a proposta que você criou não atingiu esse requisito, você ainda pode aumentar o depósito total para ativá-la. Assim que o depósito mínimo for atingido, a proposta entra no período de votação:

crossfid tx gov deposit &amp;lt;proposal_id&amp;gt; "10000000uatom" \
--from=&amp;lt;name&amp;gt; \
--chain-id=&amp;lt;chain_id&amp;gt;

NOTE: Propostas que não cumprirem esse requisito serão excluídas após MaxDepositPeriod ser alcançado.

Consultar Depósitos​

Uma vez que uma nova proposta é criada, você pode consultar todos os depósitos submetidos a ela:

crossfid query gov deposits &amp;lt;proposal_id&amp;gt;

Você também pode consultar um depósito submetido por um endereço específico:

crossfid query gov deposit &amp;lt;proposal_id&amp;gt; &amp;lt;depositor_address&amp;gt;

Votar em uma Proposta​

Após o depósito de uma proposta atingir o valor MinDeposit, o período de votação se abre. Detentores vinculados de ATOM podem então votar nela:

crossfid tx gov vote &amp;lt;proposal_id&amp;gt; &amp;lt;Yes/No/NoWithVeto/Abstain&amp;gt; \
--from=&amp;lt;name&amp;gt; \
--chain-id=&amp;lt;chain_id&amp;gt;

Consultar Votos​

Verifique o voto com a opção que você acabou de enviar:

crossfid query gov vote &amp;lt;proposal_id&amp;gt; &amp;lt;voter_address&amp;gt;

Você também pode obter todos os votos anteriores enviados para a proposta com:

crossfid query gov votes &amp;lt;proposal_id&amp;gt;

Consultar o resultado da contagem da proposta​

Para verificar a contagem atual de uma determinada proposta, você pode usar o comando tally:

crossfid query gov tally &amp;lt;proposal_id&amp;gt;

Consultar Parâmetros de Governança​

Para verificar os parâmetros atuais de governança, execute:

crossfid query gov params

Para consultar subconjuntos dos parâmetros de governança, execute:

crossfid query gov param voting
crossfid query gov param tallying
crossfid query gov param deposit

Distribuição de Taxas​

Consultar Parâmetros de Distribuição​

Para verificar os parâmetros atuais de distribuição, execute:

crossfid query distribution params

Consultar o Pool Comunitário de Distribuição​

Para consultar todas as moedas no pool comunitário que está sob controle de Governança:

crossfid query distribution community-pool

Consultar recompensas pendentes​

Para verificar as recompensas pendentes atuais (não sacadas), execute:

crossfid query distribution outstanding-rewards

Consultar Comissão do Validador​

Para verificar a comissão pendente atual de um validador, execute:

crossfid query distribution commission &amp;lt;validator_address&amp;gt;

Consultar Penalizações de Validador​

Para verificar penalizações históricas de um validador, execute:

crossfid query distribution slashes &amp;lt;validator_address&amp;gt; &amp;lt;start_height&amp;gt; &amp;lt;end_height&amp;gt;

Consultar Recompensas do Delegador​

Para verificar as recompensas atuais de uma delegação (caso sejam sacadas), execute:

crossfid query distribution rewards &amp;lt;delegator_address&amp;gt; &amp;lt;validator_address&amp;gt;

Consultar Todas as Recompensas de Delegadores​

Para verificar todas as recompensas atuais de uma delegação (caso sejam sacadas), execute:

crossfid query distribution rewards &amp;lt;delegator_address&amp;gt;

Transações Multisig​

Transações multisig exigem assinaturas de várias chaves privadas. Portanto, gerar e assinar uma transação a partir de uma conta multisig envolve cooperação entre as partes envolvidas. Uma transação multisig pode ser iniciada por qualquer uma das chaves, e pelo menos uma delas precisará importar as chaves públicas de outras partes para o Keybase e gerar uma chave pública multisig para finalizar e transmitir a transação.

Por exemplo, dada uma chave multisig composta pelas chaves p1, p2 e p3, cada uma mantida por uma parte distinta, o usuário detentor de p1 precisaria importar p2 e p3 para gerar a chave pública da conta multisig:

crossfid keys add \
p2 \
--pubkey=cosmospub1addwnpepqtd28uwa0yxtwal5223qqr5aqf5y57tc7kk7z8qd4zplrdlk5ez5kdnlrj4

crossfid keys add \
p3 \
--pubkey=cosmospub1addwnpepqgj04jpm9wrdml5qnss9kjxkmxzywuklnkj0g3a3f8l5wx9z4ennz84ym5t

crossfid keys add \
p1p2p3 \
--multisig-threshold=2 \
--multisig=p1,p2,p3

Uma nova chave pública multisig p1p2p3 foi armazenada, e seu endereço será usado como signatário de transações multisig:

crossfid keys show --address p1p2p3

Você também pode visualizar o limiar multisig, os constituintes da chave pública e os pesos respectivos visualizando a saída JSON da chave ou passando a flag --show-multisig:

crossfid keys show p1p2p3 -o json

crossfid keys show p1p2p3 --show-multisig

O primeiro passo para criar uma transação multisig é iniciá-la em nome do endereço multisig criado acima:

crossfid tx bank send cosmos1570v2fq3twt0f0x02vhxpuzc9jc4yl30q2qned 1000000uatom \
--from=&amp;lt;multisig_address&amp;gt; \
--generate-only &amp;gt; unsignedTx.json

O arquivo unsignedTx.json contém a transação não assinada codificada em JSON. p1 pode agora assinar a transação com sua própria chave privada:

crossfid tx sign \
unsignedTx.json \
--multisig=&amp;lt;multisig_address&amp;gt; \
--from=p1 \
--output-document=p1signature.json

Uma vez que a assinatura é gerada, p1 transmite unsignedTx.json e p1signature.json para p2 ou p3, que por sua vez gerarão suas respectivas assinaturas:

crossfid tx sign \
unsignedTx.json \
--multisig=&amp;lt;multisig_address&amp;gt; \
--from=p2 \
--output-document=p2signature.json

p1p2p3 é uma chave multisig 2-de-3, portanto, uma assinatura adicional é suficiente. Qualquer titular da(s) chave(s) pode agora gerar a transação multisig combinando os arquivos de assinatura necessários:

crossfid tx multisign \
unsignedTx.json \
p1p2p3 \
p1signature.json p2signature.json &amp;gt; signedTx.json

A transação pode agora ser enviada ao nó:

crossfid tx broadcast signedTx.json

Scripts de Autocompletar para Shells​

Scripts de conclusão para shells UNIX populares como Bash e Zsh podem ser gerados através do comando completion, disponível para ambos crossfid e crossfid.

Se você quiser gerar scripts de conclusão para Bash, execute o seguinte comando:

crossfid completion > crossfid_completion
crossfid completion > gaiacli_completion

Se você quiser gerar scripts de conclusão para Zsh, execute o seguinte comando:

crossfid completion --zsh > crossfid_completion
crossfid completion --zsh > gaiacli_completion

Na maioria dos sistemas UNIX, esses scripts podem ser carregados no .bashrc ou no .bash_profile para habilitar a autocompleção do Bash:

echo '. crossfid_completion' &amp;gt;&amp;gt; ~/.bashrc
echo '. gaiacli_completion' &amp;gt;&amp;gt; ~/.bashrc

Consulte o manual do usuário do seu interpretador fornecido pelo seu sistema operacional para informações sobre como habilitar a autocompleção do shell.