O MOVE Language introduz o mecanismo GAS: análise completa do cálculo de taxas na cadeia

robot
Geração do resumo em andamento

Primeiro design de GAS da linguagem MOVE: Análise do método de cálculo de taxas de GAS na cadeia

A versão anterior da linguagem MOVE estava originalmente planejada para operar sem GAS, portanto não estava preparada para o mecanismo de GAS. Recentemente, um projeto de blockchain lançou o primeiro esquema de design de GAS para sua cadeia de linguagem MOVE, o que foi oficialmente chamado de "uma aventura".

O plano de GAS do projeto esclarece os princípios, processos, métodos de cálculo, mecanismos de ajuste posterior e a atitude de aceitação das sugestões da comunidade para a formulação do GAS. A medição de GAS é um conceito fundamental nesta na cadeia e em muitas outras cadeias de blocos, que define o cálculo abstrato da quantidade de recursos computacionais e de armazenamento necessários para executar e armazenar transações na cadeia. O plano de GAS determinará o custo consumido por todas as execuções na cadeia, utilizado para calcular os gastos de GAS durante a execução de transações.

Processo

Para uma execução eficaz, o processo do projeto na cadeia é:

  1. Definição de Princípios
  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 uma álgebra de GAS segura para MOVE
  4. Importar a estrutura GAS upstream
  5. Tornar a estrutura GAS consciente do armazenamento
  6. Refinar ainda mais o plano GAS

Princípios

Os princípios definidos pelo projeto incluem:

  1. O custo de operação deve estar diretamente relacionado aos recursos disponíveis na rede, como CPU, memória, rede, armazenamento I/O e uso de espaço. Com a melhoria da tecnologia e dos processos, o custo em GAS deve diminuir.
  2. O GAS deve ser definido pela governança na cadeia e pode ser configurado de forma integrada.
  3. O GAS pode prevenir ataques DoS a recursos fixos da rede, podendo ser necessário ajustar rapidamente através de sugestões de governação de acordo com a situação da rede.
  4. O preço do GAS reflete a visão de acelerar o crescimento e manter a popularidade da blockchain.
  5. Incentivar a fazer escolhas de qualidade no design, como priorizar a segurança, a modularidade, as afirmações, etc.

Cálculo de GAS

Quando o usuário submete uma transação, deve especificar duas quantidades na transação:

  1. Quantidade máxima de GAS: medida em unidades de GAS, representa o número máximo de unidades de GAS que o usuário está disposto a gastar para executar a transação.
  2. Preço do GAS: calculado em octal por unidade de GAS, 1 octal = 0.00000001 token local.

Durante a execução, a transação será cobrada:

  1. Custos fixos: base fixa mais taxas adicionais para grandes transações.
  2. Custo de execução: utilizado para executar instruções MOVE.
  3. Custo de leitura: utilizado para ler dados do armazenamento persistente.
  4. Custo de escrita: usado para gravar dados em armazenamento permanente.

O método de cálculo da taxa de transação final é: a quantidade total de GAS consumido multiplicada pelo preço unitário do GAS. Por exemplo, se uma transação consumir 670 unidades de GAS e o preço unitário de GAS especificado pelo usuário for 100 Octa por unidade, então a taxa de transação final será 670 * 100 = 67000 Octa = 0.00067 moeda local.

Se o GAS for esgotado durante a execução da transação, o remetente será cobrado com base na quantidade máxima de GAS, e todas as alterações feitas por essa transação serão revertidas.

Estabelecer um plano de GAS

1. Configuração básica

O plano GAS inclui vários componentes que não estão relacionados aos detalhes de uma única operação, como o tamanho da transação e a unidade máxima de GAS.

2. Escala de transação

A maioria das transações tem um tamanho na ordem de quilobytes. O módulo MOVE pode atingir alguns quilobytes, enquanto o framework é de cerca de 100 KB. O tamanho do módulo do usuário geralmente varia entre 4 KB e 40 KB. O tamanho inicial da transação foi definido para 32 KB, mas foi ajustado para 64 KB com base nas necessidades da comunidade, a fim de simplificar o desenvolvimento de aplicações.

Transações em larga escala aumentarão os custos de largura de banda da rede e podem afetar o desempenho. Para equilibrar o tamanho e a acessibilidade das transações em grande escala, o pool de memórias pode ignorar transações de maior escala.

3. A maior unidade de GAS

A unidade máxima de GAS definida no plano de GAS determina a quantidade máxima de operações que uma única transação pode executar. Definir um valor muito alto pode ter um impacto negativo no desempenho da blockchain. Mesmo com a maior atualização de estrutura, ainda está abaixo de 90% da unidade máxima de GAS do plano de GAS (definida em 1.000.000).

4. Executar

Ao avaliar o custo de execução, foi construído um quadro de referência e utilizados ferramentas de análise para analisar o Move VM. Através da análise, foram obtidas estimativas de custo relativas para todas as instruções Move e funções nativas. Considerando exemplos de codificação que melhoram a robustez e a segurança do sistema, foi determinado o número final de instruções de máquina executadas e feita uma ponderação com o armazenamento e o máximo de unidades de GAS, resultando no valor atual do plano de GAS.

5. Armazenar

Ao acessar itens de estado do livro-razão ou dados armazenados no armazenamento persistente, o nó emite uma leitura ou gravação para o dispositivo de armazenamento. O número total de acessos a dados por segundo depende da largura de banda e da capacidade IOPS do dispositivo de armazenamento. O plano de armazenamento de GAS foi projetado considerando esses custos.

O acesso e o armazenamento de qualquer item de estado geram custos relacionados à estrutura de dados que verifica o estado completo da blockchain. Esse custo está relacionado à cardinalidade dos diferentes itens de estado. Há também um custo que é proporcional ao tamanho de cada item.

Taxa de armazenamento de GAS = item_fee + (byte_fee * bytes)

ler, criar e escrever

O acesso a itens de estado divide-se em três tipos: leitura, criação ou escrita. A operação de leitura é a mais comum, limitada apenas pela escassez temporária de recursos. A operação de criação adiciona novos itens ao armazenamento de estado, tendo o custo mais elevado. A operação de escrita atualiza itens existentes no armazenamento de estado.

Com base nas considerações acima, foram definidos 6 parâmetros de GAS:

  • per_item_read: correção com base nos IOPs
  • per_byte_read: calibrado de acordo com a largura de banda real
  • per_item_create: calibrar com base no total de itens alvo
  • per_byte_create:calibrar de acordo com o tamanho total alvo
  • per_item_write: igual a 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 em unidades de GAS ajuda a manter o plano de GAS constante e desvinculado do valor de mercado dos tokens locais. As unidades de GAS são representadas com uma precisão de cerca de 3 dígitos, e o custo de transação de transferência é de cerca de 700 unidades de GAS.

Participação da Comunidade

Os membros da comunidade podem:

  1. Identificar as incongruências no plano de GAS
  2. Expressar preocupações sobre o plano GAS, participar de discussões na comunidade
  3. Votar nas propostas de governança relacionadas ao GAS

Ajuste de custo de GAS

O plano GAS, como armazenamento de configuração na cadeia, pode ser alterado através de propostas de governança e novas instruções ou funcionalidades nativas podem ser adicionadas sem esforço. O design do plano GAS é escalável, permitindo atualizações através de propostas de governança. Com melhorias contínuas e a incorporação de feedback dos usuários, os parâmetros do GAS podem ser ajustados ao longo do tempo.

Mudanças complexas na fórmula do GAS exigem a atualização do software dos nós e uma ampla adoção por parte dos operadores de nós. Por fim, é necessário publicar e aprovar uma proposta de governança para utilizar a nova versão do GAS.

Trabalho Futuro

Como o primeiro framework GAS viável para MOVE, este projeto pavimenta o caminho 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 de inchaço: explorar o conceito TTL de cada projeto e remover os itens de estado não visitados quando o TTL expirar.
MOVE2.73%
GAS4.76%
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
  • 6
  • Repostar
  • Compartilhar
Comentário
0/400
ShibaMillionairen'tvip
· 07-24 00:05
Que custos não custos, são idiotas a pagar.
Ver originalResponder0
SatoshiHeirvip
· 07-21 20:58
Hum, o design do MOVE claramente plagia a página 127 do livro amarelo do Ethereum.
Ver originalResponder0
GasWastervip
· 07-21 01:29
outro dia, outra otimização de gás... mata-me agora
Ver originalResponder0
GasGrillMastervip
· 07-21 01:26
Os pagamentos móveis já chegaram, ainda brincamos com isso?
Ver originalResponder0
ImpermanentTherapistvip
· 07-21 01:12
Inovador e queimando dinheiro
Ver originalResponder0
CryptoMotivatorvip
· 07-21 01:09
Já estão a discutir questões de custos. Para quê tanto alvoroço?
Ver originalResponder0
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)