Este documento foi motivado pelo nosso trabalho no Gate.Especificação de consenso FOCIL 23, onde percebemos que o protocolo exigia mais consideração cuidadosa em torno das restrições de recursos, já que certos detalhes não foram explicitamente especificados no Post de pesquisa Ethereum FOCIL 14.
Antes de começarmos, pressupomos a seguinte configuração para estabelecer uma base limpa para nossas considerações:
Antes de prosseguirmos, assumimos que os seguintes atores fazem parte do protocolo e analisamos suas responsabilidades:
Assumimos a seguinte linha do tempo na qual o comitê IL, o proponente e os atestadores realizam algumas ações honestas:
Os membros do comitê de IL recuperam uma lista de transações de IL do cliente EL dado o chefe (chamada CL → EL), depois assinam a IL local (transações + resumos) e a liberam para a rede de fofocas.
Nodes que seguem a cadeia irão baixar o IL, verificá-lo para anti-DOS (não importando-o para EL ainda), e encaminhá-lo para outros pares. Nós também importamos o IL na escolha de ramificação e rastreamos quais ILs foram vistos usando um cache aggreGate. Os atestadores e nós que seguem a cadeia devem ter a mesma visão da cadeia.
O proponente para o próximo slot monitora ativamente a rede de fofocas IL e, coleta e agrega os ILs locais, então, no corte de agregação de IL (intervalo #2), o proponente atualiza o processo de construção de bloco com uma lista de transações de IL a serem incluídas para seu bloco. Isso requer uma chamada de CL para EL.
Se o proponente do próximo slot observar um número suficiente de listas de inclusão com base em um hash pai que não tenha visto, o proponente precisará solicitar manualmente o bloco do beacon em falta, importar o bloco e construir em cima desse bloco.
Com base no acima, podemos identificar áreas potencialmente intensivas em recursos e focar nelas:
O proponente atualiza o processo de construção de bloco com uma lista de transações de lista de inclusão. Este é um chamado CL → EL.
Visualização da lista de inclusão de bloqueio. Pare de aceitar a lista de inclusão local a partir deste ponto.
O proponente recupera a carga de execução do cliente EL (chamada CL → EL) e a libera para a rede de gossip do bloco do farol. Em seguida, todos os outros verificam o bloco.
Os nós recebem o bloco de farol e o verificam. As novas etapas de verificação incluem a verificação da construção do aggrEGate e a confirmação se a lista de inclusão satisfaz a função de avaliação, que será concluída no CL. A verificação das condições do IL (se podem ser ignoradas devido a conflitos ou não) será realizada no EL.
Os deveres adicionais para o proponente não parecem ser uma preocupação significativa. As novas etapas de verificação para nós — verificar se a lista de inclusão atende às condições satisfatórias — podem introduzir alguma carga adicional de CPU, mas não parece ser um grande problema.
O atestador vota para o bloco do farol usando a regra de escolha de fork LMD GHOST. Os atestadores só votarão em um bloco do farol que satisfaça a função de avaliação da lista de inclusão, com base nas observações do Intervalo 1.
Não há diferença em relação a hoje.
Como visto acima, as preocupações mais significativas em relação aos recursos giram em torno do upload, download e potencial de spam de uma lista de inclusão do ponto de vista de um nó. Outra preocupação chave é a sobrecarga nos nós para verificação e importação da lista de inclusão, bem como a necessidade do proponente de atualizar seu processo de construção de blocos para satisfazer a lista de inclusão. Esses aspectos requerem consideração cuidadosa e design para garantir eficiência e segurança.
Com base no exposto, destacamos várias perguntas em aberto que influenciarão como a especificação será escrita:
Este documento foi motivado pelo nosso trabalho no Gate.Especificação de consenso FOCIL 23, onde percebemos que o protocolo exigia mais consideração cuidadosa em torno das restrições de recursos, já que certos detalhes não foram explicitamente especificados no Post de pesquisa Ethereum FOCIL 14.
Antes de começarmos, pressupomos a seguinte configuração para estabelecer uma base limpa para nossas considerações:
Antes de prosseguirmos, assumimos que os seguintes atores fazem parte do protocolo e analisamos suas responsabilidades:
Assumimos a seguinte linha do tempo na qual o comitê IL, o proponente e os atestadores realizam algumas ações honestas:
Os membros do comitê de IL recuperam uma lista de transações de IL do cliente EL dado o chefe (chamada CL → EL), depois assinam a IL local (transações + resumos) e a liberam para a rede de fofocas.
Nodes que seguem a cadeia irão baixar o IL, verificá-lo para anti-DOS (não importando-o para EL ainda), e encaminhá-lo para outros pares. Nós também importamos o IL na escolha de ramificação e rastreamos quais ILs foram vistos usando um cache aggreGate. Os atestadores e nós que seguem a cadeia devem ter a mesma visão da cadeia.
O proponente para o próximo slot monitora ativamente a rede de fofocas IL e, coleta e agrega os ILs locais, então, no corte de agregação de IL (intervalo #2), o proponente atualiza o processo de construção de bloco com uma lista de transações de IL a serem incluídas para seu bloco. Isso requer uma chamada de CL para EL.
Se o proponente do próximo slot observar um número suficiente de listas de inclusão com base em um hash pai que não tenha visto, o proponente precisará solicitar manualmente o bloco do beacon em falta, importar o bloco e construir em cima desse bloco.
Com base no acima, podemos identificar áreas potencialmente intensivas em recursos e focar nelas:
O proponente atualiza o processo de construção de bloco com uma lista de transações de lista de inclusão. Este é um chamado CL → EL.
Visualização da lista de inclusão de bloqueio. Pare de aceitar a lista de inclusão local a partir deste ponto.
O proponente recupera a carga de execução do cliente EL (chamada CL → EL) e a libera para a rede de gossip do bloco do farol. Em seguida, todos os outros verificam o bloco.
Os nós recebem o bloco de farol e o verificam. As novas etapas de verificação incluem a verificação da construção do aggrEGate e a confirmação se a lista de inclusão satisfaz a função de avaliação, que será concluída no CL. A verificação das condições do IL (se podem ser ignoradas devido a conflitos ou não) será realizada no EL.
Os deveres adicionais para o proponente não parecem ser uma preocupação significativa. As novas etapas de verificação para nós — verificar se a lista de inclusão atende às condições satisfatórias — podem introduzir alguma carga adicional de CPU, mas não parece ser um grande problema.
O atestador vota para o bloco do farol usando a regra de escolha de fork LMD GHOST. Os atestadores só votarão em um bloco do farol que satisfaça a função de avaliação da lista de inclusão, com base nas observações do Intervalo 1.
Não há diferença em relação a hoje.
Como visto acima, as preocupações mais significativas em relação aos recursos giram em torno do upload, download e potencial de spam de uma lista de inclusão do ponto de vista de um nó. Outra preocupação chave é a sobrecarga nos nós para verificação e importação da lista de inclusão, bem como a necessidade do proponente de atualizar seu processo de construção de blocos para satisfazer a lista de inclusão. Esses aspectos requerem consideração cuidadosa e design para garantir eficiência e segurança.
Com base no exposto, destacamos várias perguntas em aberto que influenciarão como a especificação será escrita: