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 é:
Definição de Princípios
Preparar a estrutura 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 para o projeto
Tornar a estrutura GAS consciente do armazenamento
Refinar ainda mais o plano de GAS
princípio
Os princípios definidos 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 deve ser definido pela governança na cadeia, podendo ser configurado de forma flexível
O GAS pode prevenir ataques DoS e ajustar rapidamente de acordo com as condições da rede.
O preço do GAS reflete a visão da fundação do projeto para promover o crescimento e manter a acessibilidade da blockchain.
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:
Custos fixos
Custo de execução
Ler custos
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
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.
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.
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%.
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.
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:
Apontar as inconsistências no plano GAS
Expressar preocupações sobre o plano GAS e participar na discussão
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:
Reduzir os custos de execução
Implementar cálculos de GAS multidimensionais, permitindo que os usuários especifiquem orçamentos separados para execução e armazenamento.
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.
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.
22 gostos
Recompensa
22
7
Partilhar
Comentar
0/400
LongTermDreamer
· 13h atrás
O design de base é muito importante.
Ver originalResponder0
SingleForYears
· 07-16 03:51
Boa direção de ruptura
Ver originalResponder0
TokenTaxonomist
· 07-16 03:05
Ainda é necessário testar mais.
Ver originalResponder0
ConsensusDissenter
· 07-15 08:49
Apoiar tentativas de inovação audaciosa
Ver originalResponder0
liquidation_watcher
· 07-15 08:47
A cobrança justa é muito importante.
Ver originalResponder0
HodlKumamon
· 07-15 08:46
O design de custos é realmente elegante.
Ver originalResponder0
LiquidationWizard
· 07-15 08:42
Quando se é severo, até mesmo consigo mesmo se é implacável.
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 é:
princípio
Os princípios definidos incluem:
calcular GAS
O utilizador deve especificar duas quantidades ao submeter uma transação:
Durante o processo de execução, a transação será sujeita a:
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
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.
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.
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%.
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.
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:
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:
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:
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.