Primeiro design de GAS da linguagem MOVE: Análise do método de cálculo de custos de GAS na cadeia
A versão inicial da linguagem MOVE não considerou o mecanismo de GAS, portanto, o plano de GAS projetado para um determinado projeto de blockchain foi chamado de "uma aventura". Este plano descreve os princípios, processos, métodos de cálculo e ajustes posteriores para a definição do GAS, e convida a comunidade a fornecer sugestões.
A medição de GAS é um conceito básico de muitas blockchains, usado para medir os recursos de computação e armazenamento necessários para executar e armazenar transações na cadeia. O plano de GAS determina o custo de todas as execuções na cadeia, utilizado para calcular os gastos de GAS durante a execução da transação.
processo
O processo de implementação de GAS deste projeto de blockchain inclui:
Princípios de definição
Preparar o quadro de avaliação, determinar o preço de cada execução
Estabelecer um sistema de medição de GAS e álgebra de GAS seguro para MOVE
Importar a estrutura GAS upstream
Tornar a estrutura GAS consciente do armazenamento
Refinar ainda mais o plano de GAS
princípio
Os princípios da definição do projeto incluem:
O custo de operação deve estar diretamente relacionado com os recursos disponíveis na rede e deve diminuir com o avanço da tecnologia.
GAS é definido pela governança na cadeia, podendo ser configurado sem costura
O GAS pode prevenir ataques DoS e pode ser ajustado rapidamente com base nas condições da rede.
O preço do GAS reflete a visão de crescimento acelerado e de manutenção da popularidade da blockchain.
Incentivar escolhas que favoreçam a segurança, modularidade, entre outros, no design.
calcular GAS
O usuário deve especificar ao enviar uma transação:
Quantidade máxima de GAS: o número máximo de unidades de GAS que está disposto a gastar para executar a transação
Preço do GAS: calculado em octal, 1 octal = 0.00000001 token nativo
Cobrança durante a execução da transação:
Custo fixo
Custo de execução
Custo de Leitura
Custo de escrita
Taxa de transação final = Quantidade total de GAS consumido × Preço do GAS
Por exemplo, uma transação consome 670 unidades de GAS, o usuário especifica o preço do GAS como 100 Octa/unidade, então a taxa final é 670 × 100 = 67000 Octa = 0.00067 token nativo.
Se o GAS se esgotar durante a execução da transação, o remetente será cobrado de acordo com a quantidade máxima de GAS, e todas as alterações feitas pela transação serão revertidas.
Estabelecer o plano de GAS
1. Configuração Básica
O plano GAS inclui componentes que não estão relacionados com uma única operação, como o tamanho da transação e a unidade máxima de GAS.
2. Escala de Transação
A maioria dos tamanhos de transação está na ordem de quilobytes, mas a publicação do módulo MOVE pode chegar a vários kilobytes. Inicialmente, o tamanho da transação foi definido como 32KB, mas depois foi ajustado para 64KB com base no feedback da comunidade.
Transações de grande escala aumentarão os custos de largura de banda da rede e podem afetar o desempenho. O pool de memórias tende a ignorar transações de maior escala, portanto é necessário equilibrar entre a máxima escala e a acessibilidade.
3. Máxima unidade de GAS
A unidade máxima de GAS definida no plano GAS determina o número máximo de operações que podem ser executadas na transação. Um valor excessivamente alto pode levar a impactos negativos de desempenho, como ciclos infinitos. Testes descobriram que, mesmo após uma atualização máxima da estrutura, não chega a 90% da unidade máxima de GAS definida (1,000,000).
4. Execução
A equipe construiu uma estrutura de referência e usou ferramentas de análise para avaliar os custos de execução, estimando aproximadamente os custos relativos de todos os comandos MOVE e funções nativas. Considerando exemplos de codificação que aumentam a robustez e a segurança do sistema, chegou-se ao número final de instruções de máquina executadas.
5. Armazenamento
Ao acessar itens de estado ou dados do livro-razão, os nós fazem solicitações de leitura e escrita ao dispositivo de armazenamento. O número total de acessos a dados é limitado pela largura de banda e pela capacidade de IOPS do dispositivo de armazenamento. A equipe considera esses custos ao projetar o plano de armazenamento de GAS.
Acessar e armazenar itens de estado gera custos associados à estrutura de dados relacionada à validação do estado de toda a cadeia de blocos. A fórmula de cálculo de taxas é:
Armazenar a taxa de GAS = taxa do projeto + ( taxa por byte × número de bytes )
ler, criar e escrever
O acesso aos itens de estado é dividido em três tipos: leitura, criação e escrita.
A operação de leitura é a mais comum, limitada apenas pela escassez momentânea de recursos.
A operação de criação adiciona novos itens ao armazenamento de estado, com o custo mais alto
A operação de escrita atualiza os itens existentes, sem gerar sobrecarga adicional na estrutura de dados de autenticação.
Os custos relacionados com o armazenamento são avaliados com base em cada transação, cobrando apenas uma vez por múltiplas leituras e gravações do mesmo recurso.
A equipe definiu 6 parâmetros GAS que compõem o custo total do GAS:
per_item_read: Calibrar de acordo com os IOPs
per_byte_read: calibrado de acordo com a largura de banda
per_item_create: calibrar de acordo com o total do projeto alvo
per_byte_create: calibrar de acordo com o tamanho total objetivo
per_item_write: igual ao per_item_read
per_byte_write: igual a per_byte_create
custo unitário de GAS estável
Cada operação e transação em si requer um custo fixo em unidades em relação aos custos de armazenamento e execução. O custo fixo de unidades de GAS ajuda a manter o plano de GAS constante e desvinculado do valor de mercado do token nativo.
A equipe representa a unidade GAS com precisão de aproximadamente 3 dígitos, como o custo de uma transação de transferência de cerca de 700 unidades GAS.
participação da comunidade
Os membros da comunidade podem:
Identificar as incongruências do plano GAS
Expressar preocupações sobre o plano GAS e participar na discussão
Votação sobre propostas de governança relacionadas ao GAS
Como ajustar o custo de GAS?
O plano GAS funciona como armazenamento de configuração na cadeia, podendo ser alterado através de propostas de governança, e novos comandos ou funcionalidades podem ser adicionados sem problemas.
O plano GAS é projetado para ser escalável, permitindo atualizações através de propostas de governança. À medida que o projeto avança e incorpora o feedback dos usuários, os parâmetros do GAS podem ser ajustados gradualmente.
Alterações complexas na fórmula do GAS exigem atualização do software do nó, e após a adoção em larga escala, a nova versão deve ser aprovada através de propostas de governança.
Trabalho do Futuro
Como o primeiro framework GAS viável para MOVE, este projeto estabelece as bases para o trabalho futuro:
Reduzir os custos de execução: melhorar a eficiência do compilador e da máquina virtual
Cálculo de GAS multidimensional: permite que os usuários especifiquem orçamentos separados para execução e armazenamento
Aliviar o estado inchado: explorar o conceito TTL de cada projeto, removendo itens de estado não acessados na expiração do TTL
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
MOVE language welcomes its first GAS design: na cadeia resource billing plan fully explained
Primeiro design de GAS da linguagem MOVE: Análise do método de cálculo de custos de GAS na cadeia
A versão inicial da linguagem MOVE não considerou o mecanismo de GAS, portanto, o plano de GAS projetado para um determinado projeto de blockchain foi chamado de "uma aventura". Este plano descreve os princípios, processos, métodos de cálculo e ajustes posteriores para a definição do GAS, e convida a comunidade a fornecer sugestões.
A medição de GAS é um conceito básico de muitas blockchains, usado para medir os recursos de computação e armazenamento necessários para executar e armazenar transações na cadeia. O plano de GAS determina o custo de todas as execuções na cadeia, utilizado para calcular os gastos de GAS durante a execução da transação.
processo
O processo de implementação de GAS deste projeto de blockchain inclui:
princípio
Os princípios da definição do projeto incluem:
calcular GAS
O usuário deve especificar ao enviar uma transação:
Cobrança durante a execução da transação:
Taxa de transação final = Quantidade total de GAS consumido × Preço do GAS
Por exemplo, uma transação consome 670 unidades de GAS, o usuário especifica o preço do GAS como 100 Octa/unidade, então a taxa final é 670 × 100 = 67000 Octa = 0.00067 token nativo.
Se o GAS se esgotar durante a execução da transação, o remetente será cobrado de acordo com a quantidade máxima de GAS, e todas as alterações feitas pela transação serão revertidas.
Estabelecer o plano de GAS
1. Configuração Básica
O plano GAS inclui componentes que não estão relacionados com uma única operação, como o tamanho da transação e a unidade máxima de GAS.
2. Escala de Transação
A maioria dos tamanhos de transação está na ordem de quilobytes, mas a publicação do módulo MOVE pode chegar a vários kilobytes. Inicialmente, o tamanho da transação foi definido como 32KB, mas depois foi ajustado para 64KB com base no feedback da comunidade.
Transações de grande escala aumentarão os custos de largura de banda da rede e podem afetar o desempenho. O pool de memórias tende a ignorar transações de maior escala, portanto é necessário equilibrar entre a máxima escala e a acessibilidade.
3. Máxima unidade de GAS
A unidade máxima de GAS definida no plano GAS determina o número máximo de operações que podem ser executadas na transação. Um valor excessivamente alto pode levar a impactos negativos de desempenho, como ciclos infinitos. Testes descobriram que, mesmo após uma atualização máxima da estrutura, não chega a 90% da unidade máxima de GAS definida (1,000,000).
4. Execução
A equipe construiu uma estrutura de referência e usou ferramentas de análise para avaliar os custos de execução, estimando aproximadamente os custos relativos de todos os comandos MOVE e funções nativas. Considerando exemplos de codificação que aumentam a robustez e a segurança do sistema, chegou-se ao número final de instruções de máquina executadas.
5. Armazenamento
Ao acessar itens de estado ou dados do livro-razão, os nós fazem solicitações de leitura e escrita ao dispositivo de armazenamento. O número total de acessos a dados é limitado pela largura de banda e pela capacidade de IOPS do dispositivo de armazenamento. A equipe considera esses custos ao projetar o plano de armazenamento de GAS.
Acessar e armazenar itens de estado gera custos associados à estrutura de dados relacionada à validação do estado de toda a cadeia de blocos. A fórmula de cálculo de taxas é:
Armazenar a taxa de GAS = taxa do projeto + ( taxa por byte × número de bytes )
ler, criar e escrever
O acesso aos itens de estado é dividido em três tipos: leitura, criação e escrita.
Os custos relacionados com o armazenamento são avaliados com base em cada transação, cobrando apenas uma vez por múltiplas leituras e gravações do mesmo recurso.
A equipe definiu 6 parâmetros GAS que compõem o custo total do GAS:
custo unitário de GAS estável
Cada operação e transação em si requer um custo fixo em unidades em relação aos custos de armazenamento e execução. O custo fixo de unidades de GAS ajuda a manter o plano de GAS constante e desvinculado do valor de mercado do token nativo.
A equipe representa a unidade GAS com precisão de aproximadamente 3 dígitos, como o custo de uma transação de transferência de cerca de 700 unidades GAS.
participação da comunidade
Os membros da comunidade podem:
Como ajustar o custo de GAS?
O plano GAS funciona como armazenamento de configuração na cadeia, podendo ser alterado através de propostas de governança, e novos comandos ou funcionalidades podem ser adicionados sem problemas.
O plano GAS é projetado para ser escalável, permitindo atualizações através de propostas de governança. À medida que o projeto avança e incorpora o feedback dos usuários, os parâmetros do GAS podem ser ajustados gradualmente.
Alterações complexas na fórmula do GAS exigem atualização do software do nó, e após a adoção em larga escala, a nova versão deve ser aprovada através de propostas de governança.
Trabalho do Futuro
Como o primeiro framework GAS viável para MOVE, este projeto estabelece as bases para o trabalho futuro: