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 é:
Definição de Princípios
Preparar o quadro de avaliação, determinar o preço de cada execução
Estabelecer um sistema de medição de GAS e uma álgebra de GAS segura para MOVE
Importar a estrutura GAS upstream
Tornar a estrutura GAS consciente do armazenamento
Refinar ainda mais o plano GAS
Princípios
Os princípios definidos pelo projeto incluem:
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.
O GAS deve ser definido pela governança na cadeia e pode ser configurado de forma integrada.
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.
O preço do GAS reflete a visão de acelerar o crescimento e manter a popularidade da blockchain.
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:
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.
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:
Custos fixos: base fixa mais taxas adicionais para grandes transações.
Custo de execução: utilizado para executar instruções MOVE.
Custo de leitura: utilizado para ler dados do armazenamento persistente.
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:
Identificar as incongruências no plano de GAS
Expressar preocupações sobre o plano GAS, participar de discussões na comunidade
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:
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 de inchaço: explorar o conceito TTL de cada projeto e remover os itens de estado não visitados quando o TTL expirar.
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.
19 Curtidas
Recompensa
19
6
Repostar
Compartilhar
Comentário
0/400
ShibaMillionairen't
· 07-24 00:05
Que custos não custos, são idiotas a pagar.
Ver originalResponder0
SatoshiHeir
· 07-21 20:58
Hum, o design do MOVE claramente plagia a página 127 do livro amarelo do Ethereum.
Ver originalResponder0
GasWaster
· 07-21 01:29
outro dia, outra otimização de gás... mata-me agora
Ver originalResponder0
GasGrillMaster
· 07-21 01:26
Os pagamentos móveis já chegaram, ainda brincamos com isso?
Ver originalResponder0
ImpermanentTherapist
· 07-21 01:12
Inovador e queimando dinheiro
Ver originalResponder0
CryptoMotivator
· 07-21 01:09
Já estão a discutir questões de custos. Para quê tanto alvoroço?
O MOVE Language introduz o mecanismo GAS: análise completa do cálculo de taxas na cadeia
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 é:
Princípios
Os princípios definidos pelo projeto incluem:
Cálculo de GAS
Quando o usuário submete uma transação, deve especificar duas quantidades na transação:
Durante a execução, a transação será cobrada:
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:
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:
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: