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:

  1. Princípios de definição
  2. Preparar o quadro de avaliação, determinar o preço de cada execução
  3. Estabelecer um sistema de medição de GAS e álgebra de GAS seguro para MOVE
  4. Importar a estrutura GAS upstream
  5. Tornar a estrutura GAS consciente do armazenamento
  6. Refinar ainda mais o plano de GAS

princípio

Os princípios da definição do projeto incluem:

  1. 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.
  2. GAS é definido pela governança na cadeia, podendo ser configurado sem costura
  3. O GAS pode prevenir ataques DoS e pode ser ajustado rapidamente com base nas condições da rede.
  4. O preço do GAS reflete a visão de crescimento acelerado e de manutenção da popularidade da blockchain.
  5. 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:

  1. Custo fixo
  2. Custo de execução
  3. Custo de Leitura
  4. 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:

  1. Identificar as incongruências do plano GAS
  2. Expressar preocupações sobre o plano GAS e participar na discussão
  3. 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:

  1. Reduzir os custos de execução: melhorar a eficiência do compilador e da máquina virtual
  2. Cálculo de GAS multidimensional: permite que os usuários especifiquem orçamentos separados para execução e armazenamento
  3. Aliviar o estado inchado: explorar o conceito TTL de cada projeto, removendo itens de estado não acessados na expiração do TTL
MOVE3.86%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 1
  • Compartilhar
Comentário
0/400
StablecoinGuardianvip
· 07-25 15:15
Finalmente há GAS confiável
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)