Configurando o Cliente CrossFi Chain
Daemon da Cadeia CrossFi
crossfid
é a ferramenta que permite interagir com o nó que opera na rede Cosmos Hub, mesmo que você não o opere. Vamos configurá-lo adequadamente.
Configurando crossfid
O comando principal usado para configurar crossfid
é o seguinte:
configuração do crossfid
Permite definir um valor padrão para cada sinalizador dado.
Primeiro, configure o endereço do nó completo ao qual você deseja se conectar:
configuração do nó crossfid :
# exemplo: configuração do nó crossfid https://77.87.106.33:26657
Se você operar seu próprio nó completo, use apenas tcp://localhost:26657
como endereço.
Em seguida, vamos definir o valor padrão do sinalizador --trust-node
:
configuração do crossfid trust-node true
# Defina como verdadeiro se confiar no nó completo ao qual está se conectando, falso caso contrário.
Finalmente, vamos definir o chain-id
da blockchain com a qual queremos interagir:
configuração do crossfid chain-id crossfi-1
Gerenciamento de Chaves
Porta-chaves
O porta-chaves armazena pares de chaves privadas/públicas usados para interagir com um nó. Por exemplo, uma chave de validador precisa ser configurada antes de rodar o nó da blockchain, para que os blocos possam ser assinados corretamente. A chave privada pode ser armazenada em diferentes localizações, chamadas "backends", como um arquivo ou o próprio armazenamento de chaves do sistema operacional.
Ambientes sem interface gráfica são recomendados para usar os backends file
ou pass
.
Tipos de Chave
Existem três tipos de representações de chave que são usadas:
mp
- Derivado das chaves de conta geradas por
crossfid keys add
- Usado para receber fundos
- ex.:
mp15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc
- Derivado das chaves de conta geradas por
mpvaloper
- Usado para associar um validador ao seu operador
- Usado para invocar comandos de staking
- ex.:
mpvaloper1carzvgq3e6y3z5kz5y6gxp3wpy3qdrv928vyah
mppub
- Derivado das chaves de conta geradas por
crossfid keys add
- ex.:
mppub1zcjduc3q7fu03jnlu2xpl75s2nkt7krm6grh4cc5aqth73v0zwmea25wj2hsqhlqzm
- Derivado das chaves de conta geradas por
mpvalconspub
- Gerado quando o nó é criado com
crossfid init
. - Obtenha este valor com
crossfid tendermint show-validator
- ex.:
mpvalconspub1zcjduepq0ms2738680y72v44tfyqm3c9ppduku8fs6sr73fx7m666sjztznqzp2emf
- Gerado quando o nó é criado com
Migrar Chaves do Armazenamento de Chaves Legacy Para o Armazenamento Interno do Sistema Operacional
Versões anteriores do crossfid
usavam para armazenar chaves no diretório inicial do usuário. Se você 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:
migrar chaves crossfid
O comando pedirá cada frase de segurança. Se uma frase de segurança estiver incorreta, ele pulará a chave respectiva.
Gerar Chaves
Você precisará de um par de chaves privadas e públicas de conta (também conhecidas como sk, pk
respectivamente) para poder receber fundos, enviar txs, bônus tx, etc.
Para gerar uma nova chave secp256k1:
adicionar chaves crossfid
A saída do comando acima conterá uma frase semente. É recomendável salvar a frase semente em um local seguro para que, caso você esqueça a senha do armazenamento de credenciais do sistema operacional, possa eventualmente regenerar a chave a partir da frase semente com o seguinte comando:
adicionar chaves crossfid --recover
Se você verificar suas chaves privadas, agora verá ``:
mostrar chaves crossfid
Visualizar o endereço do operador do validador via:
mostrar chaves crossfid --bech=val
Você pode ver todas as suas chaves disponíveis digitando:
listar chaves crossfid
Visualizar a chave pública do validador para o seu nó digitando:
crossfid tendermint show-validator
Observe que esta é a chave de assinatura Tendermint, não a chave do operador que você usará em transações de delegação.
Recomendamos fortemente NÃO usar a mesma frase de segurança para várias chaves. A equipe Tendermint e a Interchain Foundation não serão responsáveis pela perda de fundos.
Gerar Chaves Públicas Multisig
Você pode gerar e imprimir uma chave pública multisig digitando:
adicionar chaves crossfid --multisig=nome1,nome2,nome3[...] --limite-multisig=K novo_nome_chave
K
é o número mínimo de chaves privadas que devem ter assinado as transações que usam o endereço da chave pública como signatário.
O sinalizador --multisig
deve conter o nome das chaves públicas que serão combinadas em uma chave pública que será gerada e armazenada como novo_nome_chave
no banco de dados local. Todos os nomes fornecidos através do --multisig
devem já existir no banco de dados local. A menos que o sinalizador --nosort
seja definido, a ordem em que as chaves são fornecidas na linha de comando não importa, ou seja, os seguintes comandos geram duas chaves idênticas:
adicionar chaves crossfid --multisig=foo,bar,baz --limite-multisig=2 endereço_multisig
adicionar chaves crossfid --multisig=baz,foo,bar --limite-multisig=2 endereço_multisig
Endereços Multisig também podem ser gerados no ato e impressos pelo comando:
mostrar chaves crossfid --limite-multisig K nome1 nome2 nome3 [...]
Para mais informações sobre como gerar, assinar e transmitir transações com uma conta de assinatura múltipla, veja Transações Multisig.
Transmissão de Transações
Ao transmitir transações, crossfid
aceita um sinalizador --modo-transmissao
. Este sinalizador pode ter um valor de sync
(padrão), async
ou block
, onde sync
faz o cliente retornar uma resposta CheckTx, async
faz o cliente retornar imediatamente, e block
faz o cliente esperar que o tx seja confirmado (ou tempo esgotado).
É importante notar que o modo block
não deve ser usado na maioria das circunstâncias. Isso porque a transmissão pode terminar, mas o tx ainda pode ser incluído em um bloco. Isso pode resultar em muitas situações indesejáveis. Portanto, é melhor usar sync
ou async
e consultar por hash tx para determinar quando o tx é incluído em um bloco.
Taxas e Gas
Cada transação pode fornecer taxas ou preços de gas, mas não ambos.
Os validadores têm uma configuração de preço mínimo de gas (multi-denominação) e usam esse valor ao determinar se devem ou não incluir a transação em um bloco durante CheckTx
, onde gasPrices >= minGasPrices
. Observe que sua transação deve fornecer taxas que são maiores ou iguais a qualquer das denominações que o validador requer.
Nota: Com tal mecanismo em vigor, os validadores podem começar a priorizar transações por gasPrice
na mempool, então fornecer taxas ou preços de gas mais altos pode render maior prioridade de tx.
ex.:
crossfid tx bank send ... --taxas=50000uatom
ou
bash
crossfid tx bank send ... --preços-gas=0.0025uatom
Operações de Conta
Obter Tokens
Em uma testnet, a obtenção de tokens é geralmente feita através de uma torneira. Atualmente não há torneira pública disponível.
Consultar Saldo da Conta
Após receber tokens em seu endereço, você pode ver o saldo de sua conta digitando:
consultar conta crossfid
Ao consultar um saldo de conta com zero tokens, você receberá este erro: Nenhuma conta com o endereço foi encontrada no estado.
Isso também pode acontecer se você financiar a conta antes de seu nó estar totalmente sincronizado com a cadeia. Ambos são normais.
Enviar Tokens
O seguinte comando pode ser usado para enviar moedas de uma conta para outra:
crossfid tx bank send 10faucetToken \
--chain-id=
O argumento quantidade
aceita o formato .
Você pode querer limitar o máximo de gas que pode ser consumido pela transação através do sinalizador --gas
. Se você passar --gas=auto
, o fornecimento de gas será automaticamente estimado antes de executar a transação. A estimativa de gas pode ser imprecisa, pois as mudanças de estado podem ocorrer entre o final da simulação e a execução real de uma transação, portanto, um ajuste é aplicado em cima da estimativa original para garantir que a transação seja transmitida com sucesso. O ajuste pode ser controlado pelo sinalizador --gas-adjustment
, cujo valor padrão é 1,0.
Agora, veja os saldos atualizados das contas de origem e destino:
consultar conta crossfid
consultar conta crossfid
Você também pode verificar seu saldo em um determinado bloco usando o sinalizador --bloco
:
consultar conta crossfid --bloco=
Você pode simular uma transação sem realmente transmiti-la, adicionando o sinalizador --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 para STDOUT, adicionando --generate-only
à lista de argumentos da linha de comando:
crossfid tx bank send 10faucetToken \
--chain-id= \
--generate-only > unsignedSendTx.json
bash
sign crossfid tx \
--chain-id= \
--from= \
unsignedSendTx.json > signedSendTx.json
O sinalizador --generate-only
impede que o crossfid
acesse a base de chaves local. Assim, quando tal sinalizador é fornecido, `` deve ser um endereço.
Você pode validar as assinaturas da transação digitando o seguinte:
sign crossfid tx --validate-signatures signedSendTx.json
Você pode transmitir a transação assinada para um nó fornecendo o arquivo JSON ao seguinte comando:
broadcast crossfid tx --node= signedSendTx.json
Consultar Transações
Correspondendo a um Conjunto de Eventos
Você pode usar o comando de pesquisa de transações para consultar transações que correspondem a um conjunto específico de eventos
, que são adicionados em cada transação.
Cada evento é composto por um par chave-valor no formato .=
. Os eventos também podem ser combinados para consultar um resultado mais específico usando o símbolo &
.
Você pode consultar transações por eventos
da seguinte forma:
consultar txs crossfid --eventos='message.sender=cosmos1...'
E para usar múltiplos eventos
:
consultar txs crossfid --eventos='message.sender=cosmos1...&message.action=withdraw_delegator_reward'
A paginação também é suportada via page
e limit
:
consultar txs crossfid --eventos='message.sender=cosmos1...' --page=1 --limit=20
A tag de ação sempre iguala ao tipo de mensagem retornado pela função Type()
da mensagem relevante.
Você pode encontrar uma lista de eventos
disponíveis em cada um dos módulos SDK:
- Eventos de Staking
- Evento de Governança
- Eventos de Slashing
- Eventos de Distribuição
- Eventos Bancários
Correspondendo ao Hash de uma Transação
Você também pode consultar uma única transação pelo seu hash usando o comando a seguir:
consultar crossfid tx [hash]
Slashing
Unjailing
Para liberar seu validador preso
crossfid tx slashing unjail --from
Informações de Assinatura
Para recuperar as informações de assinatura de um validador:
consultar crossfid slashing assinaturas_info
Consultar Parâmetros
Você pode obter os parâmetros atuais de slashing via:
consultar crossfid slashing parametros
Mintagem
Você pode consultar os parâmetros de mintagem/inflação via:
consultar crossfid mintagem parametros
Para consultar o valor atual da inflação:
consultar crossfid mintagem inflacao
Para consultar o valor atual de provisões anuais:
consultar crossfid mintagem provisoes_anuais
Staking
Configure um Validador
Por favor, consulte a seção Configuração do Validador para um guia mais completo sobre como configurar um candidato a validador.
Delegue para um Validador
Na próxima mainnet, você pode delegar atom
para um validador. Esses delegadores podem receber parte da receita das taxas do validador. Leia mais sobre o Modelo de Token Cosmos.
Consultar Validadores
Você pode consultar a lista de todos os validadores de uma cadeia específica:
consultar crossfid staking validadores
Se você quiser obter as informações de um único validador, pode verificá-las com:
consultar crossfid staking validador
Vincular Tokens
No mainnet do Cosmos Hub, nós delegamos uatom
, onde 1atom = 1000000uatom
. Veja como vincular tokens a um validador de testnet (ou seja, delegar):
crossfid tx staking delegate \
--amount=10000000uatom \
--validator= \
--from= \
--chain-id=
`` é o endereço operador do validador ao qual você pretende delegar. Se estiver executando uma testnet local, você pode encontrá-lo com:
crossfid keys show [nome] --bech val
onde [nome]
é o nome da chave que você especificou ao inicializar crossfid
.
Enquanto os tokens estão vinculados, eles são agrupados com todos os outros tokens vinculados na rede. Validadores e delegadores obtêm uma porcentagem de ações igual à sua participação nesse pool.
Consultar Delegações
Após enviar 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 algum motivo o validador se comportar mal, 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á automaticamente concluída quando o período de desvinculação tiver passado.
Consultar Desvinculações-Delegações
Após iniciar uma desvinculação-delegaçã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-delegações atuais com validadores distintos:
crossfid query staking unbonding-delegations
Além disso, você pode obter todas as desvinculações-delegações de um validador específico:
crossfid query staking unbonding-delegations-from
Redeligar Tokens
Uma re-delegaçã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 realocar uma quantidade específica de shares-amount
ou uma shares-fraction
com as bandeiras correspondentes.
A re-delegação será automaticamente concluída quando o período de desvinculação tiver passado.
Consultar Redalegações
Após iniciar uma re-delegação, você pode ver suas informações usando o seguinte comando:
crossfid query staking redelegation
Ou se você quiser verificar todas as suas desvinculações-delegações atuais com validadores distintos:
crossfid query staking redelegations
Além disso, você pode obter todas as redalegações de saída de um validador específico:
crossfid query staking redelegations-from
Consultar Parâmetros
Os parâmetros definem configurações de alto nível para 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 de moeda para staking
Todos esses valores serão atualizados por meio de um processo de governança
por propostas de Mudança de Parâmetro
.
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
- Última participação gravada vinculada em ações
Consultar Delegações para Validador
Você também pode consultar todas as delegações para um validador específico:
crossfid query delegations-to
Governança
Governança é o processo pelo qual os usuários no Cosmos Hub podem chegar a um consenso sobre atualizações de software, parâmetros da mainnet ou mecanismos de sinalização por meio de propostas de texto. Isso é feito por meio de votações nas propostas, que serão enviadas por detentores de ATOM
na mainnet.
Algumas considerações sobre o processo de votação:
- A votação é feita por detentores de
ATOM
vinculados em uma base de 1ATOM
vinculado 1 voto - Os delegadores herdam o voto de seu validador se não votarem
- Os votos são contabilizados no final do período de votação (2 semanas na mainnet), onde cada endereço pode votar várias vezes para atualizar seu valor
Opção
(pagando a taxa de transação a cada vez), apenas o voto mais recente será considerado válido - Os votantes podem escolher entre as opções
Sim
,Não
,Não com Veto
eAbster-se
- Ao final do período de votação, uma proposta é aceita se:
(VotosSim / (VotosSim+VotosNão+VotosNãoComVeto)) > 1/2
(VotosNãoComVeto / (VotosSim+VotosNão+VotosNãoComVeto)) < 1/3
((VotosSim+VotosNão+VotosNãoComVeto) / participação total vinculada) >= quórum
Para mais informações sobre o processo de governança e como ele funciona, por favor, confira a especificação do módulo de Governança aqui.
Criar uma Proposta de Governança
Para criar uma proposta de governança, você deve enviar um depósito inicial junto com um título e descrição. Vários módulos fora de governança podem implementar seus próprios tipos de propostas e manipuladores (por exemplo, alterações de parâmetros), onde o módulo de governança em si suporta propostas Texto
. Qualquer módulo fora de governança tem seu comando montado em cima de submit-proposal
.
Para enviar uma proposta de Texto
:
crossfid tx gov submit-proposal \
--title= \
--description=<descrição> \
--type="Texto" \
--deposit="1000000uatom" \
--from=<nome> \
--chain-id=<chain_id>
Você também pode fornecer a proposta diretamente através da bandeira --proposal
que aponta para um arquivo JSON contendo a proposta.
Para enviar uma proposta de alteração de parâmetro, você deve fornecer um arquivo de proposta, já que seu conteúdo é menos amigável ao input do CLI:
crossfid tx gov submit-proposal param-change <path/to/proposal.json> \
--from=<nome> \
--chain-id=<chain_id>
Onde proposal.json
contém o seguinte:
],
"deposit": [
]
}
Atualmente, alterações de parâmetro são avaliadas mas não validadas, então é muito importante que qualquer mudança de valor
seja válida (ou seja, tipo correto e dentro dos limites) para seu respectivo parâmetro, 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 prevenir isso de acontecer (nenhum depósito deve ocorrer durante o processo de governança), mas isso deve ser notado independentemente.
O SoftwareUpgrade
não é atualmente suportado pois não é implementado e atualmente não difere dos semânticos de uma proposta Texto
.
Consultar Propostas
Uma vez criada, você pode agora consultar as informações da proposta:
crossfid query gov proposal <proposal_id>
Ou consultar todas as propostas disponíveis:
crossfid query gov proposals
Você também pode consultar propostas filtradas por eleitor
ou depositante
usando as bandeiras correspondentes.
Para consultar o autor de uma determinada proposta de governança:
crossfid query gov proposer <proposal_id>
Aumentar Depósito
Para que uma proposta seja transmitida para a rede, o valor depositado deve estar acima de um valor minDeposit
(valor inicial: 512000000uatom
). Se a proposta que você criou anteriormente não atendeu a esse requisito, você ainda pode aumentar o valor total depositado para ativá-la. Uma vez que o depósito mínimo é atingido, a proposta entra em período de votação:
crossfid tx gov deposit <proposal_id> "10000000uatom" \
--from=<nome> \
--chain-id=<chain_id>
> NOTA: Propostas que não atendem a esse requisito serão excluídas após o MaxDepositPeriod
ser alcançado.
Consultar Depósitos
Depois que uma nova proposta é criada, você pode consultar todos os depósitos enviados para ela:
crossfid query gov deposits <proposal_id>
Você também pode consultar um depósito submetido por um endereço específico:
crossfid query gov deposit <proposal_id> <depositor_address>
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 de Atom
vinculados podem então votar nela:
crossfid tx gov vote <proposal_id> <Sim/Não/NãoComVeto/Abster-se> \
--from=<nome> \
--chain-id=<chain_id>
Consultar Votos
Verifique o voto com a opção que você acabou de submeter:
crossfid query gov vote <proposal_id> <voter_address>
Você também pode obter todos os votos anteriores submetidos para a proposta com:
crossfid query gov votes <proposal_id>
Consultar resultados da apuração da proposta
Para verificar a apuração atual de uma determinada proposta, você pode usar o comando tally
:
crossfid query gov tally <proposal_id>
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 Pool da Comunidade de Distribuição
Para consultar todas as moedas no pool da comunidade que está sob o controle da Governança:
crossfid query distribution community-pool
Consultar recompensas em aberto
Para verificar as recompensas em aberto (não retiradas) atuais, execute:
crossfid query distribution outstanding-rewards
Consultar Comissão do Validador
Para verificar a comissão em aberto atual para um validador, execute:
crossfid query distribution commission <validator_address>
Consultar Cortes do Validador
Para verificar cortes históricos para um validador, execute:
crossfid query distribution slashes <validator_address> <start_height> <end_height>
Consultar Recompensas do Delegador
Para verificar as recompensas atuais para uma delegação (se fossem retiradas), execute:
crossfid query distribution rewards <delegator_address> <validator_address>
Consultar Todas as Recompensas do Delegador
Para verificar todas as recompensas atuais para uma delegação (se fossem retiradas), execute:
crossfid query distribution rewards <delegator_address>
Transações Multisig
Transações multisig requerem assinaturas de múltiplas chaves privadas. Assim, a geração e assinatura de uma transação de uma conta multisig requer cooperação entre as partes envolvidas. Uma transação multisig pode ser iniciada por qualquer dos detentores da chave, e pelo menos um deles precisaria importar as chaves públicas de outras partes para seu 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 sendo mantida por uma parte distinta, o usuário que estiver em posse de p1
precisaria importar tanto p2
quanto 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 assinante de transações multisig:
crossfid keys show --address p1p2p3
Você também pode ver o limite de multisig, os componentes de chave pública e respectivos pesos visualizando a saída JSON da chave ou passando a bandeira --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=<multisig_address> \
--generate-only > 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=<multisig_address> \
--from=p1 \
--output-document=p1signature.json
Uma vez que a assinatura é gerada, p1
transmite tanto unsignedTx.json
quanto p1signature.json
para p2
ou p3
, que por sua vez gerarão suas respectivas assinaturas:
crossfid tx sign \
unsignedTx.json \
--multisig=<multisig_address> \
--from=p2 \
--output-document=p2signature.json
p1p2p3
é uma chave multisig de 2-de-3, portanto, uma assinatura adicional é suficiente. Qualquer dos detentores da chave agora pode gerar a transação multisig combinando os arquivos de assinatura necessários:
crossfid tx multisign \
unsignedTx.json \
p1p2p3 \
p1signature.json p2signature.json > signedTx.json
A transação agora pode ser enviada para o nó:
crossfid tx broadcast signedTx.json
Scripts de Conclusão de Shells
Os scripts de conclusão para intérpretes de shell UNIX populares, como Bash
e Zsh
, podem ser gerados através do comando completion
, disponível tanto para crossfid
quanto para crossfid
.
Se você deseja gerar scripts de conclusão para Bash
, execute o seguinte comando:
crossfid completion > crossfid_completion
crossfid completion > gaiacli_completion
Se você deseja gerar scripts de conclusão para Zsh
, execute o seguinte comando:
crossfid completion --zsh > crossfid_completion
crossfid completion --zsh > gaiacli_completion
Em sistemas UNIX, tais scripts podem ser carregados no .bashrc
ou .bash_profile
para habilitar a autocompleção do Bash:
echo '. crossfid_completion' >> ~/.bashrc
echo '. gaiacli_completion' >> ~/.bashrc
Consulte o manual do usuário de seu interpretador fornecido por seu sistema operacional para obter informações sobre como habilitar a autocompleção do shell.