Processos de Deployment
Esta seção fornece informações sobre a instalação do framework de Transferência de Tokens Nativos (NTT) do Wormhole, implantação para EVM e Solana, e manutenção pós-implantação do NTT.
Instalar o CLI do Native Token Transfers Instalação A maneira mais rápida de implantar o Native Token Transfers (NTT) é utilizando o NTT CLI. Como pré-requisitos, certifique-se de ter os seguintes itens instalados:
Instalar Foundry
Instalar Bun
Instalar o NTT CLI:
Verifique se o NTT CLI foi instalado:
Atualização Para atualizar uma instalação existente do NTT CLI, execute:
Nota As instalações e atualizações do NTT CLI sempre pegarão a última tag com o nome vX.Y.Z+cli e verificarão se o commit subjacente está incluÃdo no main.
Para desenvolvimento local, você pode atualizar sua versão do CLI a partir de um branch especÃfico ou instalar de um caminho local.
Para instalar de um branch especÃfico, execute:
Para instalar localmente, execute:
Branches git e instalações locais permitem um loop de iteração rápido, pois as mudanças no código CLI serão refletidas imediatamente no binário em execução, sem a necessidade de executar etapas de build.
Desenvolvimento de Native Token Transfers (NTT) para EVM
Implantar seu Token e Garantir Compatibilidade Caso ainda não tenha feito, implante o contrato do token para as chains de destino ou spoke.
Requisitos para Implantação de Token O NTT do Wormhole é um framework aberto que suporta vários modos de implantação. O NTT CLI atualmente suporta dois modos de implantação: burn-and-mint e hub-and-spoke. Esses modos diferem na forma como os tokens são gerenciados entre as chains.
Modo Burn-and-Mint Tokens integrados ao NttManager no modo de queima exigem as seguintes duas funções:
Essas funções não fazem parte da interface padrão do ERC-20. A interface INttToken documenta as funções e métodos necessários, erros e eventos.
Visualize a interface completa do INttToken
Depois, você define a autoridade de mint para o contrato correspondente do NttManager. Você também pode seguir os scripts no repositório de exemplo de token NTT para implantar um contrato de token.
Modo Hub-and-Spoke Uma chain central (por exemplo, Ethereum) gerencia o suprimento total de tokens no modo hub-and-spoke. Outras chains (spokes) mint ou burn tokens durante as transferências entre chains, garantindo consistência com os tokens bloqueados na chain hub.
Chain hub - tokens são bloqueados na chain hub ao transferir para chains spoke
Chains spoke - tokens são nativos das chains spoke e são ou mintados ou queimados durante as transferências cross-chain
Nota O único requisito para usar o framework NTT é um token ERC20, que pode ser implantado recentemente ou já existente. Etapas como definir a autoridade de mint se aplicam apenas às chains spoke.
Por exemplo, ao transferir tokens de Ethereum (hub) para Polygon (spoke), o NTT Manager bloqueia tokens no Ethereum, e o equivalente é mintado no Polygon. De forma similar, ao transferir tokens de volta de Polygon para Ethereum, os tokens são queimados no Polygon e desbloqueados no Ethereum.
Este processo garante que o suprimento total de tokens permaneça consistente em todas as chains, com a chain hub atuando como a fonte de verdade.
Modelos de Implantação
Burn-and-mint - tokens devem implementar funções personalizadas de mint e burn, permitindo que cada chain gerencie a emissão de tokens de forma independente
Hub-and-spoke - tokens precisam ser apenas compatÃveis com ERC20, com a chain hub atuando como a fonte de verdade para consistência do suprimento
Implantar NTT Crie um novo projeto NTT:
Inicialize um novo arquivo deployment.json especificando a rede:
Certifique-se de que configurou seu ambiente corretamente:
Adicione cada chain para a qual você vai implantar. O exemplo abaixo mostra como configurar o NTT no modo burn-and-mint nas chains Ethereum Sepolia e Arbitrum Sepolia:
Embora não seja recomendado, você pode passar a flag -skip-verify
para o comando ntt add-chain
caso deseje pular a verificação do contrato.
O comando ntt add-chain
aceita os seguintes parâmetros:
Nome de cada chain
Versão do NTT a ser implantada (use
--latest
para as versões mais recentes dos contratos)Modo (queima ou bloqueio)
Endereço do contrato do seu token
O NTT CLI imprime logs detalhados e hashes de transações, para que você possa ver exatamente o que está acontecendo.
Configurar o NTT O NTT CLI se inspira no git. Você pode executar:
Após implantar os contratos NTT, certifique-se de que a implantação está corretamente configurada e que sua representação local está consistente com o estado real na chain, executando ntt status
e seguindo as instruções exibidas na tela.
Definir o Token Minter para o NTT Manager A última etapa no processo de implantação é definir o NTT Manager como o minter do seu token em todas as chains nas quais você implantou no modo de queima. Ao realizar uma implantação hub-and-spoke, é necessário apenas definir o NTT Manager como minter do token em cada chain spoke.
Nota O endereço do NTT Manager necessário pode ser encontrado no arquivo deployment.json.
Se você seguiu a interface INttToken, pode executar a função setMinter(address newMinter)
:
Se você tem um processo personalizado para gerenciar minters de token, deve seguir esse processo para adicionar o NTT Manager correspondente como minter.
Por padrão, as transferências NTT para blockchains EVM suportam relé automático via o relayer Wormhole, o que não requer que o usuário realize uma transação na chain de destino para completar a transferência.
Transferências de Tokens Nativos (NTT) Solana - Implantação
Instalar Dependências Certifique-se de que as seguintes dependências estão instaladas:
Rust
Solana v1.18.10
Anchor v0.29.0
Aviso Garanta que você está usando as versões mencionadas do Solana e Anchor. Usar versões diferentes pode causar problemas.
Implantar NTT Crie um novo projeto NTT (ou use um projeto NTT existente):
Inicialize um novo arquivo deployment.json especificando a rede:
Testnet
Mainnet
Implantar Seu Token Solana Implante um Token SPL Nota As versões do NTT >=v2.0.0+solana oferecem suporte a tokens SPL com hooks de transferência.
Requisitos da Cadeia Principal (Hub Chain) Para implantações de cadeias principais na Solana, o token pode ser um SPL ou Token2022. Tokens de cadeias principais não exigem configuração adicional, como a definição da autoridade do mint.
Para informações detalhadas, consulte a página de Modelos de Implantação.
Requisitos de Modo de Queima No modo de queima, os tokens exigem que sua autoridade de mint seja atribuÃda ao programa NTT. Isso permite que o NTT Manager faça mint e queima de tokens conforme necessário durante transferências entre cadeias.
Todos os passos necessários para configurar o modo de queima, incluindo a configuração da autoridade de mint, estão explicados nas seções abaixo.
Configuração e Implantação Gerar Par de Chaves do Programa NTT Ao implantar um programa Solana, você precisa hardcodificar o ID do programa (um Pubkey) no código do programa. O CLI NTT permite fazer isso de forma fácil.
Gere um novo par de chaves do programa NTT usando:
Derivar a Autoridade do Token Nesta etapa, você derivará o Program Derived Address (PDA) da autoridade do token do ID do programa NTT recém-gerado:
Este script retornará o PDA derivado, que você usará na próxima etapa.
Definir Autoridade de Mint do Token SPL Se você estiver implantando no modo de queima, defina a autoridade de mint do token SPL para o PDA de autoridade de token recém-gerado:
Nota Garanta que você está usando a versão do Anchor CLI 0.29.0. Usar uma versão diferente pode causar problemas de compatibilidade.
Implantar NTT Gere ou exporte seu par de chaves de pagador e execute:
Nota
O comando add-chain aceita a flag opcional --solana-priority-fee
, que define a taxa de prioridade em microlamports. O valor padrão é 50000.
O programa NTT Solana será compilado e implantado, retornando o ID do programa.
Configurar NTT O CLI NTT se inspira no git. Você pode executar:
Verifica se o seu arquivo deployment.json está consistente com o que está on-chain.
Sincroniza o arquivo deployment.json com a configuração on-chain e define os limites de taxa com o número apropriado de casas decimais, dependendo da cadeia especÃfica.
Por exemplo, para Solana, os limites são definidos com 9 casas decimais:
Para Sepolia (Ethereum Testnet), os limites são definidos com 18 casas decimais:
Essa configuração inicial garante que os limites de taxa sejam corretamente representados para a precisão dos tokens de cada cadeia.
Implantar NTT na Solana Agora, você pode enviar a implantação para a rede Solana, especificando o par de chaves que cobrirá as taxas de gás:
Por padrão, as transferências NTT para a Solana suportam retransmissão manual, o que requer que o usuário execute uma transação na Solana para completar a transferência. Componentes da UI, como o Wormhole Connect, oferecem suporte nativo para isso. Para suporte automático de retransmissão Wormhole na Solana, entre em contato com os colaboradores do Wormhole.
Após a Implantação do NTT
Recomendações Pós-Implantação Para oferecer a melhor experiência ao usuário e garantir a implantação mais robusta, os colaboradores do Wormhole recomendam o seguinte após a implantação do NTT:
Implemente um plano de testes robusto para seu token multichain antes do lançamento.
Garanta que medidas de segurança abrangentes e documentadas sejam seguidas quanto à custódia da propriedade do contrato, controle das chaves e funções de controle de acesso.
Considere um frontend simplificado e personalizável, como o Wormhole Connect, para uma experiência de usuário otimizada.
Alternativamente, o Wormhole SDK permite integração direta à sua infraestrutura.
Certifique-se de que atores do ecossistema, como exploradores de blocos, ferramentas de segurança automatizadas (como BlockAid e Blowfish), carteiras (como MetaMask, Backpack e Phantom) estão cientes de sua implantação multichain e que está rotulada corretamente.
Monitore e mantenha sua implantação multichain.
Solução de Problemas na Implantação do NTT Se você encontrar problemas durante o processo de implantação do NTT, verifique os seguintes pontos comuns:
Versões do Solana e Anchor - garanta que você está usando as versões esperadas conforme descrito na página de implantação.
Conformidade do Token no EVM - verifique se o seu token é um token ERC20 na cadeia EVM.
Transferência de autoridade de mint - para tokens de queima ou spoke na Solana, certifique-se de que a autoridade do mint do token foi transferida conforme descrito na seção "Definir Autoridade de Mint do Token SPL".
Configuração decimal - execute
ntt pull
para configurar corretamente os decimais no seu arquivo deployment.json.Configuração de limites de taxa - aumente seus limites de taxa para um valor maior que zero. Limites de taxa iguais a zero podem fazer com que as transações fiquem travadas. Saiba mais sobre como configurar os limites de taxa.
Ambiente Docker baseado no Ubuntu 20.04 - execute
docker compose up -d
para iniciar o contêiner no terminal a partir do diretório que contém o arquivodocker-compose.yml
.
Dockerfile e docker-compose.yml O guia também fornece instruções completas de como configurar o ambiente Docker, incluindo a instalação das dependências necessárias.
Last updated