Design GAS inovador da linguagem MOVE: Análise completa da cálculo de taxas na cadeia

Primeiro design de GAS da linguagem MOVE: explorando o método de cálculo de taxas de GAS na cadeia

A versão anterior da linguagem MOVE estava originalmente planejada para operar em um ambiente sem GAS, portanto, não estava preparada para o GAS. Recentemente, uma equipe de projeto de blockchain lançou o primeiro plano de design de GAS para sua cadeia baseada na linguagem MOVE, o que é chamado de uma tentativa "aventurosa".

Neste plano de GAS, a equipa clarificou os princípios, processos, métodos de cálculo e mecanismos de ajuste posterior para a definição do GAS, e expressou a sua abertura para sugestões da comunidade.

A medição de GAS é um conceito fundamental para este projeto e muitos outros blockchains, que define a quantidade de recursos de computação e armazenamento necessários para executar e armazenar transações na cadeia. O esquema de GAS determina o custo de todas as execuções na cadeia, utilizado para calcular as taxas de GAS utilizadas durante a execução de transações.

fluxo

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

  1. Definição de Princípios
  2. Preparar a estrutura 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 para o projeto
  5. Tornar a estrutura GAS consciente do armazenamento
  6. Refinar ainda mais o plano de GAS

princípio

Os princípios definidos 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 deve ser definido pela governança na cadeia, podendo ser configurado de forma flexível
  3. O GAS pode prevenir ataques DoS e ajustar rapidamente de acordo com as condições da rede.
  4. O preço do GAS reflete a visão da fundação do projeto para promover o crescimento e manter a acessibilidade da blockchain.
  5. Incentivar a fazer escolhas excelentes no design, como focar na segurança, modularidade, etc.

calcular GAS

O utilizador deve especificar duas quantidades ao submeter uma transação:

  • Quantidade máxima de GAS: O número máximo de unidades de GAS que o usuário está disposto a pagar para executar a transação.
  • Preço do GAS: calculado em octal por unidade de GAS, 1 octal = 0,00000001 token nativo

Durante o processo de execução, a transação será sujeita a:

  1. Custos fixos
  2. Custo de execução
  3. Ler custos
  4. Custo de gravação

Taxa de transação final = Quantidade total de GAS consumido × Preço 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 de 100 Octa por unidade, então a taxa final da transação será 670 × 100 = 67000 Octa = 0.00067 token nativo.

Se o GAS se esgotar durante a execução da transação, o remetente será cobrado pelo valor máximo de GAS, e todas as alterações feitas na transação serão revertidas.

Estabelecer o plano de GAS

  1. Configuração básica

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

  1. Escala de transação

A maioria das transações tem um tamanho na ordem dos quilobytes, mas o módulo MOVE pode chegar a vários kilobytes, e a estrutura do projeto tem cerca de 100 KB. O tamanho inicial da transação foi definido em 32 KB, mas foi ajustado para 64 KB de acordo com as necessidades da comunidade, para simplificar o desenvolvimento de aplicações.

  1. Máximo de unidades GAS

A unidade máxima de GAS definida no plano de GAS estabelece o número máximo de operações que podem ser executadas em uma única transação. Definir um valor muito alto pode ter um impacto negativo no desempenho da cadeia. Atualmente está definido em 1.000.000, e mesmo com a maior atualização do quadro, não ultrapassou 90%.

  1. Executar

Avaliar os custos de execução através de uma estrutura de referência e ferramentas de análise, estimar os custos relativos de todas as instruções MOVE e funções nativas. Considerar a robustez e a segurança do sistema, chegar à quantidade final de instruções de máquina executadas e pesar isso em relação ao armazenamento e à unidade máxima de GAS.

  1. Armazenamento

O plano de armazenamento de GAS considera a escassez instantânea de acesso aos dados e o custo de ocupação permanente do disco. O acesso e o armazenamento de itens de estado geram custos relacionados à verificação de todo o estado da blockchain. Taxa de armazenamento de GAS = taxa de projeto + custo por ( bytes × número de bytes )

Ler, criar e escrever

O acesso a itens de estado divide-se em três tipos: leitura, criação e escrita, cada um com uma forma diferente de cálculo de custos. A operação de leitura é a mais comum, a criação tem o custo mais alto e a escrita fica entre os dois.

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

  • per_item_read
  • por_byte_lido
  • per_item_create
  • por_byte_criar
  • per_item_write
  • per_byte_write

custo unitário de GAS estável

Cada operação e transação em si requer um custo fixo unitário em relação aos custos de armazenamento e execução, o que ajuda a manter o plano de GAS estável. A equipe do projeto representa a unidade de GAS com uma precisão de cerca de 3 dígitos, fazendo com que o custo das transações de transferência seja de cerca de 700 unidades de GAS.

participação da comunidade

Como projeto comunitário, os membros podem:

  1. Apontar as inconsistências no plano GAS
  2. Expressar preocupações sobre o plano GAS e participar na discussão
  3. Votar nas propostas de governação relacionadas com o GAS

Como ajustar o custo do GAS?

O plano GAS, como armazenamento de configuração na cadeia, pode ser alterado através de propostas de governança e novos comandos ou funcionalidades nativas podem ser adicionados sem problemas. Os parâmetros GAS podem ser ajustados ao longo do tempo para se adequar ao desenvolvimento do projeto e da comunidade.

Algumas alterações complexas nas fórmulas de GAS podem exigir a atualização do software do nó e a distinção através de novas bandeiras de características de GAS. Isso requer que os operadores de nós adotem amplamente o novo software e aprovem o uso da nova versão através de propostas de governança.

Trabalho Futuro

Como a primeira estrutura GAS viável da linguagem MOVE, este projeto pavimentou o caminho para trabalhos futuros:

  1. Reduzir os custos de execução
  2. Implementar cálculos de GAS multidimensionais, permitindo que os usuários especifiquem orçamentos separados para execução e armazenamento.
  3. Aliviar o estado de inchaço, explorar o conceito de TTL de cada projeto, e remover os itens de estado não acessados quando o TTL expirar.

Este GAS foi projetado para fornecer uma base importante para o desenvolvimento do ecossistema da linguagem MOVE, e há muito espaço para otimizações e melhorias no futuro.

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
  • 7
  • Compartilhar
Comentário
0/400
LongTermDreamervip
· 21h atrás
O design de base é muito importante.
Ver originalResponder0
SingleForYearsvip
· 07-16 03:51
Boa direção de ruptura
Ver originalResponder0
TokenTaxonomistvip
· 07-16 03:05
Ainda é necessário testar mais.
Ver originalResponder0
ConsensusDissentervip
· 07-15 08:49
Apoiar tentativas de inovação audaciosa
Ver originalResponder0
liquidation_watchervip
· 07-15 08:47
A cobrança justa é muito importante.
Ver originalResponder0
HodlKumamonvip
· 07-15 08:46
O design de custos é realmente elegante.
Ver originalResponder0
LiquidationWizardvip
· 07-15 08:42
Quando se é severo, até mesmo consigo mesmo se é implacá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)