Desenvolvimento de aplicações
As aplicações Iroha devem tornar o comportamento das transações explícito, manter o estado da assinatura contido e usar consultas e eventos de forma fácil de observar na produção.
Configuração do cliente
- Armazenar a configuração do cliente fora do código-fonte da aplicação. Carregar a cadeia ID, Torii URL, conta de assinatura e configurações de transação a partir de configuração específica do ambiente.
- Mantenha os arquivos
client.tomlseparados para as redes localnet, Taira, Minamoto e privadas. Um assinante de testnet copiado nunca deve se tornar um assinante da mainet. - Estabelecer vidas de transações e temporadas de status deliberadamente. Uma vida muito curta pode expirar sob nervosismo normal da rede, enquanto uma muito longa pode tornar as apresentações duplicadas mais difíceis de raciocinar.
- Usar
nonce = trueapenas quando as transações repetidas devem ter hashes distintos. Para operações de negócios idempotentes, armazenar e reutilizar uma solicitação de aplicação ID para que as recorrências possam ser rastreáveis.
Ver Configuração do cliente para os campos atuais TOML.
Transações
- Construa transações a partir de instruções tipografadas SDK, sempre que possível, em vez das cargas úteis brutas JSON ou montadas com cordas.
- Preflight importante escreve com consultas somente para leitura: existência da conta, saldos de ativos, estado de permissão, disponibilidade de ativos de taxas e estado do objeto alvo.
- Registre o hash da transação, a conta de autoridade, o resumo das instruções e as mudanças esperadas no estado antes de enviar.
- Tratar
Rejected,Expired, e os resultados do prazo são diferentes. Um prazo significa que o cliente não observou um status final; não prova que a rede ignorou a transação. - Após uma escrita bem-sucedida, verifique o estado resultante com um ponto de verificação de consulta ou evento que corresponda à operação do negócio.
Para a mecânica das transações, ver Transações.
Perguntas e Eventos
- Use consultas para os fluxos de estado e eventos atuais para notificações de mudança. Evite substituir a manipulação de eventos por consultas repetidas amplas.
- Paginear consultas iteráveis amplas, como contas, ativos e listagens de blocos.
- Preferem filtros estreitos para assinaturas e gatilhos. filtros largos são úteis para diagnóstico, mas podem adicionar execução desnecessária e processamento do lado cliente.
- Mantenha as verificações de fumo apenas para leitura separadas dos testes de transação assinados, para que a disponibilidade do ponto final seja mais fácil de diagnosticar.
Ver Perguntas, Eventos e Filtros .
Desenvolvimento Assistido por Agentes
- Deixe os agentes inspecionar documentos, código SDK, e estado de rede apenas para leitura antes de pedir-lhes para escrever o código da transação.
- Manter os testes de rede ao vivo opt-in atrás de uma bandeira ambiental, como
TAIRA_LIVE=1. - Não colar chaves privadas, material de recuperação de contas, tokens API ou cabeçalhos de autores encaminhados em instruções.
- Exigir um plano de transação antes que qualquer agente envie uma transação da rede de testes ao vivo. O plano deve nomear a rede, autoridade, instruções, ativo de taxas, leituras pré-voio, resultado esperado e comportamento de retest.
Para o fluxo de trabalho Taira MCP ver Construir sobre SORA 3: Taira e Minamoto.
SDK Higiene
- Pin SDK e versões binárias juntas usando a Matriz de Compatibilidade .
- Mantenha o código do cliente gerado, fragmentos e exemplos sincronizados com a revisão de espaço de trabalho upstream afixada.
- Adicione testes unitários para a construção de código de transações e testes de integração para os menores caminhos de leitura e escrita dos quais o seu aplicativo depende.