Este documento foi motivado pelo nosso trabalho no Especificação de consenso FOCIL 23, onde percebemos que o protocolo exigia uma consideração mais ponderada em torno das restrições de recursos, uma vez que certos detalhes não estavam explicitamente especificados no FOCIL Ethereum pesquisa post 14.
Antes de começarmos, assumimos a seguinte configuração para estabelecer uma linha de 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 em que o comitê IL, o proponente e os atestadores realizam algumas ações honestas:
Membros do comité IL recuperam uma lista de transações IL do cliente EL dado o cabeçalho (chamada CL → EL), depois assinam o IL local (transações + resumos) e libertam-no para a rede de gossip.
Os nós que seguem a cadeia farão download do IL, verificam-no para anti-DOS (ainda não o importam para EL) e encaminham-no para outros pares. Os nós também importam o IL para a escolha do garfo e rastreiam quais ILs foram vistos usando uma cache aggreGate. Os atestantes e os nós que seguem a cadeia devem ter a mesma visão da cadeia.
O proponente para o próximo slot monitoriza ativamente a rede de fofocas IL, recolhe e agrega os ILs locais e, em seguida, no corte de agregação de IL (intervalo #2), o proponente atualiza o processo de construção de blocos com uma lista de transações IL a serem incluídas no 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 viu, o proponente precisará solicitar manualmente o bloco beacon ausente, importar o bloco e construir em cima desse bloco.
Com base no acima exposto, podemos identificar áreas potenciais intensivas em recursos e focar nelas:
O proponente atualiza o processo de construção de blocos 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 beacon. Em seguida, todos os outros verificam o bloco.
Os nós recebem o bloco de farol e verificam-no. As novas etapas de verificação incluem a verificação da construção da lista de inclusão aggreGate e a confirmação de 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 ou não ser ignoradas devido a conflitos) será realizada no EL.
As funções adicionais para o proponente não parecem ser uma preocupação significativa. As novas etapas de verificação para os nós - verificar se a lista de inclusão atende às condições satisfatórias - podem introduzir alguma carga adicional à CPU, mas não parece ser um problema importante.
O atestante vota no bloco da beacon usando a regra de escolha de bifurcação LMD GHOST. Os atestantes só votarão em um bloco de beacon que satisfaça a função de avaliação da lista de inclusão, com base em observações do Intervalo 1.
Não há diferença em relação a hoje.
Como visto acima, as preocupações mais significativas com os recursos giram em torno do upload, download e o potencial de spam de uma perspectiva do nó. Outra preocupação chave é o overhead nos nós para verificar e importar a lista de inclusão, bem como a necessidade do proponente de atualizar o processo de construção de blocos para satisfazer a lista de inclusão. Estes aspectos requerem uma consideração cuidadosa e um design para garantir eficiência e segurança.
Com base no exposto, delineamos várias questões em aberto que influenciarão a forma como a especificação é escrita:
Este documento foi motivado pelo nosso trabalho no Especificação de consenso FOCIL 23, onde percebemos que o protocolo exigia uma consideração mais ponderada em torno das restrições de recursos, uma vez que certos detalhes não estavam explicitamente especificados no FOCIL Ethereum pesquisa post 14.
Antes de começarmos, assumimos a seguinte configuração para estabelecer uma linha de 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 em que o comitê IL, o proponente e os atestadores realizam algumas ações honestas:
Membros do comité IL recuperam uma lista de transações IL do cliente EL dado o cabeçalho (chamada CL → EL), depois assinam o IL local (transações + resumos) e libertam-no para a rede de gossip.
Os nós que seguem a cadeia farão download do IL, verificam-no para anti-DOS (ainda não o importam para EL) e encaminham-no para outros pares. Os nós também importam o IL para a escolha do garfo e rastreiam quais ILs foram vistos usando uma cache aggreGate. Os atestantes e os nós que seguem a cadeia devem ter a mesma visão da cadeia.
O proponente para o próximo slot monitoriza ativamente a rede de fofocas IL, recolhe e agrega os ILs locais e, em seguida, no corte de agregação de IL (intervalo #2), o proponente atualiza o processo de construção de blocos com uma lista de transações IL a serem incluídas no 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 viu, o proponente precisará solicitar manualmente o bloco beacon ausente, importar o bloco e construir em cima desse bloco.
Com base no acima exposto, podemos identificar áreas potenciais intensivas em recursos e focar nelas:
O proponente atualiza o processo de construção de blocos 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 beacon. Em seguida, todos os outros verificam o bloco.
Os nós recebem o bloco de farol e verificam-no. As novas etapas de verificação incluem a verificação da construção da lista de inclusão aggreGate e a confirmação de 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 ou não ser ignoradas devido a conflitos) será realizada no EL.
As funções adicionais para o proponente não parecem ser uma preocupação significativa. As novas etapas de verificação para os nós - verificar se a lista de inclusão atende às condições satisfatórias - podem introduzir alguma carga adicional à CPU, mas não parece ser um problema importante.
O atestante vota no bloco da beacon usando a regra de escolha de bifurcação LMD GHOST. Os atestantes só votarão em um bloco de beacon que satisfaça a função de avaliação da lista de inclusão, com base em observações do Intervalo 1.
Não há diferença em relação a hoje.
Como visto acima, as preocupações mais significativas com os recursos giram em torno do upload, download e o potencial de spam de uma perspectiva do nó. Outra preocupação chave é o overhead nos nós para verificar e importar a lista de inclusão, bem como a necessidade do proponente de atualizar o processo de construção de blocos para satisfazer a lista de inclusão. Estes aspectos requerem uma consideração cuidadosa e um design para garantir eficiência e segurança.
Com base no exposto, delineamos várias questões em aberto que influenciarão a forma como a especificação é escrita: